<?php

/**
 * Specialty clinical form schemas (workspace tab → record type → fields).
 * Consumed by SpecialtyClinicalRecordService.
 *
 * @return array{
 *     record_types: array<string, array<string, string>>,
 *     fields: array<string, array<string, list<array<string, mixed>>>>
 * }
 */
return [
    'record_types' => [
        'emergency' => [
            'triage' => 'triage',
            'clinical_notes' => 'clinical_note',
            'observation' => 'observation',
            'disposition' => 'disposition',
        ],
        'blood_bank' => [
            'requests' => 'blood_request',
            'inventory' => 'inventory_note',
            'issue' => 'issue_note',
            'transfusion' => 'transfusion_note',
        ],
        'dentistry' => [
        ],
        'ophthalmology' => [
            'refraction' => 'refraction',
            'exam' => 'eye_exam',
            'investigations' => 'eye_investigation',
            'plan' => 'eye_plan',
            'treat' => 'eye_procedure',
        ],
        'physiotherapy' => [
            'assessment' => 'pt_assessment',
            'plan' => 'pt_plan',
            'session' => 'pt_session',
            'exercises' => 'pt_home_program',
        ],
        'womens_health' => [
            'history' => 'anc_history',
            'exam' => 'obstetric_exam',
            'fetal' => 'fetal_notes',
            'investigations' => 'mat_investigation',
            'plan' => 'mat_plan',
            'postnatal' => 'postnatal_note',
        ],
        'radiology' => [
            'protocol' => 'imaging_request',
            'acquisition' => 'imaging_acquisition',
            'findings' => 'imaging_report',
            'verification' => 'imaging_verification',
        ],
        'cardiology' => [
            'history' => 'cardio_history',
            'exam' => 'cardiac_exam',
            'investigations' => 'cardio_investigation',
            'plan' => 'cardio_plan',
            'procedures' => 'cardio_procedure',
        ],
        'psychiatry' => [
            'history' => 'mental_status',
            'risk' => 'risk_assessment',
            'plan' => 'psych_plan',
            'followup' => 'psych_followup',
        ],
        'pediatrics' => [
            'history' => 'ped_history',
            'growth' => 'pediatric_exam',
            'investigations' => 'ped_investigation',
            'plan' => 'ped_plan',
            'treatment' => 'ped_treatment',
        ],
        'orthopedics' => [
            'history' => 'ortho_history',
            'exam' => 'ortho_exam',
            'imaging' => 'ortho_imaging',
            'plan' => 'ortho_plan',
            'procedure' => 'ortho_procedure',
        ],
        'ent' => [
            'history' => 'ent_history',
            'exam' => 'ent_exam',
            'investigations' => 'ent_investigation',
            'plan' => 'ent_plan',
            'procedure' => 'ent_procedure',
        ],
        'oncology' => [
            'history' => 'onc_history',
            'staging' => 'onc_staging',
            'investigations' => 'onc_investigation',
            'plan' => 'onc_plan',
            'treatment' => 'onc_treatment',
        ],
        'renal' => [
            'history' => 'renal_history',
            'exam' => 'renal_exam',
            'dialysis' => 'renal_session',
            'plan' => 'renal_plan',
        ],
        'surgery' => [
            'history' => 'surg_history',
            'exam' => 'surg_exam',
            'investigations' => 'surg_investigation',
            'plan' => 'surg_plan',
            'procedure' => 'surg_procedure',
            'postop' => 'surg_postop',
        ],
        'vaccination' => [
            'eligibility' => 'vax_eligibility',
            'consent' => 'vax_consent',
            'administer' => 'vax_admin',
            'observation' => 'vax_observation',
        ],
        'pathology' => [
            'request' => 'path_request',
            'specimen' => 'path_specimen',
            'processing' => 'path_processing',
            'report' => 'path_report',
            'verification' => 'path_verification',
        ],
        'infusion' => [
            'assessment' => 'infusion_assessment',
            'protocol' => 'infusion_protocol',
            'session' => 'infusion_session',
            'monitoring' => 'infusion_monitoring',
        ],
        'dermatology' => [
            'history' => 'derm_history',
            'exam' => 'skin_exam',
            'investigations' => 'derm_investigation',
            'plan' => 'derm_plan',
            'procedure' => 'derm_procedure',
        ],
        'podiatry' => [
            'history' => 'pod_history',
            'exam' => 'foot_exam',
            'investigations' => 'pod_investigation',
            'plan' => 'pod_plan',
            'procedure' => 'pod_procedure',
        ],
        'fertility' => [
            'history' => 'fert_history',
            'exam' => 'fert_exam',
            'investigations' => 'fert_investigation',
            'plan' => 'fert_plan',
            'cycle' => 'fert_cycle',
        ],
        'child_welfare' => [
            'intake' => 'cwc_intake',
            'assessment' => 'cwc_assessment',
            'plan' => 'cwc_plan',
            'followup' => 'cwc_followup',
        ],
        'ambulance' => [
            'dispatch' => 'amb_dispatch',
            'scene' => 'amb_scene',
            'en_route' => 'amb_en_route',
            'handover' => 'amb_handover',
        ],
    ],
    'fields' => [
        'emergency' => [
            'triage' => [
                ['name' => 'acuity', 'label' => 'Triage acuity', 'type' => 'select', 'required' => true, 'options' => ['1 - Resuscitation', '2 - Emergency', '3 - Urgent', '4 - Semi-urgent', '5 - Non-urgent']],
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'onset', 'label' => 'Onset', 'type' => 'text'],
                ['name' => 'airway_ok', 'label' => 'Airway patent', 'type' => 'boolean'],
                ['name' => 'breathing_ok', 'label' => 'Breathing adequate', 'type' => 'boolean'],
                ['name' => 'circulation_ok', 'label' => 'Circulation stable', 'type' => 'boolean'],
                ['name' => 'gcs', 'label' => 'GCS', 'type' => 'number'],
                ['name' => 'pain_score', 'label' => 'Pain score (0–10)', 'type' => 'number'],
                ['name' => 'mode_of_arrival', 'label' => 'Mode of arrival', 'type' => 'select', 'options' => ['Walk-in', 'Ambulance', 'Police', 'Referral', 'Other']],
                ['name' => 'disposition_intent', 'label' => 'Disposition intent', 'type' => 'select', 'options' => ['Resus', 'Treatment bay', 'Observation', 'Discharge', 'Admit', 'Transfer']],
                ['name' => 'notes', 'label' => 'Triage notes', 'type' => 'textarea', 'rows' => 3],
            ],
            'clinical_note' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'examination', 'label' => 'Examination', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'working_diagnosis', 'label' => 'Working diagnosis', 'type' => 'text'],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'procedures', 'label' => 'Procedures performed', 'type' => 'textarea', 'rows' => 2],
            ],
            'observation' => [
                ['name' => 'bed_label', 'label' => 'Bed / bay label', 'type' => 'text'],
                ['name' => 'started_at', 'label' => 'Observation started', 'type' => 'text'],
                ['name' => 'hours', 'label' => 'Hours observed', 'type' => 'number'],
                ['name' => 'monitoring_plan', 'label' => 'Monitoring plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'progress', 'label' => 'Progress notes', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'ready_for_disposition', 'label' => 'Ready for disposition', 'type' => 'boolean'],
            ],
            'disposition' => [
                ['name' => 'disposition', 'label' => 'Final disposition', 'type' => 'select', 'required' => true, 'options' => ['Discharge home', 'Admit to ward', 'Admit to ICU', 'Transfer to facility', 'Left against advice', 'Died', 'Absconded']],
                ['name' => 'condition', 'label' => 'Condition at disposition', 'type' => 'select', 'options' => ['Stable', 'Improving', 'Unstable', 'Critical', 'Deceased']],
                ['name' => 'destination', 'label' => 'Destination (ward / facility)', 'type' => 'text'],
                ['name' => 'diagnosis', 'label' => 'Discharge / transfer diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'advice', 'label' => 'Advice / follow-up', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications on discharge', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'time', 'label' => 'Disposition time', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'blood_bank' => [
            'blood_request' => [
                ['name' => 'product', 'label' => 'Product', 'type' => 'select', 'required' => true, 'options' => ['Whole blood', 'Packed RBC', 'Platelets', 'FFP', 'Cryoprecipitate']],
                ['name' => 'units', 'label' => 'Units requested', 'type' => 'number', 'required' => true],
                ['name' => 'urgency', 'label' => 'Urgency', 'type' => 'select', 'required' => true, 'options' => ['Routine', 'Urgent', 'Emergency / massive']],
                ['name' => 'patient_blood_group', 'label' => 'Patient blood group', 'type' => 'select', 'options' => ['A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-', 'Unknown']],
                ['name' => 'indication', 'label' => 'Clinical indication', 'type' => 'textarea', 'required' => true, 'rows' => 2],
                ['name' => 'crossmatch_status', 'label' => 'Cross-match status', 'type' => 'select', 'options' => ['Not started', 'In progress', 'Compatible', 'Incompatible', 'Issued']],
                ['name' => 'issued_units', 'label' => 'Units issued', 'type' => 'number'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'inventory_note' => [
                ['name' => 'whole_blood_units', 'label' => 'Whole blood on hand', 'type' => 'number'],
                ['name' => 'packed_rbc_units', 'label' => 'Packed RBC on hand', 'type' => 'number'],
                ['name' => 'platelet_units', 'label' => 'Platelets on hand', 'type' => 'number'],
                ['name' => 'ffp_units', 'label' => 'FFP on hand', 'type' => 'number'],
                ['name' => 'cryo_units', 'label' => 'Cryoprecipitate on hand', 'type' => 'number'],
                ['name' => 'low_stock_alert', 'label' => 'Flag low stock', 'type' => 'boolean'],
                ['name' => 'notes', 'label' => 'Inventory notes', 'type' => 'textarea', 'rows' => 3],
            ],
            'issue_note' => [
                ['name' => 'product', 'label' => 'Product', 'type' => 'select', 'required' => true, 'options' => ['Whole blood', 'Packed RBC', 'Platelets', 'FFP', 'Cryoprecipitate']],
                ['name' => 'units_issued', 'label' => 'Units issued', 'type' => 'number', 'required' => true],
                ['name' => 'bag_numbers', 'label' => 'Bag / unit numbers', 'type' => 'text'],
                ['name' => 'issued_to', 'label' => 'Issued to (ward / clinician)', 'type' => 'text'],
                ['name' => 'issued_at', 'label' => 'Issued at', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'transfusion_note' => [
                ['name' => 'started_at', 'label' => 'Started at', 'type' => 'text'],
                ['name' => 'units_transfused', 'label' => 'Units transfused', 'type' => 'number'],
                ['name' => 'vitals_ok', 'label' => 'Vitals acceptable', 'type' => 'boolean'],
                ['name' => 'reaction', 'label' => 'Reaction', 'type' => 'select', 'options' => ['None', 'Mild (fever / itch)', 'Moderate', 'Severe / stop transfusion']],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed uneventfully', 'Stopped — reaction', 'Stopped — other']],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 3],
            ],
        ],
        'dentistry' => [
        ],
        'ophthalmology' => [
            'refraction' => [
                ['name' => 'va_od', 'label' => 'Visual acuity OD', 'type' => 'text', 'required' => true],
                ['name' => 'va_os', 'label' => 'Visual acuity OS', 'type' => 'text', 'required' => true],
                ['name' => 'va_od_near', 'label' => 'Near VA OD', 'type' => 'text'],
                ['name' => 'va_os_near', 'label' => 'Near VA OS', 'type' => 'text'],
                ['name' => 'pinhole_od', 'label' => 'Pinhole OD', 'type' => 'text'],
                ['name' => 'pinhole_os', 'label' => 'Pinhole OS', 'type' => 'text'],
                ['name' => 'sphere_od', 'label' => 'Sphere OD', 'type' => 'text'],
                ['name' => 'cylinder_od', 'label' => 'Cylinder OD', 'type' => 'text'],
                ['name' => 'axis_od', 'label' => 'Axis OD', 'type' => 'text'],
                ['name' => 'sphere_os', 'label' => 'Sphere OS', 'type' => 'text'],
                ['name' => 'cylinder_os', 'label' => 'Cylinder OS', 'type' => 'text'],
                ['name' => 'axis_os', 'label' => 'Axis OS', 'type' => 'text'],
                ['name' => 'add', 'label' => 'Near add', 'type' => 'text'],
                ['name' => 'pd', 'label' => 'Pupillary distance (mm)', 'type' => 'number'],
                ['name' => 'notes', 'label' => 'Refraction notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'eye_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'va_od', 'label' => 'Visual acuity OD', 'type' => 'text'],
                ['name' => 'va_os', 'label' => 'Visual acuity OS', 'type' => 'text'],
                ['name' => 'iop_od', 'label' => 'IOP OD (mmHg)', 'type' => 'number'],
                ['name' => 'iop_os', 'label' => 'IOP OS (mmHg)', 'type' => 'number'],
                ['name' => 'pupils', 'label' => 'Pupils', 'type' => 'text'],
                ['name' => 'extraocular', 'label' => 'Extraocular movements', 'type' => 'text'],
                ['name' => 'anterior_segment', 'label' => 'Anterior segment', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'fundus', 'label' => 'Fundus / posterior segment', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Key findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'eye_investigation' => [
                ['name' => 'modality', 'label' => 'Modality', 'type' => 'select', 'required' => true, 'options' => ['OCT', 'Visual fields', 'Fundus photo', 'Fluorescein angiography', 'Biometry / A-scan', 'B-scan ultrasound', 'Corneal topography', 'Other']],
                ['name' => 'eye', 'label' => 'Eye', 'type' => 'select', 'options' => ['OD', 'OS', 'OU']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'eye_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'laterality', 'label' => 'Laterality', 'type' => 'select', 'options' => ['OD', 'OS', 'OU', 'N/A']],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications / drops', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'procedure_planned', 'label' => 'Procedure planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'eye_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure', 'type' => 'text', 'required' => true],
                ['name' => 'eye', 'label' => 'Eye', 'type' => 'select', 'required' => true, 'options' => ['OD', 'OS', 'OU']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'anaesthesia', 'label' => 'Anaesthesia', 'type' => 'select', 'options' => ['None', 'Topical', 'Local', 'Other']],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'post_op_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'physiotherapy' => [
            'pt_assessment' => [
                ['name' => 'chief_complaint', 'label' => 'Presenting complaint', 'type' => 'text', 'required' => true],
                ['name' => 'onset', 'label' => 'Onset / mechanism', 'type' => 'text'],
                ['name' => 'pain_score', 'label' => 'Pain score (0–10)', 'type' => 'number'],
                ['name' => 'body_region', 'label' => 'Body region', 'type' => 'select', 'options' => ['Neck', 'Shoulder', 'Back / lumbar', 'Hip', 'Knee', 'Ankle / foot', 'Upper limb', 'Lower limb', 'Other']],
                ['name' => 'rom', 'label' => 'Range of motion', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'strength', 'label' => 'Strength / function', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'special_tests', 'label' => 'Special tests', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'red_flags', 'label' => 'Red flags', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'goals', 'label' => 'Treatment goals', 'type' => 'textarea', 'required' => true, 'rows' => 2],
            ],
            'pt_plan' => [
                ['name' => 'diagnosis', 'label' => 'Physio diagnosis / problem list', 'type' => 'text', 'required' => true],
                ['name' => 'frequency', 'label' => 'Session frequency', 'type' => 'text'],
                ['name' => 'duration_weeks', 'label' => 'Expected duration (weeks)', 'type' => 'number'],
                ['name' => 'interventions', 'label' => 'Planned interventions', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'precautions', 'label' => 'Precautions / contraindications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'goals', 'label' => 'Short-term goals', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome_measures', 'label' => 'Outcome measures', 'type' => 'text'],
            ],
            'pt_session' => [
                ['name' => 'session_number', 'label' => 'Session number', 'type' => 'number'],
                ['name' => 'modalities', 'label' => 'Modalities used', 'type' => 'textarea', 'required' => true, 'rows' => 2],
                ['name' => 'exercises', 'label' => 'Exercises performed', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'pain_before', 'label' => 'Pain before (0–10)', 'type' => 'number'],
                ['name' => 'pain_after', 'label' => 'Pain after (0–10)', 'type' => 'number'],
                ['name' => 'response', 'label' => 'Patient response', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Session outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed — continue plan', 'Completed — progress review due', 'Completed — discharge ready', 'Deferred']],
                ['name' => 'next_review', 'label' => 'Next review', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'pt_home_program' => [
                ['name' => 'exercises', 'label' => 'Home exercises', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'frequency', 'label' => 'Frequency / sets', 'type' => 'text'],
                ['name' => 'precautions', 'label' => 'Precautions', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'progress_notes', 'label' => 'Progress notes', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'adherence', 'label' => 'Adherence', 'type' => 'select', 'options' => ['Good', 'Fair', 'Poor', 'Unknown']],
                ['name' => 'outcome', 'label' => 'Progress outcome', 'type' => 'select', 'options' => ['Improving', 'Stable', 'Worsening', 'Goals met — discharge', 'Refer on']],
                ['name' => 'next_review', 'label' => 'Next review', 'type' => 'text'],
            ],
        ],
        'womens_health' => [
            'anc_history' => [
                ['name' => 'gravida', 'label' => 'Gravida', 'type' => 'number', 'required' => true],
                ['name' => 'para', 'label' => 'Para', 'type' => 'number'],
                ['name' => 'lmp', 'label' => 'LMP', 'type' => 'text'],
                ['name' => 'edd', 'label' => 'EDD', 'type' => 'text'],
                ['name' => 'gestational_age_weeks', 'label' => 'Gestational age (weeks)', 'type' => 'number', 'required' => true],
                ['name' => 'anc_visit_number', 'label' => 'ANC visit number', 'type' => 'number'],
                ['name' => 'obstetric_history', 'label' => 'Obstetric history', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'medical_history', 'label' => 'Medical / surgical history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'medications', 'label' => 'Current medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'social_history', 'label' => 'Social history', 'type' => 'textarea', 'rows' => 2],
            ],
            'obstetric_exam' => [
                ['name' => 'bp', 'label' => 'Blood pressure', 'type' => 'text', 'required' => true],
                ['name' => 'pulse', 'label' => 'Pulse', 'type' => 'number'],
                ['name' => 'weight_kg', 'label' => 'Weight (kg)', 'type' => 'number'],
                ['name' => 'fundal_height', 'label' => 'Fundal height (cm)', 'type' => 'number'],
                ['name' => 'presentation', 'label' => 'Presentation', 'type' => 'select', 'options' => ['Cephalic', 'Breech', 'Transverse', 'Unknown']],
                ['name' => 'lie', 'label' => 'Lie', 'type' => 'select', 'options' => ['Longitudinal', 'Oblique', 'Transverse', 'Unknown']],
                ['name' => 'engagement', 'label' => 'Engagement', 'type' => 'text'],
                ['name' => 'oedema', 'label' => 'Oedema', 'type' => 'select', 'options' => ['None', 'Mild', 'Moderate', 'Severe']],
                ['name' => 'urine', 'label' => 'Urine dipstick', 'type' => 'text'],
                ['name' => 'danger_signs', 'label' => 'Danger signs', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Exam findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'fetal_notes' => [
                ['name' => 'fetal_heart_rate', 'label' => 'Fetal heart rate (bpm)', 'type' => 'number', 'required' => true],
                ['name' => 'fetal_movements', 'label' => 'Fetal movements', 'type' => 'select', 'options' => ['Normal', 'Reduced', 'Absent', 'Not assessed']],
                ['name' => 'presentation', 'label' => 'Presentation', 'type' => 'select', 'options' => ['Cephalic', 'Breech', 'Transverse', 'Unknown']],
                ['name' => 'liquor', 'label' => 'Liquor / AFI notes', 'type' => 'text'],
                ['name' => 'ctg_summary', 'label' => 'CTG / monitoring summary', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Fetal notes', 'type' => 'textarea', 'rows' => 3],
            ],
            'mat_investigation' => [
                ['name' => 'modality', 'label' => 'Investigation', 'type' => 'select', 'required' => true, 'options' => ['Obstetric ultrasound', 'Bloods (FBC / group)', 'Urine / MSU', 'Glucose / GTT', 'HIV / syphilis / hepatitis', 'Other']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'mat_plan' => [
                ['name' => 'risk_category', 'label' => 'Risk category', 'type' => 'select', 'options' => ['Low risk', 'Moderate risk', 'High risk']],
                ['name' => 'plan', 'label' => 'Care plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications / supplements', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'education', 'label' => 'Patient education', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'postnatal_needed', 'label' => 'Delivery / postnatal follow-up needed', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Next ANC / follow-up', 'type' => 'text'],
                ['name' => 'referral', 'label' => 'Referral', 'type' => 'text'],
            ],
            'postnatal_note' => [
                ['name' => 'episode_type', 'label' => 'Episode type', 'type' => 'select', 'required' => true, 'options' => ['ANC only', 'Delivery note', 'Immediate postnatal', 'Postnatal review']],
                ['name' => 'delivery_mode', 'label' => 'Delivery mode', 'type' => 'select', 'options' => ['N/A', 'SVD', 'Assisted vaginal', 'CS elective', 'CS emergency']],
                ['name' => 'delivery_date', 'label' => 'Delivery date / time', 'type' => 'text'],
                ['name' => 'baby_condition', 'label' => 'Baby condition', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'maternal_condition', 'label' => 'Maternal condition', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'breastfeeding', 'label' => 'Breastfeeding / feeding', 'type' => 'text'],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed — continue ANC', 'Completed — discharged', 'Referred', 'Admitted']],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'radiology' => [
            'imaging_request' => [
                ['name' => 'modality', 'label' => 'Modality', 'type' => 'select', 'required' => true, 'options' => ['X-ray', 'Ultrasound', 'CT', 'MRI', 'Fluoroscopy', 'Other']],
                ['name' => 'body_part', 'label' => 'Body part / region', 'type' => 'text', 'required' => true],
                ['name' => 'clinical_info', 'label' => 'Clinical information', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'urgency', 'label' => 'Urgency', 'type' => 'select', 'options' => ['Routine', 'Urgent', 'STAT']],
                ['name' => 'contrast', 'label' => 'Contrast', 'type' => 'select', 'options' => ['None', 'IV', 'Oral', 'Both']],
                ['name' => 'protocol', 'label' => 'Protocol / sequences', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'referrer', 'label' => 'Referring clinician', 'type' => 'text'],
            ],
            'imaging_acquisition' => [
                ['name' => 'technologist', 'label' => 'Technologist', 'type' => 'text'],
                ['name' => 'equipment', 'label' => 'Equipment / room', 'type' => 'text'],
                ['name' => 'acquisition_status', 'label' => 'Acquisition status', 'type' => 'select', 'required' => true, 'options' => ['Scheduled', 'In progress', 'Acquired', 'Incomplete', 'Cancelled']],
                ['name' => 'contrast_given', 'label' => 'Contrast administered', 'type' => 'boolean'],
                ['name' => 'dose_notes', 'label' => 'Dose / exposure notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'quality', 'label' => 'Image quality', 'type' => 'select', 'options' => ['Diagnostic', 'Limited', 'Non-diagnostic', 'Repeat needed']],
                ['name' => 'notes', 'label' => 'Acquisition notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'imaging_report' => [
                ['name' => 'technique', 'label' => 'Technique', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'comparison', 'label' => 'Comparison', 'type' => 'text'],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'critical_result', 'label' => 'Critical / unexpected finding', 'type' => 'boolean'],
            ],
            'imaging_verification' => [
                ['name' => 'verification_status', 'label' => 'Verification status', 'type' => 'select', 'required' => true, 'options' => ['Draft', 'Preliminary', 'Verified / final', 'Amended']],
                ['name' => 'verified_by', 'label' => 'Verified by', 'type' => 'text', 'required' => true],
                ['name' => 'critical_communicated', 'label' => 'Critical result communicated', 'type' => 'boolean'],
                ['name' => 'communication_notes', 'label' => 'Communication notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Verification notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'cardiology' => [
            'cardio_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'past_cardiac', 'label' => 'Past cardiac history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'risk_factors', 'label' => 'Cardiac risk factors', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'family_history', 'label' => 'Family history', 'type' => 'textarea', 'rows' => 2],
            ],
            'cardiac_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'nyha_class', 'label' => 'NYHA class', 'type' => 'select', 'options' => ['I', 'II', 'III', 'IV', 'N/A']],
                ['name' => 'bp', 'label' => 'Blood pressure', 'type' => 'text'],
                ['name' => 'hr', 'label' => 'Heart rate', 'type' => 'number'],
                ['name' => 'heart_sounds', 'label' => 'Heart sounds / murmurs', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'ecg_findings', 'label' => 'ECG findings', 'type' => 'textarea', 'required' => true, 'rows' => 2],
                ['name' => 'exam_findings', 'label' => 'Exam findings', 'type' => 'textarea', 'rows' => 2],
            ],
            'cardio_investigation' => [
                ['name' => 'modality', 'label' => 'Investigation', 'type' => 'select', 'required' => true, 'options' => ['Echo', 'Stress test', 'Holter', 'Troponin / labs', 'CT angio', 'Other']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'cardio_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'procedure_planned', 'label' => 'Procedure / intervention planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'cardio_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure / intervention', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'post_procedure_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'psychiatry' => [
            'mental_status' => [
                ['name' => 'chief_complaint', 'label' => 'Presenting complaint', 'type' => 'text', 'required' => true],
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'appearance', 'label' => 'Appearance / behaviour', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'mood_affect', 'label' => 'Mood / affect', 'type' => 'text'],
                ['name' => 'thought', 'label' => 'Thought content / process', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'perception', 'label' => 'Perception', 'type' => 'text'],
                ['name' => 'cognition', 'label' => 'Cognition / orientation', 'type' => 'text'],
                ['name' => 'insight', 'label' => 'Insight / judgment', 'type' => 'text'],
                ['name' => 'mse_summary', 'label' => 'MSE summary', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'risk_assessment' => [
                ['name' => 'overall_risk', 'label' => 'Overall risk level', 'type' => 'select', 'required' => true, 'options' => ['Low', 'Moderate', 'High', 'Imminent']],
                ['name' => 'self_harm', 'label' => 'Self-harm / suicide risk', 'type' => 'select', 'options' => ['None identified', 'Ideation', 'Plan', 'Intent / recent attempt']],
                ['name' => 'harm_others', 'label' => 'Risk to others', 'type' => 'select', 'options' => ['None identified', 'Ideation', 'Plan', 'Intent']],
                ['name' => 'safeguarding', 'label' => 'Safeguarding concerns', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'protective_factors', 'label' => 'Protective factors', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'risk_summary', 'label' => 'Risk summary', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'immediate_actions', 'label' => 'Immediate actions', 'type' => 'textarea', 'rows' => 2],
            ],
            'psych_plan' => [
                ['name' => 'formulation', 'label' => 'Formulation', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'diagnosis', 'label' => 'Working diagnosis', 'type' => 'text'],
                ['name' => 'plan', 'label' => 'Management plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'therapy', 'label' => 'Therapy / psychosocial', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'crisis_plan', 'label' => 'Crisis / safety plan', 'type' => 'textarea', 'rows' => 2],
            ],
            'psych_followup' => [
                ['name' => 'review_type', 'label' => 'Review type', 'type' => 'select', 'required' => true, 'options' => ['Clinic follow-up', 'Medication review', 'Crisis review', 'Discharge review']],
                ['name' => 'progress', 'label' => 'Progress since last contact', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'current_risk', 'label' => 'Current risk', 'type' => 'select', 'options' => ['Low', 'Moderate', 'High', 'Imminent']],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Follow-up arranged', 'Discharged', 'Referred', 'Admitted']],
                ['name' => 'next_steps', 'label' => 'Next steps', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'pediatrics' => [
            'ped_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'birth_history', 'label' => 'Birth / neonatal history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'past_medical', 'label' => 'Past medical history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'feeding', 'label' => 'Feeding / nutrition', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'social', 'label' => 'Social / family context', 'type' => 'textarea', 'rows' => 2],
            ],
            'pediatric_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'age_months', 'label' => 'Age (months)', 'type' => 'number'],
                ['name' => 'weight_kg', 'label' => 'Weight (kg)', 'type' => 'number'],
                ['name' => 'height_cm', 'label' => 'Height / length (cm)', 'type' => 'number'],
                ['name' => 'head_circumference_cm', 'label' => 'Head circumference (cm)', 'type' => 'number'],
                ['name' => 'temperature_c', 'label' => 'Temperature (°C)', 'type' => 'number'],
                ['name' => 'growth_concern', 'label' => 'Growth concern', 'type' => 'select', 'options' => ['None', 'Underweight', 'Stunting', 'Wasting', 'Overweight']],
                ['name' => 'developmental', 'label' => 'Developmental notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'immunization_status', 'label' => 'Immunization status', 'type' => 'text'],
                ['name' => 'examination', 'label' => 'Examination', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'ped_investigation' => [
                ['name' => 'investigation', 'label' => 'Investigation', 'type' => 'text', 'required' => true],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'ped_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'treatment_planned', 'label' => 'Treatment / immunization planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Caregiver advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'ped_treatment' => [
                ['name' => 'treatment', 'label' => 'Treatment / immunization', 'type' => 'text', 'required' => true],
                ['name' => 'vaccine_or_procedure', 'label' => 'Vaccine / procedure details', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'site_route', 'label' => 'Site / route', 'type' => 'text'],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'adverse_events', 'label' => 'Adverse events', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'post_treatment_plan', 'label' => 'Post-treatment plan', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'orthopedics' => [
            'ortho_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'mechanism', 'label' => 'Mechanism of injury', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'past_ortho', 'label' => 'Past orthopedic history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'comorbidities', 'label' => 'Comorbidities', 'type' => 'textarea', 'rows' => 2],
            ],
            'ortho_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'side', 'label' => 'Side', 'type' => 'select', 'options' => ['Left', 'Right', 'Bilateral', 'N/A']],
                ['name' => 'region', 'label' => 'Region / joint', 'type' => 'text', 'required' => true],
                ['name' => 'rom', 'label' => 'Range of motion', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'neurovascular', 'label' => 'Neurovascular status', 'type' => 'select', 'options' => ['Intact', 'Sensory deficit', 'Motor deficit', 'Vascular compromise', 'Not assessed']],
                ['name' => 'swelling', 'label' => 'Swelling / deformity', 'type' => 'text'],
                ['name' => 'exam_findings', 'label' => 'Examination findings', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'fracture_classification', 'label' => 'Fracture / injury classification', 'type' => 'text'],
            ],
            'ortho_imaging' => [
                ['name' => 'modality', 'label' => 'Modality', 'type' => 'select', 'required' => true, 'options' => ['X-ray', 'CT', 'MRI', 'Ultrasound', 'Other']],
                ['name' => 'region', 'label' => 'Region imaged', 'type' => 'text', 'required' => true],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'ortho_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'weight_bearing', 'label' => 'Weight-bearing status', 'type' => 'text'],
                ['name' => 'procedure_planned', 'label' => 'Procedure / cast planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'ortho_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure / cast', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'technique', 'label' => 'Technique / materials', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'post_procedure_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'ent' => [
            'ent_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'ear_symptoms', 'label' => 'Ear symptoms', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'nose_symptoms', 'label' => 'Nose / sinus symptoms', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'throat_symptoms', 'label' => 'Throat / voice symptoms', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'past_ent', 'label' => 'Past ENT history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
            ],
            'ent_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'ear_findings', 'label' => 'Ear findings', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'nose_findings', 'label' => 'Nose / sinus findings', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'throat_findings', 'label' => 'Throat / larynx findings', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'hearing', 'label' => 'Hearing assessment', 'type' => 'text'],
                ['name' => 'neck', 'label' => 'Neck examination', 'type' => 'text'],
                ['name' => 'airway_concern', 'label' => 'Airway concern', 'type' => 'boolean'],
                ['name' => 'exam_summary', 'label' => 'Exam summary', 'type' => 'textarea', 'rows' => 2],
            ],
            'ent_investigation' => [
                ['name' => 'investigation', 'label' => 'Investigation', 'type' => 'text', 'required' => true],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'ent_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'procedure_planned', 'label' => 'Procedure planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'ent_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'technique', 'label' => 'Technique', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'post_procedure_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'oncology' => [
            'onc_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'cancer_history', 'label' => 'Cancer / treatment history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'comorbidities', 'label' => 'Comorbidities', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'social', 'label' => 'Social / support context', 'type' => 'textarea', 'rows' => 2],
            ],
            'onc_staging' => [
                ['name' => 'diagnosis', 'label' => 'Oncology diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'stage', 'label' => 'Stage / TNM', 'type' => 'text'],
                ['name' => 'histology', 'label' => 'Histology', 'type' => 'text'],
                ['name' => 'performance_status', 'label' => 'Performance status (ECOG)', 'type' => 'select', 'options' => ['0', '1', '2', '3', '4']],
                ['name' => 'exam_findings', 'label' => 'Exam findings', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'sites', 'label' => 'Disease sites', 'type' => 'textarea', 'rows' => 2],
            ],
            'onc_investigation' => [
                ['name' => 'investigation', 'label' => 'Investigation', 'type' => 'text', 'required' => true],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'onc_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'intent', 'label' => 'Treatment intent', 'type' => 'select', 'options' => ['Curative', 'Adjuvant', 'Neoadjuvant', 'Palliative', 'Supportive']],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'treatment_planned', 'label' => 'Treatment / chemo planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'onc_treatment' => [
                ['name' => 'treatment', 'label' => 'Treatment / chemo note', 'type' => 'text', 'required' => true],
                ['name' => 'regimen', 'label' => 'Regimen', 'type' => 'text'],
                ['name' => 'cycle', 'label' => 'Cycle / day', 'type' => 'text'],
                ['name' => 'toxicity', 'label' => 'Toxicity / side effects', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'post_treatment_plan', 'label' => 'Post-treatment plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'renal' => [
            'renal_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'ckd_stage', 'label' => 'CKD stage / dialysis vintage', 'type' => 'text'],
                ['name' => 'access_history', 'label' => 'Access history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'comorbidities', 'label' => 'Comorbidities', 'type' => 'textarea', 'rows' => 2],
            ],
            'renal_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'bp', 'label' => 'Blood pressure', 'type' => 'text'],
                ['name' => 'weight_kg', 'label' => 'Weight (kg)', 'type' => 'number'],
                ['name' => 'fluid_status', 'label' => 'Fluid status', 'type' => 'select', 'options' => ['Euvolemic', 'Overload', 'Dehydrated', 'Not assessed']],
                ['name' => 'access', 'label' => 'Access assessment', 'type' => 'text'],
                ['name' => 'exam_findings', 'label' => 'Exam findings', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'uremic_symptoms', 'label' => 'Uremic symptoms', 'type' => 'textarea', 'rows' => 2],
            ],
            'renal_session' => [
                ['name' => 'session_type', 'label' => 'Session / labs type', 'type' => 'select', 'required' => true, 'options' => ['Hemodialysis', 'Peritoneal dialysis', 'Clinic labs review', 'Other']],
                ['name' => 'pre_weight_kg', 'label' => 'Pre-weight (kg)', 'type' => 'number'],
                ['name' => 'post_weight_kg', 'label' => 'Post-weight (kg)', 'type' => 'number'],
                ['name' => 'uf_goal_l', 'label' => 'UF goal (L)', 'type' => 'number'],
                ['name' => 'access', 'label' => 'Access', 'type' => 'text'],
                ['name' => 'bp_pre', 'label' => 'BP pre', 'type' => 'text'],
                ['name' => 'bp_post', 'label' => 'BP post', 'type' => 'text'],
                ['name' => 'labs_summary', 'label' => 'Labs summary', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Session / labs notes', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'renal_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Care plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'dialysis_prescription', 'label' => 'Dialysis prescription notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'outcome', 'label' => 'Visit outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed — continue plan', 'Completed — discharged', 'Referred', 'Admitted']],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'surgery' => [
            'surg_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'past_surgical', 'label' => 'Past surgical history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'comorbidities', 'label' => 'Comorbidities', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'anaesthesia_history', 'label' => 'Anaesthesia history', 'type' => 'textarea', 'rows' => 2],
            ],
            'surg_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'exam_findings', 'label' => 'Examination findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'asa_class', 'label' => 'ASA class', 'type' => 'select', 'options' => ['I', 'II', 'III', 'IV', 'V', 'E']],
                ['name' => 'fitness', 'label' => 'Fitness notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'site_marking', 'label' => 'Site marking reviewed', 'type' => 'boolean'],
            ],
            'surg_investigation' => [
                ['name' => 'investigation', 'label' => 'Investigation', 'type' => 'text', 'required' => true],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'surg_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'proposed_procedure', 'label' => 'Proposed procedure', 'type' => 'text'],
                ['name' => 'plan', 'label' => 'Consent / peri-op plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'consent_obtained', 'label' => 'Consent obtained', 'type' => 'boolean'],
                ['name' => 'procedure_planned', 'label' => 'Procedure planned today', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'surg_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'technique', 'label' => 'Technique / findings', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'surg_postop' => [
                ['name' => 'review_type', 'label' => 'Review type', 'type' => 'select', 'required' => true, 'options' => ['Immediate post-op', 'Clinic wound check', 'Follow-up review', 'Discharge review']],
                ['name' => 'progress', 'label' => 'Progress / wound status', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'pain_score', 'label' => 'Pain score (0–10)', 'type' => 'number'],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed — continue plan', 'Completed — discharged', 'Referred', 'Admitted']],
                ['name' => 'next_steps', 'label' => 'Next steps', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'vaccination' => [
            'vax_eligibility' => [
                ['name' => 'vaccine', 'label' => 'Vaccine requested', 'type' => 'text', 'required' => true],
                ['name' => 'schedule', 'label' => 'Schedule / indication', 'type' => 'select', 'options' => ['Routine EPI', 'Catch-up', 'Travel', 'Occupational', 'Campaign', 'Other']],
                ['name' => 'prior_doses', 'label' => 'Prior doses / history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'indications', 'label' => 'Indications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'contraindications', 'label' => 'Contraindications checked', 'type' => 'boolean', 'required' => true],
                ['name' => 'allergy_history', 'label' => 'Allergy / prior reaction', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'fever_today', 'label' => 'Fever today', 'type' => 'boolean'],
                ['name' => 'pregnancy', 'label' => 'Pregnant / breastfeeding', 'type' => 'boolean'],
                ['name' => 'cleared', 'label' => 'Cleared to vaccinate', 'type' => 'boolean', 'required' => true],
            ],
            'vax_consent' => [
                ['name' => 'information_given', 'label' => 'Information given', 'type' => 'boolean', 'required' => true],
                ['name' => 'consent_obtained', 'label' => 'Consent obtained', 'type' => 'boolean', 'required' => true],
                ['name' => 'consent_type', 'label' => 'Consent type', 'type' => 'select', 'options' => ['Verbal', 'Written', 'Guardian', 'Implied']],
                ['name' => 'consented_by', 'label' => 'Consented by', 'type' => 'text'],
                ['name' => 'risks_discussed', 'label' => 'Risks / AEFI discussed', 'type' => 'boolean'],
                ['name' => 'notes', 'label' => 'Consent notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'vax_admin' => [
                ['name' => 'vaccine', 'label' => 'Vaccine administered', 'type' => 'text', 'required' => true],
                ['name' => 'dose', 'label' => 'Dose / antigen', 'type' => 'text'],
                ['name' => 'site', 'label' => 'Injection site', 'type' => 'select', 'options' => ['Left arm', 'Right arm', 'Left thigh', 'Right thigh', 'Oral', 'Other']],
                ['name' => 'batch', 'label' => 'Batch / lot number', 'type' => 'text', 'required' => true],
                ['name' => 'expiry', 'label' => 'Expiry date', 'type' => 'text'],
                ['name' => 'route', 'label' => 'Route', 'type' => 'select', 'options' => ['IM', 'SC', 'ID', 'Oral', 'Nasal']],
                ['name' => 'administered_by', 'label' => 'Administered by', 'type' => 'text'],
                ['name' => 'adverse_events', 'label' => 'Immediate adverse events', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'next_due', 'label' => 'Next dose due', 'type' => 'text'],
                ['name' => 'outcome', 'label' => 'Administration outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed — observe', 'Deferred', 'Refused', 'Incomplete']],
            ],
            'vax_observation' => [
                ['name' => 'observation_minutes', 'label' => 'Observation minutes', 'type' => 'number'],
                ['name' => 'vitals', 'label' => 'Vitals / condition', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'aefi', 'label' => 'AEFI', 'type' => 'select', 'options' => ['None', 'Mild', 'Moderate', 'Severe — escalate']],
                ['name' => 'aefi_details', 'label' => 'AEFI details / actions', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'advice', 'label' => 'Home advice', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Disposition', 'type' => 'select', 'required' => true, 'options' => ['Completed — discharged', 'Completed — AEFI follow-up', 'Escalated', 'In progress']],
            ],
        ],
        'pathology' => [
            'path_request' => [
                ['name' => 'specimen_type', 'label' => 'Specimen type', 'type' => 'text', 'required' => true],
                ['name' => 'site', 'label' => 'Anatomic site', 'type' => 'text', 'required' => true],
                ['name' => 'clinical_history', 'label' => 'Clinical history', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'urgency', 'label' => 'Urgency', 'type' => 'select', 'options' => ['Routine', 'Urgent', 'Intra-op']],
                ['name' => 'tests_requested', 'label' => 'Tests requested', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'requesting_clinician', 'label' => 'Requesting clinician', 'type' => 'text'],
            ],
            'path_specimen' => [
                ['name' => 'received_at', 'label' => 'Received at', 'type' => 'text'],
                ['name' => 'container_label', 'label' => 'Container / accession label', 'type' => 'text', 'required' => true],
                ['name' => 'adequacy', 'label' => 'Specimen adequacy', 'type' => 'select', 'options' => ['Adequate', 'Suboptimal', 'Inadequate']],
                ['name' => 'fixative', 'label' => 'Fixative / medium', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Receipt notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'path_processing' => [
                ['name' => 'gross', 'label' => 'Gross description', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'blocks', 'label' => 'Blocks / slides', 'type' => 'text'],
                ['name' => 'stains', 'label' => 'Stains / techniques', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'status', 'label' => 'Processing status', 'type' => 'select', 'required' => true, 'options' => ['In process', 'Ready for reporting', 'Hold — missing info']],
                ['name' => 'notes', 'label' => 'Processing notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'path_report' => [
                ['name' => 'gross', 'label' => 'Gross description', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'microscopy', 'label' => 'Microscopy', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'comment', 'label' => 'Comment', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'reported_by', 'label' => 'Reported by', 'type' => 'text'],
            ],
            'path_verification' => [
                ['name' => 'verified', 'label' => 'Report verified', 'type' => 'boolean', 'required' => true],
                ['name' => 'verified_by', 'label' => 'Verified by', 'type' => 'text'],
                ['name' => 'amendments', 'label' => 'Amendments', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'released', 'label' => 'Released to clinician', 'type' => 'boolean'],
                ['name' => 'outcome', 'label' => 'Verification outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed — released', 'Completed — amended', 'Hold', 'In progress']],
            ],
        ],
        'infusion' => [
            'infusion_assessment' => [
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'text', 'required' => true],
                ['name' => 'history', 'label' => 'Relevant history', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'baseline_vitals', 'label' => 'Baseline vitals', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'access_plan', 'label' => 'IV access plan', 'type' => 'text'],
                ['name' => 'fit_for_infusion', 'label' => 'Fit for infusion', 'type' => 'boolean', 'required' => true],
            ],
            'infusion_protocol' => [
                ['name' => 'medication', 'label' => 'Medication / regimen', 'type' => 'text', 'required' => true],
                ['name' => 'dose', 'label' => 'Dose', 'type' => 'text', 'required' => true],
                ['name' => 'diluent', 'label' => 'Diluent / volume', 'type' => 'text'],
                ['name' => 'rate', 'label' => 'Ordered rate', 'type' => 'text'],
                ['name' => 'duration', 'label' => 'Expected duration', 'type' => 'text'],
                ['name' => 'premeds', 'label' => 'Premedications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'ordered_by', 'label' => 'Ordered by', 'type' => 'text'],
            ],
            'infusion_session' => [
                ['name' => 'medication', 'label' => 'Medication / regimen', 'type' => 'text', 'required' => true],
                ['name' => 'dose', 'label' => 'Dose', 'type' => 'text'],
                ['name' => 'rate', 'label' => 'Infusion rate', 'type' => 'text'],
                ['name' => 'access', 'label' => 'IV access', 'type' => 'text'],
                ['name' => 'start_time', 'label' => 'Start time', 'type' => 'text'],
                ['name' => 'end_time', 'label' => 'End time', 'type' => 'text'],
                ['name' => 'vitals', 'label' => 'Vitals during infusion', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'reactions', 'label' => 'Reactions / interventions', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Session notes', 'type' => 'textarea', 'required' => true, 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Session outcome', 'type' => 'select', 'options' => ['In progress', 'Completed — observe', 'Stopped — reaction', 'Deferred']],
            ],
            'infusion_monitoring' => [
                ['name' => 'post_vitals', 'label' => 'Post-infusion vitals', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'reaction', 'label' => 'Delayed reaction', 'type' => 'select', 'options' => ['None', 'Mild', 'Moderate', 'Severe']],
                ['name' => 'interventions', 'label' => 'Interventions', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'advice', 'label' => 'Discharge advice', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Disposition', 'type' => 'select', 'required' => true, 'options' => ['Completed — discharged', 'Completed — admit / escalate', 'In progress']],
            ],
        ],
        'dermatology' => [
            'derm_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'past_skin', 'label' => 'Past skin history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'triggers', 'label' => 'Triggers / exposures', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'family_history', 'label' => 'Family history', 'type' => 'textarea', 'rows' => 2],
            ],
            'skin_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'urgency', 'label' => 'Urgency', 'type' => 'select', 'options' => ['Routine', 'Moderate', 'High', 'Suspected malignancy']],
                ['name' => 'duration', 'label' => 'Duration', 'type' => 'text'],
                ['name' => 'distribution', 'label' => 'Distribution', 'type' => 'text'],
                ['name' => 'morphology', 'label' => 'Lesion morphology / notes', 'type' => 'textarea', 'required' => true, 'rows' => 2],
                ['name' => 'itch_pain', 'label' => 'Itch / pain', 'type' => 'text'],
                ['name' => 'dermoscopy', 'label' => 'Dermoscopy notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'differential', 'label' => 'Differential diagnosis', 'type' => 'textarea', 'rows' => 2],
            ],
            'derm_investigation' => [
                ['name' => 'modality', 'label' => 'Investigation', 'type' => 'select', 'required' => true, 'options' => ['Biopsy', 'Patch test', 'Culture', 'Bloods', 'Imaging', 'Other']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'derm_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications / topicals', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'procedure_planned', 'label' => 'Procedure / treatment planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'derm_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure / treatment', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'post_procedure_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'podiatry' => [
            'pod_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'diabetes_history', 'label' => 'Diabetes / vascular history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
                ['name' => 'footwear', 'label' => 'Footwear / activity', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'prior_ulcers', 'label' => 'Prior ulcers / amputations', 'type' => 'textarea', 'rows' => 2],
            ],
            'foot_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'side', 'label' => 'Side', 'type' => 'select', 'options' => ['Left', 'Right', 'Bilateral']],
                ['name' => 'diabetes', 'label' => 'Diabetic foot risk', 'type' => 'select', 'options' => ['Low', 'Moderate', 'High', 'Active ulcer', 'N/A']],
                ['name' => 'pulses', 'label' => 'Pulses', 'type' => 'text'],
                ['name' => 'sensation', 'label' => 'Sensation / neuropathy', 'type' => 'text'],
                ['name' => 'skin_nails', 'label' => 'Skin / nails', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'ulcer', 'label' => 'Ulcer description', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'offloading', 'label' => 'Offloading / footwear', 'type' => 'text'],
            ],
            'pod_investigation' => [
                ['name' => 'modality', 'label' => 'Investigation', 'type' => 'select', 'required' => true, 'options' => ['X-ray', 'Doppler', 'Labs / CRP', 'Wound swab', 'ABI', 'Other']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'pod_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'offloading', 'label' => 'Offloading / footwear plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications / dressings', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'procedure_planned', 'label' => 'Procedure planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'pod_procedure' => [
                ['name' => 'procedure', 'label' => 'Procedure', 'type' => 'text', 'required' => true],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed uneventfully', 'Completed with complications', 'Deferred', 'Aborted']],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'post_procedure_plan', 'label' => 'Post-procedure plan', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'fertility' => [
            'fert_history' => [
                ['name' => 'history', 'label' => 'History of present illness', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'trying_months', 'label' => 'Trying to conceive (months)', 'type' => 'number'],
                ['name' => 'obstetric_history', 'label' => 'Obstetric / menstrual history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'partner_notes', 'label' => 'Partner history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
            ],
            'fert_exam' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'priority', 'label' => 'Priority', 'type' => 'select', 'options' => ['Routine', 'Time-sensitive', 'Urgent']],
                ['name' => 'partner_present', 'label' => 'Partner present', 'type' => 'boolean'],
                ['name' => 'cycle_day', 'label' => 'Cycle day', 'type' => 'number'],
                ['name' => 'bmi', 'label' => 'BMI', 'type' => 'number'],
                ['name' => 'exam_findings', 'label' => 'Exam findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'fert_investigation' => [
                ['name' => 'modality', 'label' => 'Investigation', 'type' => 'select', 'required' => true, 'options' => ['AMH / hormones', 'Semen analysis', 'HSG / tubal', 'Pelvic scan', 'Follicular scan', 'Other']],
                ['name' => 'indication', 'label' => 'Indication', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'findings', 'label' => 'Findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'impression', 'label' => 'Impression', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'recommendations', 'label' => 'Recommendations', 'type' => 'textarea', 'rows' => 2],
            ],
            'fert_plan' => [
                ['name' => 'diagnosis', 'label' => 'Diagnosis', 'type' => 'text', 'required' => true],
                ['name' => 'plan', 'label' => 'Fertility plan', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications / stimulation', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'cycle_planned', 'label' => 'Cycle / procedure note planned', 'type' => 'boolean'],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Patient advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'fert_cycle' => [
                ['name' => 'cycle_type', 'label' => 'Cycle / procedure type', 'type' => 'select', 'required' => true, 'options' => ['Natural cycle review', 'Stimulation monitoring', 'IUI', 'IVF counselling', 'Trigger / luteal', 'Other']],
                ['name' => 'cycle_day', 'label' => 'Cycle day', 'type' => 'number'],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed — continue', 'Completed uneventfully', 'Deferred', 'Cancelled']],
                ['name' => 'notes', 'label' => 'Cycle / procedure notes', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'next_steps', 'label' => 'Next steps', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'complications', 'label' => 'Complications', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'child_welfare' => [
            'cwc_intake' => [
                ['name' => 'visit_reason', 'label' => 'Visit reason', 'type' => 'select', 'required' => true, 'options' => ['Routine well-child', 'Growth monitoring', 'Immunization review', 'Feeding concern', 'Development concern', 'Follow-up', 'Other']],
                ['name' => 'caregiver', 'label' => 'Caregiver / accompanying adult', 'type' => 'text'],
                ['name' => 'history', 'label' => 'Interval history', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'birth_history', 'label' => 'Birth / neonatal history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'immunization_status', 'label' => 'Immunization status', 'type' => 'select', 'options' => ['Up to date', 'Catch-up needed', 'Unknown', 'Deferred']],
                ['name' => 'feeding', 'label' => 'Feeding / nutrition history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'social_context', 'label' => 'Social / family context', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'safeguarding_notes', 'label' => 'Sensitive / safeguarding notes', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'allergies', 'label' => 'Allergies', 'type' => 'text'],
            ],
            'cwc_assessment' => [
                ['name' => 'age_months', 'label' => 'Age (months)', 'type' => 'number', 'required' => true],
                ['name' => 'weight_kg', 'label' => 'Weight (kg)', 'type' => 'number', 'required' => true],
                ['name' => 'height_cm', 'label' => 'Height / length (cm)', 'type' => 'number'],
                ['name' => 'head_circumference_cm', 'label' => 'Head circumference (cm)', 'type' => 'number'],
                ['name' => 'muac_cm', 'label' => 'MUAC (cm)', 'type' => 'number'],
                ['name' => 'growth_status', 'label' => 'Growth status', 'type' => 'select', 'options' => ['Normal', 'Underweight', 'Stunted', 'Wasted', 'Overweight']],
                ['name' => 'nutrition_risk', 'label' => 'Nutrition risk', 'type' => 'select', 'options' => ['Low', 'Moderate', 'High']],
                ['name' => 'development', 'label' => 'Developmental milestones', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'exam_findings', 'label' => 'Exam findings', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'safeguarding_flag', 'label' => 'Safeguarding flag', 'type' => 'select', 'options' => ['None', 'Concern', 'Escalated']],
                ['name' => 'assessment_summary', 'label' => 'Assessment summary', 'type' => 'textarea', 'required' => true, 'rows' => 3],
            ],
            'cwc_plan' => [
                ['name' => 'goals', 'label' => 'Care goals', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'interventions', 'label' => 'Planned interventions', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'counseling', 'label' => 'Counseling / education', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'referrals', 'label' => 'Referrals', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'medications', 'label' => 'Medications / supplements', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'follow_up', 'label' => 'Follow-up', 'type' => 'text'],
                ['name' => 'advice', 'label' => 'Caregiver advice', 'type' => 'textarea', 'rows' => 2],
            ],
            'cwc_followup' => [
                ['name' => 'review_type', 'label' => 'Review type', 'type' => 'select', 'required' => true, 'options' => ['Clinic follow-up', 'Growth recheck', 'Intervention review', 'Caregiver counselling', 'Discharge from CWC episode']],
                ['name' => 'interventions_delivered', 'label' => 'Interventions delivered', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'progress', 'label' => 'Progress since last visit', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['In progress', 'Completed — continue CWC', 'Completed uneventfully', 'Referred', 'Lost to follow-up']],
                ['name' => 'next_visit', 'label' => 'Next visit', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
        'ambulance' => [
            'amb_dispatch' => [
                ['name' => 'call_nature', 'label' => 'Call nature', 'type' => 'select', 'required' => true, 'options' => ['Medical emergency', 'Trauma / accident', 'Transfer', 'Obstetric', 'Psychiatric', 'Standby', 'Other']],
                ['name' => 'priority', 'label' => 'Priority', 'type' => 'select', 'required' => true, 'options' => ['Immediate', 'Urgent', 'Routine', 'Scheduled transfer']],
                ['name' => 'location', 'label' => 'Scene / pickup location', 'type' => 'text', 'required' => true],
                ['name' => 'caller_info', 'label' => 'Caller / contact', 'type' => 'text'],
                ['name' => 'crew', 'label' => 'Crew assigned', 'type' => 'text'],
                ['name' => 'vehicle', 'label' => 'Vehicle / unit', 'type' => 'text'],
                ['name' => 'dispatch_notes', 'label' => 'Dispatch notes', 'type' => 'textarea', 'rows' => 3],
                ['name' => 'eta_minutes', 'label' => 'ETA (minutes)', 'type' => 'number'],
            ],
            'amb_scene' => [
                ['name' => 'chief_complaint', 'label' => 'Chief complaint', 'type' => 'text', 'required' => true],
                ['name' => 'acuity', 'label' => 'Scene acuity', 'type' => 'select', 'required' => true, 'options' => ['Critical', 'Urgent', 'Stable', 'Non-urgent']],
                ['name' => 'mechanism', 'label' => 'Mechanism / history', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'airway_ok', 'label' => 'Airway patent', 'type' => 'boolean'],
                ['name' => 'breathing_ok', 'label' => 'Breathing adequate', 'type' => 'boolean'],
                ['name' => 'circulation_ok', 'label' => 'Circulation stable', 'type' => 'boolean'],
                ['name' => 'gcs', 'label' => 'GCS', 'type' => 'number'],
                ['name' => 'vitals_summary', 'label' => 'Vitals summary', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'scene_findings', 'label' => 'Scene findings / triage', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'hazards', 'label' => 'Scene hazards', 'type' => 'textarea', 'rows' => 2],
            ],
            'amb_en_route' => [
                ['name' => 'destination', 'label' => 'Destination facility', 'type' => 'text', 'required' => true],
                ['name' => 'interventions', 'label' => 'Interventions en route', 'type' => 'textarea', 'required' => true, 'rows' => 3],
                ['name' => 'medications', 'label' => 'Medications given', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'response_to_treatment', 'label' => 'Response to treatment', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'monitoring', 'label' => 'Monitoring notes', 'type' => 'textarea', 'rows' => 2],
                ['name' => 'deterioration', 'label' => 'Deterioration en route', 'type' => 'boolean'],
                ['name' => 'eta_facility', 'label' => 'ETA to facility', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Transport notes', 'type' => 'textarea', 'rows' => 2],
            ],
            'amb_handover' => [
                ['name' => 'receiving_facility', 'label' => 'Receiving facility / unit', 'type' => 'text', 'required' => true],
                ['name' => 'receiving_clinician', 'label' => 'Receiving clinician', 'type' => 'text'],
                ['name' => 'handover_summary', 'label' => 'Handover summary (SBAR)', 'type' => 'textarea', 'required' => true, 'rows' => 4],
                ['name' => 'outcome', 'label' => 'Outcome', 'type' => 'select', 'required' => true, 'options' => ['Completed — handed over', 'Completed uneventfully', 'Transferred to another unit', 'Patient refused transport', 'Cancelled on scene']],
                ['name' => 'time_critical', 'label' => 'Time-critical pathway', 'type' => 'select', 'options' => ['None', 'Stroke', 'STEMI', 'Trauma', 'Obstetric', 'Other']],
                ['name' => 'follow_up', 'label' => 'Follow-up / documentation', 'type' => 'text'],
                ['name' => 'notes', 'label' => 'Notes', 'type' => 'textarea', 'rows' => 2],
            ],
        ],
    ],
];
