diff --git a/app/DataTables/WorklistDataTable.php b/app/DataTables/WorklistDataTable.php index eacb3e7..33c109d 100644 --- a/app/DataTables/WorklistDataTable.php +++ b/app/DataTables/WorklistDataTable.php @@ -24,9 +24,19 @@ class WorklistDataTable extends DataTable { const DATE_FORMAT = 'd.m.Y H:i'; - private static function dtFormat(Carbon|CarbonImmutable|null $dt): ?string + private static function renderDateColumn(Carbon|CarbonImmutable|null $dt): ?string { - return $dt?->format(self::DATE_FORMAT); + if ($dt === null) { + return null; + } + + return Blade::render( + 'staff.worklist.partials._multi-value-cell', + [ + 'title' => $dt->format(self::DATE_FORMAT), + 'subtitle' => $dt->diffForHumans(), + ] + ); } public function dataTable(QueryBuilder $query): EloquentDataTable @@ -94,12 +104,11 @@ public function html(): HtmlBuilder */ public function getColumns(): array { - $cols_allowed = AccessControl::worklistColumns(); $columns = []; - foreach ($cols_allowed as $allowed) { - switch ($allowed) { + foreach (AccessControl::worklistColumns() as $col) { + switch ($col) { case WorklistColumn::Priority: - $columns[] = Column::make($allowed->value) + $columns[] = Column::make($col->value) ->searchable(false) ->hidden(); $columns[] = Column::make('priority_icon') @@ -111,7 +120,7 @@ public function getColumns(): array break; case WorklistColumn::ReportStatus: case WorklistColumn::History: - $columns[] = Column::make($allowed->value) + $columns[] = Column::make($col->value) ->searchable(false) ->orderable(false) ->addClass('text-center') @@ -119,28 +128,28 @@ public function getColumns(): array ->title(''); break; case WorklistColumn::PatientSexAge: - $columns[] = Column::make($allowed->value) + $columns[] = Column::make($col->value) ->searchable(false) ->orderable(false) ->addClass('text-center') ->title('Age'); break; case WorklistColumn::StudyDate: - $columns[] = Column::make($allowed->value)->searchable(false)->title('Scan Dt'); + $columns[] = Column::make($col->value)->searchable(false)->title('Scan Dt'); break; case WorklistColumn::ReceiveDate: - $columns[] = Column::make($allowed->value)->searchable(false)->title('Received'); + $columns[] = Column::make($col->value)->searchable(false)->title('Received'); break; case WorklistColumn::ReportDate: - $columns[] = Column::make($allowed->value)->searchable(false)->title('Read At'); + $columns[] = Column::make($col->value)->searchable(false)->title('Read At'); break; case WorklistColumn::AssignedPhysician: - $columns[] = Column::make($allowed->value) + $columns[] = Column::make($col->value) ->searchable(false) ->title('Assigned'); break; case WorklistColumn::ReadingPhysician: - $columns[] = Column::make($allowed->value) + $columns[] = Column::make($col->value) ->searchable(false) ->title('Read By'); break; @@ -153,7 +162,7 @@ public function getColumns(): array ->title(''); break; default: - $columns[] = Column::make($allowed->value)->title(Str::title($allowed->value)); + $columns[] = Column::make($col->value)->title(Str::title($col->value)); break; } } @@ -212,7 +221,13 @@ private function customColumns(): array $columns[$col->value] = fn (Study $study) => $this->physicianColumn($study->readingPhysician, $study->reported_at); break; case WorklistColumn::Series: - $columns[$col->value] = fn (Study $study) => $study->numInstances() . '' . human_filesize($study->disk_size) . ''; + $columns[$col->value] = fn (Study $study) => Blade::render( + 'staff.worklist.partials._multi-value-cell', + [ + 'title' => $study->numInstances(), + 'subtitle' => human_filesize($study->disk_size), + ] + ); break; case WorklistColumn::StudyDate: case WorklistColumn::ReceiveDate: @@ -220,7 +235,7 @@ private function customColumns(): array case WorklistColumn::AssignDate: case WorklistColumn::AuthorizeDate: case WorklistColumn::ArchiveDate: - $columns[$col->value] = fn (Study $study) => $study->{$col->value}?->format(self::DATE_FORMAT); + $columns[$col->value] = fn (Study $study) => self::renderDateColumn($study->{$col->value}); break; case WorklistColumn::History: $columns[$col->value] = fn (Study $study) => sprintf(' diff --git a/resources/views/staff/worklist/partials/_multi-value-cell.blade.php b/resources/views/staff/worklist/partials/_multi-value-cell.blade.php new file mode 100644 index 0000000..f2fa797 --- /dev/null +++ b/resources/views/staff/worklist/partials/_multi-value-cell.blade.php @@ -0,0 +1,12 @@ +