diff --git a/app/Http/Controllers/PacsController.php b/app/Http/Controllers/PacsController.php deleted file mode 100644 index c3c1230..0000000 --- a/app/Http/Controllers/PacsController.php +++ /dev/null @@ -1,36 +0,0 @@ -orderBy('study_date', 'desc') - ->paginate(15); - - return view('pacs.studies', compact('studies')); - } - - public function show($id) - { - $study = (new OrthancRestClient)->getStudy($id); - - return view('pacs.study', compact('study')); - } - - public function import() - { - $svc = (new StudyImporter); - $svc->scanStudies(); - $svc->filterStudies(); - $svc->importStudies(); - - return redirect()->route('studies.index'); - } -} diff --git a/app/Http/Controllers/Staff/StudiesController.php b/app/Http/Controllers/Staff/StudiesController.php index 88fb0b0..34e98b4 100644 --- a/app/Http/Controllers/Staff/StudiesController.php +++ b/app/Http/Controllers/Staff/StudiesController.php @@ -2,11 +2,25 @@ namespace App\Http\Controllers\Staff; -use App\Http\Controllers\Controller; +use App\Http\Controllers\HashidControllerBase; +use App\Models\Study; -class StudiesController extends Controller +class StudiesController extends HashidControllerBase { - public function index() {} + public function index() + { + $studies = Study::where('is_active', true) + ->orderBy('study_date', 'desc') + ->paginate(15); - public function series() {} + return view('staff.studies.index', compact('studies')); + } + + public function details() + { + $this->decodeKeys(); + $study = Study::findOrFail($this->key); + + return view('staff.studies.details', compact('study')); + } } diff --git a/app/Http/Controllers/System/SyncOrthancController.php b/app/Http/Controllers/System/SyncOrthancController.php new file mode 100644 index 0000000..0ad1aaf --- /dev/null +++ b/app/Http/Controllers/System/SyncOrthancController.php @@ -0,0 +1,19 @@ +scanStudies(); + $svc->filterStudies(); + $svc->importStudies(); + + return redirect()->route('studies.index'); + } +} diff --git a/app/Models/Study.php b/app/Models/Study.php index 0ad125f..9dfe971 100644 --- a/app/Models/Study.php +++ b/app/Models/Study.php @@ -26,6 +26,11 @@ public function attachments(): HasMany return $this->hasMany(StudyAttachment::class); } + public function series(): HasMany + { + return $this->hasMany(StudySeries::class); + } + public function reports(): HasMany { return $this->hasMany(StudyReport::class); diff --git a/config/hashids.php b/config/hashids.php new file mode 100644 index 0000000..a6424a8 --- /dev/null +++ b/config/hashids.php @@ -0,0 +1,45 @@ + 'main', + + /* + |-------------------------------------------------------------------------- + | Hashids Connections + |-------------------------------------------------------------------------- + | + | Here are each of the connections setup for your application. Example + | configuration has been included, but you may add as many connections as + | you would like. + | + */ + + 'connections' => [ + + 'main' => [ + 'salt' => 'Nqy+T6emZLbhzW08gaZqWEtgEv/habWV4zWYWREv2wM=', + 'length' => 0, + // 'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' + ], + + 'alternative' => [ + 'salt' => 'your-salt-string', + 'length' => 'your-length-integer', + // 'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' + ], + + ], + +]; diff --git a/resources/views/staff/studies/details.blade.php b/resources/views/staff/studies/details.blade.php new file mode 100644 index 0000000..06d2281 --- /dev/null +++ b/resources/views/staff/studies/details.blade.php @@ -0,0 +1 @@ +@dd($study) diff --git a/resources/views/staff/studies/index.blade.php b/resources/views/staff/studies/index.blade.php new file mode 100644 index 0000000..b123c66 --- /dev/null +++ b/resources/views/staff/studies/index.blade.php @@ -0,0 +1,70 @@ + + +

+ {{ __('Dashboard') }} +

+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + @foreach($studies as $study) + + + + + + + + + + + + + + + @endforeach + +
Accession NumberPatient IDPatient NamePatient SexPatient Birth DateModalityStudy DateReceive DateSeriesInstitute Name 
{{ $study->accession_number }}{{ $study->patient_id }}{{ $study->patient_name }}{{ $study->patient_sex }}{{ $study->patient_birthdate }}{{ $study->study_modality }}{{ $study->study_date }}{{ $study->receive_date }}{{ $study->image_count }} / {{ $study->series_count }}{{ $study->institution_name }} + St + | + OHF + @if($study->image_count > 1 && $study->study_modality != 'CR') + | + MPR + | + SEG + @endif + | + ZIP + | + TXT + +
+ +
+ {!! $studies->links() !!} +
+ +
+
+
+
diff --git a/routes/web.php b/routes/web.php index 8c16804..031f321 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,8 @@ name('dashboard'); - Route::get('/studies', [PacsController::class, 'index'])->name('studies.index'); - Route::get('/studies/{id}', [PacsController::class, 'show'])->name('studies.show'); - Route::get('/cron', [PacsController::class, 'import'])->name('studies.import'); + Route::group(['prefix' => 'pacs', 'as' => 'pacs.'], function () { + Route::get('sync', SyncOrthancController::class)->name('sync'); + }); Route::group(['prefix' => 'radiologist', 'as' => 'radiologist.'], function () { Route::get('/report-write/{id}', ReportWriteController::class)->name('report-write'); }); + + Route::group(['prefix' => '/studies', 'as' => 'studies.'], function () { + Route::get('/', [StudiesController::class, 'index'])->name('index'); + Route::get('/details/{id}', [StudiesController::class, 'details'])->name('details'); + }); + }); Route::view('/ck', 'ck');