wip dicom servers

This commit is contained in:
Dr Masroor Ehsan 2025-01-26 12:22:50 +06:00
parent b13c15ce5c
commit 4c68b3626a
6 changed files with 29 additions and 9 deletions

View File

@ -239,18 +239,22 @@ public function getColumns(): array
case WorklistColumn::Organization:
$columns[] = Column::make($col->value)
->searchable(true)
->orderable(true)
->searchable(false)
->title('Org');
break;
case WorklistColumn::Department:
$columns[] = Column::make($col->value)
->searchable(true)
->orderable(true)
->searchable(false)
->title('Dept');
break;
case WorklistColumn::DicomServer:
$columns[] = Column::make($col->value)
->searchable(false)
->title('Server');
break;
default:
// dd(Str::slug($col->value, '-'));
$columns[] = Column::make($col->value)->title(formatTitle($col->value));
@ -451,7 +455,9 @@ private function renderCustomColumns(): array
};
break;
case WorklistColumn::StudyDescription:
$columns[$col->value] = static fn (Study $study) => $study->sanitizedStudyDescription();
$columns[$col->value] = function (Study $study) {
return sprintf('<span data-bs-toggle="tooltip" data-bs-placement="top" title="%s">%s</span>', $study->study_description, str_limit($study->sanitizedStudyDescription(), 20));
};
break;
case WorklistColumn::AssignedPhysician:
$columns[$col->value] = static function (Study $study) {
@ -506,6 +512,13 @@ private function renderCustomColumns(): array
case WorklistColumn::ReportButtons:
$columns[$col->value] = fn (Study $study) => $this->generateReportingButtons($study);
break;
case WorklistColumn::DicomServer:
$columns[$col->value] = function (Study $study) {
return sprintf('<span class="fi fi-%s msg-icon me-1"></span>%s',
strtolower($study->dicomServer->geo_code),
$study->dicomServer->server_name);
};
break;
}
}

View File

@ -36,4 +36,5 @@ enum WorklistColumn: string
case ReportButtons = 'report_buttons';
case Organization = 'organization';
case Department = 'department';
case DicomServer = 'dicom_server';
}

View File

@ -45,6 +45,7 @@ public static function worklistColumns(User|int|null $usr = null): Collection
if ($user->isAdmin()) {
$columns->push(WorklistColumn::Organization);
$columns->push(WorklistColumn::Department);
$columns->push(WorklistColumn::DicomServer);
}
return $columns;

View File

@ -14,6 +14,7 @@ public function up(): void
$table->id();
$table->boolean('is_active')->index();
$table->string('server_name')->unique();
$table->string('geo_code', 2)->index();
$table->string('host');
$table->integer('port');
$table->string('rest_api_endpoint');

View File

@ -36,14 +36,14 @@ public function run(): void
$dept_chev_xr = Department::create(
[
'is_active' => true,
'name' => 'Chevron XR',
'name' => 'Chev-CR',
'organization_id' => $chev->id,
]
);
$chev_dep_ct_mr = Department::create(
[
'is_active' => true,
'name' => 'Chevron CT/MR',
'name' => 'Chev-MR',
'organization_id' => $chev->id,
]
);
@ -109,7 +109,8 @@ public function run(): void
DicomServer::create(
[
'is_active' => true,
'server_name' => 'Orthanc Main',
'server_name' => 'CTG-1',
'geo_code' => 'BD',
'host' => 'pacs.mylabctg.com',
'port' => 8042,
'rest_api_endpoint' => 'http://pacs.mylabctg.com:8042/',
@ -122,8 +123,9 @@ public function run(): void
DicomServer::create(
[
'is_active' => false,
'server_name' => 'Orthanc XR',
'server_name' => 'MAA-1',
'host' => 'pacs.mylabctg.com',
'geo_code' => 'IN',
'port' => 8043,
'rest_api_endpoint' => 'http://pacs.mylabctg.com:8042/',
'ae_title' => 'RADFUSION',

View File

@ -27,6 +27,8 @@
'resources/assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.scss',
'resources/assets/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.scss',
])
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/7.2.3/css/flag-icons.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
@endsection
@section('vendor-script')