Deploy Ladill Care / deploy (push) Successful in 52s
Overview/Visits/History/Billing/Workspace layout with stage maps, KPIs, patient header/timeline, and service catalogs seeded into Billing on activate. Emergency, Blood Bank, and Dentistry ship first-class shell configs. Co-authored-by: Cursor <cursoragent@cursor.com>
119 lines
5.6 KiB
PHP
119 lines
5.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Specialty shell overlays: stage maps, billable service catalogs, workspace tabs.
|
|
* Merged onto catalog entries from care_specialty_modules.php by SpecialtyShellService.
|
|
*
|
|
* Modules without an entry inherit the generic defaults below.
|
|
*
|
|
* @return array{
|
|
* defaults: array<string, mixed>,
|
|
* modules: array<string, array<string, mixed>>
|
|
* }
|
|
*/
|
|
return [
|
|
'defaults' => [
|
|
'stages' => [
|
|
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
|
|
['code' => 'in_care', 'label' => 'In care', 'queue_point' => 'chair'],
|
|
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
|
|
],
|
|
'services' => [
|
|
[
|
|
'code' => 'specialty.consultation',
|
|
'label' => 'Specialty consultation',
|
|
'amount_minor' => (int) env('CARE_CONSULTATION_FEE_MINOR', 5000),
|
|
'type' => 'consultation',
|
|
],
|
|
],
|
|
'workspace_tabs' => [
|
|
'overview' => 'Overview',
|
|
'clinical_notes' => 'Clinical notes',
|
|
'orders' => 'Orders',
|
|
'billing' => 'Billing',
|
|
'documents' => 'Documents',
|
|
],
|
|
'actions' => [
|
|
'call_next' => 'Call next patient',
|
|
'start' => 'Start consultation',
|
|
'complete' => 'Complete',
|
|
'order_test' => 'Order test',
|
|
'prescribe' => 'Prescribe',
|
|
'invoice' => 'Generate invoice',
|
|
'discharge' => 'Discharge',
|
|
],
|
|
],
|
|
|
|
'modules' => [
|
|
'emergency' => [
|
|
'stages' => [
|
|
['code' => 'arrival', 'label' => 'Arrival / triage', 'queue_point' => 'waiting'],
|
|
['code' => 'resus', 'label' => 'Resuscitation', 'queue_point' => 'resus'],
|
|
['code' => 'treatment', 'label' => 'Treatment bay', 'queue_point' => 'bay'],
|
|
['code' => 'observation', 'label' => 'Observation', 'queue_point' => 'obs'],
|
|
['code' => 'disposition', 'label' => 'Disposition', 'queue_point' => null],
|
|
],
|
|
'services' => [
|
|
['code' => 'er.triage', 'label' => 'Emergency triage', 'amount_minor' => 0, 'type' => 'consultation'],
|
|
['code' => 'er.consultation', 'label' => 'Emergency consultation', 'amount_minor' => 8000, 'type' => 'consultation'],
|
|
['code' => 'er.procedure', 'label' => 'Emergency procedure', 'amount_minor' => 15000, 'type' => 'procedure'],
|
|
['code' => 'er.observation', 'label' => 'Observation bed (per hour)', 'amount_minor' => 3000, 'type' => 'misc'],
|
|
],
|
|
'workspace_tabs' => [
|
|
'overview' => 'Overview',
|
|
'triage' => 'Triage',
|
|
'clinical_notes' => 'Clinical notes',
|
|
'orders' => 'Orders',
|
|
'billing' => 'Billing',
|
|
'documents' => 'Documents',
|
|
],
|
|
],
|
|
'blood_bank' => [
|
|
'stages' => [
|
|
['code' => 'request', 'label' => 'Request received', 'queue_point' => 'waiting'],
|
|
['code' => 'crossmatch', 'label' => 'Cross-match', 'queue_point' => 'lab'],
|
|
['code' => 'issue', 'label' => 'Product issue', 'queue_point' => 'issue'],
|
|
['code' => 'transfusion', 'label' => 'Transfusion', 'queue_point' => null],
|
|
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
|
|
],
|
|
'services' => [
|
|
['code' => 'bb.crossmatch', 'label' => 'Cross-match', 'amount_minor' => 4000, 'type' => 'lab'],
|
|
['code' => 'bb.whole_blood', 'label' => 'Whole blood unit', 'amount_minor' => 12000, 'type' => 'misc'],
|
|
['code' => 'bb.packed_rbc', 'label' => 'Packed RBC unit', 'amount_minor' => 15000, 'type' => 'misc'],
|
|
['code' => 'bb.platelets', 'label' => 'Platelets unit', 'amount_minor' => 18000, 'type' => 'misc'],
|
|
],
|
|
'workspace_tabs' => [
|
|
'overview' => 'Overview',
|
|
'requests' => 'Requests',
|
|
'inventory' => 'Inventory',
|
|
'billing' => 'Billing',
|
|
'documents' => 'Documents',
|
|
],
|
|
],
|
|
'dentistry' => [
|
|
'stages' => [
|
|
['code' => 'waiting', 'label' => 'Waiting room', 'queue_point' => 'waiting'],
|
|
['code' => 'chair', 'label' => 'Chair assignment', 'queue_point' => 'chair'],
|
|
['code' => 'procedure', 'label' => 'Procedure', 'queue_point' => 'chair'],
|
|
['code' => 'recovery', 'label' => 'Recovery', 'queue_point' => 'recovery'],
|
|
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
|
|
],
|
|
'services' => [
|
|
['code' => 'den.consult', 'label' => 'Dental consultation', 'amount_minor' => 5000, 'type' => 'consultation'],
|
|
['code' => 'den.cleaning', 'label' => 'Scaling / polishing', 'amount_minor' => 8000, 'type' => 'procedure'],
|
|
['code' => 'den.fill', 'label' => 'Filling', 'amount_minor' => 12000, 'type' => 'procedure'],
|
|
['code' => 'den.extraction', 'label' => 'Extraction', 'amount_minor' => 15000, 'type' => 'procedure'],
|
|
['code' => 'den.xray', 'label' => 'Dental X-ray', 'amount_minor' => 4000, 'type' => 'imaging'],
|
|
],
|
|
'workspace_tabs' => [
|
|
'overview' => 'Overview',
|
|
'odontogram' => 'Chart',
|
|
'clinical_notes' => 'Clinical notes',
|
|
'orders' => 'Orders',
|
|
'billing' => 'Billing',
|
|
'documents' => 'Documents',
|
|
],
|
|
],
|
|
],
|
|
];
|