addColumn('action', 'worklist.action') ->orderColumn('patient_name', 'patient_name $1') ->rawColumns(['priority_icon']) ->setRowId('id'); } /** * Get the query source of dataTable. */ public function query(Study $model): QueryBuilder { return $model->newQuery(); } /** * Optional method if you want to use the html builder. */ public function html(): HtmlBuilder { return $this->builder() ->setTableId('worklist-table') ->columns($this->getColumns()) ->minifiedAjax() ->searchPanes(SearchPane::make(['show' => true, 'hideCount' => true])) ->parameters( [ // 'dom' => 'Pfrtip', // 'dom' => 'Bfrtip', 'buttons' => [ 'searchPanes', 'excel', 'csv', 'pdf', 'print', 'reset', 'reload', ], ]) ->orderBy(1) ->selectStyleSingle() ->pageLength(25) // Set default page length to 10 ->lengthMenu([15, 25, 50, 100, 250]) // Custom page length options ->buttons([ Button::make('excel'), Button::make('csv'), Button::make('pdf'), Button::make('print'), Button::make('reset'), Button::make('reload'), ]); } /** * Get the dataTable columns definition. */ public function getColumns(): array { return [ Column::make('priority_icon'), Column::make('modality'), Column::make('patient_id'), Column::make('patient_name'), Column::make('sex_age'), Column::make('study_date'), Column::make('received_at'), Column::make('reported_at'), Column::make('study_description'), Column::make('reporting_physician_id'), Column::make('body_part_examined'), Column::make('num_instances') ->searchable(false) ->orderable(false) ->addClass('text-center'), // Column::make('xxx'), Column::computed('action') ->exportable(false) ->printable(false) ->width(60) ->addClass('text-center'), ]; } /** * Get the filename for export. */ protected function filename(): string { $parts = [ config('app.name'), 'worklist', date('YmdHi'), ]; return Str::slug(implode(' ', $parts), '_'); } }