Deploy Ladill Care / deploy (push) Successful in 1m0s
Phase 3 staff management: real shift entities, week roster linked to temporary assignments, and a nursing ops module surface (registry, today’s allocation, unit shortcuts). Co-authored-by: Cursor <cursoragent@cursor.com>
632 lines
21 KiB
PHP
632 lines
21 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
'roles' => [
|
|
'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',
|
|
],
|
|
|
|
/*
|
|
| Lightweight shift codes until full roster entities (Phase 3).
|
|
*/
|
|
'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' => [
|
|
'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',
|
|
],
|
|
|
|
/** 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',
|
|
],
|
|
],
|
|
|
|
];
|