diff --git a/app/DataTables/WorklistDataTable.php b/app/DataTables/WorklistDataTable.php index 1c2ba6f..f0be736 100644 --- a/app/DataTables/WorklistDataTable.php +++ b/app/DataTables/WorklistDataTable.php @@ -279,11 +279,9 @@ private function renderCustomColumns(): array private function generateReportingButtons(Study $study): string { - if (me()->isRadiologist()) { - if (! $study->hasReports() && $study->canEditReport()) { - // fresh untouched study, can edit report: take the rad directly to the edit page - return ''; - } + if (me()->isRadiologist() && $study->canEditReport() && ! $study->hasReports()) { + // fresh untouched study, can edit report: take the rad directly to the edit page + return ''; } return $this->renderButton($study->hash, 'fa-eye', 'show-reports btn-outline', 'R'); diff --git a/app/Http/Controllers/Staff/ReportController.php b/app/Http/Controllers/Staff/ReportController.php index b44d1f1..b2eac5c 100644 --- a/app/Http/Controllers/Staff/ReportController.php +++ b/app/Http/Controllers/Staff/ReportController.php @@ -15,9 +15,10 @@ public function popup() { abort_unless(me()->may([Permission::ReportEdit, Permission::ReportDictate, Permission::ReportApprove, Permission::ReportDownload]), 403); $this->decodeKeys(); - $study = Study::with(['reports.radiologist', 'readingPhysician'])->findOrFail($this->key); + $study = Study::with(['reports.radiologist', 'assignedPhysicians'])->findOrFail($this->key); if (me()->isRadiologist()) { - abort_unless($study->isAssigned(), 403); + // abort_unless($study->isAssigned(), 403); + abort_unless($study->isUserInStudyAssignmentsOrReadingPhysician(), 403); } $reports = $study->reports->sortByDesc('created_at'); diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php index 6c8f142..6da5cf9 100644 --- a/database/seeders/RoleSeeder.php +++ b/database/seeders/RoleSeeder.php @@ -27,6 +27,7 @@ public function run(): void $rad->givePermissionTo([ Permission::ReportEdit, Permission::ReportDownload, + Permission::ReportApprove, Permission::StudyDownload, Permission::StudyMetadataView, Permission::StudyHistoryView, diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index 5b8f82f..4d56ad4 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -35,25 +35,40 @@ public function run(): void $chevron = Institute::where('name', 'Chevron')->first(); $cmch = Institute::where('name', 'CMCH')->first(); - User::factory(2)->create([ - 'institute_id' => $chevron->id, - ]) - ->each(function ($u) { - $u->assignRole(Role::Technician); - }); - User::factory(2)->create([ - 'institute_id' => $cmch->id, - ]) - ->each(function ($u) { + User::factory(4) + ->create([ + 'institute_id' => $chevron->id, + ]) + ->each(function ($u, $key) { $u->assignRole(Role::Technician); + $u->update([ + 'username' => sprintf('tech%d', $key + 1), + ]); }); - User::factory(8)->create() - ->each(function ($u) { + User::factory(4) + ->create([ + 'institute_id' => $cmch->id, + ]) + ->each(function ($u, $key) { + $u->assignRole(Role::Technician); + $u->update([ + 'username' => sprintf('cmctech%d', $key + 1), + ]); + }); + + User::factory(8) + ->create() + ->each(function ($u, $key) { $u->assignRole(Role::Radiologist); + $u->update([ + 'display_name' => sprintf('Dr. %s', $u->first_name), + 'username' => sprintf('rad%d', $key + 1), + ]); }); - User::factory(3)->create() + User::factory(3) + ->create() ->each(function ($u) { $u->assignRole(Role::Guest); }); diff --git a/resources/views/staff/reports/popup.blade.php b/resources/views/staff/reports/popup.blade.php index d070b48..a5452bc 100644 --- a/resources/views/staff/reports/popup.blade.php +++ b/resources/views/staff/reports/popup.blade.php @@ -27,7 +27,7 @@ @endforeach - - Create + + Create New