Teach me General practice knowledge beginner to advanced
General Practice GP curriculum core topics junior doctor structured guide 2024
https://www.gmc-uk.org/cdn/documents/topic-guides-2025_pdf-1…
"The family physician provides continuing, comprehensive care in a personalized manner to patients of all ages, regardless of the presence of disease or the nature of the presenting complaint. Family physicians accept responsibility for managing an individual's total health needs while maintaining an intimate, confidential relationship with the patient."
| Model | Core Concept | Key Technique |
|---|---|---|
| Pendleton (1984) | Patient's ideas, concerns and expectations (ICE) | Elicit ICE before agenda-setting |
| Calgary-Cambridge | Structure + relationship in parallel | Signposting, chunking, checking |
| Neighbour (1987) | 5 checkpoints: connect, summarize, handover, safety net, housekeeping | Safety-netting is mandatory |
| Stott & Davis | Every consultation has 4 potential areas: current problem, ongoing problems, preventive care, health promotion | Don't miss opportunistic prevention |
| Helman's Folk Model | Patient has a lay explanation for their illness | Understanding it reduces conflict |
| Level | Target | Example |
|---|---|---|
| Primary | Healthy people - prevent disease | Vaccination, smoking cessation, statins in high-risk |
| Secondary | Asymptomatic disease - detect early | Cervical smear, bowel cancer screening, BP check |
| Tertiary | Established disease - prevent complications | Tight diabetic control, cardiac rehab post-MI |
| Programme | Age Range | Test | Frequency |
|---|---|---|---|
| Breast cancer | 50-71 | Mammography | Every 3 years |
| Cervical cancer | 25-64 | HPV test + cytology | 25-49: 3-yearly; 50-64: 5-yearly |
| Bowel cancer | 50-74 | FIT (faecal immunochemical test) | Every 2 years |
| Diabetic eye | All diabetics | Retinal photography | Annually |
| AAA | Men at age 65 | Abdominal USS | Once |
| Antenatal | All pregnant | Blood, USS, anomaly scan | Trimester-based |
| Newborn | Neonates | Bloodspot, hearing, physical | In first weeks of life |
| Cause | Key features | Action |
|---|---|---|
| STEMI/NSTEMI | Crushing central chest pain, radiation to arm/jaw, sweating, nausea | 999, aspirin 300mg, sublingual GTN |
| PE | Pleuritic pain, dyspnoea, haemoptysis, risk factors | O2, LMWH, CT-PA, hospital |
| Aortic dissection | Tearing interscapular pain, unequal BPs, pulse deficit | 999 immediately |
| Pneumothorax | Sudden onset, young thin male, absent breath sounds | CXR, chest drain if tension |
| Pericarditis | Pleuritic, relieved by leaning forward, friction rub | NSAIDs + colchicine |
| Oesophageal | Burning, related to meals, relieved by antacids | PPI, lifestyle |
| MSK | Reproduced by palpation | Reassurance, analgesia |
| Drug | Monitoring | Key risks |
|---|---|---|
| Methotrexate | FBC + LFTs every 2-3 months | Myelosuppression, hepatotoxicity, pneumonitis |
| Lithium | Serum Li, TFTs, U&E every 3-6 months | Narrow therapeutic index; toxicity with dehydration/NSAIDs |
| Warfarin | INR (frequency depends on stability) | Interactions with almost everything |
| ACE inhibitors/ARBs | U&E + eGFR 1-2 weeks after starting | Hyperkalaemia, renal deterioration (>30% eGFR drop = stop) |
| NSAIDs | BP, U&E, consider PPI co-prescription | GI bleed, renal failure, fluid retention, HTN |
| Amiodarone | TFTs, LFTs, CXR every 6 months | Thyroid (hypo and hyper), pulmonary toxicity, photosensitivity |
| When you see a patient | Think about |
|---|---|
| Every consultation | ICE, red flags, safety-net, documentation |
| Chronic disease review | Targets met? Monitoring up-to-date? Medication review? |
| Prescribing | Indication, dose, interactions, monitoring, review date |
| Acutely unwell | NEWS2, sepsis, referral threshold, escalation |
| Preventive opportunity | Screening due? Vaccines? Smoking/alcohol/weight? CVD risk? |
| Complex/frail patient | Multimorbidity, polypharmacy, frailty score, what matters to them |
| Any safeguarding concern | Document, discuss, refer if needed |
| Ethical dilemma | Four pillars, capacity, confidentiality, best interests |
Generate a presentation on the top 20 GP clinical scenarios for junior doctors
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/gp-scenarios-pptx
~/gp-scenarios-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Top 20 GP Clinical Scenarios for Junior Doctors";
pres.author = "GP Education Series";
// ── COLOUR PALETTE ──────────────────────────────────────────────────────────
const C = {
navy: "0D2B4E", // dominant dark
teal: "1A7A8A", // supporting mid
aqua: "27B5C8", // accent
lightBg: "F0F7FA", // content slide background
white: "FFFFFF",
offWhite: "EBF4F7",
text: "1C2D3A",
subtext: "4A6577",
red: "C0392B",
orange: "E67E22",
green: "1E8449",
yellow: "F1C40F",
lightTeal: "D4EFF3",
};
// ── HELPERS ─────────────────────────────────────────────────────────────────
function titleSlide(pres, title, subtitle) {
const s = pres.addSlide();
// Dark navy full background
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
// Teal accent bar left
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.22, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
// Large subtle watermark text
s.addText("GP", { x: 5.5, y: 0.5, w: 4.2, h: 4, fontSize: 220, bold: true, color: C.teal, transparency: 80, fontFace: "Arial" });
// Title
s.addText(title, {
x: 0.7, y: 1.5, w: 8.6, h: 1.6,
fontSize: 36, bold: true, color: C.white, fontFace: "Calibri",
align: "left", valign: "middle"
});
// Subtitle
s.addText(subtitle, {
x: 0.7, y: 3.2, w: 7.5, h: 0.7,
fontSize: 18, color: C.aqua, fontFace: "Calibri", align: "left"
});
// Bottom bar
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.425, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("General Practice Education Series | Junior Doctor Guide", {
x: 0.3, y: 5.2, w: 9.5, h: 0.425,
fontSize: 10, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
}
function sectionDivider(pres, number, title, subtitle) {
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.18, fill: { color: C.aqua }, line: { color: C.aqua } });
s.addText(`SCENARIO ${number}`, {
x: 0.6, y: 0.9, w: 8, h: 0.7,
fontSize: 14, bold: true, color: C.aqua, charSpacing: 4, fontFace: "Calibri"
});
s.addText(title, {
x: 0.6, y: 1.6, w: 8.5, h: 1.5,
fontSize: 32, bold: true, color: C.white, fontFace: "Calibri", align: "left"
});
s.addText(subtitle, {
x: 0.6, y: 3.2, w: 8.5, h: 0.8,
fontSize: 17, color: C.offWhite, fontFace: "Calibri", italic: true
});
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.425, fill: { color: C.navy }, line: { color: C.navy } });
s.addText("Top 20 GP Clinical Scenarios", {
x: 0.3, y: 5.2, w: 9.5, h: 0.425,
fontSize: 10, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
}
function contentSlide(pres, scenarioNum, title, badge, badgeColor, sections) {
// sections: [{heading, items:[string]}]
const s = pres.addSlide();
// Light background
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.lightBg }, line: { color: C.lightBg } });
// Left accent bar
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
// Top header band
s.addShape(pres.shapes.RECTANGLE, { x: 0.18, y: 0, w: 9.82, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
// Scenario number chip
s.addShape(pres.shapes.RECTANGLE, { x: 0.35, y: 0.1, w: 0.7, h: 0.8, fill: { color: C.aqua }, line: { color: C.aqua } });
s.addText(`${scenarioNum}`, {
x: 0.35, y: 0.1, w: 0.7, h: 0.8,
fontSize: 20, bold: true, color: C.navy, fontFace: "Calibri", align: "center", valign: "middle", margin: 0
});
// Title
s.addText(title, {
x: 1.2, y: 0.1, w: 6.8, h: 0.8,
fontSize: 20, bold: true, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0
});
// Badge (urgency)
s.addShape(pres.shapes.RECTANGLE, { x: 8.1, y: 0.18, w: 1.7, h: 0.64, fill: { color: badgeColor }, line: { color: badgeColor } });
s.addText(badge, {
x: 8.1, y: 0.18, w: 1.7, h: 0.64,
fontSize: 11, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle", margin: 0
});
// Content columns
const cols = sections.length;
const colW = 9.3 / cols;
sections.forEach((sec, i) => {
const cx = 0.35 + i * colW;
// Section heading box
s.addShape(pres.shapes.RECTANGLE, {
x: cx, y: 1.1, w: colW - 0.12, h: 0.4,
fill: { color: C.teal }, line: { color: C.teal }
});
s.addText(sec.heading, {
x: cx, y: 1.1, w: colW - 0.12, h: 0.4,
fontSize: 11, bold: true, color: C.white, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
// Bullet items
const bulletItems = sec.items.map((item, idx) => ({
text: item,
options: { bullet: { type: "bullet" }, breakLine: idx < sec.items.length - 1 }
}));
s.addText(bulletItems, {
x: cx + 0.06, y: 1.58, w: colW - 0.22, h: 3.7,
fontSize: 10.5, color: C.text, fontFace: "Calibri",
valign: "top", lineSpacingMultiple: 1.25
});
});
// Footer
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.425, fill: { color: C.navy }, line: { color: C.navy } });
s.addText(`Top 20 GP Clinical Scenarios | Scenario ${scenarioNum}: ${title}`, {
x: 0.3, y: 5.2, w: 9.5, h: 0.425,
fontSize: 10, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
}
function overviewSlide(pres, scenarios) {
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.18, fill: { color: C.aqua }, line: { color: C.aqua } });
s.addText("THE 20 SCENARIOS AT A GLANCE", {
x: 0.4, y: 0.3, w: 9.2, h: 0.65,
fontSize: 18, bold: true, color: C.white, charSpacing: 2, fontFace: "Calibri"
});
// Two columns of 10
const half = Math.ceil(scenarios.length / 2);
[0, 1].forEach(col => {
const colX = col === 0 ? 0.4 : 5.2;
const colItems = scenarios.slice(col * half, (col + 1) * half);
colItems.forEach((sc, i) => {
const y = 1.1 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, {
x: colX, y: y, w: 0.38, h: 0.32,
fill: { color: C.aqua }, line: { color: C.aqua }
});
s.addText(`${col * half + i + 1}`, {
x: colX, y: y, w: 0.38, h: 0.32,
fontSize: 10, bold: true, color: C.navy, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
s.addText(sc, {
x: colX + 0.44, y: y, w: 4.3, h: 0.32,
fontSize: 11, color: C.white, fontFace: "Calibri",
valign: "middle", margin: 0
});
});
});
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.425, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("GP Education Series | Junior Doctor Reference Guide", {
x: 0.3, y: 5.2, w: 9.5, h: 0.425,
fontSize: 10, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
}
function closingSlide(pres) {
const s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: C.navy }, line: { color: C.navy } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 0.22, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
s.addText("KEY PRINCIPLES TO REMEMBER", {
x: 0.7, y: 0.5, w: 8.5, h: 0.7,
fontSize: 14, bold: true, color: C.aqua, charSpacing: 3, fontFace: "Calibri"
});
const principles = [
["1. Safety-net every consultation", "Always tell patients what to watch for and when to return."],
["2. Elicit ICE", "Ideas, Concerns, Expectations — the consultation is a two-way exchange."],
["3. Red flags come first", "Screen for serious pathology before reassuring."],
["4. Start low, go slow", "Especially in the elderly, polypharmacy, and renal impairment."],
["5. Document everything", "If it isn't written, it didn't happen. Protect yourself and your patient."],
["6. Know your escalation path", "Have a low threshold to seek senior input or admit."],
];
principles.forEach((p, i) => {
const y = 1.3 + i * 0.68;
s.addText(p[0], { x: 0.7, y: y, w: 8.5, h: 0.3, fontSize: 13, bold: true, color: C.aqua, fontFace: "Calibri" });
s.addText(p[1], { x: 0.7, y: y + 0.3, w: 8.5, h: 0.3, fontSize: 11.5, color: C.white, fontFace: "Calibri" });
});
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.2, w: 10, h: 0.425, fill: { color: C.teal }, line: { color: C.teal } });
s.addText("Top 20 GP Clinical Scenarios | General Practice Education Series", {
x: 0.3, y: 5.2, w: 9.5, h: 0.425,
fontSize: 10, color: C.white, fontFace: "Calibri", align: "left", valign: "middle"
});
}
// ── SCENARIO DATA ────────────────────────────────────────────────────────────
const scenarioNames = [
"Chest Pain", "Acute Breathlessness", "Headache", "Abdominal Pain",
"Back Pain", "Fatigue & Tiredness", "Hypertension Management",
"Type 2 Diabetes Review", "Mental Health — Depression", "Mental Health — Anxiety",
"UTI & Dysuria", "Skin Rash — Eczema & Psoriasis", "Knee Pain",
"Cough & Respiratory Symptoms", "Dizziness & Vertigo",
"Palpitations & AF", "The Paediatric Consultation", "Women's Health",
"Elderly & Frailty Assessment", "Medically Unexplained Symptoms"
];
const scenarios = [
// 1. Chest Pain
{
num: 1, title: "Chest Pain", badge: "HIGH RISK", badgeColor: C.red,
sections: [
{
heading: "🔴 RED FLAGS — Act Now",
items: [
"Crushing / pressure pain radiating to arm or jaw",
"Diaphoresis, nausea, vomiting",
"Sudden tearing pain: aortic dissection",
"Pleuritic pain + dyspnoea + risk factors: PE",
"Silent chest + haemodynamic instability",
"999 + aspirin 300mg for suspected ACS"
]
},
{
heading: "📋 Causes & Key Features",
items: [
"ACS: central, crushing, ECG changes (ST, T-wave)",
"PE: Well's score, D-dimer, CT-PA",
"Pericarditis: positional, friction rub, saddle ST",
"Pneumothorax: sudden onset, young male",
"GORD: burning, post-prandial, relieved by antacid",
"MSK: reproduced on palpation, positional"
]
},
{
heading: "✅ Management Approach",
items: [
"12-lead ECG within 10 min",
"Troponin: at presentation & 3h (hs-cTn)",
"Well's score for PE; TIMI/GRACE for ACS",
"GORD: PPI + lifestyle; review 4 wks",
"Pericarditis: NSAIDs + colchicine 3 months",
"Always safety-net: return if worsening"
]
}
]
},
// 2. Acute Breathlessness
{
num: 2, title: "Acute Breathlessness", badge: "HIGH RISK", badgeColor: C.red,
sections: [
{
heading: "🔴 Emergency Features",
items: [
"SpO2 <92% → oxygen immediately",
"Silent chest in asthmatic = life-threatening",
"Stridor: upper airway obstruction",
"Bilateral crackles + raised JVP: pulm oedema",
"NEWS2 ≥5: consider 999 or urgent transfer"
]
},
{
heading: "📋 Differential Diagnosis",
items: [
"Asthma exacerbation (wheeze, PEF <75%)",
"Acute LVF / pulmonary oedema",
"COPD exacerbation (controlled O2 88-92%)",
"Pneumonia: CURB-65 score",
"Pulmonary embolism",
"Anaphylaxis: urticaria, throat tightness"
]
},
{
heading: "✅ Immediate Actions",
items: [
"Oxygen + pulse oximetry",
"Salbutamol 2.5–5mg nebulised",
"CURB-65 score for pneumonia severity",
"Prednisolone 40mg if asthma/COPD",
"IV furosemide for pulmonary oedema",
"Adrenaline 0.5mg IM for anaphylaxis"
]
}
]
},
// 3. Headache
{
num: 3, title: "Headache", badge: "RED FLAGS VITAL", badgeColor: C.orange,
sections: [
{
heading: "🔴 Red Flag Headaches",
items: [
"Thunderclap (worst ever) → SAH until proven otherwise",
"Fever + neck stiffness + photophobia → meningitis",
"New headache >50 yrs → GCA/tumour",
"Progressive worsening over days-weeks",
"Focal neuro signs or papilloedema → raised ICP",
"Post-trauma: subdural haematoma"
]
},
{
heading: "📋 Common Causes",
items: [
"Tension-type: band-like, bilateral, no vomiting",
"Migraine: unilateral, throbbing, nausea, photophobia",
"Cluster: severe periorbital, autonomic features",
"Medication overuse: analgesia >10-15 days/month",
"GCA: temporal tenderness, jaw claudication, ESR >50"
]
},
{
heading: "✅ Management",
items: [
"Thunderclap: non-contrast CT head → LP if CT neg",
"GCA: prednisolone 40-60mg same day (do not wait for biopsy)",
"Migraine: triptan + NSAID/paracetamol; prophylaxis if ≥4/month",
"Tension: analgesia, sleep hygiene, stress management",
"Medication overuse: withdraw analgesics over 4-6 wks"
]
}
]
},
// 4. Abdominal Pain
{
num: 4, title: "Abdominal Pain", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "🔴 Don't Miss",
items: [
"Ruptured AAA: tearing pain + pulsatile mass + shock",
"Ectopic pregnancy: woman of reproductive age + pelvic pain",
"Appendicitis: RIF pain, Rovsing sign, fever",
"Mesenteric ischaemia: pain out of proportion to exam",
"Bowel obstruction: colicky pain + distension + vomiting"
]
},
{
heading: "📋 Common Causes by Region",
items: [
"RUQ: gallstones, cholecystitis, hepatitis",
"Epigastric: GORD, peptic ulcer, pancreatitis",
"RIF: appendicitis, Crohn's, ovarian cyst",
"LIF: diverticulitis, constipation, IBS, sigmoid cancer",
"Central: IBS, IBD, early appendicitis, mesenteric adenitis"
]
},
{
heading: "✅ Investigations & Management",
items: [
"Urine HCG: exclude ectopic in all women of reproductive age",
"Urine dipstick: UTI, renal colic",
"FBC, CRP, U&E, LFTs, amylase/lipase",
"USS: gallstones, ovarian pathology",
"IBS: Rome IV criteria, exclude organic (FBC, CRP, TTG, FOB)",
"GORD: lifestyle + PPI; H.pylori: test and treat"
]
}
]
},
// 5. Back Pain
{
num: 5, title: "Back Pain", badge: "VERY COMMON", badgeColor: C.teal,
sections: [
{
heading: "🔴 Red Flags — Must Exclude",
items: [
"Cauda equina: bilateral sciatica, saddle anaesthesia, bladder/bowel dysfunction → SAME-DAY MRI + surgical referral",
"Age <20 or first presentation >55 yrs",
"History of malignancy, immunosuppression",
"Night pain, unexplained weight loss, fever",
"Progressive neurological deficit"
]
},
{
heading: "📋 Classification",
items: [
"Non-specific LBP: 90% of cases, no radiculopathy",
"Sciatica: dermatomal leg pain, L4/L5/S1 roots",
"Spinal stenosis: neurogenic claudication (worse walking, better sitting)",
"Inflammatory: morning stiffness >1hr, age <40, improves with exercise (suspect AS)",
"Malignant: constant, progressive, systemic symptoms"
]
},
{
heading: "✅ Management",
items: [
"Non-specific: reassure (self-limiting), encourage activity",
"Analgesia: paracetamol → topical/oral NSAID + PPI → weak opioid (short-term only)",
"Physiotherapy referral for persistent symptoms",
"Avoid imaging unless red flags present",
"Sciatica: self-limiting; steroids/surgery if persistent >6 wks",
"Sick note: early return to work advised"
]
}
]
},
// 6. Fatigue
{
num: 6, title: "Fatigue & Tiredness", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "🔴 Serious Causes to Exclude",
items: [
"Malignancy: weight loss, night sweats, lymphadenopathy",
"Cardiac failure: dyspnoea, ankle swelling, orthopnoea",
"Hypothyroidism: very common, easily missed",
"Anaemia: pallor, tachycardia, iron deficiency most common",
"Diabetes: polyuria, polydipsia, HbA1c",
"Obstructive sleep apnoea: snoring, witnessed apnoeas"
]
},
{
heading: "📋 Common Causes",
items: [
"Depression / anxiety (most common overall)",
"Iron deficiency / anaemia",
"Hypothyroidism (check TSH)",
"Vitamin B12 / folate deficiency",
"Chronic kidney disease",
"Coeliac disease (anti-tTG IgA)",
"Post-viral / ME/CFS"
]
},
{
heading: "✅ Investigation Pathway",
items: [
"First line: FBC, ferritin, TFTs, HbA1c, U&E, LFTs, ESR/CRP, B12/folate, glucose",
"Second line: anti-tTG, hepatitis serology, cortisol",
"Sleep study if OSA suspected (Epworth score)",
"PHQ-9 for depression, GAD-7 for anxiety",
"CFS/ME: diagnose clinically after excluding organic causes; graded activity + CBT"
]
}
]
},
// 7. Hypertension
{
num: 7, title: "Hypertension Management", badge: "CHRONIC", badgeColor: C.teal,
sections: [
{
heading: "📋 Diagnosis & Classification",
items: [
"Stage 1: clinic ≥140/90; ABPM daytime 135/85",
"Stage 2: clinic ≥160/100; ABPM daytime ≥150/95",
"Severe: clinic ≥180/120 — same-day treatment",
"Confirm ALL readings with ABPM or HBPM before treating",
"Assess for end-organ damage: U&E, eGFR, urine ACR, ECG, fundoscopy"
]
},
{
heading: "💊 Treatment Ladder (NICE AB/CD)",
items: [
"Step 1: ACEi/ARB (<55 yrs, diabetic) OR CCB (≥55 yrs, Afro-Caribbean)",
"Step 2: ACEi + CCB",
"Step 3: ACEi + CCB + thiazide-like diuretic (chlortalidone/indapamide)",
"Step 4: Add spironolactone 25mg (if K+ <4.5); alpha or beta-blocker",
"Resistant hypertension: refer to specialist"
]
},
{
heading: "✅ Targets & Monitoring",
items: [
"<80 yrs: <140/90 (clinic)",
"≥80 yrs: <150/90",
"Diabetes / CKD with proteinuria: <130/80",
"Annual: BP, U&E, eGFR, urine ACR, QRISK3",
"Check adherence before escalating therapy",
"Lifestyle: low salt, exercise, alcohol <14 units/wk"
]
}
]
},
// 8. Diabetes
{
num: 8, title: "Type 2 Diabetes Review", badge: "CHRONIC", badgeColor: C.teal,
sections: [
{
heading: "📋 Annual Review Checklist",
items: [
"HbA1c (target <48 mmol/mol or individualised)",
"Blood pressure (target <140/80)",
"Cholesterol + statin therapy",
"eGFR + urine ACR (nephropathy)",
"Foot examination: pulses, sensation, inspection",
"Retinal screening (digital photography programme)",
"Smoking status + immunisations (flu, pneumococcal)"
]
},
{
heading: "💊 Treatment Algorithm",
items: [
"1st: Lifestyle + Metformin (if eGFR >30)",
"2nd: Add SGLT-2i (if CVD, HF, CKD) or DPP-4i (weight neutral) or GLP-1 RA (if BMI >35)",
"3rd: Sulfonylurea (gliclazide) or insulin",
"Sick day rules: hold Metformin + SGLT-2i if unwell/dehydrated (SADMAN)",
"Hypoglycaemia: 15g fast-acting glucose → recheck in 15 min"
]
},
{
heading: "✅ Complications Screening",
items: [
"Neuropathy: 10g monofilament + vibration (128Hz tuning fork)",
"Nephropathy: urine ACR (>3 mg/mmol is microalbuminuria)",
"Retinopathy: digital retinal photography annually",
"Macrovascular: CVD risk with QRISK3; aspirin NOT routinely recommended for primary prevention",
"Erectile dysfunction: ask routinely (often presenting complaint)"
]
}
]
},
// 9. Depression
{
num: 9, title: "Mental Health — Depression", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "📋 Diagnosis",
items: [
"Core symptoms: low mood, anhedonia, fatigue",
"PHQ-9: ≥10 = moderate; ≥20 = severe",
"≥2 weeks duration",
"Always ask about suicide: 'Do you have thoughts of harming yourself?'",
"Exclude organic causes: TFTs, FBC, B12, HbA1c"
]
},
{
heading: "💊 Stepped Care (NICE CG90)",
items: [
"Step 1: Watchful waiting (mild, <2 wks); psychoeducation; exercise",
"Step 2: Guided self-help, CBT, IAPT referral",
"Step 3: SSRI first-line (sertraline 50mg; increase to 100-200mg)",
"Warn: initial anxiety ↑ for 1-2 weeks; effect takes 4-6 weeks",
"Duration: ≥6 months after remission; 2 yrs if ≥2 prior episodes",
"Step 4: Specialist referral; combination therapy"
]
},
{
heading: "⚠️ Risk Management",
items: [
"PATHOS mnemonic for overdose risk",
"SAFE-T or Columbia Suicide Severity Rating Scale",
"Document risk assessment every consultation",
"Safety plan: emergency contacts, remove means",
"Crisis line: NHS 111 option 2 / Samaritans 116 123",
"Same-day referral to Crisis Team if imminent risk"
]
}
]
},
// 10. Anxiety
{
num: 10, title: "Mental Health — Anxiety", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "📋 Types & Assessment",
items: [
"GAD: persistent, uncontrollable worry; GAD-7 ≥10",
"Panic disorder: recurrent unexpected panic attacks",
"Social anxiety: fear of scrutiny/embarrassment",
"PTSD: trauma, flashbacks, hypervigilance, avoidance",
"OCD: intrusive thoughts + compulsions",
"Always screen for depression (often co-exists)"
]
},
{
heading: "💊 Management (NICE CG113)",
items: [
"Step 1-2: Psychoeducation, self-help (Anxiety UK, MIND), IAPT",
"Step 3: CBT (NICE first-line for GAD, panic, social anxiety)",
"SSRI: sertraline first-line; or SNRI (venlafaxine 75-225mg)",
"Pregabalin for GAD if SSRI intolerant",
"Avoid benzodiazepines beyond 2-4 weeks (dependence)",
"Beta-blockers (propranolol) for situational anxiety/physical symptoms only"
]
},
{
heading: "✅ Key Points for GP",
items: [
"Validate the experience before explaining it",
"Explain physiology: fight-or-flight, hyperventilation",
"Breathing exercises: 4-7-8 technique",
"Avoid avoidance: gradual exposure",
"Refer to IAPT (Improving Access to Psychological Therapies)",
"Review at 2, 4, 8 weeks after starting medication"
]
}
]
},
// 11. UTI
{
num: 11, title: "UTI & Dysuria", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "📋 Diagnosis",
items: [
"Classic triad: dysuria, frequency, urgency",
"Urine dipstick: nitrites + leucocytes (high positive predictive value)",
"MSU before treating: if male, recurrent, pregnant, pyelonephritis",
"Pyelonephritis: loin pain, fever, rigors, systemically unwell",
"Asymptomatic bacteriuria: do NOT treat (except in pregnancy)"
]
},
{
heading: "💊 Treatment",
items: [
"Uncomplicated UTI (women): nitrofurantoin 100mg MR BD x5d (1st line) or trimethoprim 200mg BD x7d",
"Pyelonephritis: ciprofloxacin 500mg BD x7d or co-amoxiclav",
"Pyelonephritis with systemic upset: admit for IV antibiotics",
"Men: always MSU first; treat as complicated UTI x14d",
"Pregnancy: amoxicillin or nitrofurantoin (avoid nitrofurantoin at term)"
]
},
{
heading: "⚠️ Recurrent UTI",
items: [
"≥2 in 6 months or ≥3 in 12 months",
"Investigate: USS kidneys, cystoscopy (exclude structural cause)",
"Self-start antibiotics strategy",
"Post-coital prophylaxis if triggered by intercourse",
"Topical oestrogen for post-menopausal women",
"Cranberry: limited evidence but safe; D-mannose: emerging evidence"
]
}
]
},
// 12. Skin Rash
{
num: 12, title: "Skin Rash — Eczema & Psoriasis", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "🔴 Urgent Rashes — Do Not Miss",
items: [
"Meningococcal purpura: non-blanching, systemically unwell → 999",
"Stevens-Johnson syndrome: mucous membrane involvement, skin sloughing",
"Toxic epidermal necrolysis: >30% BSA, high mortality",
"Necrotising fasciitis: rapidly spreading cellulitis with systemic sepsis",
"Anaphylaxis: urticaria + angio-oedema + haemodynamic compromise"
]
},
{
heading: "📋 Eczema Management",
items: [
"Emollients: first-line, used as soap substitute, applied generously",
"Topical corticosteroids: mildest effective potency; 'fingertip unit' dosing",
"Avoid triggers (soaps, wool, pets, stress)",
"Wet wraps for severe childhood eczema",
"Tacrolimus/pimecrolimus: steroid-sparing for face/flexures",
"Dupilumab (Dupixent): specialist option for moderate-severe atopic eczema"
]
},
{
heading: "📋 Psoriasis Management",
items: [
"Assess severity: PASI score, DLQI (quality of life)",
"Mild: emollients + vitamin D analogue (calcipotriol) ± potent steroid",
"Moderate-severe: refer dermatology; options include PUVA, methotrexate, ciclosporin, biologics (anti-TNF, anti-IL-17/23)",
"Psoriatic arthritis in 30%: refer rheumatology if joints involved",
"ABCDE skin cancer screen at every appointment"
]
}
]
},
// 13. Knee Pain
{
num: 13, title: "Knee Pain", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "📋 Differential Diagnosis",
items: [
"Osteoarthritis: age >45, chronic, worse on activity, crepitus",
"Patellofemoral pain: young, anterior pain, worse stairs",
"Meniscal tear: twisting injury, joint line tenderness, McMurray test",
"ACL rupture: 'pop', immediate swelling, instability",
"Gout: acute monoarthritis, 1st MTP or knee, hyperuricaemia",
"Septic arthritis: hot, swollen, systemically unwell → medical emergency"
]
},
{
heading: "🔴 Don't Miss",
items: [
"Septic arthritis: fever + acutely hot joint + restricted movement → joint aspiration + IV antibiotics",
"Haemarthrosis: ACL/PCL rupture, fracture",
"Locking: locked extension → loose body or bucket-handle meniscal tear",
"Bone tumour: persistent night pain, child/young adult, warm swelling"
]
},
{
heading: "✅ Management",
items: [
"Osteoarthritis: weight loss + exercise first-line; physio; topical NSAID; oral NSAID + PPI; intra-articular steroid; referral for TKR",
"Gout: NSAIDs or colchicine acutely; allopurinol for prophylaxis (start 2-4 wks after acute episode; target urate <360 μmol/L)",
"Ottawa Knee Rules: X-ray only if age >55, isolated fibula head tenderness, inability to weight-bear"
]
}
]
},
// 14. Cough
{
num: 14, title: "Cough & Respiratory Symptoms", badge: "VERY COMMON", badgeColor: C.teal,
sections: [
{
heading: "🔴 Red Flags",
items: [
"Haemoptysis: CXR urgently; 2WW lung referral",
"Cough >3 weeks in smoker → urgent CXR",
"Weight loss + night sweats + chronic cough → TB / malignancy",
"Stridor: upper airway compromise",
"Progressive dyspnoea + clubbing + bibasal crackles → IPF"
]
},
{
heading: "📋 Causes by Duration",
items: [
"Acute (<3 wks): URTI (viral, self-limiting), acute bronchitis, pneumonia",
"Subacute (3-8 wks): post-infectious, Bordetella pertussis",
"Chronic (>8 wks): asthma, GORD, post-nasal drip, ACEi side-effect, COPD, malignancy",
"ACE inhibitor cough in 10-15%: switch to ARB"
]
},
{
heading: "✅ Management",
items: [
"Viral URTI: reassure, no antibiotics, self-limiting",
"Use CRP POC test to guide antibiotic decision in RTI (<20 mg/L: no antibiotic; 20-100: delayed prescription; >100: antibiotic)",
"Pertussis: azithromycin (to reduce spread even if late presentation)",
"Asthma: step up inhaler therapy (see Module 4)",
"GORD cough: PPI 2 months trial",
"Any persistent/unexplained cough in adult: CXR"
]
}
]
},
// 15. Dizziness
{
num: 15, title: "Dizziness & Vertigo", badge: "COMMON", badgeColor: C.teal,
sections: [
{
heading: "📋 Is This Central or Peripheral?",
items: [
"HINTS exam in acute vertigo: Head Impulse test, Nystagmus, Test of Skew",
"Central (dangerous): direction-changing nystagmus, normal head impulse test, vertical nystagmus → STROKE/posterior fossa lesion",
"Peripheral (benign): unidirectional nystagmus, abnormal head impulse, no skew deviation"
]
},
{
heading: "📋 Common Causes",
items: [
"BPPV: brief episodes on head movement, Dix-Hallpike positive",
"Vestibular neuritis: prolonged severe vertigo, viral onset, no hearing loss",
"Ménière's disease: episodic vertigo + unilateral hearing loss + tinnitus + aural fullness",
"Orthostatic hypotension: postural, check lying/standing BP",
"Presyncope: cardiac, anaemia, dehydration"
]
},
{
heading: "✅ Management",
items: [
"BPPV: Epley manoeuvre (highly effective, do in consultation)",
"Vestibular neuritis: prochlorperazine short-term; vestibular rehabilitation exercises",
"Ménière's: low-salt diet, betahistine 16mg TDS; ENT referral",
"Orthostatic hypotension: hydration, compression stockings, review medications",
"Acute severe vertigo + headache + ataxia → urgent CT/MRI: exclude posterior circulation stroke"
]
}
]
},
// 16. Palpitations / AF
{
num: 16, title: "Palpitations & Atrial Fibrillation", badge: "IMPORTANT", badgeColor: C.orange,
sections: [
{
heading: "📋 Differential & Assessment",
items: [
"Ectopics (PAC/PVC): most common, benign; palpitations described as 'skip' or 'thump'",
"Paroxysmal AF: irregular, confirmed on ECG or 24h Holter",
"SVT: regular rapid palpitations, sudden onset and offset; vagal manoeuvres",
"VT: structural heart disease; syncope; high risk",
"Thyrotoxicosis: always check TFTs",
"Causes of AF: HTN, heart failure, thyroid disease, alcohol, sepsis, PE"
]
},
{
heading: "💊 AF Management",
items: [
"Rate control: beta-blocker (bisoprolol) or CCB (diltiazem), or digoxin in HFrEF",
"Rhythm control: flecainide, amiodarone, or cardioversion",
"CHA₂DS₂-VASc ≥2 (men) or ≥3 (women): DOAC — apixaban, rivaroxaban, edoxaban, dabigatran",
"DOACs preferred over warfarin for non-valvular AF",
"HAS-BLED: identify and correct modifiable bleeding risks"
]
},
{
heading: "⚠️ Urgent Referral Triggers",
items: [
"AF with rapid ventricular rate + haemodynamic compromise → 999",
"New AF with chest pain or heart failure symptoms → admit",
"VT or pre-syncope with structural heart disease → cardiology urgently",
"SVT refractory to vagal manoeuvres → adenosine (if trained) or hospital",
"First presentation AF: TFTs, echo, 24h Holter if paroxysmal"
]
}
]
},
// 17. Paediatrics
{
num: 17, title: "The Paediatric Consultation", badge: "SPECIALISED", badgeColor: C.orange,
sections: [
{
heading: "🔴 The Sick Child — Red Flags",
items: [
"Non-blanching rash: meningococcal septicaemia → 999 + IM benzylpenicillin",
"High fever + bulging fontanelle in infant: meningitis",
"Inspiratory stridor + drooling + toxic: epiglottitis → DO NOT examine throat",
"Wheeze + SpO2 <92%: acute severe asthma",
"Bilious vomiting in neonate: malrotation/volvulus until proved otherwise",
"Febrile seizure: reassure if simple; investigate if complex/prolonged"
]
},
{
heading: "📋 Common Paediatric Presentations",
items: [
"Fever in child <5: viral in 90%; use feverish illness traffic light (NICE CG160)",
"Otitis media: usually viral; amoxicillin only if <2 yrs bilateral, discharge, or systemically unwell",
"Tonsillitis: FeverPAIN score; phenoxymethylpenicillin if bacterial",
"Croup: seal-bark cough, stridor; single dose oral dexamethasone 0.15mg/kg",
"Bronchiolitis: RSV, winter; supportive care; refer if SpO2 <92% or feeding <50%"
]
},
{
heading: "✅ Safeguarding & Communication",
items: [
"Always consider non-accidental injury: inconsistent history, unusual injury pattern, delayed presentation",
"Communicate with child at their level; include them in the consultation",
"Gillick competence: Fraser guidelines for contraception in under-16s",
"Growth monitoring: plot on centile chart; faltering growth if drops ≥2 centile lines",
"Developmental milestones: red flags at 6wks, 6-8 mths, 18 mths, 2-3 yrs"
]
}
]
},
// 18. Women's Health
{
num: 18, title: "Women's Health", badge: "ESSENTIAL", badgeColor: C.teal,
sections: [
{
heading: "📋 Contraception Key Points",
items: [
"COCP CI: migraine with aura, VTE, smoker >35, BP >160/100, breast cancer",
"POP: safe in most situations; no oestrogen so fewer CI",
"Most effective: LARC (IUD, IUS/Mirena, implant, DMPA injection)",
"Mirena IUS: also first-line for heavy menstrual bleeding",
"Emergency contraception: levonorgestrel within 72h; ulipristal within 120h; Cu-IUD most effective"
]
},
{
heading: "📋 Menopause",
items: [
"Diagnose clinically ≥45 yrs with symptoms (flushing, sweats, urogenital atrophy, mood changes)",
"Check FSH only if <45 yrs",
"HRT first-line for vasomotor symptoms: oestrogen + progestogen (if uterus intact)",
"Modern HRT: favourable risk-benefit in most women <60 yrs or <10 yrs post-menopause",
"Alternatives: SSRIs (venlafaxine/paroxetine), clonidine, CBT for vasomotor symptoms"
]
},
{
heading: "📋 Cervical & Breast",
items: [
"Cervical screening: HPV primary test; 25-49 yrs every 3 yrs; 50-64 yrs every 5 yrs",
"Abnormal cervical smear: high-risk HPV positive → colposcopy",
"Breast lump: any new discrete lump in woman ≥30 → 2WW breast referral",
"BRCA1/2 testing: FH of breast + ovarian cancer; referral to genetics",
"Menorrhagia workup: FBC (iron deficiency), TFTs, USS (fibroids, polyps), coagulation if heavy from menarche"
]
}
]
},
// 19. Elderly / Frailty
{
num: 19, title: "Elderly & Frailty Assessment", badge: "COMPLEX", badgeColor: C.orange,
sections: [
{
heading: "📋 Frailty Assessment",
items: [
"Clinical Frailty Scale (CFS) 1-9: use in all patients ≥65",
"CFS ≥5: frail; modify treatment targets, prescribing, and resuscitation decisions",
"Frailty syndromes: falls, delirium, immobility, incontinence, iatrogenic",
"Comprehensive geriatric assessment (CGA): refer if CFS ≥5 with complex needs",
"PRISMA-7: brief screening tool (≥3 = frail)"
]
},
{
heading: "⚠️ Falls Prevention",
items: [
"Annual falls risk assessment in all >65 with a fall",
"Multifactorial intervention: medication review, vision, footwear, environment",
"Stop or reduce: benzodiazepines, antihypertensives, antidepressants, opioids",
"DEXA scan: osteoporosis if fragility fracture or FRAX score",
"Vitamin D 800IU + calcium for housebound and care home residents",
"Refer to falls clinic for recurrent falls"
]
},
{
heading: "✅ Advance Care Planning",
items: [
"DNACPR: discuss with patient and family; document on ReSPECT form",
"Lasting Power of Attorney: encourage while capacity intact",
"Preferred place of death: home, hospice, hospital; document",
"Symptom management in dying: anticipatory prescribing (oramorph, midazolam, glycopyrronium)",
"Regular review of medications: deprescribe in end-of-life care"
]
}
]
},
// 20. MUS
{
num: 20, title: "Medically Unexplained Symptoms", badge: "CHALLENGING", badgeColor: C.orange,
sections: [
{
heading: "📋 Understanding the Presentation",
items: [
"MUS / functional symptoms: real distress without identifiable organic pathology",
"Common: chronic pain, fatigue, IBS, non-cardiac chest pain, functional neurological disorder",
"10-30% of GP and hospital presentations",
"Strong association with depression, anxiety, adverse childhood experiences",
"Avoid 'there's nothing wrong' — the distress is real"
]
},
{
heading: "📋 The Consultation Approach",
items: [
"Validate: 'I can see this has a real impact on your life'",
"Explain: normal investigations are positive findings, not failures",
"Avoid repeated investigations — reinforces 'search for disease'",
"Positive framing: 'Your nervous system has become sensitised'",
"Explore psychosocial context: HADS, PHQ-9, life events, work stress",
"Continuity: same GP builds therapeutic relationship"
]
},
{
heading: "✅ Management",
items: [
"CBT: most evidence-based psychological treatment",
"Physiotherapy: for functional movement disorders and deconditioning",
"Low-dose amitriptyline 10-75mg nocte: for central sensitisation, pain, sleep",
"IAPT referral: Pain Management Programme, health psychology",
"Avoid opioids: worsen outcomes in functional pain",
"Set boundaries and realistic goals collaboratively; avoid reinforcing sick role"
]
}
]
},
];
// ── BUILD PRESENTATION ───────────────────────────────────────────────────────
titleSlide(pres, "Top 20 GP Clinical Scenarios\nfor Junior Doctors", "A Structured Clinical Reference Guide | General Practice Education Series");
overviewSlide(pres, scenarioNames);
scenarios.forEach(sc => {
sectionDivider(pres, sc.num, sc.title, sc.badge);
contentSlide(pres, sc.num, sc.title, sc.badge, sc.badgeColor, sc.sections);
});
closingSlide(pres);
const outPath = "/home/daytona/workspace/gp-scenarios-pptx/Top20_GP_Clinical_Scenarios.pptx";
pres.writeFile({ fileName: outPath })
.then(() => console.log("SUCCESS: " + outPath))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/gp-scenarios-pptx && node build.js 2>&1
ls -lh /home/daytona/workspace/gp-scenarios-pptx/Top20_GP_Clinical_Scenarios.pptx
Top20 GP Clinical Scenarios
Presentation · PPTX
| Slide type | Content |
|---|---|
| Title slide | Dark navy with aqua accents |
| Overview slide | All 20 scenarios listed at a glance with numbered chips |
| Per scenario: divider + content | 2 slides per scenario = 40 scenario slides |
| Closing slide | 6 key principles to remember |