/// Mock data for testing - based on Anastasia's dossier (most categories) import 'models.dart'; /// Mock dossiers for dashboard final mockDossiers = [ const DossierSummary( id: 'self-001', name: 'Johan Jongsma', dateOfBirth: '1985-03-15', sex: 'Male', isSelf: true, canEdit: true, stats: DossierStats( imaging: 3, labs: 12, genome: true, documents: 2, medications: 4, supplements: 5, ), ), const DossierSummary( id: 'sophia-001', name: 'Sophia', dateOfBirth: '2017-01-01', sex: 'Female', relation: 'Parent', isCareReceiver: true, canEdit: true, stats: DossierStats( imaging: 16, labs: 0, ), ), const DossierSummary( id: 'anastasia-001', name: 'Anastasia', dateOfBirth: '1990-07-22', sex: 'Female', relation: 'Demo', canEdit: false, stats: DossierStats( imaging: 8, labs: 24, genome: true, documents: 5, vitals: 12, medications: 7, supplements: 3, ), ), ]; /// Full dossier data for Anastasia (richest example) final mockAnastasiaDossier = DossierData( dossier: mockDossiers[2], canEdit: false, canManageAccess: false, hasGenome: true, uploadCount: 12, uploadSize: '847 MB', studies: const [ ImagingStudy( id: 'study-001', description: 'MRI BRAIN W/WO CONTRAST', date: '20240315', series: [ ImagingSeries(id: 's1', description: 'AX T1', modality: 'MR', sliceCount: 180), ImagingSeries(id: 's2', description: 'AX T2 FLAIR', modality: 'MR', sliceCount: 180), ImagingSeries(id: 's3', description: 'AX DWI', modality: 'MR', sliceCount: 60), ImagingSeries(id: 's4', description: 'SAG T1 POST', modality: 'MR', sliceCount: 180), ImagingSeries(id: 's5', description: 'COR T2', modality: 'MR', sliceCount: 120), ], ), ImagingStudy( id: 'study-002', description: 'CT CHEST W CONTRAST', date: '20240210', series: [ ImagingSeries(id: 's6', description: 'AX LUNG', modality: 'CT', sliceCount: 250), ImagingSeries(id: 's7', description: 'COR RECON', modality: 'CT', sliceCount: 120), ], ), ImagingStudy( id: 'study-003', description: 'XR CHEST AP ONLY', date: '20240115', series: [ ImagingSeries(id: 's8', modality: 'XR', sliceCount: 1), ], ), ImagingStudy( id: 'study-004', description: 'MRI SPINE CERVICAL', date: '20231201', series: [ ImagingSeries(id: 's9', description: 'SAG T1', modality: 'MR', sliceCount: 20), ImagingSeries(id: 's10', description: 'SAG T2', modality: 'MR', sliceCount: 20), ImagingSeries(id: 's11', description: 'AX T2', modality: 'MR', sliceCount: 60), ], ), ImagingStudy( id: 'study-005', description: 'US THYROID', date: '20231015', series: [ ImagingSeries(id: 's12', modality: 'US', sliceCount: 24), ], ), ], labs: const [ DataItem(value: 'Complete Blood Count (CBC)', summary: '8 tests', date: '2024-03-10'), DataItem(value: 'Comprehensive Metabolic Panel', summary: '14 tests', date: '2024-03-10'), DataItem(value: 'Lipid Panel', summary: '4 tests', date: '2024-03-10'), DataItem(value: 'Thyroid Panel', summary: 'TSH, T3, T4', date: '2024-02-15'), DataItem(value: 'Vitamin D, 25-Hydroxy', summary: '38 ng/mL (normal)', date: '2024-02-15'), DataItem(value: 'Hemoglobin A1c', summary: '5.2% (normal)', date: '2024-01-20'), ], documents: const [ DataItem(value: 'Discharge Summary', type: 'PDF', date: '2024-03-16'), DataItem(value: 'Radiology Report - Brain MRI', type: 'PDF', date: '2024-03-15'), DataItem(value: 'Lab Results Summary', type: 'PDF', date: '2024-03-10'), DataItem(value: 'Insurance Authorization', type: 'PDF', date: '2024-02-01'), DataItem(value: 'Referral Letter', type: 'PDF', date: '2024-01-15'), ], procedures: const [ DataItem(value: 'Lumbar Puncture', summary: 'Diagnostic CSF analysis', date: '2024-02-20'), DataItem(value: 'Thyroid Biopsy', summary: 'Fine needle aspiration', date: '2023-10-18'), ], assessments: const [ DataItem(value: 'Neurological Exam', summary: 'Normal findings', date: '2024-03-15'), DataItem(value: 'Cognitive Assessment', summary: 'MMSE 29/30', date: '2024-02-25'), DataItem(value: 'Physical Therapy Eval', summary: 'Mild cervical dysfunction', date: '2024-01-10'), ], medications: const [ DataItem(value: 'Levothyroxine', summary: '50 mcg daily', date: '2024-01-01'), DataItem(value: 'Vitamin D3', summary: '5000 IU daily', date: '2024-01-01'), DataItem(value: 'Magnesium Glycinate', summary: '400 mg evening', date: '2024-01-01'), DataItem(value: 'Omega-3 Fish Oil', summary: '2000 mg daily', date: '2024-01-01'), DataItem(value: 'Gabapentin', summary: '300 mg PRN (discontinued)', date: '2023-06-01'), ], symptoms: const [ DataItem(value: 'Headache', summary: 'Tension-type, intermittent', date: '2024-03-01'), DataItem(value: 'Neck stiffness', summary: 'Morning, improves with movement', date: '2024-02-15'), DataItem(value: 'Fatigue', summary: 'Mild, afternoon slump', date: '2024-01-20'), ], hospitalizations: const [ DataItem(value: 'Johns Hopkins Hospital', summary: 'Observation - headache evaluation', date: '2024-02-20'), DataItem(value: 'Local ER', summary: 'Chest pain workup - negative', date: '2023-08-15'), ], therapies: const [ DataItem(value: 'Physical Therapy', summary: 'Cervical spine - 8 sessions completed', date: '2024-03-01'), DataItem(value: 'Massage Therapy', summary: 'Bi-weekly maintenance', date: '2024-01-15'), DataItem(value: 'Acupuncture', summary: 'Trial - 4 sessions', date: '2023-11-01'), ], geneticCategories: const [ GeneticCategory(name: 'traits', shown: 12, hidden: 45), GeneticCategory(name: 'metabolism', shown: 8, hidden: 23), GeneticCategory(name: 'medication', shown: 15, hidden: 32), GeneticCategory(name: 'cardiovascular', shown: 6, hidden: 18), GeneticCategory(name: 'neurological', shown: 4, hidden: 12), GeneticCategory(name: 'longevity', shown: 3, hidden: 8), GeneticCategory(name: 'autoimmune', shown: 2, hidden: 5), GeneticCategory(name: 'cancer', shown: 1, hidden: 4), ], accessList: const [ AccessEntry( dossierID: 'anastasia-001', name: 'Anastasia', relation: 'Owner', canEdit: true, isSelf: true, ), AccessEntry( dossierID: 'johan-001', name: 'Johan Jongsma', relation: 'Demo access', canEdit: false, ), ], ); /// Dossier data for Sophia final mockSophiaDossier = DossierData( dossier: mockDossiers[1], canEdit: true, canManageAccess: true, hasGenome: false, uploadCount: 156, uploadSize: '12.4 GB', studies: const [ ImagingStudy( id: 'sophia-study-001', description: 'MRI BRAIN W/WO CONTRAST', date: '20220505', series: [ ImagingSeries(id: 'ss1', description: 'AX T1', modality: 'MR', sliceCount: 180), ImagingSeries(id: 'ss2', description: 'AX T2 FLAIR', modality: 'MR', sliceCount: 180), ImagingSeries(id: 'ss3', description: 'AX SWI', modality: 'MR', sliceCount: 120), ImagingSeries(id: 'ss4', description: 'AX DWI', modality: 'MR', sliceCount: 60), ImagingSeries(id: 'ss5', description: 'SAG T1', modality: 'MR', sliceCount: 180), ], ), ImagingStudy( id: 'sophia-study-002', description: 'CT HEAD W/O CONTRAST', date: '20220502', series: [ ImagingSeries(id: 'ss6', description: 'AX', modality: 'CT', sliceCount: 40), ], ), ], accessList: const [ AccessEntry( dossierID: 'sophia-001', name: 'Sophia', relation: 'Self', isSelf: true, ), AccessEntry( dossierID: 'johan-001', name: 'Johan Jongsma', relation: 'Parent', canEdit: true, ), ], ); /// Get dossier data by ID DossierData? getDossierById(String id) { switch (id) { case 'anastasia-001': return mockAnastasiaDossier; case 'sophia-001': return mockSophiaDossier; default: return null; } }