Files
ladill-care/config/care_specialty_shell.php
T
isaaccladandCursor 2f724daf49
Deploy Ladill Care / deploy (push) Successful in 45s
Open the matching workspace tab after specialty stage advance.
Stage Move CTAs and pills previously always redirected to overview; map each stage to its tab via shell config so examination lands on exam, etc.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:21:43 +00:00

565 lines
29 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',
'timeline' => 'Timeline',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
// Maps visit specialty_stage → workspace ?tab= after Move / stage pill POST.
'stage_tabs' => [
'waiting' => 'overview',
'in_care' => 'clinical_notes',
'completed' => 'overview',
],
'actions' => [
'call_next' => 'Call next',
'start' => 'Start',
'complete' => 'Complete',
'order_test' => 'Order test',
'prescribe' => 'Prescribe',
'invoice' => 'Add to 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.resuscitation', 'label' => 'Resuscitation', 'amount_minor' => 25000, 'type' => 'procedure'],
['code' => 'er.observation', 'label' => 'Observation bed (per hour)', 'amount_minor' => 3000, 'type' => 'misc'],
['code' => 'er.transfer', 'label' => 'Transfer coordination', 'amount_minor' => 5000, 'type' => 'misc'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'triage' => 'Triage',
'vitals' => 'Vitals',
'clinical_notes' => 'Clinical notes',
'observation' => 'Observation',
'disposition' => 'Disposition',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
'stage_tabs' => [
'arrival' => 'triage',
'resus' => 'triage',
'treatment' => 'clinical_notes',
'observation' => 'observation',
'disposition' => 'disposition',
],
],
'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'],
['code' => 'bb.ffp', 'label' => 'FFP unit', 'amount_minor' => 14000, 'type' => 'misc'],
['code' => 'bb.cryo', 'label' => 'Cryoprecipitate unit', 'amount_minor' => 16000, 'type' => 'misc'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'requests' => 'Requests',
'inventory' => 'Inventory',
'issue' => 'Issue',
'transfusion' => 'Transfusion',
'billing' => 'Billing',
'documents' => 'Documents',
],
'stage_tabs' => [
'request' => 'requests',
'crossmatch' => 'requests',
'issue' => 'issue',
'transfusion' => 'transfusion',
'completed' => 'overview',
],
],
'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.exam', 'label' => 'Dental examination', 'amount_minor' => 4000, '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.rct', 'label' => 'Root canal treatment', 'amount_minor' => 35000, 'type' => 'procedure'],
['code' => 'den.crown', 'label' => 'Crown', 'amount_minor' => 45000, 'type' => 'procedure'],
['code' => 'den.bridge', 'label' => 'Bridge unit', 'amount_minor' => 40000, 'type' => 'procedure'],
['code' => 'den.implant_consult', 'label' => 'Implant consultation', 'amount_minor' => 10000, 'type' => 'consultation'],
['code' => 'den.perio', 'label' => 'Periodontal treatment', 'amount_minor' => 20000, 'type' => 'procedure'],
['code' => 'den.xray_pa', 'label' => 'Periapical X-ray', 'amount_minor' => 3000, 'type' => 'imaging'],
['code' => 'den.xray_bw', 'label' => 'Bitewing X-ray', 'amount_minor' => 3500, 'type' => 'imaging'],
['code' => 'den.xray_opg', 'label' => 'OPG / panoramic X-ray', 'amount_minor' => 8000, 'type' => 'imaging'],
['code' => 'den.photo', 'label' => 'Clinical photography', 'amount_minor' => 2000, 'type' => 'imaging'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'odontogram' => 'Chart',
'perio' => 'Perio',
'plan' => 'Plan',
'treat' => 'Treat',
'lab' => 'Lab',
'notes' => 'Notes',
'imaging' => 'Imaging',
'recalls' => 'Recalls',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
'stage_tabs' => [
'waiting' => 'overview',
'chair' => 'odontogram',
'procedure' => 'treat',
'recovery' => 'notes',
'completed' => 'overview',
],
],
'ophthalmology' => [
'stages' => [
['code' => 'check_in', 'label' => 'Check-in', 'queue_point' => 'waiting'],
['code' => 'history', 'label' => 'History / intake', 'queue_point' => 'waiting'],
['code' => 'refraction', 'label' => 'VA / refraction', 'queue_point' => 'chair'],
['code' => 'exam', 'label' => 'Examination', 'queue_point' => 'chair'],
['code' => 'investigation', 'label' => 'Investigations', 'queue_point' => 'chair'],
['code' => 'plan', 'label' => 'Diagnosis & plan', 'queue_point' => 'chair'],
['code' => 'treatment', 'label' => 'Procedure / treatment', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'eye.consult', 'label' => 'Eye consultation', 'amount_minor' => 6000, 'type' => 'consultation'],
['code' => 'eye.refraction', 'label' => 'Refraction / glasses exam', 'amount_minor' => 4000, 'type' => 'procedure'],
['code' => 'eye.iop', 'label' => 'IOP / pressure check', 'amount_minor' => 3000, 'type' => 'procedure'],
['code' => 'eye.fundus', 'label' => 'Fundus examination', 'amount_minor' => 5000, 'type' => 'procedure'],
['code' => 'eye.slit_lamp', 'label' => 'Slit-lamp examination', 'amount_minor' => 4500, 'type' => 'procedure'],
['code' => 'eye.oct', 'label' => 'OCT imaging', 'amount_minor' => 18000, 'type' => 'imaging'],
['code' => 'eye.visual_fields', 'label' => 'Visual fields', 'amount_minor' => 12000, 'type' => 'imaging'],
['code' => 'eye.biometry', 'label' => 'Biometry / A-scan', 'amount_minor' => 10000, 'type' => 'imaging'],
['code' => 'eye.foreign_body', 'label' => 'Foreign body removal', 'amount_minor' => 15000, 'type' => 'procedure'],
['code' => 'eye.yag', 'label' => 'YAG laser', 'amount_minor' => 25000, 'type' => 'procedure'],
['code' => 'eye.procedure', 'label' => 'Ocular procedure', 'amount_minor' => 20000, 'type' => 'procedure'],
['code' => 'eye.cataract_assess', 'label' => 'Cataract assessment', 'amount_minor' => 8000, 'type' => 'consultation'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'refraction' => 'VA / refraction',
'exam' => 'Examination',
'investigations' => 'Investigations',
'plan' => 'Diagnosis & plan',
'treat' => 'Treatment',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
'stage_tabs' => [
'check_in' => 'overview',
'history' => 'overview',
'refraction' => 'refraction',
'exam' => 'exam',
'investigation' => 'investigations',
'plan' => 'plan',
'treatment' => 'treat',
'completed' => 'overview',
],
],
'physiotherapy' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'assessment', 'label' => 'Assessment', 'queue_point' => 'chair'],
['code' => 'treatment', 'label' => 'Treatment session', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'pt.assessment', 'label' => 'Physio assessment', 'amount_minor' => 5000, 'type' => 'consultation'],
['code' => 'pt.session', 'label' => 'Treatment session', 'amount_minor' => 7000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'assessment' => 'Assessment',
'session' => 'Session notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'maternity' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'antenatal', 'label' => 'Antenatal review', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'mat.anc', 'label' => 'Antenatal visit', 'amount_minor' => 5000, 'type' => 'consultation'],
['code' => 'mat.ultrasound', 'label' => 'Obstetric ultrasound', 'amount_minor' => 12000, 'type' => 'imaging'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'antenatal' => 'Antenatal',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'radiology' => [
'stages' => [
['code' => 'request', 'label' => 'Request received', 'queue_point' => 'waiting'],
['code' => 'imaging', 'label' => 'Imaging', 'queue_point' => 'chair'],
['code' => 'reporting', 'label' => 'Reporting', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'rad.xray', 'label' => 'X-ray', 'amount_minor' => 8000, 'type' => 'imaging'],
['code' => 'rad.ultrasound', 'label' => 'Ultrasound', 'amount_minor' => 15000, 'type' => 'imaging'],
['code' => 'rad.ct', 'label' => 'CT scan', 'amount_minor' => 45000, 'type' => 'imaging'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'request' => 'Imaging request',
'report' => 'Report',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'cardiology' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'Cardiac exam', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'car.consult', 'label' => 'Cardiology consultation', 'amount_minor' => 8000, 'type' => 'consultation'],
['code' => 'car.ecg', 'label' => 'ECG', 'amount_minor' => 5000, 'type' => 'procedure'],
['code' => 'car.echo', 'label' => 'Echocardiogram', 'amount_minor' => 25000, 'type' => 'imaging'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'Cardiac exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'psychiatry' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'assessment', 'label' => 'Mental health assessment', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'psy.consult', 'label' => 'Psychiatry consultation', 'amount_minor' => 8000, 'type' => 'consultation'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'assessment' => 'Assessment',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'pediatrics' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'Pediatric exam', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'ped.consult', 'label' => 'Pediatric consultation', 'amount_minor' => 5000, 'type' => 'consultation'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'Pediatric exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'orthopedics' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'Ortho exam', 'queue_point' => 'chair'],
['code' => 'procedure', 'label' => 'Procedure / casting', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'ort.consult', 'label' => 'Orthopedic consultation', 'amount_minor' => 6000, 'type' => 'consultation'],
['code' => 'ort.cast', 'label' => 'Casting / splinting', 'amount_minor' => 10000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'Ortho exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'ent' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'ENT exam', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'ent.consult', 'label' => 'ENT consultation', 'amount_minor' => 6000, 'type' => 'consultation'],
['code' => 'ent.procedure', 'label' => 'ENT procedure', 'amount_minor' => 12000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'ENT exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'oncology' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'review', 'label' => 'Oncology review', 'queue_point' => 'chair'],
['code' => 'treatment', 'label' => 'Treatment', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'onc.consult', 'label' => 'Oncology consultation', 'amount_minor' => 10000, 'type' => 'consultation'],
['code' => 'onc.chemo', 'label' => 'Chemo day-care session', 'amount_minor' => 50000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'review' => 'Oncology review',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'renal' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'dialysis', 'label' => 'Dialysis / clinic', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'ren.consult', 'label' => 'Nephrology consultation', 'amount_minor' => 8000, 'type' => 'consultation'],
['code' => 'ren.dialysis', 'label' => 'Dialysis session', 'amount_minor' => 35000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'session' => 'Renal session',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'surgery' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'preop', 'label' => 'Pre-op assessment', 'queue_point' => 'chair'],
['code' => 'postop', 'label' => 'Post-op review', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'sur.consult', 'label' => 'Surgical consultation', 'amount_minor' => 8000, 'type' => 'consultation'],
['code' => 'sur.preop', 'label' => 'Pre-op assessment', 'amount_minor' => 5000, 'type' => 'consultation'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'preop' => 'Pre-op',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'vaccination' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'screening', 'label' => 'Screening', 'queue_point' => 'chair'],
['code' => 'vaccinate', 'label' => 'Vaccination', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'vax.admin', 'label' => 'Vaccine administration', 'amount_minor' => 3000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'screening' => 'Screening',
'administration' => 'Administration',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'pathology' => [
'stages' => [
['code' => 'request', 'label' => 'Specimen received', 'queue_point' => 'waiting'],
['code' => 'processing', 'label' => 'Processing', 'queue_point' => 'lab'],
['code' => 'reporting', 'label' => 'Reporting', 'queue_point' => 'lab'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'path.histo', 'label' => 'Histopathology', 'amount_minor' => 20000, 'type' => 'lab'],
['code' => 'path.cyto', 'label' => 'Cytology', 'amount_minor' => 15000, 'type' => 'lab'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'request' => 'Specimen request',
'report' => 'Report',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'infusion' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'infusion', 'label' => 'Infusion', 'queue_point' => 'chair'],
['code' => 'observation', 'label' => 'Observation', 'queue_point' => 'obs'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'inf.session', 'label' => 'Infusion session', 'amount_minor' => 15000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'session' => 'Infusion session',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'dermatology' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'Skin exam', 'queue_point' => 'chair'],
['code' => 'procedure', 'label' => 'Procedure', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'der.consult', 'label' => 'Dermatology consultation', 'amount_minor' => 6000, 'type' => 'consultation'],
['code' => 'der.procedure', 'label' => 'Skin procedure', 'amount_minor' => 12000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'Skin exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'podiatry' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'exam', 'label' => 'Foot exam', 'queue_point' => 'chair'],
['code' => 'treatment', 'label' => 'Treatment', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'pod.consult', 'label' => 'Podiatry consultation', 'amount_minor' => 5000, 'type' => 'consultation'],
['code' => 'pod.treatment', 'label' => 'Foot treatment', 'amount_minor' => 8000, 'type' => 'procedure'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'exam' => 'Foot exam',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'fertility' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'consult', 'label' => 'Fertility consult', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'fer.consult', 'label' => 'Fertility consultation', 'amount_minor' => 10000, 'type' => 'consultation'],
['code' => 'fer.scan', 'label' => 'Pelvic / follicular scan', 'amount_minor' => 15000, 'type' => 'imaging'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'consult' => 'Fertility consult',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
'child_welfare' => [
'stages' => [
['code' => 'waiting', 'label' => 'Waiting', 'queue_point' => 'waiting'],
['code' => 'growth', 'label' => 'Growth / wellness', 'queue_point' => 'chair'],
['code' => 'completed', 'label' => 'Completed', 'queue_point' => null],
],
'services' => [
['code' => 'cwc.visit', 'label' => 'Well-child visit', 'amount_minor' => 3000, 'type' => 'consultation'],
],
'workspace_tabs' => [
'overview' => 'Overview',
'growth' => 'Growth monitoring',
'clinical_notes' => 'Clinical notes',
'orders' => 'Orders',
'billing' => 'Billing',
'documents' => 'Documents',
],
],
],
];