This commit is contained in:
Dr Masroor Ehsan 2025-01-15 11:24:09 +06:00
parent 13067b9697
commit 8723af8c57
2 changed files with 11 additions and 11 deletions

View File

@ -8,10 +8,14 @@ class HashedStudyControllerBase extends HashidControllerBase
{ {
protected ?Study $study = null; protected ?Study $study = null;
protected function getStudy(): Study protected function getStudy(array|string|null $relations = null): Study
{ {
$this->decodeKeys(); $this->decodeKeys();
if ($relations !== null) {
$this->study = Study::with($relations)->findOrFail($this->key);
} else {
$this->study = Study::findOrFail($this->key); $this->study = Study::findOrFail($this->key);
}
return $this->study; return $this->study;
} }

View File

@ -6,20 +6,18 @@
use App\Domain\ACL\Permission; use App\Domain\ACL\Permission;
use App\Domain\ACL\Role; use App\Domain\ACL\Role;
use App\Domain\Report\ReportStatus; use App\Domain\Report\ReportStatus;
use App\Http\Controllers\HashidControllerBase; use App\Http\Controllers\HashedStudyControllerBase;
use App\Http\Requests\AssignPhysicianRequest; use App\Http\Requests\AssignPhysicianRequest;
use App\Models\Study;
use App\Models\User; use App\Models\User;
use App\Services\AuditTrail\Activity; use App\Services\AuditTrail\Activity;
use Carbon\Carbon; use Carbon\Carbon;
class AssignmentController extends HashidControllerBase class AssignmentController extends HashedStudyControllerBase
{ {
public function show() public function show()
{ {
abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403); abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403);
$this->decodeKeys(); $study = $this->getStudy('assignedPhysicians');
$study = Study::with('assignedPhysicians')->findOrFail($this->key);
$rads = User::active()->role(Role::Radiologist)->get(['id', 'display_name', 'profile_photo_path', 'first_name', 'last_name', 'created_at']); $rads = User::active()->role(Role::Radiologist)->get(['id', 'display_name', 'profile_photo_path', 'first_name', 'last_name', 'created_at']);
$stats = Radiologists::worklist_stats(3, ReportStatus::Finalized->value); $stats = Radiologists::worklist_stats(3, ReportStatus::Finalized->value);
foreach ($stats as $rad) { foreach ($stats as $rad) {
@ -36,8 +34,7 @@ public function show()
public function remove(AssignPhysicianRequest $request) public function remove(AssignPhysicianRequest $request)
{ {
abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403); abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403);
$this->decodeKeys(); $study = $this->getStudy('assignedPhysicians');
$study = Study::with('assignedPhysicians')->findOrFail($this->key);
$user = User::active()->findOrFail($request->input('rad_id')); $user = User::active()->findOrFail($request->input('rad_id'));
if ($study->isAssigned($user)) { if ($study->isAssigned($user)) {
@ -58,8 +55,7 @@ public function remove(AssignPhysicianRequest $request)
public function save(AssignPhysicianRequest $request) public function save(AssignPhysicianRequest $request)
{ {
abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403); abort_unless(auth()->user()->may(Permission::AssignRadiologist), 403);
$this->decodeKeys(); $study = $this->getStudy('assignedPhysicians');
$study = Study::with('assignedPhysicians')->findOrFail($this->key);
$rad = User::active()->findOrFail($request->input('rad_id')); $rad = User::active()->findOrFail($request->input('rad_id'));
$study->assignedPhysicians()->attach($rad->id); $study->assignedPhysicians()->attach($rad->id);