partial sorting FIX

This commit is contained in:
Dr Masroor Ehsan 2025-01-20 22:20:43 +06:00
parent bbef766d50
commit 3486d9f169

View File

@ -55,9 +55,12 @@ public function dataTable(QueryBuilder $query): EloquentDataTable
$this->applyFilters($dataTable);
$dataTable
->orderColumn(WorklistColumn::PatientName->value, sprintf('%s $1', WorklistColumn::PatientName->value))
$dataTable = $dataTable
->rawColumns($rawColumns)
->orderColumns([
WorklistColumn::Priority->value,
WorklistColumn::StudyDate->value,
], ':column $1')
->setRowId('id');
return $dataTable;
@ -77,7 +80,8 @@ public function query(Study $model): QueryBuilder
*/
public function html(): HtmlBuilder
{
return $this->builder()
return $this
->builder()
->setTableId('worklist-table')
->columns($this->getColumns())
->minifiedAjax()
@ -88,7 +92,7 @@ public function html(): HtmlBuilder
// 'dom' => 'Bfrtip',
'buttons' => [
'searchPanes',
'excel',
// 'excel',
// 'csv',
// 'pdf',
// 'print',
@ -100,7 +104,6 @@ public function html(): HtmlBuilder
[8, 'desc'],
],
])
// ->selectStyleSingle()
->pageLength(15)
->lengthMenu([15, 25, 50, 100, 250]);
}
@ -155,15 +158,24 @@ public function getColumns(): array
break;
case WorklistColumn::StudyDate:
$columns[] = Column::make($col->value)->searchable(false)->title('Scanned');
$columns[] = Column::make($col->value)
->orderable(true)
->searchable(false)
->title('Scanned');
break;
case WorklistColumn::ReceiveDate:
$columns[] = Column::make($col->value)->searchable(false)->title('Received');
$columns[] = Column::make($col->value)
->orderable(true)
->searchable(false)
->title('Received');
break;
case WorklistColumn::ReportDate:
$columns[] = Column::make($col->value)->searchable(false)->title('Read At');
$columns[] = Column::make($col->value)
->orderable(true)
->searchable(false)
->title('Read At');
break;
case WorklistColumn::AssignedPhysician:
@ -175,7 +187,7 @@ public function getColumns(): array
case WorklistColumn::ReadingPhysician:
$columns[] = Column::make($col->value)
->searchable(false)
->title('Read By');
->title('Rad');
break;
case WorklistColumn::ActionButtons:
@ -187,7 +199,7 @@ public function getColumns(): array
->exportable(false)
->printable(false)
// ->width(60)
->addClass('p-0 ps-2')
// ->addClass('p-0 ps-2')
->title('');
break;
@ -242,7 +254,7 @@ private function applyFilters(QueryDataTable $dataTable)
$modality = $this->request()->get('modality');
$dataTable->filter(
function ($query) use ($status, $studyFrom, $studyTo, $receiveFrom, $receiveTo, $modality, $assignFrom, $assignTo, $readFrom, $readTo, $readBy) {
function (QueryBuilder $query) use ($status, $studyFrom, $studyTo, $receiveFrom, $receiveTo, $modality, $assignFrom, $assignTo, $readFrom, $readTo, $readBy) {
$this->filterStatus($query, $status);
$this->filterDateRange($query, 'study_date', $studyFrom, $studyTo);
$this->filterDateRange($query, 'received_at', $receiveFrom, $receiveTo);
@ -254,7 +266,7 @@ function ($query) use ($status, $studyFrom, $studyTo, $receiveFrom, $receiveTo,
);
}
private function filterStatus($query, ?string $status): void
private function filterStatus(QueryBuilder $query, ?string $status): void
{
if (blank($status)) {
return;
@ -273,7 +285,7 @@ private function filterStatus($query, ?string $status): void
}
}
private function filterModalities($query, ?string $request): void
private function filterModalities(QueryBuilder $query, ?string $request): void
{
if (blank($request)) {
return;
@ -288,7 +300,7 @@ private function filterModalities($query, ?string $request): void
$query->whereIn('modality', $modalities);
}
private function filterDateRange($query, string $column, ?string $from, ?string $to): void
private function filterDateRange(QueryBuilder $query, string $column, ?string $from, ?string $to): void
{
if (blank($from)) {
return;
@ -540,9 +552,9 @@ private function generateActionButtons(Study $study): string
return implode("\r", $btns);
}
private function filterReadBy($query, ?int $readBy): void
private function filterReadBy(QueryBuilder $query, ?int $readBy): void
{
if (is_null($readBy) || $readBy == 0) {
if (is_null($readBy) || $readBy <= 0) {
return;
}