[ 'super_admin' => 'Super Administrator', 'hospital_admin' => 'Hospital Administrator', 'department_manager' => 'Department Manager', 'emergency_physician' => 'Emergency Physician', 'ed_nurse' => 'ED Nurse', 'general_physician' => 'General Physician', 'doctor' => 'Doctor (legacy)', 'surgeon' => 'Surgeon', 'theatre_nurse' => 'Theatre Nurse', 'radiologist' => 'Radiologist', 'radiographer' => 'Radiographer', 'lab_technician' => 'Laboratory Technician', 'lab_manager' => 'Laboratory Manager', 'pathologist' => 'Pathologist', 'blood_bank_officer' => 'Blood Bank Officer', 'blood_bank_manager' => 'Blood Bank Manager', 'pharmacist' => 'Pharmacist', 'dentist' => 'Dentist', 'psychiatrist' => 'Psychiatrist', 'physiotherapist' => 'Physiotherapist', 'midwife' => 'Midwife', 'obstetrician' => 'Obstetrician', 'gynecologist' => 'Gynecologist', 'obgyn' => 'OB/GYN Consultant', 'labour_ward_nurse' => 'Labour Ward Nurse', 'pediatrician' => 'Pediatrician', 'oncologist' => 'Oncologist', 'cardiologist' => 'Cardiologist', 'ent_specialist' => 'ENT Specialist', 'dermatologist' => 'Dermatologist', 'ophthalmologist' => 'Ophthalmologist', 'orthopedist' => 'Orthopedist', 'podiatrist' => 'Podiatrist', 'fertility_specialist' => 'Fertility Specialist', 'embryologist' => 'Embryologist', 'fertility_nurse' => 'Fertility Nurse', 'dialysis_nurse' => 'Dialysis Nurse', 'ambulance_staff' => 'Ambulance Staff', 'nurse' => 'Nurse (legacy)', 'receptionist' => 'Receptionist', 'billing_officer' => 'Billing Officer', 'cashier' => 'Cashier', 'accountant' => 'Accountant', ], 'department_types' => [ 'general' => 'General', 'outpatient' => 'Outpatient', 'emergency' => 'Emergency', 'laboratory' => 'Laboratory', 'radiology' => 'Radiology', 'pharmacy' => 'Pharmacy', 'womens_health' => "Women's Health (OB/GYN)", 'maternity' => 'Maternity (legacy)', 'dental' => 'Dental', 'ophthalmology' => 'Ophthalmology / Eye care', 'physiotherapy' => 'Physiotherapy', 'blood_bank' => 'Blood Bank', 'cardiology' => 'Cardiology', 'psychiatry' => 'Psychiatry', 'pediatrics' => 'Pediatrics', 'orthopedics' => 'Orthopedics', 'ent' => 'ENT', 'oncology' => 'Oncology', 'renal' => 'Renal Care', 'surgery' => 'Surgery', 'vaccination' => 'Vaccination & Immunization', 'pathology' => 'Pathology', 'infusion' => 'Infusion Centre', 'dermatology' => 'Dermatology', 'podiatry' => 'Podiatry', 'fertility' => 'Fertility & Reproductive Medicine', 'child_welfare' => 'Child Welfare Clinic', 'ambulance' => 'Ambulance', 'nursing' => 'Nursing Services', ], /* | Care units live under departments. Kind drives beds (inpatient only) | and float-pool assignment behaviour. */ 'care_unit_kinds' => [ 'inpatient' => 'Inpatient unit', 'outpatient' => 'Outpatient / clinic', 'service' => 'Service unit', 'float_pool' => 'Float pool', ], 'bed_statuses' => [ 'available' => 'Available', 'occupied' => 'Occupied', 'reserved' => 'Reserved', 'maintenance' => 'Maintenance', 'closed' => 'Closed', ], /* | Employment assignment kind — not permanent nurse→ward ownership. | primary = home unit; temporary = float/coverage day(s); specialty = specialty-wide. */ 'staff_assignment_kinds' => [ 'primary' => 'Primary assignment', 'temporary' => 'Temporary assignment', 'specialty' => 'Specialty assignment', ], 'staff_assignment_statuses' => [ 'active' => 'Active', 'scheduled' => 'Scheduled', 'ended' => 'Ended', ], /* | Post / grade on an assignment (distinct from Member.role RBAC). */ 'staff_assignment_roles' => [ 'staff_nurse' => 'Staff Nurse', 'senior_staff_nurse' => 'Senior Staff Nurse', 'clinic_nurse' => 'Clinic Nurse', 'midwife' => 'Midwife', 'ward_manager' => 'Ward Manager', 'matron' => 'Matron', 'theatre_nurse' => 'Theatre Nurse', 'specialist_nurse' => 'Specialist Nurse', 'float_nurse' => 'Float Nurse', 'consultant' => 'Consultant', 'resident' => 'Resident Doctor', 'other' => 'Other', ], /* | Shift labels for nursing notes / handovers (not unit placement). | Duty scheduling uses care_shifts + roster entries. */ 'staff_shift_codes' => [ 'day' => 'Day shift', 'evening' => 'Evening shift', 'night' => 'Night shift', 'rotating' => 'Rotating', ], 'roster_entry_statuses' => [ 'scheduled' => 'Scheduled', 'confirmed' => 'Confirmed', 'completed' => 'Completed', 'cancelled' => 'Cancelled', ], 'mar_frequency_codes' => [ 'od' => 'Once daily (OD)', 'bd' => 'Twice daily (BD)', 'tds' => 'Three times daily (TDS)', 'qds' => 'Four times daily (QDS)', 'q4h' => 'Every 4 hours', 'q6h' => 'Every 6 hours', 'q8h' => 'Every 8 hours', 'prn' => 'As needed (PRN)', 'stat' => 'Immediate (STAT)', 'custom' => 'Custom times', ], 'mar_administration_statuses' => [ 'given' => 'Given', 'held' => 'Held', 'refused' => 'Refused', 'missed' => 'Missed', ], 'mar_slot_states' => [ 'due' => 'Due', 'overdue' => 'Overdue', 'given' => 'Given', 'held' => 'Held', 'refused' => 'Refused', 'missed' => 'Missed', 'prn_due' => 'PRN available', 'prn_given' => 'PRN given today', ], 'nursing_note_types' => [ 'progress' => 'Progress note', 'assessment' => 'Nursing assessment', 'intervention' => 'Intervention', 'observation' => 'Observation', 'other' => 'Other', ], 'ward_handover_statuses' => [ 'draft' => 'Draft', 'completed' => 'Completed', ], /* | Practitioner specialty options (Admin → Practitioners / Team invite). | Stored as free-text labels on care_practitioners.specialty. */ 'practitioner_specialties' => [ 'General Practice', 'Internal Medicine', 'Nursing', 'Outpatient', 'Emergency', 'Laboratory', 'Radiology', 'Pharmacy', "Women's Health (OB/GYN)", 'Maternity / Labour & Delivery', 'Dentistry', 'Ophthalmology / Eye care', 'Physiotherapy', 'Blood Bank', 'Cardiology', 'Psychiatry', 'Pediatrics', 'Orthopedics', 'ENT', 'Oncology', 'Renal Care', 'Surgery', 'Vaccination & Immunization', 'Pathology', 'Infusion Centre', 'Dermatology', 'Podiatry', 'Fertility', 'Child Welfare Clinic', 'Ambulance', 'EMS / Paramedic', ], /* | Specialty practice modules (Settings → Modules). | Pro-gated via plans.*.features specialty_modules — expansions beyond core | outpatient/lab/pharmacy belong on paid plans, matching queue_integration. | See config/care_specialty_modules.php (default_on_paid_plans for Emergency / Blood Bank). */ 'specialty_modules' => require __DIR__.'/care_specialty_modules.php', /* | SVG path markup for specialty module icons (Heroicons-style outline). | Referenced by care.specialty_modules.*.icon identifiers. */ 'specialty_icons' => require __DIR__.'/care_specialty_icons.php', 'audit_actions' => [ 'organization.created' => 'Organization created', 'organization.updated' => 'Organization updated', 'branch.created' => 'Branch created', 'branch.updated' => 'Branch updated', 'department.created' => 'Department created', 'department.updated' => 'Department updated', 'department.deleted' => 'Department deleted', 'practitioner.created' => 'Practitioner added', 'practitioner.updated' => 'Practitioner updated', 'practitioner.deleted' => 'Practitioner removed', 'member.created' => 'Member added', 'member.updated' => 'Member updated', 'member.deleted' => 'Member removed', 'member.invited' => 'Member invited', 'patient.created' => 'Patient registered', 'patient.updated' => 'Patient record updated', 'patient.deleted' => 'Patient record archived', 'appointment.created' => 'Appointment booked', 'appointment.walk_in' => 'Walk-in registered', 'appointment.checked_in' => 'Patient checked in', 'appointment.waiting' => 'Patient added to queue', 'appointment.in_consultation' => 'Consultation started', 'appointment.completed' => 'Appointment completed', 'appointment.cancelled' => 'Appointment cancelled', 'appointment.no_show' => 'Patient marked no-show', 'appointment.meet_scheduled' => 'Video visit scheduled', 'appointment.meet_cancelled' => 'Video visit cancelled', 'visit.checked_in' => 'Visit opened', 'visit.workflow_advanced' => 'Visit workflow advanced', 'visit.completed' => 'Visit completed', 'consultation.started' => 'Consultation started', 'consultation.updated' => 'Consultation updated', 'consultation.completed' => 'Consultation completed', 'investigation.requested' => 'Investigation requested', 'investigation.sample_collected' => 'Sample collected', 'investigation.in_progress' => 'Investigation in progress', 'investigation.results_entered' => 'Investigation results entered', 'investigation.approved' => 'Investigation results approved', 'investigation.delivered' => 'Investigation results delivered', 'investigation.cancelled' => 'Investigation cancelled', 'investigation_type.created' => 'Investigation type created', 'investigation_type.updated' => 'Investigation type updated', 'prescription.created' => 'Prescription created', 'prescription.updated' => 'Prescription updated', 'prescription.activated' => 'Prescription activated', 'prescription.dispensed' => 'Prescription dispensed', 'prescription.cancelled' => 'Prescription cancelled', 'bill.created' => 'Bill created', 'bill.updated' => 'Bill updated', 'bill.line_item_added' => 'Bill line item added', 'bill.voided' => 'Bill voided', 'payment.recorded' => 'Payment recorded', 'financial_obligation.cleared' => 'Financial obligation cleared', 'payment.checkout_started' => 'Online payment checkout started', 'integrations.gateway_connected' => 'Payment gateway connected', 'integrations.gateway_disconnected' => 'Payment gateway disconnected', 'drug.created' => 'Drug added', 'drug.updated' => 'Drug updated', 'drug.batch_received' => 'Drug stock received', 'assessment.started' => 'Assessment started', 'assessment.updated' => 'Assessment updated', 'assessment.completed' => 'Assessment completed', 'assessment.cancelled' => 'Assessment cancelled', 'pathway.activated' => 'Clinical pathway activated', 'pathway.deactivated' => 'Clinical pathway deactivated', 'device.created' => 'Device registered', 'device.updated' => 'Device updated', 'device.deleted' => 'Device removed', 'device.token_issued' => 'Device token issued', 'device.token_revoked' => 'Device token revoked', ], 'assessment_statuses' => [ 'draft' => 'Draft', 'completed' => 'Completed', 'cancelled' => 'Cancelled', ], 'assessment_template_categories' => [ 'universal' => 'Universal intake', 'disease' => 'Disease-specific', 'outcome' => 'Outcome measures', 'screening' => 'Screening', ], 'assessment_answer_types' => [ 'text' => 'Text', 'textarea' => 'Long text', 'number' => 'Number', 'integer' => 'Integer', 'boolean' => 'Yes / No', 'date' => 'Date', 'datetime' => 'Date & time', 'single_choice' => 'Single choice', 'multi_choice' => 'Multiple choice', 'scale' => 'Scale', 'score_item' => 'Score item', 'calculated' => 'Calculated', ], 'patient_pathway_statuses' => [ 'active' => 'Active', 'resolved' => 'Resolved', 'inactive' => 'Inactive', ], 'appointment_statuses' => [ 'scheduled' => 'Scheduled', 'checked_in' => 'Checked in', 'waiting' => 'Waiting', 'in_consultation' => 'In consultation', 'completed' => 'Completed', 'cancelled' => 'Cancelled', 'no_show' => 'No show', ], 'visit_statuses' => [ 'open' => 'Open', 'in_progress' => 'In progress', 'completed' => 'Completed', ], 'consultation_statuses' => [ 'draft' => 'Draft', 'completed' => 'Completed', ], 'investigation_categories' => [ 'blood' => 'Blood', 'urine' => 'Urine', 'stool' => 'Stool', 'xray' => 'X-Ray', 'ultrasound' => 'Ultrasound', 'ct' => 'CT Scan', 'mri' => 'MRI', 'ecg' => 'ECG', 'custom' => 'Custom', ], 'investigation_statuses' => [ 'pending' => 'Pending', 'sample_collected' => 'Sample collected', 'in_progress' => 'In progress', 'awaiting_review' => 'Awaiting review', 'completed' => 'Completed', 'delivered' => 'Delivered', 'cancelled' => 'Cancelled', ], 'prescription_statuses' => [ 'draft' => 'Draft', 'active' => 'Active', 'dispensed' => 'Dispensed', 'cancelled' => 'Cancelled', ], 'medication_routes' => [ 'oral' => 'Oral', 'topical' => 'Topical', 'injection' => 'Injection', 'inhalation' => 'Inhalation', 'sublingual' => 'Sublingual', 'rectal' => 'Rectal', 'other' => 'Other', ], 'genders' => [ 'male' => 'Male', 'female' => 'Female', 'other' => 'Other', ], 'allergy_severities' => [ 'mild' => 'Mild', 'moderate' => 'Moderate', 'severe' => 'Severe', 'unknown' => 'Unknown', ], 'document_types' => [ 'id_card' => 'ID card', 'insurance_card' => 'Insurance card', 'lab_report' => 'Lab report', 'referral' => 'Referral letter', 'specialty_emergency' => 'Emergency document', 'specialty_blood_bank' => 'Blood bank document', 'specialty_dentistry' => 'Dental document', 'specialty_ophthalmology' => 'Eye care document', 'specialty_physiotherapy' => 'Physiotherapy document', 'specialty_maternity' => "Women's Health document", 'specialty_womens_health' => "Women's Health document", 'other' => 'Other', ], 'patient_number' => [ 'prefix' => env('CARE_PATIENT_NUMBER_PREFIX', 'LC'), ], 'invoice_number' => [ 'prefix' => env('CARE_INVOICE_PREFIX', 'INV'), ], 'billing' => [ 'patient_card_fee_minor' => (int) env('CARE_PATIENT_CARD_FEE_MINOR', 2000), 'consultation_fee_minor' => (int) env('CARE_CONSULTATION_FEE_MINOR', 5000), 'follow_up_fee_minor' => (int) env('CARE_FOLLOW_UP_FEE_MINOR', 3000), 'vitals_fee_minor' => (int) env('CARE_VITALS_FEE_MINOR', 1000), 'minor_procedure_fee_minor' => (int) env('CARE_MINOR_PROCEDURE_FEE_MINOR', 5000), 'home_visit_fee_minor' => (int) env('CARE_HOME_VISIT_FEE_MINOR', 15000), 'currency' => env('CARE_CURRENCY', 'GHS'), ], 'bill_statuses' => [ 'draft' => 'Draft', 'open' => 'Open', 'partial' => 'Partially paid', 'paid' => 'Paid', 'void' => 'Void', ], 'bill_line_types' => [ 'consultation' => 'Consultation', 'lab' => 'Laboratory', 'imaging' => 'Imaging', 'procedure' => 'Procedure', 'pharmacy' => 'Pharmacy', 'nursing' => 'Nursing', 'misc' => 'Miscellaneous', ], 'payment_methods' => [ 'cash' => 'Cash', 'momo' => 'Mobile Money', 'card' => 'Card', 'gateway' => 'Online (gateway)', 'other' => 'Other', ], 'payment_gateways' => [ 'paystack' => 'Paystack', 'flutterwave' => 'Flutterwave', 'hubtel' => 'Hubtel', ], 'report_types' => [ 'patients' => 'Patients', 'appointments' => 'Appointments', 'laboratory' => 'Laboratory', 'finance' => 'Finance', 'clinical' => 'Clinical trends', // KD-18: org-level multi-patient assessment analytics (Enterprise assessment_analytics) 'assessments' => 'Assessment analytics', ], 'plans' => [ 'free' => [ 'label' => 'Free', 'price_minor' => 0, 'max_branches' => 1, // Free: core patient records, appointments & consults, basic workflows only. // One branch is created during onboarding; multi-branch management is Pro. 'features' => [], ], 'pro' => [ 'label' => 'Pro', // Billed per active branch / month (unlimited branches). 'price_minor_per_branch' => (int) env('CARE_PRO_PRICE_PER_BRANCH_MINOR', env('CARE_PRO_PRICE_MINOR', 249000)), 'max_branches' => null, 'features' => [ 'branches', 'lab', 'pharmacy', 'billing', 'queue_integration', 'clinical_devices', 'specialty_modules', ], ], 'enterprise' => [ 'label' => 'Enterprise', // Billed per active branch / month (unlimited branches). // Differentiator: multi-dept custom workflows, priority support, analytics, AI. 'price_minor_per_branch' => (int) env('CARE_ENTERPRISE_PRICE_PER_BRANCH_MINOR', env('CARE_ENTERPRISE_PRICE_MINOR', 499000)), 'max_branches' => null, 'features' => [ 'branches', 'lab', 'pharmacy', 'billing', 'queue_integration', 'clinical_devices', 'specialty_modules', // KD-18: org-level multi-patient assessment/outcome analytics 'assessment_analytics', ], ], ], 'device_types' => [ 'kiosk' => 'Queue kiosk', 'display' => 'Queue display', 'barcode_scanner' => 'Barcode scanner', 'qr_scanner' => 'QR scanner', 'badge_printer' => 'Badge / label printer', 'thermometer' => 'Thermometer', 'bp_monitor' => 'Blood pressure monitor', 'pulse_ox' => 'Pulse oximeter', 'weight_scale' => 'Weight scale', 'lab_analyzer' => 'Lab analyzer', 'agent' => 'Generic device agent', 'other' => 'Other', ], /** Queue walk-up devices (not clinical agents). */ 'queue_device_types' => [ 'kiosk', 'display', ], /** Types that need a local Care Device Agent (Pro+). Wedge scanners stay free. */ 'device_agent_types' => [ 'thermometer', 'bp_monitor', 'pulse_ox', 'weight_scale', 'lab_analyzer', 'agent', ], 'device_connection_modes' => [ 'browser_wedge' => 'Browser keyboard wedge', 'agent' => 'Local device agent', 'web_bluetooth' => 'Web Bluetooth (experimental)', 'manual' => 'Manual / inventory only', ], 'device_statuses' => [ 'active' => 'Active', 'offline' => 'Offline', 'disabled' => 'Disabled', ], 'vital_sources' => [ 'manual' => 'Manual entry', 'device' => 'Device', 'import' => 'Import', ], 'enterprise' => [ // Feature tier (not branch-gated); kept for config compatibility. 'min_branches' => (int) env('CARE_ENTERPRISE_MIN_BRANCHES', 1), ], 'prepaid_months' => [6, 12, 24], 'pro' => [ 'grace_days' => (int) env('CARE_PRO_GRACE_DAYS', 3), 'period_days' => (int) env('CARE_PRO_PERIOD_DAYS', 30), ], 'display_layouts' => [ 'standard' => 'Standard', 'compact' => 'Compact', ], 'announcement_templates' => [ 'en' => 'Ticket :ticket, please proceed to :destination.', 'fr' => 'Ticket :ticket, veuillez vous rendre au :destination.', 'tw' => 'Ticket :ticket, mesrɛ kɔ :destination.', 'with_staff' => ':ticket, :staff, :destination.', ], 'display_poll_ms' => (int) env('CARE_DISPLAY_POLL_MS', 1200), 'upgrade_banner' => [ 'free' => [ 'title' => 'Unlock Care Pro or Enterprise', 'description' => 'Pro from GHS 2490/branch/mo — lab, pharmacy, billing, and in-app service queues. Enterprise adds custom multi-dept workflows, analytics, priority support, and AI-assisted healthcare integration.', 'route' => 'care.pro.index', 'cta' => 'View plans', ], 'pro' => [ 'title' => 'Upgrade to Care Enterprise', 'description' => 'Enterprise from GHS 4990/branch/mo — custom multi-dept workflows, assessment analytics, priority support, and AI-assisted healthcare integration on top of your Pro modules.', 'route' => 'care.pro.index', 'cta' => 'View Enterprise', ], ], ];