From 2b9a6210ece0ddc72d31da7882c43d2a86be032c Mon Sep 17 00:00:00 2001 From: A Charlwood Date: Fri, 13 Feb 2026 17:03:45 +0000 Subject: [PATCH] Task 2: Create new data files and update types Created five new data files for GP System Dashboard: - src/data/profile.ts: Personal statement from CV_v4.md - src/data/tags.ts: Sidebar tags (5 entries with color variants) - src/data/alerts.ts: Sidebar alert flags (2 entries) - src/data/kpis.ts: Latest Results metrics (4 KPI entries with explanations) - src/data/skills.ts: Core technical skills as "medications" (5 entries with user-specified frequencies) Updated src/types/pmr.ts with new interfaces: - Tag: label + colorVariant - Alert: message + severity + icon - KPI: id + value + label + sub + colorVariant + explanation - SkillMedication: full medication structure with frequency, years, proficiency, category, status, icon All CV content matches References/CV_v4.md exactly. All quality checks pass. Co-Authored-By: Claude Sonnet 4.5 --- src/data/alerts.ts | 14 +++++++++++ src/data/kpis.ts | 36 +++++++++++++++++++++++++++ src/data/profile.ts | 1 + src/data/skills.ts | 59 +++++++++++++++++++++++++++++++++++++++++++++ src/data/tags.ts | 9 +++++++ src/types/pmr.ts | 32 ++++++++++++++++++++++++ 6 files changed, 151 insertions(+) create mode 100644 src/data/alerts.ts create mode 100644 src/data/kpis.ts create mode 100644 src/data/profile.ts create mode 100644 src/data/skills.ts create mode 100644 src/data/tags.ts diff --git a/src/data/alerts.ts b/src/data/alerts.ts new file mode 100644 index 0000000..905fbd0 --- /dev/null +++ b/src/data/alerts.ts @@ -0,0 +1,14 @@ +import type { Alert } from '@/types/pmr' + +export const alerts: Alert[] = [ + { + message: '£14.6M SAVINGS IDENTIFIED', + severity: 'alert', + icon: 'AlertTriangle', + }, + { + message: '£220M BUDGET OVERSIGHT', + severity: 'amber', + icon: 'AlertCircle', + }, +] diff --git a/src/data/kpis.ts b/src/data/kpis.ts new file mode 100644 index 0000000..c7b665e --- /dev/null +++ b/src/data/kpis.ts @@ -0,0 +1,36 @@ +import type { KPI } from '@/types/pmr' + +export const kpis: KPI[] = [ + { + id: 'budget', + value: '£220M', + label: 'Budget Oversight', + sub: 'NHS prescribing', + colorVariant: 'green', + explanation: 'Managed the ICB\'s total prescribing budget with sophisticated forecasting models identifying cost pressures and enabling proactive financial planning across Norfolk & Waveney.', + }, + { + id: 'savings', + value: '£14.6M', + label: 'Efficiency Savings', + sub: 'Identified & tracked', + colorVariant: 'amber', + explanation: 'Identified and prioritised a £14.6M efficiency programme through comprehensive data analysis; achieved over-target performance through targeted, evidence-based interventions across the integrated care system.', + }, + { + id: 'years', + value: '9+', + label: 'Years in NHS', + sub: 'Since 2016', + colorVariant: 'teal', + explanation: 'Continuous NHS service since August 2016, progressing from community pharmacy through prescribing data analysis to system-level population health data leadership.', + }, + { + id: 'team', + value: '12', + label: 'Team Size Led', + sub: 'Cross-functional', + colorVariant: 'green', + explanation: 'Led a cross-functional team of 12 spanning data analysts, population health specialists, and pharmacists across data, analytics, and population health workstreams.', + }, +] diff --git a/src/data/profile.ts b/src/data/profile.ts new file mode 100644 index 0000000..d7d91ba --- /dev/null +++ b/src/data/profile.ts @@ -0,0 +1 @@ +export const personalStatement = `Healthcare leader combining clinical pharmacy expertise with proficiency in Python, SQL, and data analytics, self-taught over the past decade through a drive to find root causes in data and build the most efficient solutions to complex problems. Currently leading population health analytics for NHS Norfolk & Waveney ICB, serving a population of 1.2 million. Experienced in working with messy, real-world prescribing data at scale to deliver actionable insights—from financial scenario modelling and pharmaceutical rebate negotiation to algorithm design and population-level pathway development. Proven track record of identifying and prioritising efficiency programmes worth £14.6M+ through automated, data-driven analysis. Skilled at translating complex clinical, financial, and analytical requirements into clear recommendations for executive stakeholders.` diff --git a/src/data/skills.ts b/src/data/skills.ts new file mode 100644 index 0000000..879343f --- /dev/null +++ b/src/data/skills.ts @@ -0,0 +1,59 @@ +import type { SkillMedication } from '@/types/pmr' + +export const skills: SkillMedication[] = [ + { + id: 'data-analysis', + name: 'Data Analysis', + frequency: 'Twice daily', + startYear: 2016, + yearsOfExperience: 9, + proficiency: 95, + category: 'Technical', + status: 'Active', + icon: 'BarChart3', + }, + { + id: 'python', + name: 'Python', + frequency: 'Daily', + startYear: 2019, + yearsOfExperience: 6, + proficiency: 90, + category: 'Technical', + status: 'Active', + icon: 'Code2', + }, + { + id: 'sql', + name: 'SQL', + frequency: 'Daily', + startYear: 2018, + yearsOfExperience: 7, + proficiency: 88, + category: 'Technical', + status: 'Active', + icon: 'Database', + }, + { + id: 'power-bi', + name: 'Power BI', + frequency: 'Once weekly', + startYear: 2020, + yearsOfExperience: 5, + proficiency: 92, + category: 'Technical', + status: 'Active', + icon: 'PieChart', + }, + { + id: 'javascript-typescript', + name: 'JavaScript / TypeScript', + frequency: 'When required', + startYear: 2022, + yearsOfExperience: 3, + proficiency: 70, + category: 'Technical', + status: 'Active', + icon: 'FileCode2', + }, +] diff --git a/src/data/tags.ts b/src/data/tags.ts new file mode 100644 index 0000000..dca6a30 --- /dev/null +++ b/src/data/tags.ts @@ -0,0 +1,9 @@ +import type { Tag } from '@/types/pmr' + +export const tags: Tag[] = [ + { label: 'Pharmacist', colorVariant: 'teal' }, + { label: 'Data Lead', colorVariant: 'teal' }, + { label: 'NHS', colorVariant: 'teal' }, + { label: 'Population Health', colorVariant: 'amber' }, + { label: 'BI & Analytics', colorVariant: 'green' }, +] diff --git a/src/types/pmr.ts b/src/types/pmr.ts index 8d9816c..99bc2cb 100644 --- a/src/types/pmr.ts +++ b/src/types/pmr.ts @@ -113,3 +113,35 @@ export interface ReferralFormData { reason: string contactMethod: 'Email' | 'Phone' | 'LinkedIn' } + +export interface Tag { + label: string + colorVariant: 'teal' | 'amber' | 'green' +} + +export interface Alert { + message: string + severity: 'alert' | 'amber' + icon: string +} + +export interface KPI { + id: string + value: string + label: string + sub: string + colorVariant: 'green' | 'amber' | 'teal' + explanation: string +} + +export interface SkillMedication { + id: string + name: string + frequency: string + startYear: number + yearsOfExperience: number + proficiency: number + category: 'Technical' | 'Domain' | 'Leadership' + status: 'Active' | 'Historical' + icon: string +}