wip
This commit is contained in:
parent
60c272f07c
commit
45b452fb0e
@ -14,9 +14,9 @@ public function setStudyStatus(StudyLevelStatus $status): void;
|
||||
|
||||
public function setReportStatus(ReportStatus $status): void;
|
||||
|
||||
public function setPageSize(int $size): void;
|
||||
public function setPerPage(int $size): void;
|
||||
|
||||
public function setSortColumn(string $column, string $dir): void;
|
||||
public function setSortOrder(string $order): void;
|
||||
|
||||
public function setSearchTerm(string $search): void;
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
||||
|
||||
abstract class WorklistBase implements IUserStudyLister
|
||||
{
|
||||
private ?int $pageSize = null;
|
||||
private ?int $perPage = null;
|
||||
|
||||
private ?string $sortColumn = null;
|
||||
private array $sortColumns = [];
|
||||
|
||||
private ?string $sortDir = null;
|
||||
|
||||
@ -43,7 +43,7 @@ private function applyRadiologist(Builder $query): Builder
|
||||
if ($this->radiologist_id != null) {
|
||||
$rad = $this->radiologist_id;
|
||||
$query = $query->where(function ($query) use ($rad) {
|
||||
$query->orWhere('assigned_physician_id', '=', $rad);
|
||||
$query->Where('assigned_physician_id', '=', $rad);
|
||||
$query->orWhere('reading_physician_id', '=', $rad);
|
||||
});
|
||||
}
|
||||
@ -85,13 +85,17 @@ public function setReportStatus(ReportStatus $status): void
|
||||
|
||||
protected static function reportCompleteQuery(Builder $query): Builder
|
||||
{
|
||||
return $query->where('report_status', '=', ReportStatus::Signed->value);
|
||||
return $query->where('report_status', '=', ReportStatus::Authorized->value);
|
||||
}
|
||||
|
||||
protected function applySort(Builder $query): Builder
|
||||
{
|
||||
if ($this->sortColumn) {
|
||||
return $query->orderBy($this->sortColumn, $this->sortDir ?? 'ASC');
|
||||
if (! empty($this->sortColumns)) {
|
||||
foreach ($this->sortColumns as $column => $dir) {
|
||||
$query = $query->orderBy($column, $dir);
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
return $query
|
||||
@ -126,25 +130,32 @@ public function setLocked(bool $locked): void
|
||||
$this->locked = $locked;
|
||||
}
|
||||
|
||||
public function setPageSize(int $size): void
|
||||
public function setPerPage(int $size): void
|
||||
{
|
||||
$this->pageSize = $size;
|
||||
$this->perPage = $size;
|
||||
}
|
||||
|
||||
public function setSortColumn(string $column, string $dir): void
|
||||
public function setSortOrder(string $order): void
|
||||
{
|
||||
$this->sortColumn = $column;
|
||||
$this->sortDir = $dir;
|
||||
$this->sortColumns = [];
|
||||
if (filled($order)) {
|
||||
$orders = explode(',', $order);
|
||||
foreach ($orders as $order) {
|
||||
$column = ltrim($order, '-');
|
||||
$dir = ($order[0] == '-') ? 'desc' : 'asc';
|
||||
$this->sortColumns[] = [$column => $dir];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function setSearchTerm(string $search): void
|
||||
{
|
||||
$this->searchTerm = $search;
|
||||
$this->searchTerm = trim(strtolower($search));
|
||||
}
|
||||
|
||||
private function getPageSize(?int $user_id = null): int
|
||||
{
|
||||
return $this->pageSize ?? $this->getPageSize($user_id);
|
||||
return $this->perPage ?? $this->getPageSize($user_id);
|
||||
}
|
||||
|
||||
private function applySearch(Builder $query): Builder
|
||||
@ -166,7 +177,7 @@ private function applySearch(Builder $query): Builder
|
||||
private function applyArchived(Builder $query): Builder
|
||||
{
|
||||
if ($this->archived != null) {
|
||||
$query = $query->where('archived', $this->archived);
|
||||
$query = $query->where('is_archived', $this->archived);
|
||||
}
|
||||
|
||||
return $query;
|
||||
@ -175,7 +186,7 @@ private function applyArchived(Builder $query): Builder
|
||||
private function applyLocked(Builder $query): Builder
|
||||
{
|
||||
if ($this->locked != null) {
|
||||
$query = $query->where('locked', $this->locked);
|
||||
$query = $query->where('is_locked', $this->locked);
|
||||
}
|
||||
|
||||
return $query;
|
||||
|
@ -5,8 +5,8 @@
|
||||
enum ReportStatus: int
|
||||
{
|
||||
case Pending = 0;
|
||||
case Opened = 1;
|
||||
case Draft = 2;
|
||||
case Finalized = 3;
|
||||
case Signed = 4;
|
||||
case Opened = 10;
|
||||
case Draft = 20;
|
||||
case Finalized = 30;
|
||||
case Authorized = 90;
|
||||
}
|
||||
|
@ -2,9 +2,6 @@
|
||||
|
||||
use App\Models\Enums\ReportStatus;
|
||||
use App\Models\Enums\StudyLevelStatus;
|
||||
use App\Models\Facility;
|
||||
use App\Models\Institute;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
@ -17,8 +14,8 @@ public function up(): void
|
||||
$table->id();
|
||||
$table->string('orthanc_uuid')->unique();
|
||||
$table->boolean('is_archived')->default(false);
|
||||
$table->boolean('is_locked')->default(false);
|
||||
$table->unsignedTinyInteger('study_priority')->default(0);
|
||||
|
||||
$table->string('patient_id')->nullable();
|
||||
$table->string('patient_uuid')->nullable()->index();
|
||||
$table->string('patient_name');
|
||||
@ -37,12 +34,11 @@ public function up(): void
|
||||
$table->timestamp('study_date');
|
||||
$table->timestamp('received_at');
|
||||
$table->timestamp('assigned_at')->nullable();
|
||||
$table->timestamp('locked_at')->nullable();
|
||||
$table->timestamp('reported_at')->nullable();
|
||||
$table->timestamp('authorized_at')->nullable();
|
||||
$table->timestamp('archived_at')->nullable();
|
||||
|
||||
$table->foreignIdFor(Institute::class)->constrained()->cascadeOnDelete();
|
||||
$table->foreignIdFor(Facility::class)->nullable()->constrained()->cascadeOnDelete();
|
||||
$table->unsignedTinyInteger('study_status')->default(StudyLevelStatus::Pending->value);
|
||||
$table->unsignedTinyInteger('report_status')->default(ReportStatus::Pending->value);
|
||||
|
||||
@ -50,9 +46,14 @@ public function up(): void
|
||||
$table->unsignedSmallInteger('series_count')->nullable();
|
||||
$table->unsignedInteger('disk_size')->nullable();
|
||||
|
||||
$table->foreignIdFor(User::class, 'assigned_physician_id')->nullable()->constrained()->nullOnDelete();
|
||||
$table->foreignIdFor(User::class, 'reading_physician_id')->nullable()->constrained()->nullOnDelete();
|
||||
$table->foreignIdFor(User::class, 'referring_provider_id')->nullable()->constrained()->nullOnDelete();
|
||||
$table->unsignedBigInteger('assigned_physician_id')->nullable();
|
||||
$table->unsignedBigInteger('locking_physician_id')->nullable();
|
||||
$table->unsignedBigInteger('reporting_physician_id')->nullable();
|
||||
$table->unsignedBigInteger('authorizing_physician_id')->nullable();
|
||||
$table->unsignedBigInteger('referring_doctor_id')->nullable();
|
||||
|
||||
$table->unsignedBigInteger('institute_id');
|
||||
$table->unsignedBigInteger('facility_id')->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user