Replace ambulance Call next queue with an EMS dispatch board.
Deploy Ladill Care / deploy (push) Successful in 35s
Deploy Ladill Care / deploy (push) Successful in 35s
Home columns follow New call → Dispatched → On scene → Transport → Handover; walk-ins land as New call and Call next is disabled for this module. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -45,7 +45,7 @@ class AmbulanceWorkspaceController extends Controller
|
||||
SpecialtyVisitStageService $stages,
|
||||
SpecialtyShellService $shell,
|
||||
): RedirectResponse {
|
||||
$this->authorizeAbility($request, 'consultations.manage');
|
||||
$this->authorizeAbility($request, 'ambulance.manage');
|
||||
$this->assertAmbulanceManage($request, $modules);
|
||||
$this->assertVisit($request, $visit);
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ use App\Models\Department;
|
||||
use App\Models\InvestigationType;
|
||||
use App\Models\PatientAttachment;
|
||||
use App\Models\Visit;
|
||||
use App\Services\Care\Ambulance\AmbulanceDispatchBoardService;
|
||||
use App\Services\Care\AppointmentService;
|
||||
use App\Services\Care\CareQueueBridge;
|
||||
use App\Services\Care\CareQueueSessionAdvance;
|
||||
@@ -1518,17 +1519,22 @@ class SpecialtyModuleController extends Controller
|
||||
$canAdvanceStage = $canConsult
|
||||
|| ($module === 'blood_bank'
|
||||
&& $canManageSpecialty
|
||||
&& $permissions->can($member, 'blood_bank.manage'));
|
||||
&& $permissions->can($member, 'blood_bank.manage'))
|
||||
|| ($module === 'ambulance'
|
||||
&& $canManageSpecialty
|
||||
&& $permissions->can($member, 'ambulance.manage'));
|
||||
$canStartConsultation = $canConsult;
|
||||
// Same ability as GP consultation chart — not consultations.manage alone.
|
||||
$canPrescribe = $permissions->can($member, 'prescriptions.manage') && $canManageSpecialty;
|
||||
$canCallNext = $canManageSpecialty;
|
||||
// Ambulance is dispatch-out EMS — not a desk Call next line.
|
||||
$canCallNext = $module !== 'ambulance' && $canManageSpecialty;
|
||||
$canManageClinical = $canManageSpecialty;
|
||||
$canManageVitals = $canManageSpecialty && (
|
||||
$permissions->can($member, 'vitals.manage')
|
||||
|| $permissions->can($member, 'consultations.manage')
|
||||
);
|
||||
$canManageQueue = $permissions->can($member, 'appointments.manage') && $canManageSpecialty;
|
||||
$canManageQueue = ($permissions->can($member, 'appointments.manage') && $canManageSpecialty)
|
||||
|| ($module === 'ambulance' && $canManageSpecialty);
|
||||
$canAccessPatientQueue = $permissions->canAccessPatientQueue($member);
|
||||
$canBookAppointments = $permissions->can($member, 'appointments.manage');
|
||||
$canViewPatients = $permissions->can($member, 'patients.view');
|
||||
@@ -1537,6 +1543,16 @@ class SpecialtyModuleController extends Controller
|
||||
? (string) (\App\Models\Branch::owned($owner)->whereKey($branchId)->value('name') ?? '')
|
||||
: '';
|
||||
|
||||
$ambulanceDispatchBoard = null;
|
||||
if ($module === 'ambulance' && in_array($section, ['visits', 'overview'], true)) {
|
||||
$ambulanceDispatchBoard = app(AmbulanceDispatchBoardService::class)->board(
|
||||
$organization,
|
||||
$owner,
|
||||
$kpiBranch,
|
||||
$practitionerScope,
|
||||
);
|
||||
}
|
||||
|
||||
$done = Appointment::owned($owner)
|
||||
->where('organization_id', $organization->id)
|
||||
->where('status', Appointment::STATUS_COMPLETED)
|
||||
@@ -2251,6 +2267,7 @@ class SpecialtyModuleController extends Controller
|
||||
'ambulanceHandover' => $ambulanceHandover,
|
||||
'ambulanceStageCodes' => $ambulanceStageCodes,
|
||||
'ambulanceStageFlow' => $ambulanceStageFlow,
|
||||
'ambulanceDispatchBoard' => $ambulanceDispatchBoard ?? null,
|
||||
'queueStubs' => $modules->queueStubsFor($organization, $module),
|
||||
'branchId' => $branchId,
|
||||
'branchLabel' => $branchLabel,
|
||||
|
||||
Reference in New Issue
Block a user