From 2033a93ecb94e18219c9ca5be93e113d612d319b Mon Sep 17 00:00:00 2001 From: A Charlwood Date: Wed, 11 Feb 2026 00:37:20 +0000 Subject: [PATCH] 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. --- src/data/consultations.ts | 133 +++++++++++++++++++ src/data/documents.ts | 62 +++++++++ src/data/investigations.ts | 89 +++++++++++++ src/data/medications.ts | 262 +++++++++++++++++++++++++++++++++++++ src/data/patient.ts | 18 +++ src/data/problems.ts | 111 ++++++++++++++++ src/types/pmr.ts | 115 ++++++++++++++++ 7 files changed, 790 insertions(+) create mode 100644 src/data/consultations.ts create mode 100644 src/data/documents.ts create mode 100644 src/data/investigations.ts create mode 100644 src/data/medications.ts create mode 100644 src/data/patient.ts create mode 100644 src/data/problems.ts create mode 100644 src/types/pmr.ts diff --git a/src/data/consultations.ts b/src/data/consultations.ts new file mode 100644 index 0000000..4b262dd --- /dev/null +++ b/src/data/consultations.ts @@ -0,0 +1,133 @@ +import type { Consultation } from '@/types/pmr' + +export const consultations: Consultation[] = [ + { + id: 'interim-head-2025', + date: '14 May 2025', + organization: 'NHS Norfolk & Waveney ICB', + orgColor: '#005EB8', + role: 'Interim Head, Population Health & Data Analysis', + duration: 'May 2025 — Nov 2025', + isCurrent: false, + history: 'Returned to substantive Deputy Head role following commencement of ICB-wide organisational consultation. Led strategic delivery of population health initiatives and data-driven medicines optimisation across Norfolk & Waveney ICS, reporting to Associate Director of Pharmacy with presentation accountability to Chief Medical Officer and system-level programme boards.', + examination: [ + 'Identified £14.6M efficiency programme through comprehensive data analysis', + 'Built Python-based switching algorithm: 14,000 patients identified, £2.6M annual savings', + 'Automated incentive scheme analysis: 50% reduction in targeted prescribing within 2 months', + ], + plan: [ + 'Achieved over-target performance by October 2025', + '£2M on target for delivery this financial year', + 'Presented to CMO bimonthly with evidence-based recommendations', + 'Led transformation to patient-level SQL analytics', + ], + codedEntries: [ + { code: 'EFF001', description: 'Efficiency programme: £14.6M identified' }, + { code: 'ALG001', description: 'Algorithm: 14,000 patients, £2.6M savings' }, + { code: 'AUT001', description: 'Automation: 50% prescribing reduction in 2mo' }, + { code: 'SQL001', description: 'Data transformation: practice→patient level' }, + ], + }, + { + id: 'deputy-head-2024', + date: '01 Jul 2024', + organization: 'NHS Norfolk & Waveney ICB', + orgColor: '#005EB8', + role: 'Deputy Head, Population Health & Data Analysis', + duration: 'Jul 2024 — Present', + isCurrent: true, + history: 'Driving data analytics strategy for medicines optimisation, developing bespoke datasets and analytical frameworks from messy, real-world GP prescribing data to identify efficiency opportunities and address health inequalities across the integrated care system.', + examination: [ + 'Managed £220M prescribing budget with sophisticated forecasting models', + 'Created comprehensive medicines data table with dm+d integration, morphine equivalents, Anticholinergic Burden scoring', + 'Led financial scenario modelling for DOAC switching programme', + 'Renegotiated pharmaceutical rebate terms securing improved commercial position', + 'Supported commissioning of tirzepatide (NICE TA1026) with financial projections', + 'Developed Python-based controlled drug monitoring system for population-scale OME tracking', + ], + plan: [ + 'Single source of truth established for all medicines analytics', + 'GP-led model adopted for tirzepatide delivery following executive sign-off', + 'Team data fluency improved through training, documentation, and self-serve tools', + ], + codedEntries: [ + { code: 'BUD001', description: 'Budget management: £220M oversight' }, + { code: 'DAT001', description: 'Data infrastructure: dm+d integration' }, + { code: 'LEA001', description: 'Leadership: team data literacy programme' }, + { code: 'MON001', description: 'Monitoring: CD OME tracking system' }, + ], + }, + { + id: 'high-cost-drugs-2022', + date: '01 May 2022', + organization: 'NHS Norfolk & Waveney ICB', + orgColor: '#005EB8', + role: 'High-Cost Drugs & Interface Pharmacist', + duration: 'May 2022 — Jul 2024', + isCurrent: false, + history: 'Led implementation of NICE technology appraisals and high-cost drug pathways across the ICS. Wrote most of the system\'s high-cost drug pathways—spanning rheumatology, ophthalmology (wet AMD, DMO, RVO), dermatology, gastroenterology, neurology, and migraine—balancing legal requirements to implement TAs against financial costs and local clinical preferences.', + examination: [ + 'Developed software automating Blueteq prior approval form creation', + 'Integrated Blueteq data with secondary care activity databases', + 'Created Python-based Sankey chart analysis tool for patient pathway visualisation', + ], + plan: [ + '70% reduction in required Blueteq forms, 200 hours immediate savings', + 'Ongoing 7–8 hours weekly efficiency gains', + 'Accurate high-cost drug spend tracking enabled', + 'Trusts enabled to audit compliance and identify improvement opportunities', + ], + codedEntries: [ + { code: 'AUT002', description: 'Automation: Blueteq form generation, 70% reduction' }, + { code: 'DAT002', description: 'Data integration: Blueteq + secondary care' }, + { code: 'VIS001', description: 'Visualisation: Sankey pathway analysis tool' }, + ], + }, + { + id: 'pharmacy-manager-2017', + date: '01 Nov 2017', + organization: 'Tesco PLC', + orgColor: '#00897B', + role: 'Pharmacy Manager', + duration: 'Nov 2017 — May 2022', + isCurrent: false, + history: 'Managed all pharmacy operations with full autonomy across a 100-hour contract, leading regional KPI delivery initiatives and contributing to national operational improvements. Served as Local Pharmaceutical Committee representative for Norfolk.', + examination: [ + 'Identified and shared asthma screening process adopted nationally across Tesco pharmacy estate (~300 branches)', + 'Led creation of national induction training plan and eLearning modules', + 'Supervised two staff members through NVQ3 qualifications to pharmacy technician registration', + ], + plan: [ + 'Reduced pharmacist time from ~60 hours to 6 hours per store per month', + 'Network enabled to claim approximately £1M in revenue', + 'Enhanced leadership development for non-pharmacist team members', + 'Full HR responsibilities including recruitment, performance management, grievances', + ], + codedEntries: [ + { code: 'INN001', description: 'Innovation: Asthma screening, ~£1M national revenue' }, + { code: 'TRN001', description: 'Training: National induction programme' }, + { code: 'LEA002', description: 'Leadership: Staff development to technician registration' }, + ], + }, + { + id: 'duty-pharmacist-2016', + date: '01 Aug 2016', + organization: 'Tesco PLC', + orgColor: '#00897B', + role: 'Duty Pharmacy Manager', + duration: 'Aug 2016 — Nov 2017', + isCurrent: false, + history: 'Commenced professional career as registered pharmacist following GPhC registration. Developed foundational skills in pharmacy operations, patient care, and team management within a high-volume community pharmacy setting.', + examination: [ + 'Progressed from newly registered pharmacist to Pharmacy Manager role', + 'Developed clinical and operational competencies in community pharmacy', + ], + plan: [ + 'GPhC registration obtained, beginning professional practice', + 'Foundation established for progression to management role', + ], + codedEntries: [ + { code: 'REG001', description: 'Registration: GPhC pharmacist qualification' }, + ], + }, +] diff --git a/src/data/documents.ts b/src/data/documents.ts new file mode 100644 index 0000000..c3bf72f --- /dev/null +++ b/src/data/documents.ts @@ -0,0 +1,62 @@ +import type { Document } from '@/types/pmr' + +export const documents: Document[] = [ + { + id: 'doc-mpharm', + type: 'Certificate', + title: 'MPharm (Hons) 2:1', + date: '2015', + source: 'UEA', + classification: 'Upper Second-Class Honours (2:1)', + institution: 'University of East Anglia, Norwich', + duration: '2011 — 2015 (4 years)', + researchDetail: 'Drug delivery and cocrystals', + researchGrade: '75.1% (Distinction)', + notes: 'MPharm is a 4-year integrated Master\'s degree required for pharmacist registration in the UK.', + }, + { + id: 'doc-gphc', + type: 'Registration', + title: 'GPhC Pharmacist Registration', + date: '2016', + source: 'GPhC', + classification: 'Registered Pharmacist', + institution: 'General Pharmaceutical Council', + duration: 'August 2016 — Present', + notes: 'Professional registration required to practise as a pharmacist in Great Britain.', + }, + { + id: 'doc-mary-seacole', + type: 'Certificate', + title: 'Mary Seacole Programme', + date: '2018', + source: 'NHS LA', + classification: '78%', + institution: 'NHS Leadership Academy', + duration: '2018', + notes: 'NHS leadership qualification covering change management, healthcare leadership, and system-level thinking.', + }, + { + id: 'doc-alevels', + type: 'Results', + title: 'A-Levels: Maths A*, Chem B, Politics C', + date: '2011', + source: 'Highworth Grammar', + classification: 'A* Mathematics, B Chemistry, C Politics', + institution: 'Highworth Grammar School, Ashford', + duration: '2009 — 2011', + notes: 'A-Levels required for MPharm programme entry.', + }, + { + id: 'doc-research', + type: 'Research', + title: 'Drug Delivery & Cocrystals', + date: '2015', + source: 'UEA', + classification: '75.1% (Distinction)', + institution: 'University of East Anglia, Norwich', + duration: '2014 — 2015', + researchDetail: 'Final year research project investigating cocrystal formation for improved drug delivery properties. Awarded Distinction grade.', + notes: 'Part of MPharm degree, contributing to final classification.', + }, +] diff --git a/src/data/investigations.ts b/src/data/investigations.ts new file mode 100644 index 0000000..2763f99 --- /dev/null +++ b/src/data/investigations.ts @@ -0,0 +1,89 @@ +import type { Investigation } from '@/types/pmr' + +export const investigations: Investigation[] = [ + { + id: 'inv-pharmetrics', + name: 'PharMetrics Interactive Platform', + requestedYear: 2024, + reportedYear: 2024, + status: 'Live', + resultSummary: 'Live at medicines.charlwood.xyz', + requestingClinician: 'A. Charlwood', + methodology: 'Real-time medicines expenditure dashboard providing actionable analytics for NHS decision-makers. Built with Power BI and SQL, tracking expenditure across the £220M prescribing budget.', + results: [ + 'Real-time tracking of medicines expenditure', + 'Actionable analytics for budget holders', + 'Self-serve model for wider team', + ], + techStack: ['Power BI', 'SQL', 'DAX'], + externalUrl: 'https://medicines.charlwood.xyz', + }, + { + id: 'inv-switching-algorithm', + name: 'Patient Switching Algorithm', + requestedYear: 2025, + reportedYear: 2025, + status: 'Complete', + resultSummary: '14,000 patients identified', + requestingClinician: 'A. Charlwood', + methodology: 'Python-based algorithm using real-world GP prescribing data to automatically identify patients on expensive drugs suitable for cost-effective alternatives. Compressed months of manual analysis into 3 days.', + results: [ + '14,000 patients identified for cost-effective alternatives', + '£2.6M annual savings potential identified', + '£2M on target for delivery this financial year', + 'Novel GP payment system linking rewards to savings', + ], + techStack: ['Python', 'Pandas', 'SQL'], + }, + { + id: 'inv-blueteq-gen', + name: 'Blueteq Generator', + requestedYear: 2023, + reportedYear: 2023, + status: 'Complete', + resultSummary: '70% reduction in forms', + requestingClinician: 'A. Charlwood', + methodology: 'Software automation of Blueteq prior approval form creation, reducing manual data entry and standardising form generation across high-cost drug pathways.', + results: [ + '70% reduction in required Blueteq forms', + '200 hours immediate savings', + '7–8 hours ongoing weekly efficiency gains', + 'Integrated with secondary care activity databases', + ], + techStack: ['Python', 'SQL'], + }, + { + id: 'inv-cd-monitoring', + name: 'CD Monitoring System', + requestedYear: 2024, + reportedYear: 2024, + status: 'Complete', + resultSummary: 'Population-scale OME tracking', + requestingClinician: 'A. Charlwood', + methodology: 'Python-based controlled drug monitoring system calculating oral morphine equivalents (OME) across all opioid prescriptions to track patient-level exposure over time.', + results: [ + 'Patient-level OME tracking over time', + 'High-risk patient identification', + 'Potential diversion detection', + 'Previously impossible population-scale analysis', + ], + techStack: ['Python', 'SQL'], + }, + { + id: 'inv-sankey-tool', + name: 'Sankey Chart Analysis Tool', + requestedYear: 2023, + reportedYear: 2023, + status: 'Complete', + resultSummary: 'Pathway audit capability', + requestingClinician: 'A. Charlwood', + methodology: 'Python-based visualisation tool for patient journey mapping through high-cost drug pathways, enabling trust-level compliance auditing.', + results: [ + 'Visual patient pathway representation', + 'Trust compliance auditing capability', + 'Improvement opportunity identification', + 'Multi-specialty pathway coverage', + ], + techStack: ['Python', 'Matplotlib', 'SQL'], + }, +] diff --git a/src/data/medications.ts b/src/data/medications.ts new file mode 100644 index 0000000..1daf776 --- /dev/null +++ b/src/data/medications.ts @@ -0,0 +1,262 @@ +import type { Medication } from '@/types/pmr' + +export const medications: Medication[] = [ + { + id: 'med-python', + name: 'Python', + dose: 90, + frequency: 'Daily', + startYear: 2017, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2017, description: 'Started: Self-taught for data analysis automation' }, + { year: 2019, description: 'Increased: Dashboard development, data pipeline work' }, + { year: 2022, description: 'Specialist use: Blueteq automation, Sankey analysis tools' }, + { year: 2024, description: 'Advanced: Switching algorithm (14,000 patients), CD monitoring' }, + { year: 2025, description: 'Current: Population-level analytics, incentive scheme automation' }, + ], + }, + { + id: 'med-sql', + name: 'SQL', + dose: 88, + frequency: 'Daily', + startYear: 2017, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2017, description: 'Started: Basic querying for prescribing analysis' }, + { year: 2019, description: 'Increased: Complex joins, data transformation' }, + { year: 2022, description: 'Advanced: Patient-level analytics, dm+d integration' }, + { year: 2024, description: 'Specialist: Comprehensive medicines data table development' }, + { year: 2025, description: 'Current: Population health data infrastructure' }, + ], + }, + { + id: 'med-powerbi', + name: 'Power BI', + dose: 92, + frequency: 'Daily', + startYear: 2019, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2019, description: 'Started: Dashboard creation for team reporting' }, + { year: 2021, description: 'Increased: DAX measures, data modelling' }, + { year: 2024, description: 'Advanced: PharMetrics real-time expenditure dashboard' }, + { year: 2025, description: 'Current: DOAC switching scenario model, executive reporting' }, + ], + }, + { + id: 'med-data-analysis', + name: 'Data Analysis', + dose: 95, + frequency: 'Daily', + startYear: 2016, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2016, description: 'Started: Prescribing data analysis in community pharmacy' }, + { year: 2018, description: 'Increased: Population-level data interpretation' }, + { year: 2022, description: 'Advanced: Real-world GP prescribing data at scale' }, + { year: 2024, description: 'Current: ICS-wide analytics strategy development' }, + ], + }, + { + id: 'med-js-ts', + name: 'JavaScript / TypeScript', + dose: 70, + frequency: 'Weekly', + startYear: 2020, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2020, description: 'Started: Web development for personal projects' }, + { year: 2022, description: 'Increased: React dashboard components' }, + { year: 2024, description: 'Current: CV/portfolio development, interactive tools' }, + ], + }, + { + id: 'med-dashboard', + name: 'Dashboard Development', + dose: 88, + frequency: 'Weekly', + startYear: 2019, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2019, description: 'Started: Power BI for prescribing metrics' }, + { year: 2022, description: 'Increased: Sankey visualisation tools' }, + { year: 2024, description: 'Current: Real-time expenditure tracking, scenario modelling' }, + ], + }, + { + id: 'med-algorithm', + name: 'Algorithm Design', + dose: 82, + frequency: 'Weekly', + startYear: 2022, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2022, description: 'Started: Basic automation logic for form generation' }, + { year: 2024, description: 'Increased: Controlled drug monitoring calculations' }, + { year: 2025, description: 'Current: Patient switching algorithm (14,000 identified)' }, + ], + }, + { + id: 'med-pipelines', + name: 'Data Pipelines', + dose: 80, + frequency: 'Weekly', + startYear: 2022, + status: 'Active', + category: 'Active', + prescribingHistory: [ + { year: 2022, description: 'Started: ETL processes for Blueteq integration' }, + { year: 2024, description: 'Increased: dm+d standardisation, morphine conversions' }, + { year: 2025, description: 'Current: ICS-wide data infrastructure' }, + ], + }, + { + id: 'med-meds-opt', + name: 'Medicines Optimisation', + dose: 95, + frequency: 'Daily', + startYear: 2016, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2016, description: 'Started: Community pharmacy clinical services' }, + { year: 2018, description: 'Increased: MUR/NMS delivery optimisation' }, + { year: 2022, description: 'Advanced: ICS-level optimisation strategy' }, + { year: 2025, description: 'Current: £14.6M efficiency programme delivery' }, + ], + }, + { + id: 'med-pop-health', + name: 'Population Health Analytics', + dose: 90, + frequency: 'Daily', + startYear: 2022, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2022, description: 'Started: GP prescribing data analysis' }, + { year: 2024, description: 'Increased: 1.2M population coverage' }, + { year: 2025, description: 'Current: ICS-wide health inequality analysis' }, + ], + }, + { + id: 'med-nice-ta', + name: 'NICE TA Implementation', + dose: 85, + frequency: 'Weekly', + startYear: 2022, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2022, description: 'Started: High-cost drug pathway development' }, + { year: 2023, description: 'Increased: Multi-specialty pathway authoring' }, + { year: 2024, description: 'Current: Tirzepatide (TA1026) commissioning' }, + ], + }, + { + id: 'med-health-econ', + name: 'Health Economics', + dose: 80, + frequency: 'Monthly', + startYear: 2023, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2023, description: 'Started: Financial scenario modelling' }, + { year: 2024, description: 'Increased: Rebate negotiation, DOAC switching analysis' }, + { year: 2025, description: 'Current: Efficiency programme prioritisation' }, + ], + }, + { + id: 'med-clinical-path', + name: 'Clinical Pathways', + dose: 82, + frequency: 'Weekly', + startYear: 2022, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2022, description: 'Started: Rheumatology, ophthalmology pathway design' }, + { year: 2023, description: 'Increased: Dermatology, gastroenterology, neurology' }, + { year: 2024, description: 'Current: System-wide pathway governance' }, + ], + }, + { + id: 'med-cd-assurance', + name: 'Controlled Drug Assurance', + dose: 88, + frequency: 'Weekly', + startYear: 2024, + status: 'Active', + category: 'Clinical', + prescribingHistory: [ + { year: 2024, description: 'Started: OME calculation system development' }, + { year: 2024, description: 'Increased: Population-scale monitoring capability' }, + { year: 2025, description: 'Current: High-risk patient identification, diversion detection' }, + ], + }, + { + id: 'med-budget', + name: 'Budget Management', + dose: 90, + frequency: 'As needed', + startYear: 2024, + status: 'Active', + category: 'PRN', + prescribingHistory: [ + { year: 2024, description: 'Started: £220M prescribing budget oversight' }, + { year: 2024, description: 'Increased: Forecasting model development' }, + { year: 2025, description: 'Current: Proactive financial planning, pressure identification' }, + ], + }, + { + id: 'med-stakeholder', + name: 'Stakeholder Engagement', + dose: 88, + frequency: 'As needed', + startYear: 2022, + status: 'Active', + category: 'PRN', + prescribingHistory: [ + { year: 2022, description: 'Started: Clinical lead engagement across care sectors' }, + { year: 2024, description: 'Increased: Executive communication, CMO presentations' }, + { year: 2025, description: 'Current: System-level programme board reporting' }, + ], + }, + { + id: 'med-pharma-neg', + name: 'Pharmaceutical Negotiation', + dose: 85, + frequency: 'As needed', + startYear: 2024, + status: 'Active', + category: 'PRN', + prescribingHistory: [ + { year: 2024, description: 'Started: Rebate terms renegotiation' }, + { year: 2024, description: 'Current: Improved commercial position for ICB' }, + ], + }, + { + id: 'med-team-dev', + name: 'Team Development', + dose: 82, + frequency: 'As needed', + startYear: 2017, + status: 'Active', + category: 'PRN', + prescribingHistory: [ + { year: 2017, description: 'Started: NVQ3 supervision to technician registration' }, + { year: 2019, description: 'Increased: National induction training development' }, + { year: 2024, description: 'Current: Data fluency training, self-serve tools' }, + ], + }, +] diff --git a/src/data/patient.ts b/src/data/patient.ts new file mode 100644 index 0000000..b1cffff --- /dev/null +++ b/src/data/patient.ts @@ -0,0 +1,18 @@ +import type { Patient } from '@/types/pmr' + +export const patient: Patient = { + name: 'CHARLWOOD, Andrew (Mr)', + displayName: 'Andrew Charlwood', + dob: '14/02/1993', + nhsNumber: '221 181 0', + nhsNumberTooltip: 'GPhC Registration Number', + address: 'Norwich, NR1', + phone: '07795553088', + email: 'andy@charlwood.xyz', + linkedin: 'linkedin.com/in/andycharlwood', + status: 'Active', + badge: 'Open to opportunities', + qualification: 'MPharm (Hons) 2:1', + university: 'UEA, 2015', + registrationYear: 'August 2016', +} diff --git a/src/data/problems.ts b/src/data/problems.ts new file mode 100644 index 0000000..c479bd7 --- /dev/null +++ b/src/data/problems.ts @@ -0,0 +1,111 @@ +import type { Problem } from '@/types/pmr' + +export const problems: Problem[] = [ + { + id: 'prob-budget', + code: 'MGT001', + description: '£220M prescribing budget oversight and management', + since: 'Jul 2024', + status: 'Active', + narrative: 'Responsible for managing the £220M prescribing budget for NHS Norfolk & Waveney ICB. Developed sophisticated forecasting models identifying cost pressures and enabling proactive financial planning. This is an ongoing responsibility requiring continuous monitoring and strategic intervention.', + linkedConsultations: ['deputy-head-2024'], + }, + { + id: 'prob-sql-transform', + code: 'TRN001', + description: 'Patient-level SQL analytics transformation', + since: '2025', + status: 'In Progress', + narrative: 'Leading transformation from practice-level data to patient-level SQL analytics, enabling targeted interventions and a self-serve model for the wider team. This foundational change will unlock previously impossible analysis at population scale.', + linkedConsultations: ['interim-head-2025', 'deputy-head-2024'], + }, + { + id: 'prob-data-literacy', + code: 'LEA001', + description: 'Team data literacy programme', + since: 'Jul 2024', + status: 'In Progress', + narrative: 'Educating colleagues on data interpretation and analytics best practices, improving data fluency across the team through training, documentation, and self-serve tools. Ongoing initiative to build sustainable analytical capability.', + linkedConsultations: ['deputy-head-2024'], + }, + { + id: 'prob-efficiency', + code: 'EFF001', + description: 'Manual prescribing analysis inefficiency', + resolved: 'Oct 2025', + status: 'Resolved', + outcome: 'Python algorithm: 14,000 pts, £2.6M/yr', + narrative: 'Built Python-based switching algorithm using real-world GP prescribing data to automatically identify patients on expensive drugs suitable for cost-effective alternatives. Compressed months of manual analysis into 3 days. Identified 14,000 patients and £2.6M in annual savings, with £2M on target for delivery this financial year.', + linkedConsultations: ['interim-head-2025'], + }, + { + id: 'prob-efficiency-target', + code: 'EFF002', + description: '£14.6M efficiency target identification and delivery', + resolved: 'Oct 2025', + status: 'Resolved', + outcome: 'Over-target performance achieved', + narrative: 'Identified and prioritised a £14.6M efficiency programme through comprehensive data analysis. Achieved over-target performance by October 2025 through targeted, evidence-based interventions across the integrated care system.', + linkedConsultations: ['interim-head-2025'], + }, + { + id: 'prob-blueteq-backlog', + code: 'AUT001', + description: 'Blueteq form creation backlog', + resolved: '2023', + status: 'Resolved', + outcome: '70% reduction, 200hrs saved', + narrative: 'Developed software automating Blueteq prior approval form creation. Achieved 70% reduction in required forms, 200 hours immediate savings, and ongoing 7–8 hours weekly efficiency gains.', + linkedConsultations: ['high-cost-drugs-2022'], + }, + { + id: 'prob-asthma-screening', + code: 'INN001', + description: 'Asthma screening scalability', + resolved: '2019', + status: 'Resolved', + outcome: 'National rollout: ~300 branches, ~£1M', + narrative: 'Identified and shared an asthma screening process that was adopted nationally across the Tesco pharmacy estate (~300 branches). Reduced pharmacist time from approximately 60 hours to 6 hours per store per month, enabling the network to claim approximately £1M in revenue.', + linkedConsultations: ['pharmacy-manager-2017'], + }, + { + id: 'prob-incentive-calc', + code: 'AUT002', + description: 'Incentive scheme manual calculation', + resolved: '2025', + status: 'Resolved', + outcome: 'Automated: 50% Rx reduction in 2 months', + narrative: 'Automated incentive scheme analysis, improving accuracy and targeting precision whilst enabling a novel GP payment system linking rewards to delivered savings. Achieved 50% reduction in targeted prescribing within the first two months of deployment.', + linkedConsultations: ['interim-head-2025'], + }, + { + id: 'prob-hcd-tracking', + code: 'DAT001', + description: 'High-cost drug spend tracking gaps', + resolved: '2023', + status: 'Resolved', + outcome: 'Blueteq-secondary care data integration', + narrative: 'Integrated Blueteq data with secondary care activity databases, resolving critical data-matching limitations and enabling accurate high-cost drug spend tracking across the system.', + linkedConsultations: ['high-cost-drugs-2022'], + }, + { + id: 'prob-pathway-opacity', + code: 'VIS001', + description: 'Patient pathway opacity', + resolved: '2023', + status: 'Resolved', + outcome: 'Sankey chart analysis tool', + narrative: 'Created Python-based Sankey chart analysis tool visualising patient journeys through high-cost drug pathways, enabling trusts to audit compliance and identify improvement opportunities.', + linkedConsultations: ['high-cost-drugs-2022'], + }, + { + id: 'prob-opioid-monitoring', + code: 'MON001', + description: 'Population opioid exposure monitoring', + resolved: '2024', + status: 'Resolved', + outcome: 'CD monitoring system: OME tracking', + narrative: 'Developed Python-based controlled drug monitoring system calculating oral morphine equivalents across all opioid prescriptions to track patient-level exposure over time, identifying high-risk patients and potential diversion—enabling previously impossible patient safety analysis at population scale.', + linkedConsultations: ['deputy-head-2024'], + }, +] diff --git a/src/types/pmr.ts b/src/types/pmr.ts new file mode 100644 index 0000000..8d9816c --- /dev/null +++ b/src/types/pmr.ts @@ -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' +}