From 8f941d039cfaca3ba49b1b44fe7e0587c28bc7bd Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Sat, 4 Jan 2025 11:50:56 +0600 Subject: [PATCH] wip DT --- app/DataTables/WorklistDataTable.php | 31 +++++++++++++---- .../Controllers/Staff/WorklistController.php | 12 ++++--- .../views/staff/worklist/table.blade.php | 34 +++++++++++++++++++ 3 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 resources/views/staff/worklist/table.blade.php diff --git a/app/DataTables/WorklistDataTable.php b/app/DataTables/WorklistDataTable.php index dca2407..3c8b050 100644 --- a/app/DataTables/WorklistDataTable.php +++ b/app/DataTables/WorklistDataTable.php @@ -2,12 +2,13 @@ namespace App\DataTables; -use App\Models\Worklist; +use App\Models\Study; use Illuminate\Database\Eloquent\Builder as QueryBuilder; use Yajra\DataTables\EloquentDataTable; use Yajra\DataTables\Html\Builder as HtmlBuilder; use Yajra\DataTables\Html\Button; use Yajra\DataTables\Html\Column; +use Yajra\DataTables\Html\SearchPane; use Yajra\DataTables\Services\DataTable; class WorklistDataTable extends DataTable @@ -27,7 +28,7 @@ public function dataTable(QueryBuilder $query): EloquentDataTable /** * Get the query source of dataTable. */ - public function query(Worklist $model): QueryBuilder + public function query(Study $model): QueryBuilder { return $model->newQuery(); } @@ -41,7 +42,8 @@ public function html(): HtmlBuilder ->setTableId('worklist-table') ->columns($this->getColumns()) ->minifiedAjax() - // ->dom('Bfrtip') + ->searchPanes(SearchPane::make()) + ->layout(['dom' => 'PBfrtip']) ->orderBy(1) ->selectStyleSingle() ->buttons([ @@ -65,10 +67,25 @@ public function getColumns(): array ->printable(false) ->width(60) ->addClass('text-center'), + Column::make('id'), - Column::make('add your columns'), - Column::make('created_at'), - Column::make('updated_at'), + Column::make('study_priority'), + Column::make('study_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('image_count'), + + // Column::make('xxx'), ]; } @@ -77,6 +94,6 @@ public function getColumns(): array */ protected function filename(): string { - return 'Worklist_'.date('YmdHis'); + return 'radsparc_worklist_'.date('YmdHis'); } } diff --git a/app/Http/Controllers/Staff/WorklistController.php b/app/Http/Controllers/Staff/WorklistController.php index 95acbff..0bfd3bd 100644 --- a/app/Http/Controllers/Staff/WorklistController.php +++ b/app/Http/Controllers/Staff/WorklistController.php @@ -3,16 +3,20 @@ namespace App\Http\Controllers\Staff; use App\DAL\Studies\WorklistFactory; +use App\DataTables\WorklistDataTable; use App\Http\Controllers\HashidControllerBase; class WorklistController extends HashidControllerBase { - public function index() + public function index(WorklistDataTable $dataTable) { - $studies = WorklistFactory::getLister()->get(); - - return view('staff.worklist.index', compact('studies')); + return $dataTable->render('staff.worklist.table'); } + /* { + $studies = WorklistFactory::getLister()->get(); + + return view('staff.worklist.index', compact('studies')); + }*/ public function details($hashid) { diff --git a/resources/views/staff/worklist/table.blade.php b/resources/views/staff/worklist/table.blade.php new file mode 100644 index 0000000..7e62e44 --- /dev/null +++ b/resources/views/staff/worklist/table.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.layoutMaster') + +@section('title', 'Worklist') + +@section('vendor-style') + @vite([ + 'resources/assets/vendor/libs/datatables-bs5/datatables.bootstrap5.scss', + 'resources/assets/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.scss', + 'resources/assets/vendor/libs/datatables-checkboxes-jquery/datatables.checkboxes.scss', + 'resources/assets/vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.scss' + ]) +@endsection + +@section('vendor-script') + @vite([ + 'resources/assets/vendor/libs/moment/moment.js', + 'resources/assets/vendor/libs/datatables-bs5/datatables-bootstrap5.js' + ]) +@endsection + +@section('page-script') + {{ $dataTable->scripts(attributes: ['type' => 'module']) }} +@endsection + +@section('content') +
+
+
Manage Users
+
+ {{ $dataTable->table() }} +
+
+
+@endsection