feat(pmr): create PMR data layer and TypeScript types
- Add src/types/pmr.ts with interfaces for Patient, Consultation, Medication, Problem, Investigation, Document - Add src/data/consultations.ts with 5 roles mapped to clinical consultation format - Add src/data/medications.ts with 18 skills as medications across Active/Clinical/PRN categories - Add src/data/problems.ts with 11 achievements/problems using traffic light status system - Add src/data/investigations.ts with 5 projects as clinical investigations - Add src/data/documents.ts with 5 education/certification documents - Add src/data/patient.ts with patient demographic data All data matches CV_v4.md exactly (dates, numbers, achievements). Task 1 of 15 complete.
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
export interface CodedEntry {
|
||||
code: string
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface Consultation {
|
||||
id: string
|
||||
date: string
|
||||
organization: string
|
||||
orgColor: string
|
||||
role: string
|
||||
duration: string
|
||||
isCurrent: boolean
|
||||
history: string
|
||||
examination: string[]
|
||||
plan: string[]
|
||||
codedEntries: CodedEntry[]
|
||||
}
|
||||
|
||||
export interface PrescribingHistoryEntry {
|
||||
year: number
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface Medication {
|
||||
id: string
|
||||
name: string
|
||||
dose: number
|
||||
frequency: 'Daily' | 'Weekly' | 'Monthly' | 'As needed'
|
||||
startYear: number
|
||||
status: 'Active' | 'Historical'
|
||||
category: 'Active' | 'Clinical' | 'PRN'
|
||||
prescribingHistory: PrescribingHistoryEntry[]
|
||||
}
|
||||
|
||||
export interface Problem {
|
||||
id: string
|
||||
code: string
|
||||
description: string
|
||||
since?: string
|
||||
resolved?: string
|
||||
status: 'Active' | 'In Progress' | 'Resolved'
|
||||
outcome?: string
|
||||
narrative?: string
|
||||
linkedConsultations?: string[]
|
||||
}
|
||||
|
||||
export interface InvestigationResult {
|
||||
label: string
|
||||
value: string
|
||||
}
|
||||
|
||||
export interface Investigation {
|
||||
id: string
|
||||
name: string
|
||||
requestedYear: number
|
||||
reportedYear?: number
|
||||
status: 'Complete' | 'Ongoing' | 'Live'
|
||||
resultSummary: string
|
||||
requestingClinician: string
|
||||
methodology: string
|
||||
results: string[]
|
||||
techStack: string[]
|
||||
externalUrl?: string
|
||||
}
|
||||
|
||||
export type DocumentType = 'Certificate' | 'Registration' | 'Results' | 'Research'
|
||||
|
||||
export interface Document {
|
||||
id: string
|
||||
type: DocumentType
|
||||
title: string
|
||||
date: string
|
||||
source: string
|
||||
classification?: string
|
||||
institution?: string
|
||||
duration?: string
|
||||
researchDetail?: string
|
||||
researchGrade?: string
|
||||
notes?: string
|
||||
}
|
||||
|
||||
export interface Patient {
|
||||
name: string
|
||||
displayName: string
|
||||
dob: string
|
||||
nhsNumber: string
|
||||
nhsNumberTooltip: string
|
||||
address: string
|
||||
phone: string
|
||||
email: string
|
||||
linkedin: string
|
||||
status: string
|
||||
badge: string
|
||||
qualification: string
|
||||
university: string
|
||||
registrationYear: string
|
||||
}
|
||||
|
||||
export type ViewId = 'summary' | 'consultations' | 'medications' | 'problems' | 'investigations' | 'documents' | 'referrals'
|
||||
|
||||
export interface NavItem {
|
||||
id: ViewId
|
||||
label: string
|
||||
icon: string
|
||||
}
|
||||
|
||||
export interface ReferralFormData {
|
||||
priority: 'Urgent' | 'Routine' | 'Two-Week Wait'
|
||||
referrerName: string
|
||||
referrerEmail: string
|
||||
referrerOrg?: string
|
||||
reason: string
|
||||
contactMethod: 'Email' | 'Phone' | 'LinkedIn'
|
||||
}
|
||||
Reference in New Issue
Block a user