diff --git a/app/DAL/Studies/AdminStudyLister.php b/app/DAL/Studies/AdminStudyLister.php index 8d9a5a4..6ec66cc 100644 --- a/app/DAL/Studies/AdminStudyLister.php +++ b/app/DAL/Studies/AdminStudyLister.php @@ -5,7 +5,7 @@ use App\Models\Study; use Illuminate\Contracts\Database\Eloquent\Builder; -class AdminStudyLister extends UserStudyListerBase +final class AdminStudyLister extends UserStudyListerBase { protected function buildQuery(?int $user_id = null): Builder { diff --git a/app/DAL/Studies/RadiologistStudyLister.php b/app/DAL/Studies/RadiologistStudyLister.php index 413c6d5..2350a59 100644 --- a/app/DAL/Studies/RadiologistStudyLister.php +++ b/app/DAL/Studies/RadiologistStudyLister.php @@ -5,7 +5,7 @@ use App\Models\Study; use Illuminate\Contracts\Database\Eloquent\Builder; -class RadiologistStudyLister extends UserStudyListerBase +final class RadiologistStudyLister extends UserStudyListerBase { protected function buildQuery(?int $user_id = null): Builder { diff --git a/app/DAL/Studies/ReferrerStudyLister.php b/app/DAL/Studies/ReferrerStudyLister.php new file mode 100644 index 0000000..0b4ad54 --- /dev/null +++ b/app/DAL/Studies/ReferrerStudyLister.php @@ -0,0 +1,18 @@ +id()); + + return self::defaultSortQuery( + Study::active()->where('referring_provider_id', $user_id) + ); + } +} diff --git a/app/DAL/Studies/TechnicianStudyLister.php b/app/DAL/Studies/TechnicianStudyLister.php index e0a09cc..ac61e86 100644 --- a/app/DAL/Studies/TechnicianStudyLister.php +++ b/app/DAL/Studies/TechnicianStudyLister.php @@ -5,7 +5,7 @@ use App\Models\Study; use Illuminate\Contracts\Database\Eloquent\Builder; -class TechnicianStudyLister extends UserStudyListerBase +final class TechnicianStudyLister extends UserStudyListerBase { protected function buildQuery(?int $user_id = null): Builder { diff --git a/app/DAL/Studies/UserStudyListerFactory.php b/app/DAL/Studies/UserStudyListerFactory.php index d223517..0166310 100644 --- a/app/DAL/Studies/UserStudyListerFactory.php +++ b/app/DAL/Studies/UserStudyListerFactory.php @@ -12,13 +12,14 @@ */ public static function getLister(): IUserStudyLister { - $user_role = (int) auth()->user()->user_role; + $role = auth()->user()->roles()->first()->name; - return match (UserRole::from($user_role)) { + return match (UserRole::from($role)) { UserRole::Admin => new AdminStudyLister, UserRole::Technician => new TechnicianStudyLister, UserRole::Radiologist => new RadiologistStudyLister, - default => throw new Exception("Unknown user role: $user_role"), + UserRole::ReferringPhysician => new ReferrerStudyLister, + default => throw new Exception("Unknown user role: $role"), }; } } diff --git a/resources/views/staff/studies/index.blade.php b/resources/views/staff/studies/index.blade.php index 32a0073..35bab85 100644 --- a/resources/views/staff/studies/index.blade.php +++ b/resources/views/staff/studies/index.blade.php @@ -64,38 +64,42 @@ class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-