inou/app/lib/features/dashboard/mock_data.dart

240 lines
8.1 KiB
Dart

/// 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;
}
}