diff --git a/app/Http/Controllers/Care/PrescriptionController.php b/app/Http/Controllers/Care/PrescriptionController.php index 98036f9..0e989e8 100644 --- a/app/Http/Controllers/Care/PrescriptionController.php +++ b/app/Http/Controllers/Care/PrescriptionController.php @@ -193,6 +193,30 @@ class PrescriptionController extends Controller ->with('success', 'Prescription created.'); } + if ($request->input('return_to') === 'specialty') { + $module = (string) $request->input('specialty_module', ''); + $visitId = (int) $request->input('specialty_visit_id', 0); + $modules = app(\App\Services\Care\SpecialtyModuleService::class); + $visit = $consultation->visit_id + ? \App\Models\Visit::query()->find($consultation->visit_id) + : null; + + if ( + $module !== '' + && $modules->definition($module) + && $visit + && (int) $visit->id === $visitId + && (int) $visit->id === (int) $consultation->visit_id + ) { + return redirect() + ->route('care.specialty.workspace', [ + 'module' => $module, + 'visit' => $visit, + ]) + ->with('success', 'Prescription created.'); + } + } + return redirect()->route('care.prescriptions.show', array_filter([ 'prescription' => $prescription, ...$return->query($consultation), diff --git a/app/Http/Controllers/Care/SpecialtyModuleController.php b/app/Http/Controllers/Care/SpecialtyModuleController.php index 29aa813..6fdde2d 100644 --- a/app/Http/Controllers/Care/SpecialtyModuleController.php +++ b/app/Http/Controllers/Care/SpecialtyModuleController.php @@ -829,6 +829,8 @@ class SpecialtyModuleController extends Controller && $canManageSpecialty && $permissions->can($member, 'blood_bank.manage')); $canStartConsultation = $canConsult; + // Same ability as GP consultation chart — not consultations.manage alone. + $canPrescribe = $permissions->can($member, 'prescriptions.manage') && $canManageSpecialty; $canCallNext = $canManageSpecialty; $canManageClinical = $canManageSpecialty; $canManageVitals = $canManageSpecialty && ( @@ -1176,6 +1178,7 @@ class SpecialtyModuleController extends Controller 'canConsult' => $canConsult, 'canAdvanceStage' => $canAdvanceStage, 'canStartConsultation' => $canStartConsultation, + 'canPrescribe' => $canPrescribe, 'canCallNext' => $canCallNext, 'canManageClinical' => $canManageClinical, 'canManageVitals' => $canManageVitals, diff --git a/resources/views/care/prescriptions/partials/form.blade.php b/resources/views/care/prescriptions/partials/form.blade.php index 9fbab6b..e98c781 100644 --- a/resources/views/care/prescriptions/partials/form.blade.php +++ b/resources/views/care/prescriptions/partials/form.blade.php @@ -1,7 +1,8 @@ -{{-- Shared prescription line-item form body (create page + consultation modal). --}} +{{-- Shared prescription line-item form body (create page + consultation / specialty modal). --}} @php $routes = $routes ?? config('care.medication_routes', []); $compact = $compact ?? false; + $returnTo = $returnTo ?? ($compact ? 'consultation' : null); @endphp