Deploy Ladill Care / deploy (push) Successful in 1m2s
Pro dashboards now pitch Enterprise instead of the Free unlock copy, and plan context is shared with the banner so Pro tenants no longer see Free messaging. Co-authored-by: Cursor <cursoragent@cursor.com>
338 lines
12 KiB
PHP
338 lines
12 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
'roles' => [
|
|
'super_admin' => 'Super Administrator',
|
|
'hospital_admin' => 'Hospital Administrator',
|
|
'receptionist' => 'Receptionist',
|
|
'doctor' => 'Doctor',
|
|
'nurse' => 'Nurse',
|
|
'lab_technician' => 'Laboratory Technician',
|
|
'pharmacist' => 'Pharmacist',
|
|
'cashier' => 'Cashier',
|
|
'accountant' => 'Accountant',
|
|
],
|
|
|
|
'department_types' => [
|
|
'general' => 'General',
|
|
'outpatient' => 'Outpatient',
|
|
'emergency' => 'Emergency',
|
|
'laboratory' => 'Laboratory',
|
|
'radiology' => 'Radiology',
|
|
'pharmacy' => 'Pharmacy',
|
|
'maternity' => 'Maternity',
|
|
'dental' => 'Dental',
|
|
'physiotherapy' => 'Physiotherapy',
|
|
],
|
|
|
|
'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.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',
|
|
'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',
|
|
],
|
|
|
|
'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',
|
|
'other' => 'Other',
|
|
],
|
|
|
|
'patient_number' => [
|
|
'prefix' => env('CARE_PATIENT_NUMBER_PREFIX', 'LC'),
|
|
],
|
|
|
|
'invoice_number' => [
|
|
'prefix' => env('CARE_INVOICE_PREFIX', 'INV'),
|
|
],
|
|
|
|
'billing' => [
|
|
'consultation_fee_minor' => (int) env('CARE_CONSULTATION_FEE_MINOR', 5000),
|
|
'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',
|
|
],
|
|
],
|
|
'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',
|
|
// KD-18: org-level multi-patient assessment/outcome analytics
|
|
'assessment_analytics',
|
|
],
|
|
],
|
|
],
|
|
|
|
'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),
|
|
],
|
|
|
|
'queue' => [
|
|
'api_url' => env('QUEUE_API_URL', 'https://queue.ladill.com/api/v1'),
|
|
'api_key' => env('QUEUE_API_KEY_CARE'),
|
|
],
|
|
|
|
'upgrade_banner' => [
|
|
'free' => [
|
|
'title' => 'Unlock Care Pro or Enterprise',
|
|
'description' => 'Pro from GHS 2490/branch/mo — lab, pharmacy, billing, and Queue. 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',
|
|
],
|
|
],
|
|
|
|
];
|