240 lines
8.1 KiB
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;
|
|
}
|
|
}
|