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