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,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' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
@@ -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.',
|
||||||
|
},
|
||||||
|
]
|
||||||
@@ -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'],
|
||||||
|
},
|
||||||
|
]
|
||||||
@@ -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' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
@@ -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',
|
||||||
|
}
|
||||||
@@ -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'],
|
||||||
|
},
|
||||||
|
]
|
||||||
@@ -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