Can you be my medicine Professor and teach me how to Approach to Jaundice systematically in a medical ward. Teach me the insight of clinical pearls with pathophysiological reasoning for each concept.

| Step | Location | What Happens | Pathology if Disrupted |
|---|---|---|---|
| 1. Production | RES (spleen, liver, bone marrow) | Heme β biliverdin β unconjugated bilirubin (UCB) | Hemolysis, ineffective erythropoiesis |
| 2. Transport | Blood | UCB bound to albumin (lipid-soluble, cannot be filtered by kidney) | Hypoalbuminemia β more free UCB β kernicterus risk |
| 3. Uptake | Hepatocyte | UCB taken up via OATP1B1/1B3 transporters | Rifampicin, probenecid block this |
| 4. Conjugation | Hepatocyte ER | UCB + glucuronic acid β conjugated bilirubin (CB) via UDP-glucuronosyltransferase (UGT1A1) | Gilbert's (β UGT), Crigler-Najjar I/II |
| 5. Excretion | Bile canaliculi | CB excreted via MRP2 (ABCC2) transporter into bile | Dubin-Johnson (MRP2 mutation), cholestasis |
| Condition | Defect | Bilirubin Level | Notes |
|---|---|---|---|
| Gilbert's syndrome | β UGT1A1 activity (~30% of normal) | <6 mg/dL, usually <3 mg/dL | 4-7% of population; triggered by fasting, illness, stress, alcohol |
| Crigler-Najjar Type I | Complete UGT1A1 absence | >20 mg/dL | Fatal without liver transplant; kernicterus inevitable |
| Crigler-Najjar Type II | Partial UGT1A1 deficiency | 6-20 mg/dL | Responds to phenobarbitone (induces residual UGT activity) |
| Condition | Defect | Feature |
|---|---|---|
| Dubin-Johnson | MRP2 (ABCC2) mutation - can't excrete CB into bile | Black liver pigment on biopsy; coproporphyrin I in urine ββ |
| Rotor syndrome | OATP1B1/1B3 deficiency - impaired hepatic CB reuptake | Normal liver biopsy; coproporphyrin III in urine ββ |
"If the gallbladder is palpable and the patient is jaundiced, the obstruction is unlikely to be due to a stone."

| Domain | What to Ask | Why It Matters |
|---|---|---|
| Drugs & toxins | All medications incl. OTC, herbal supplements, anabolic steroids | Drug-induced liver injury (DILI) is diagnosis of exclusion |
| Alcohol | Units/week, duration, last drink | Alcoholic hepatitis: >3 drinks/day in men, >2 in women |
| Parenteral exposures | IV drug use, tattooing, blood transfusions, piercings | Hepatitis B and C transmission |
| Sexual history | New partners, MSM | Hepatitis B, A |
| Travel | Recent travel, endemic areas | Hepatitis A, E (fecal-oral), malaria, leptospirosis |
| Food history | Raw shellfish, contaminated water | Hepatitis A, E |
| Pain character | Colicky vs constant, location | Stone vs. inflammation vs. malignancy |
| Associated symptoms | Fever, chills (cholangitis), pruritus (cholestasis), weight loss (malignancy), arthralgias (viral prodrome) | Points to etiology |
| Duration | Acute vs. subacute vs. chronic | Acute: viral/toxic; chronic: cirrhosis/malignancy |
| Urine/stool color | Dark urine = conjugated bilirubinemia; pale stools = obstructive | Distinguishes pre-hepatic from post-hepatic |
| Family history | Hemolytic anemias, liver disease | Gilbert's, spherocytosis are familial |
| Occupation | Healthcare worker, sewage worker | Hepatitis B/C; leptospirosis |
| Pregnancy | Trimester | AFLP (3rd trimester emergency), intrahepatic cholestasis |
| Sign | Significance |
|---|---|
| Spider nevi (>5, in SVC territory) | Estrogen excess from impaired hepatic metabolism |
| Palmar erythema | Same mechanism as spider nevi |
| Gynecomastia, testicular atrophy | Estrogen-androgen imbalance |
| Caput medusae | Portal hypertension β recanalization of umbilical vein |
| Dupuytren's contracture | Alcoholic liver disease |
| Parotid enlargement | Alcohol |
| Leukonychia / Terry's nails | Hypoalbuminemia |
| Clubbing | Hepatopulmonary syndrome, cirrhosis |
| Flapping tremor (asterixis) | Hepatic encephalopathy |
| Finding | Significance |
|---|---|
| Hepatomegaly (smooth, tender) | Viral hepatitis, congestive hepatopathy, early cirrhosis |
| Hepatomegaly (hard, nodular) | Malignancy, late cirrhosis |
| Enlarged left lobe felt at xiphoid | Cirrhosis (right lobe shrinks, left lobe hypertrophies) |
| Splenomegaly | Portal hypertension, hemolysis, hematological malignancy |
| Murphy's sign positive | Acute cholecystitis |
| Palpable gallbladder (non-tender) | Courvoisier's sign - malignant obstruction |
| Ascites | Cirrhosis or malignancy (peritoneal spread) |
| Finding | Bilirubin in urine | Urobilinogen | Interpretation |
|---|---|---|---|
| Pre-hepatic | Absent (UCB can't be filtered) | ββ | Hemolysis |
| Hepatic | Present β | Variable (β early, β late in liver failure) | Hepatocellular |
| Post-hepatic | Present ββ | Absent (no bile reaching gut) | Obstruction |
| Pearl | Concept |
|---|---|
| Sclerae yellow before skin | High elastin affinity for bilirubin |
| Scleral icterus at ~2-3 mg/dL | Earlier than skin jaundice |
| No bilirubinuria in hemolysis | UCB is albumin-bound, not filterable |
| Bilirubin >5 in hemolysis β look for stone or liver disease | Hepatic reserve is massive |
| Gilbert's β triggered by fasting/stress/illness | UGT1A1 activity ~30% of normal |
| AST:ALT >2:1 β alcoholic hepatitis | Mitochondrial AST + pyridoxine deficiency |
| ALP paradoxically LOW in Wilson's acute liver failure | Copper inhibits ALP |
| ALP + GGT both up β hepatic source confirmed | GGT localizes ALP to liver |
| Courvoisier's sign β painless non-tender palpable GB in jaundice | Malignant biliary obstruction |
| Charcot's triad = fever + RUQ pain + jaundice | Ascending cholangitis - ERCP urgently |
| Reynolds' pentad = Charcot's + shock + confusion | Septic cholangitis - ICU immediately |
| Absent urobilinogen in complete obstruction | No bile reaches gut β no enterohepatic cycling |
| Pale stools + dark urine = post-hepatic | Conjugated bilirubin backs up + no stercobilin |
| Wilson's + ALF: low ALP | Unique to Wilson's - always check |
| PT not correcting with vit K β parenchymal failure | Not just biliary obstruction |
Make a presentation summarizing this approach for ward rounds
mkdir -p /home/daytona/workspace/jaundice-presentation && ls /home/daytona/worksβ¦
~/jaundice-presentation/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Medical Education";
pres.title = "Approach to Jaundice - Ward Rounds";
// βββ PALETTE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const C = {
bg: "0D1B2A", // deep navy (dominant dark)
panel: "1A2E45", // mid navy panel
card: "122337", // card bg
accent1: "F5A623", // amber/gold β jaundice colour
accent2: "2BBFA4", // teal β action/process
accent3: "E05C5C", // coral/red β danger / alerts
accent4: "7EB8F7", // sky blue β info
white: "FFFFFF",
lightgray:"C8D8E8",
muted: "8AA5BE",
};
// βββ HELPER: standard slide header bar ββββββββββββββββββββββββββββββββββββββββ
function addHeader(slide, title, subtitle) {
// Full-width amber top bar
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.72,
fill: { color: C.accent1 }, line: { color: C.accent1 }
});
slide.addText(title.toUpperCase(), {
x: 0.3, y: 0, w: 9.4, h: 0.72,
fontSize: 18, bold: true, color: C.bg, valign: "middle", margin: 0,
charSpacing: 2
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.3, y: 0.72, w: 9.4, h: 0.28,
fontSize: 9, color: C.muted, valign: "middle", italic: true, margin: 0
});
}
}
// βββ HELPER: coloured badge βββββββββββββββββββββββββββββββββββββββββββββββββββ
function addBadge(slide, text, x, y, w, h, bg, fg) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w, h,
fill: { color: bg }, line: { color: bg }, rectRadius: 0.08
});
slide.addText(text, {
x, y, w, h,
fontSize: 8.5, bold: true, color: fg || C.white,
align: "center", valign: "middle", margin: 0
});
}
// βββ HELPER: pearl box ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function addPearl(slide, text, x, y, w, h) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h,
fill: { color: C.panel },
line: { color: C.accent1, pt: 1.5 }
});
slide.addText([
{ text: "β
PEARL ", options: { bold: true, color: C.accent1, fontSize: 8 } },
{ text: text, options: { color: C.lightgray, fontSize: 8.5 } }
], { x: x + 0.1, y, w: w - 0.2, h, valign: "middle", margin: 4 });
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 1 β TITLE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
// Giant amber accent strip left
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.18, h: 5.625,
fill: { color: C.accent1 }, line: { color: C.accent1 }
});
// Decorative circle top-right
s.addShape(pres.shapes.OVAL, {
x: 7.5, y: -1.2, w: 4.2, h: 4.2,
fill: { color: C.panel, transparency: 40 }, line: { color: C.accent1, pt: 1.5 }
});
s.addText("APPROACH TO", {
x: 0.5, y: 1.0, w: 9, h: 0.7,
fontSize: 22, color: C.muted, bold: false, charSpacing: 8, margin: 0
});
s.addText("JAUNDICE", {
x: 0.5, y: 1.55, w: 9, h: 1.5,
fontSize: 72, bold: true, color: C.accent1, charSpacing: 4, margin: 0
});
s.addText("A Systematic Ward Round Framework", {
x: 0.5, y: 3.1, w: 8, h: 0.45,
fontSize: 15, color: C.lightgray, italic: true, margin: 0
});
// Divider
s.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 3.62, w: 5.5, h: 0.04,
fill: { color: C.accent2 }, line: { color: C.accent2 }
});
s.addText("Harrison's 22E Β· Schwartz's Surgery 11E Β· Lippincott Biochemistry 8E", {
x: 0.5, y: 3.75, w: 9, h: 0.3,
fontSize: 9, color: C.muted, margin: 0
});
// 3 key concept badges
const badges = [
{ t: "Pre-Hepatic", c: C.accent3 },
{ t: "Hepatic", c: C.accent2 },
{ t: "Post-Hepatic", c: C.accent4 }
];
badges.forEach((b, i) => {
addBadge(s, b.t, 0.5 + i * 2.1, 4.3, 1.85, 0.48, b.c, C.white);
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 2 β WHAT IS JAUNDICE? (Definition + Bilirubin pathway)
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "What Is Jaundice?", "Definition Β· Bilirubin pathway Β· Clinical threshold");
// Left column β definition cards
const defs = [
{ label: "Definition", text: "Yellow discolouration of skin, sclerae & mucous membranes from bilirubin deposition" },
{ label: "Threshold", text: "Normal bilirubin β€ 1 mg/dL Β· Visible jaundice at 2β3 mg/dL Β· Scleral icterus appears first (elastin affinity)" },
{ label: "Pseudojaundice", text: "Yellow skin WITHOUT scleral icterus = Carotenemia Β· Bilirubin has no affinity for avascular lens β sclerae are spared" },
];
defs.forEach((d, i) => {
const yy = 1.15 + i * 1.32;
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: yy, w: 4.5, h: 1.1,
fill: { color: C.panel }, line: { color: C.accent2, pt: 1 } });
s.addText(d.label.toUpperCase(), {
x: 0.4, y: yy + 0.05, w: 4.3, h: 0.28,
fontSize: 8, bold: true, color: C.accent2, margin: 0
});
s.addText(d.text, {
x: 0.4, y: yy + 0.3, w: 4.3, h: 0.72,
fontSize: 9.5, color: C.lightgray, margin: 0, wrap: true
});
});
// Right column β bilirubin pathway steps
s.addText("BILIRUBIN PATHWAY", {
x: 5.1, y: 1.1, w: 4.6, h: 0.3,
fontSize: 9, bold: true, color: C.accent1, charSpacing: 2, margin: 0
});
const steps = [
{ n:"1", label:"Production", note:"Heme β UCB in RES (spleen/liver)", col: C.accent3 },
{ n:"2", label:"Transport", note:"UCB bound to albumin in blood (not filterable)", col: C.accent3 },
{ n:"3", label:"Uptake", note:"OATP1B1/1B3 transporters in hepatocyte", col: C.accent2 },
{ n:"4", label:"Conjugation", note:"UCB + glucuronate β CB via UGT1A1", col: C.accent2 },
{ n:"5", label:"Excretion", note:"CB β bile via MRP2 β gut β stercobilin (brown stool)", col: C.accent4 },
];
steps.forEach((st, i) => {
const yy = 1.48 + i * 0.77;
// circle number
s.addShape(pres.shapes.OVAL, { x: 5.1, y: yy, w: 0.38, h: 0.38,
fill: { color: st.col }, line: { color: st.col } });
s.addText(st.n, { x: 5.1, y: yy, w: 0.38, h: 0.38,
fontSize: 10, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
s.addText(st.label, { x: 5.6, y: yy, w: 1.5, h: 0.38,
fontSize: 10, bold: true, color: C.white, valign: "middle", margin: 0 });
s.addText(st.note, { x: 7.2, y: yy, w: 2.5, h: 0.38,
fontSize: 8.5, color: C.muted, valign: "middle", margin: 0, wrap: true });
// connector arrow (except last)
if (i < steps.length - 1) {
s.addShape(pres.shapes.RECTANGLE, { x: 5.25, y: yy + 0.38, w: 0.08, h: 0.39,
fill: { color: C.muted }, line: { color: C.muted } });
}
});
// Bottom pearl
addPearl(s, "Liver daily capacity: >3,000 mg/day Β· Normal production: ~300 mg/day Β· This 10:1 reserve explains why pure hemolysis rarely exceeds 5 mg/dL",
0.3, 5.05, 9.4, 0.42);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 3 β THE 3-ZONE FRAMEWORK
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "The 3-Zone Framework", "Pre-hepatic Β· Hepatic Β· Post-hepatic");
const zones = [
{
title: "PRE-HEPATIC",
color: C.accent3,
mech: "Excess bilirubin production overwhelms conjugation capacity",
bili: "β UCB (indirect)",
urine: "Urobilinogen ββ | NO bilirubinuria",
stool: "Dark (excess stercobilin)",
causes: ["Hereditary: spherocytosis, SCD, G6PD, PK def.", "Acquired: MAHA (HUS/TTP), PNH, autoimmune", "Malaria, babesiosis", "Ineffective erythropoiesis: B12/folate deficiency"],
},
{
title: "HEPATIC",
color: C.accent2,
mech: "Hepatocyte dysfunction at uptake, conjugation or excretion steps",
bili: "UCB or CB depending on step",
urine: "Variable β bilirubinuria in severe disease",
stool: "Variable",
causes: ["Viral hepatitis A/B/C/D/E, EBV, CMV", "Alcoholic hepatitis (AST:ALT >2:1)", "Drug-induced (APAP, chlorpromazine)", "Autoimmune hepatitis, Wilson's disease", "Gilbert's, Crigler-Najjar, Dubin-Johnson"],
},
{
title: "POST-HEPATIC",
color: C.accent4,
mech: "Mechanical CBD obstruction β CB regurgitates into sinusoids",
bili: "ββ CB (direct)",
urine: "Dark (bilirubinuria) Β· Urobilinogen ABSENT",
stool: "Pale / clay-coloured",
causes: ["Choledocholithiasis (colicky RUQ pain)", "Pancreatic head ca. (painless jaundice)", "Cholangiocarcinoma (Klatskin tumour)", "Ascending cholangitis (Charcot's triad)", "Chronic pancreatitis, Mirizzi syndrome"],
},
];
zones.forEach((z, i) => {
const x = 0.18 + i * 3.28;
// Zone card
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.05, w: 3.1, h: 4.3,
fill: { color: C.card }, line: { color: z.color, pt: 2 } });
// Title bar
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.05, w: 3.1, h: 0.42,
fill: { color: z.color }, line: { color: z.color } });
s.addText(z.title, { x, y: 1.05, w: 3.1, h: 0.42,
fontSize: 11.5, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText("MECHANISM", { x: x + 0.1, y: 1.53, w: 2.9, h: 0.22,
fontSize: 7, bold: true, color: z.color, margin: 0 });
s.addText(z.mech, { x: x + 0.1, y: 1.72, w: 2.9, h: 0.42,
fontSize: 8.5, color: C.lightgray, margin: 0, wrap: true });
s.addShape(pres.shapes.RECTANGLE, { x: x + 0.1, y: 2.19, w: 2.9, h: 0.02,
fill: { color: C.muted }, line: { color: C.muted } });
s.addText("BILIRUBIN", { x: x + 0.1, y: 2.25, w: 2.9, h: 0.2,
fontSize: 7, bold: true, color: z.color, margin: 0 });
s.addText(z.bili, { x: x + 0.1, y: 2.43, w: 2.9, h: 0.22,
fontSize: 8.5, color: C.white, margin: 0 });
s.addText("URINE / STOOL", { x: x + 0.1, y: 2.72, w: 2.9, h: 0.2,
fontSize: 7, bold: true, color: z.color, margin: 0 });
s.addText(z.urine, { x: x + 0.1, y: 2.9, w: 2.9, h: 0.22,
fontSize: 8, color: C.lightgray, margin: 0 });
s.addText(z.stool, { x: x + 0.1, y: 3.1, w: 2.9, h: 0.22,
fontSize: 8, color: C.lightgray, margin: 0 });
s.addShape(pres.shapes.RECTANGLE, { x: x + 0.1, y: 3.37, w: 2.9, h: 0.02,
fill: { color: C.muted }, line: { color: C.muted } });
s.addText("KEY CAUSES", { x: x + 0.1, y: 3.42, w: 2.9, h: 0.2,
fontSize: 7, bold: true, color: z.color, margin: 0 });
z.causes.forEach((c, ci) => {
s.addText("Β· " + c, { x: x + 0.1, y: 3.62 + ci * 0.31, w: 2.9, h: 0.3,
fontSize: 8, color: C.lightgray, margin: 0, wrap: true });
});
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 4 β DIAGNOSTIC ALGORITHM (Harrison's framework)
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Diagnostic Algorithm", "Harrison's 22E β Fig 52-1 framework");
// ββ Branch 1: ISOLATED BILIRUBIN ELEVATION ββ
// Top box
s.addShape(pres.shapes.RECTANGLE, { x: 3.3, y: 1.05, w: 3.4, h: 0.6,
fill: { color: C.panel }, line: { color: C.accent1, pt: 1.5 } });
s.addText("JAUNDICED PATIENT", { x: 3.3, y: 1.05, w: 3.4, h: 0.6,
fontSize: 11, bold: true, color: C.accent1, align: "center", valign: "middle", margin: 0 });
// Arrow down
s.addShape(pres.shapes.RECTANGLE, { x: 4.96, y: 1.65, w: 0.08, h: 0.3,
fill: { color: C.muted }, line: { color: C.muted } });
// Question box
s.addShape(pres.shapes.RECTANGLE, { x: 2.7, y: 1.95, w: 4.6, h: 0.55,
fill: { color: C.card }, line: { color: C.accent2, pt: 1 } });
s.addText("Are other LFTs abnormal? (ALT Β· AST Β· ALP Β· GGT)", {
x: 2.7, y: 1.95, w: 4.6, h: 0.55,
fontSize: 10, color: C.lightgray, align: "center", valign: "middle", margin: 0
});
// Left branch: NO β isolated
s.addShape(pres.shapes.RECTANGLE, { x: 2.7, y: 1.95, w: 0, h: 0 });
s.addText("NO", { x: 0.5, y: 2.05, w: 0.5, h: 0.28,
fontSize: 8.5, bold: true, color: C.accent3 });
// horizontal arrow left
s.addShape(pres.shapes.RECTANGLE, { x: 0.9, y: 2.2, w: 1.8, h: 0.05,
fill: { color: C.muted }, line: { color: C.muted } });
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 2.5, w: 2.5, h: 1.4,
fill: { color: C.panel }, line: { color: C.accent3, pt: 1.5 } });
s.addText("ISOLATED BILIRUBIN β", { x: 0.2, y: 2.5, w: 2.5, h: 0.35,
fontSize: 9, bold: true, color: C.accent3, align: "center", valign: "middle", margin: 0 });
s.addText([
{ text: "Indirect dominant β ", options: { bold: true, color: C.lightgray } },
{ text: "Hemolysis, Gilbert's, Crigler-Najjar, Drugs\n", options: { color: C.muted } },
{ text: "Direct dominant β ", options: { bold: true, color: C.lightgray } },
{ text: "Dubin-Johnson, Rotor syndrome", options: { color: C.muted } },
], { x: 0.3, y: 2.9, w: 2.3, h: 1.0, fontSize: 8, margin: 0, wrap: true });
// Right branch: YES
s.addText("YES", { x: 9.0, y: 2.05, w: 0.6, h: 0.28,
fontSize: 8.5, bold: true, color: C.accent2 });
s.addShape(pres.shapes.RECTANGLE, { x: 7.3, y: 2.2, w: 1.7, h: 0.05,
fill: { color: C.muted }, line: { color: C.muted } });
// Hepatocellular box
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 2.6, w: 2.1, h: 1.6,
fill: { color: C.panel }, line: { color: C.accent2, pt: 1.5 } });
s.addText("HEPATOCELLULAR", { x: 5.2, y: 2.6, w: 2.1, h: 0.35,
fontSize: 8, bold: true, color: C.accent2, align: "center", valign: "middle", margin: 0 });
s.addText("ββ ALT/AST\nout of proportion\nto ALP", {
x: 5.3, y: 3.0, w: 1.9, h: 0.55,
fontSize: 8, color: C.lightgray, margin: 0 });
s.addText("β Viral serology\nβ Toxicology\nβ Autoimmune\nβ Ceruloplasmin (<55y)", {
x: 5.3, y: 3.6, w: 1.9, h: 0.6,
fontSize: 7.5, color: C.muted, margin: 0 });
// Cholestatic box
s.addShape(pres.shapes.RECTANGLE, { x: 7.5, y: 2.6, w: 2.2, h: 1.6,
fill: { color: C.panel }, line: { color: C.accent4, pt: 1.5 } });
s.addText("CHOLESTATIC", { x: 7.5, y: 2.6, w: 2.2, h: 0.35,
fontSize: 8, bold: true, color: C.accent4, align: "center", valign: "middle", margin: 0 });
s.addText("ββ ALP + GGT\nout of proportion\nto ALT/AST", {
x: 7.6, y: 3.0, w: 2.0, h: 0.55,
fontSize: 8, color: C.lightgray, margin: 0 });
s.addText("β Ultrasound first\n Dilated ducts β ERCP\n Non-dilated β AMA\n serologies/biopsy", {
x: 7.6, y: 3.6, w: 2.0, h: 0.6,
fontSize: 7.5, color: C.muted, margin: 0 });
// Bottom section β LFT pattern summary
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 4.35, w: 9.6, h: 0.08,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("BILIRUBIN FRACTIONATION Β· ALT/AST Β· ALP Β· GGT Β· ALBUMIN Β· PT/INR β Order on every jaundiced patient", {
x: 0.2, y: 4.5, w: 9.6, h: 0.3,
fontSize: 8.5, color: C.muted, align: "center", margin: 0
});
// PT/INR pearls
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 4.85, w: 4.65, h: 0.55,
fill: { color: C.card }, line: { color: C.accent1, pt: 1 } });
s.addText("PT corrects with IV Vit K β biliary obstruction (malabsorption)\nPT does NOT correct β hepatocellular synthetic failure", {
x: 0.3, y: 4.88, w: 4.5, h: 0.5,
fontSize: 8, color: C.lightgray, margin: 0
});
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 4.85, w: 4.7, h: 0.55,
fill: { color: C.card }, line: { color: C.accent2, pt: 1 } });
s.addText("Low albumin β chronic process (cirrhosis, malignancy)\nNormal albumin β acute process (viral hepatitis, choledocholithiasis)", {
x: 5.2, y: 4.88, w: 4.5, h: 0.5,
fontSize: 8, color: C.lightgray, margin: 0
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 5 β HISTORY-TAKING PEARLS
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "History-Taking", "\"The single most important part of evaluation\" β Harrison's 22E");
const rows = [
{ domain: "Drugs & Toxins", ask: "All Rx, OTC, herbal, anabolic steroids", clue: "Drug-induced liver injury (DILI)", col: C.accent3 },
{ domain: "Alcohol", ask: ">3 drinks/day men, >2/day women; last drink", clue: "Alcoholic hepatitis / cirrhosis", col: C.accent3 },
{ domain: "Parenteral", ask: "IV drugs, tattoos, transfusions, piercings", clue: "Hepatitis B, C", col: C.accent2 },
{ domain: "Travel", ask: "Endemic areas, recent travel", clue: "Hepatitis A/E, malaria, leptospirosis", col: C.accent2 },
{ domain: "Food", ask: "Raw shellfish, contaminated water", clue: "Hepatitis A, E (fecal-oral)", col: C.accent2 },
{ domain: "Pain character", ask: "Colicky vs constant; location", clue: "Colicky β stone; constant β inflammation; none β malignancy", col: C.accent1 },
{ domain: "Urine / Stool", ask: "Dark urine? Pale stools?", clue: "Dark urine + pale stool = post-hepatic (obstructive)", col: C.accent1 },
{ domain: "Associated Sx", ask: "Fever, chills, pruritus, weight loss, arthralgias", clue: "Cholangitis, cholestasis, malignancy, viral prodrome", col: C.accent4 },
{ domain: "Duration", ask: "Days vs weeks vs months", clue: "Acute β viral/toxic; subacute/chronic β cirrhosis/malignancy", col: C.accent4 },
{ domain: "Pregnancy", ask: "Trimester?", clue: "3rd trimester: AFLP, ICP, HELLP β all are emergencies", col: C.accent3 },
];
// Table header
const hdrCols = ["DOMAIN", "ASK SPECIFICALLY", "CLINICAL CLUE"];
const hdrW = [1.8, 3.6, 3.9];
const hdrX = [0.25, 2.05, 5.65];
hdrCols.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: hdrX[i], y: 1.08, w: hdrW[i], h: 0.32,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText(h, { x: hdrX[i], y: 1.08, w: hdrW[i], h: 0.32,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
});
rows.forEach((r, i) => {
const yy = 1.42 + i * 0.38;
const bg = i % 2 === 0 ? C.panel : C.card;
s.addShape(pres.shapes.RECTANGLE, { x: 0.25, y: yy, w: 9.55, h: 0.37,
fill: { color: bg }, line: { color: bg } });
// Color dot
s.addShape(pres.shapes.OVAL, { x: 0.3, y: yy + 0.1, w: 0.18, h: 0.18,
fill: { color: r.col }, line: { color: r.col } });
s.addText(r.domain, { x: 0.52, y: yy, w: 1.48, h: 0.37,
fontSize: 8.5, bold: true, color: C.white, valign: "middle", margin: 0 });
s.addText(r.ask, { x: 2.05, y: yy, w: 3.55, h: 0.37,
fontSize: 8, color: C.lightgray, valign: "middle", margin: 4 });
s.addText(r.clue, { x: 5.65, y: yy, w: 3.85, h: 0.37,
fontSize: 8, color: C.muted, valign: "middle", margin: 4 });
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 6 β PHYSICAL EXAMINATION
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Physical Examination", "Stigmata of CLD Β· Abdominal signs Β· Lymph nodes");
// Left column β Stigmata CLD
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.05, w: 3.1, h: 0.35,
fill: { color: C.accent3 }, line: { color: C.accent3 } });
s.addText("STIGMATA OF CHRONIC LIVER DISEASE", { x: 0.2, y: 1.05, w: 3.1, h: 0.35,
fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const cld = [
["Spider nevi (>5, SVC territory)", "Estrogen excess (impaired hepatic metabolism)"],
["Palmar erythema", "Same oestrogen mechanism"],
["Gynaecomastia / testicular atrophy", "Oestrogen-androgen imbalance"],
["Caput medusae", "Portal HTN β umbilical vein recanalization"],
["Dupuytren's contracture", "Alcoholic liver disease"],
["Parotid enlargement", "Alcohol use"],
["Terry's nails / leukonychia", "Hypoalbuminaemia"],
["Clubbing", "Hepatopulmonary syndrome"],
["Asterixis (flapping tremor)", "Hepatic encephalopathy"],
];
cld.forEach((row, i) => {
const yy = 1.45 + i * 0.41;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: yy, w: 3.1, h: 0.39,
fill: { color: i % 2 === 0 ? C.panel : C.card }, line: { color: i % 2 === 0 ? C.panel : C.card } });
s.addText("Β· " + row[0], { x: 0.28, y: yy + 0.01, w: 3.0, h: 0.2,
fontSize: 7.5, bold: true, color: C.lightgray, margin: 0 });
s.addText(row[1], { x: 0.28, y: yy + 0.2, w: 3.0, h: 0.18,
fontSize: 7, color: C.muted, italic: true, margin: 0 });
});
// Middle column β Abdominal signs
s.addShape(pres.shapes.RECTANGLE, { x: 3.5, y: 1.05, w: 3.2, h: 0.35,
fill: { color: C.accent2 }, line: { color: C.accent2 } });
s.addText("ABDOMINAL FINDINGS", { x: 3.5, y: 1.05, w: 3.2, h: 0.35,
fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const abd = [
["Smooth tender hepatomegaly", "Viral/alcoholic hepatitis, congestive"],
["Hard nodular hepatomegaly", "Malignancy, late cirrhosis"],
["Enlarged left lobe at xiphoid", "Cirrhosis (right lobe shrinks, left hypertrophies)"],
["Splenomegaly", "Portal HTN, hemolysis, haem. malignancy"],
["Murphy's sign +ve", "Acute cholecystitis"],
["Palpable non-tender GB", "Courvoisier's sign β malignant obstruction"],
["Ascites + jaundice", "Cirrhosis or peritoneal malignancy"],
];
abd.forEach((row, i) => {
const yy = 1.45 + i * 0.51;
s.addShape(pres.shapes.RECTANGLE, { x: 3.5, y: yy, w: 3.2, h: 0.49,
fill: { color: i % 2 === 0 ? C.panel : C.card }, line: { color: i % 2 === 0 ? C.panel : C.card } });
s.addText("Β· " + row[0], { x: 3.58, y: yy + 0.01, w: 3.1, h: 0.24,
fontSize: 8, bold: true, color: C.lightgray, margin: 0 });
s.addText(row[1], { x: 3.58, y: yy + 0.24, w: 3.1, h: 0.22,
fontSize: 7.5, color: C.muted, italic: true, margin: 0 });
});
// Right column β Pearls
s.addShape(pres.shapes.RECTANGLE, { x: 6.9, y: 1.05, w: 2.9, h: 0.35,
fill: { color: C.accent4 }, line: { color: C.accent4 } });
s.addText("KEY CLINICAL PEARLS", { x: 6.9, y: 1.05, w: 2.9, h: 0.35,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const pearls = [
{ t: "Courvoisier's Law", b: "Palpable non-tender GB + jaundice β malignant obstruction (NOT stones; stones cause fibrosis β shrunken GB)" },
{ t: "Virchow's node", b: "Left supraclavicular LN = Troisier's sign β GI/abdominal malignancy" },
{ t: "Sister Mary Joseph's", b: "Periumbilical nodule β peritoneal metastasis" },
{ t: "Temporal wasting", b: "Long-standing disease: pancreatic cancer or cirrhosis" },
{ t: "JVD + pulsatile liver", b: "Right heart failure as cause of congestive hepatopathy" },
];
pearls.forEach((p, i) => {
const yy = 1.45 + i * 0.8;
s.addShape(pres.shapes.RECTANGLE, { x: 6.9, y: yy, w: 2.9, h: 0.76,
fill: { color: C.panel }, line: { color: C.accent4, pt: 1 } });
s.addText("β
" + p.t, { x: 7.0, y: yy + 0.04, w: 2.7, h: 0.25,
fontSize: 8.5, bold: true, color: C.accent4, margin: 0 });
s.addText(p.b, { x: 7.0, y: yy + 0.28, w: 2.7, h: 0.44,
fontSize: 7.5, color: C.lightgray, margin: 0, wrap: true });
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 7 β LFT PATTERN INTERPRETATION
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "LFT Pattern Interpretation", "Hepatocellular vs Cholestatic β critical distinction");
// HEPATOCELLULAR PATTERN
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.05, w: 4.6, h: 0.38,
fill: { color: C.accent2 }, line: { color: C.accent2 } });
s.addText("HEPATOCELLULAR PATTERN", { x: 0.2, y: 1.05, w: 4.6, h: 0.38,
fontSize: 10, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const hcRows = [
["ALT / AST", "βββ (disproportionate to ALP)"],
["ALP", "Normal or mildly β"],
["Bilirubin", "β Mixed (CB + UCB)"],
["Albumin", "β in chronic disease"],
["PT/INR", "β β synthetic failure"],
["AST:ALT ratio", ">2:1 = Alcoholic hepatitis (De Ritis ratio)"],
["AST:ALT >10:1", "Ischaemic hepatitis or APAP toxicity"],
["ALP paradoxically LOW", "Wilson's disease acute liver failure (Cu inhibits ALP)"],
];
hcRows.forEach((row, i) => {
const yy = 1.5 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: yy, w: 4.6, h: 0.4,
fill: { color: i % 2 === 0 ? C.panel : C.card }, line: { color: i % 2 === 0 ? C.panel : C.card } });
s.addText(row[0], { x: 0.3, y: yy, w: 1.7, h: 0.4,
fontSize: 8.5, bold: true, color: C.lightgray, valign: "middle", margin: 0 });
s.addText(row[1], { x: 2.1, y: yy, w: 2.6, h: 0.4,
fontSize: 8.5, color: C.muted, valign: "middle", margin: 0 });
});
// CHOLESTATIC PATTERN
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: 1.05, w: 4.6, h: 0.38,
fill: { color: C.accent4 }, line: { color: C.accent4 } });
s.addText("CHOLESTATIC PATTERN", { x: 5.2, y: 1.05, w: 4.6, h: 0.38,
fontSize: 10, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const cholRows = [
["ALP + GGT", "βββ (disproportionate to ALT/AST)"],
["ALT / AST", "Normal or mildly β"],
["Bilirubin", "ββ CB (direct) dominant"],
["Urine", "Dark (bilirubinuria)"],
["Stool", "Pale / clay-coloured (post-hepatic)"],
["ALP alone β, GGT normal", "Bone source β NOT hepatic (confirm with GGT)"],
["GGT alone β", "Alcohol or enzyme-inducing drugs (no structural damage)"],
["Next step", "Ultrasound β dilated ducts? β MRCP/ERCP"],
];
cholRows.forEach((row, i) => {
const yy = 1.5 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, { x: 5.2, y: yy, w: 4.6, h: 0.4,
fill: { color: i % 2 === 0 ? C.panel : C.card }, line: { color: i % 2 === 0 ? C.panel : C.card } });
s.addText(row[0], { x: 5.3, y: yy, w: 2.0, h: 0.4,
fontSize: 8.5, bold: true, color: C.lightgray, valign: "middle", margin: 0 });
s.addText(row[1], { x: 7.4, y: yy, w: 2.3, h: 0.4,
fontSize: 8.5, color: C.muted, valign: "middle", margin: 0 });
});
// divider
s.addShape(pres.shapes.RECTANGLE, { x: 5.0, y: 1.0, w: 0.04, h: 4.4,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
// Bottom severity tests
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 5.05, w: 9.6, h: 0.38,
fill: { color: C.card }, line: { color: C.accent1, pt: 1 } });
s.addText("SEVERITY: Child-Pugh score Β· MELD score (bilirubin + creatinine + INR) Β· Maddrey DF = 4.6Γ(PTβcontrol) + bilirubin [>32 β consider steroids in AH]", {
x: 0.3, y: 5.05, w: 9.4, h: 0.38,
fontSize: 8, color: C.accent1, valign: "middle", margin: 0, bold: false
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 8 β URINE / STOOL DIPSTICK TABLE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Urine & Stool Analysis", "Most underused bedside test β urine dipstick");
// Big table
const headers = ["", "PRE-HEPATIC\n(Hemolysis)", "HEPATIC\n(Hepatocellular)", "POST-HEPATIC\n(Obstruction)"];
const hColors = [C.panel, C.accent3, C.accent2, C.accent4];
const tRows = [
["Serum Bilirubin type", "β UCB (indirect)", "β Mixed CB+UCB", "ββ CB (direct)"],
["Urine bilirubin (dipstick)", "ABSENT β", "Present β", "Present ββ"],
["Urine urobilinogen", "ββ (excess)", "Variable (β or β)", "ABSENT β"],
["Stool colour", "Dark brown (β stercobilin)", "Normal β pale", "Pale / clay β"],
["Why no bilirubinuria\nin hemolysis?", "UCB bound to albumin β too large to filter", "CB is water-soluble\nβ filtered by kidney", "CB water-soluble\nβ filtered by kidney"],
["Why absent urobilinogen\nin obstruction?", "β", "β", "No bile reaches gut\nβ no enterohepatic\ncycling"],
];
// Header row
const colX = [0.2, 2.7, 5.3, 7.7];
const colW = [2.4, 2.5, 2.35, 2.1];
headers.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: colX[i], y: 1.05, w: colW[i], h: 0.48,
fill: { color: hColors[i] }, line: { color: hColors[i] } });
s.addText(h, { x: colX[i], y: 1.05, w: colW[i], h: 0.48,
fontSize: 9, bold: true, color: i === 0 ? C.muted : C.bg, align: "center", valign: "middle", margin: 0 });
});
tRows.forEach((row, ri) => {
const yy = 1.57 + ri * 0.62;
const rowBg = ri % 2 === 0 ? C.panel : C.card;
colX.forEach((cx, ci) => {
s.addShape(pres.shapes.RECTANGLE, { x: cx, y: yy, w: colW[ci], h: 0.6,
fill: { color: rowBg }, line: { color: rowBg } });
const textColor = ci === 0 ? C.lightgray : (row[ci].includes("ABSENT") ? C.accent3 : C.muted);
s.addText(row[ci], { x: cx + 0.08, y: yy, w: colW[ci] - 0.16, h: 0.6,
fontSize: 8.5, color: textColor, valign: "middle", margin: 0,
bold: ci === 0 });
});
});
// Pearl
addPearl(s, "Complete CBD obstruction β urobilinogen ABSENT in both urine and stool. Dark urine from CB (water-soluble) + zero urobilinogen = powerful clue for complete mechanical obstruction",
0.2, 5.27, 9.6, 0.2);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 9 β CRITICAL CLINICAL SYNDROMES
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Critical Clinical Syndromes", "Pattern recognition on the ward");
const syndromes = [
{
cat: "EMERGENCY",
color: C.accent3,
items: [
{ title: "Charcot's Triad", body: "Fever + RUQ pain + Jaundice β Ascending cholangitis\nβ IV antibiotics + urgent ERCP" },
{ title: "Reynolds' Pentad", body: "Charcot's + Shock + Confusion β Septic cholangitis\nβ ICU + emergency ERCP/PTC" },
{ title: "AFLP / HELLP", body: "3rd trimester jaundice β Acute fatty liver of pregnancy or HELLP\nβ Immediate delivery (both are obstetric emergencies)" },
]
},
{
cat: "ACUTE JAUNDICE",
color: C.accent1,
items: [
{ title: "Fever + travel + splenomegaly", body: "Malaria β urgent thick + thin blood film\nRepeat if first negative" },
{ title: "Leptospirosis (Weil's disease)", body: "Conjunctival suffusion + muscle tenderness + jaundice + AKI\n+ epidemiological exposure (sewage, flooding, water sports)" },
{ title: "Viral hepatitis prodrome", body: "Arthralgias/myalgias β jaundice β HAV, HBV (seronegative window)\nAlways check IgM anti-HAV and HBsAg + anti-HBc IgM" },
]
},
{
cat: "CHRONIC / PROGRESSIVE",
color: C.accent4,
items: [
{ title: "Painless progressive + weight loss", body: "Pancreatic head Ca or ampullary Ca\nCourvoisier's sign Β± CA 19-9 β β CT + ERCP/EUS" },
{ title: "Middle-aged woman + pruritus + AMA+", body: "Primary biliary cholangitis (PBC)\nALP ββ, AMA >1:40, antimitochondrial Ab M2 subtype" },
{ title: "Young + IBD + strictures on MRCP", body: "Primary sclerosing cholangitis (PSC)\npANCA Β±, beads-on-string on cholangiography; risk of CCA" },
{ title: "<55 yr + neuro/psych + KF rings + low ALP", body: "Wilson's disease β ceruloplasmin β, 24h urine Cu β\nLow ALP in acute WD liver failure = red flag" },
]
},
];
let col = 0;
let colXarr = [0.2, 3.45, 6.6];
let colWw = 3.05;
syndromes.forEach((cat, ci) => {
const cx = colXarr[ci];
// Category header
s.addShape(pres.shapes.RECTANGLE, { x: cx, y: 1.05, w: colWw, h: 0.35,
fill: { color: cat.color }, line: { color: cat.color } });
s.addText(cat.cat, { x: cx, y: 1.05, w: colWw, h: 0.35,
fontSize: 9, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
cat.items.forEach((item, ii) => {
const yy = 1.45 + ii * 1.34;
s.addShape(pres.shapes.RECTANGLE, { x: cx, y: yy, w: colWw, h: 1.28,
fill: { color: C.panel }, line: { color: cat.color, pt: 1 } });
s.addText(item.title, { x: cx + 0.1, y: yy + 0.06, w: colWw - 0.2, h: 0.28,
fontSize: 9, bold: true, color: cat.color, margin: 0 });
s.addText(item.body, { x: cx + 0.1, y: yy + 0.35, w: colWw - 0.2, h: 0.88,
fontSize: 8, color: C.lightgray, margin: 0, wrap: true });
});
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 10 β GENETIC / ISOLATED HYPERBILIRUBINAEMIA
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Isolated Hyperbilirubinaemia β Genetic Syndromes", "No other LFT abnormality");
const conditions = [
{
name: "GILBERT'S SYNDROME",
color: C.accent2,
bili: "UCB β (<6 mg/dL)",
defect: "UGT1A1 activity ~30% of normal",
trigger: "Fasting, stress, illness, alcohol",
incidence: "4β7% of population (M:F = 7:1)",
clue: "Benign, cardioprotective (UCB is antioxidant). Fasting test confirms: 48h fast β bilirubin doubles",
treatment: "Reassurance only",
},
{
name: "CRIGLER-NAJJAR TYPE I",
color: C.accent3,
bili: "UCB >>20 mg/dL",
defect: "Complete UGT1A1 absence",
trigger: "β",
incidence: "Very rare; neonates",
clue: "Kernicterus inevitable. No response to phenobarbitone. Fatal without liver transplant",
treatment: "Liver transplant (only cure)",
},
{
name: "CRIGLER-NAJJAR TYPE II",
color: C.accent1,
bili: "UCB 6β20 mg/dL",
defect: "Partial UGT1A1 deficiency",
trigger: "β",
incidence: "Rare; neonates/infants",
clue: "Responds to phenobarbitone (induces residual UGT activity). Less severe than type I",
treatment: "Phenobarbitone; phototherapy",
},
{
name: "DUBIN-JOHNSON",
color: C.accent4,
bili: "CB β (asymptomatic)",
defect: "MRP2 (ABCC2) mutation β can't excrete CB into bile",
trigger: "OCP, illness",
incidence: "Rare; any age",
clue: "Black liver pigment on biopsy (melanin-like). Coproporphyrin I in urine ββ. Benign",
treatment: "Reassurance",
},
{
name: "ROTOR SYNDROME",
color: C.muted,
bili: "CB β (asymptomatic)",
defect: "OATP1B1/1B3 deficiency β impaired hepatic CB reuptake",
trigger: "β",
incidence: "Very rare",
clue: "Normal liver biopsy (vs Dubin-Johnson). Coproporphyrin III in urine ββ. Benign",
treatment: "Reassurance",
},
];
conditions.forEach((c, i) => {
const x = 0.15 + (i % 3) * 3.3;
const y = i < 3 ? 1.05 : 3.35;
const w = 3.05;
const h = i < 3 ? 2.15 : 2.15;
s.addShape(pres.shapes.RECTANGLE, { x, y, w, h,
fill: { color: C.card }, line: { color: c.color, pt: 1.5 } });
s.addShape(pres.shapes.RECTANGLE, { x, y, w, h: 0.32,
fill: { color: c.color }, line: { color: c.color } });
s.addText(c.name, { x, y, w, h: 0.32,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const rows = [
["Bilirubin", c.bili],
["Defect", c.defect],
["Trigger", c.trigger],
["Clue", c.clue],
["Rx", c.treatment],
];
rows.forEach((r, ri) => {
s.addText(r[0] + ":", { x: x + 0.1, y: y + 0.36 + ri * 0.34, w: 0.65, h: 0.32,
fontSize: 7.5, bold: true, color: c.color, margin: 0 });
s.addText(r[1], { x: x + 0.78, y: y + 0.36 + ri * 0.34, w: w - 0.88, h: 0.32,
fontSize: 7.5, color: C.lightgray, margin: 0, wrap: true });
});
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 11 β THE 3 BEDSIDE QUESTIONS + SUMMARY
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "The 3 Bedside Questions", "Ask these on every jaundiced patient β in order");
// Three large question cards
const questions = [
{
n: "1",
q: "Which fraction is elevated?",
a: "UCB dominant (indirect) β Pre-hepatic or hepatic conjugation defect\nCB dominant (direct) β Hepatic excretion defect or post-hepatic obstruction",
color: C.accent3,
},
{
n: "2",
q: "Are other LFTs abnormal?",
a: "YES + ALT/AST ββ β Hepatocellular (hepatitis, cirrhosis)\nYES + ALP ββ β Cholestatic β USS first\nNO β Benign isolated (Gilbert's, hemolysis)",
color: C.accent2,
},
{
n: "3",
q: "What does the full clinical picture say?",
a: "Urine/stool colour Β· Pain character Β· Fever Β· CLD signs Β· Courvoisier's Β· Lymph nodes Β· Weight loss",
color: C.accent4,
},
];
questions.forEach((q, i) => {
const yy = 1.05 + i * 1.42;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: yy, w: 9.6, h: 1.35,
fill: { color: C.panel }, line: { color: q.color, pt: 2 } });
// Number circle
s.addShape(pres.shapes.OVAL, { x: 0.35, y: yy + 0.3, w: 0.72, h: 0.72,
fill: { color: q.color }, line: { color: q.color } });
s.addText(q.n, { x: 0.35, y: yy + 0.3, w: 0.72, h: 0.72,
fontSize: 22, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(q.q, { x: 1.22, y: yy + 0.1, w: 8.4, h: 0.42,
fontSize: 13, bold: true, color: q.color, margin: 0 });
s.addText(q.a, { x: 1.22, y: yy + 0.54, w: 8.3, h: 0.72,
fontSize: 9, color: C.lightgray, margin: 0, wrap: true });
});
// Source footer
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.25, w: 10, h: 0.375,
fill: { color: C.card }, line: { color: C.card } });
s.addText("Sources: Harrison's Principles of Internal Medicine 22E (2025) Β· Schwartz's Principles of Surgery 11E Β· Lippincott Illustrated Reviews Biochemistry 8E Β· Goldman-Cecil Medicine", {
x: 0.2, y: 5.27, w: 9.6, h: 0.33,
fontSize: 7, color: C.muted, valign: "middle", margin: 0, italic: true
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 12 β CLINICAL PEARLS RAPID-FIRE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide();
s.background = { color: C.bg };
addHeader(s, "Clinical Pearls β Rapid Fire", "High-yield facts for ward rounds and exams");
const pearls = [
{ p: "Sclerae β skin", d: "Scleral icterus appears before skin jaundice (elastin affinity)" },
{ p: "No bilirubinuria in hemolysis", d: "UCB is albumin-bound, molecular weight too large to pass glomerular filtration" },
{ p: ">5 mg/dL in hemolysis", d: "Look for concomitant liver disease or pigment gallstones (30% in SCD)" },
{ p: "Gilbert's fasting test", d: "48h fast β bilirubin doubles; benign; 4-7% population" },
{ p: "AST:ALT >2:1", d: "Alcoholic hepatitis (De Ritis ratio): mitochondrial AST + pyridoxine deficiency β ALT" },
{ p: "ALP low in Wilson's ALF", d: "Copper directly inhibits ALP β unique red flag for Wilson's in acute liver failure" },
{ p: "GGT confirms ALP source", d: "ALPβ + GGTβ = hepatic; ALPβ + GGT normal = bone/pregnancy" },
{ p: "Courvoisier's", d: "Painless palpable GB + jaundice β malignant biliary obstruction (stones = fibrosed GB)" },
{ p: "Charcot's β ERCP", d: "Fever + RUQ pain + jaundice = ascending cholangitis; Reynolds' pentad adds shock + confusion" },
{ p: "PT + Vit K test", d: "PT corrects = biliary; PT unchanged = hepatocellular synthetic failure" },
{ p: "Absent urobilinogen", d: "Complete CBD obstruction β no bile in gut β no enterohepatic cycling" },
{ p: "Pseudojaundice rule", d: "Yellow skin without scleral icterus = carotenemia, not jaundice" },
];
// 2-column layout
const half = Math.ceil(pearls.length / 2);
pearls.forEach((p, i) => {
const col = i < half ? 0 : 1;
const row = i < half ? i : i - half;
const x = col === 0 ? 0.2 : 5.1;
const y = 1.12 + row * 0.57;
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 4.7, h: 0.5,
fill: { color: C.panel }, line: { color: row % 2 === 0 ? C.accent1 : C.accent2, pt: 1 } });
s.addText("β
" + p.p, { x: x + 0.1, y, w: 4.5, h: 0.22,
fontSize: 8.5, bold: true, color: row % 2 === 0 ? C.accent1 : C.accent2, margin: 0 });
s.addText(p.d, { x: x + 0.1, y: y + 0.22, w: 4.5, h: 0.26,
fontSize: 8, color: C.lightgray, margin: 0 });
});
}
// ββ WRITE OUTPUT ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
pres.writeFile({ fileName: "/home/daytona/workspace/jaundice-presentation/Approach_to_Jaundice_Ward_Rounds.pptx" })
.then(() => console.log("Done: Approach_to_Jaundice_Ward_Rounds.pptx"))
.catch(err => { console.error(err); process.exit(1); });
cd /home/daytona/workspace/jaundice-presentation && node build.js 2>&1
ls -lh /home/daytona/workspace/jaundice-presentation/
Approach to Jaundice Ward Rounds
Presentation Β· PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title | Bold amber-on-navy design with zone badges |
| 2 | What Is Jaundice? | Definition, threshold, pseudojaundice rule, 5-step bilirubin pathway |
| 3 | The 3-Zone Framework | Pre-hepatic / Hepatic / Post-hepatic cards side-by-side with mechanism, bilirubin type, urine/stool, causes |
| 4 | Diagnostic Algorithm | Harrison's Fig 52-1 framework - isolated vs combined LFT elevation, hepatocellular vs cholestatic branching |
| 5 | History-Taking | 10-row table: domain, what to ask, clinical clue |
| 6 | Physical Examination | 3 columns - CLD stigmata, abdominal signs, key pearls (Courvoisier's, Virchow's, Sister Mary Joseph's) |
| 7 | LFT Pattern Interpretation | Hepatocellular vs cholestatic side-by-side; De Ritis ratio; Wilson's low-ALP pearl; Maddrey DF |
| 8 | Urine & Stool Analysis | Full comparison table; why no bilirubinuria in hemolysis; absent urobilinogen in obstruction |
| 9 | Critical Clinical Syndromes | Emergency (Charcot's, Reynolds', AFLP), Acute, Chronic - pattern recognition column layout |
| 10 | Genetic Syndromes | Gilbert's, Crigler-Najjar I/II, Dubin-Johnson, Rotor - structured cards |
| 11 | 3 Bedside Questions | The master framework as 3 large numbered cards |
| 12 | Clinical Pearls Rapid-Fire | 12 high-yield pearls in 2-column layout |
I have uploaded our faculty pdf. Teach with respect to it. Can you be my medicine Professor and teach me how to Approach to stroke systematically in a medical ward. Teach me the insight of clinical pearls with pathophysiological reasoning for each concept.
python3 -c " import pdfplumber path = '/home/daytona/workspace/attachments/fdc0fβ¦
python3 -c " import pdfplumber path = '/home/daytona/workspace/attachments/fdc0fβ¦
"Mr. X, 65-year-old father of 3 children, known hypertensive and diabetic, presented with sudden onset left-sided face, arm, and leg weakness for 2 hours duration."
| Finding | Implication |
|---|---|
| Unilateral face + arm + leg weakness | Contralateral hemisphere or upper brainstem |
| Bilateral weakness | NOT a typical hemispheric stroke - think: bilateral strokes (locked-in syndrome), metabolic encephalopathy, Guillan-BarrΓ©, spinal cord |
| Face spared, arm + leg weakness | Parasagittal lesion (ACA territory, venous sinus thrombosis) |
| Leg > arm weakness | ACA territory |
| Arm > leg weakness | MCA territory |

| Syndrome | Clinical Features | Location | Artery |
|---|---|---|---|
| Pure Motor Hemiparesis | Face + arm + leg weakness, NO sensory loss, NO cortical signs | Posterior limb internal capsule / ventral pons | Lenticulostriate / pontine perforators |
| Pure Sensory Stroke | All modalities sensory loss, face + body | Thalamus (VPL + VPM nuclei) | Thalamoperforators |
| Sensorimotor Stroke | Combined above | Thalamocapsular | Thalamoperforators |
| Dysarthria-Clumsy Hand | Dysarthria + hand clumsiness | Internal capsule / pons | Lenticulostriate |
| Ataxic Hemiparesis | Ipsilateral weakness + ipsilateral ataxia | Pons / internal capsule | Pontine perforators |
| Parameter | Score |
|---|---|
| Age β₯60 | 1 |
| BP β₯140/90 | 1 |
| Clinical features: unilateral weakness (2) or speech disturbance alone (1) | 1-2 |
| Duration β₯60 min (2), 10-59 min (1) | 0-2 |
| Diabetes | 1 |
| Total | 0-7 |
| Feature | Points Towards ICH | Points Towards Ischaemia |
|---|---|---|
| Headache | Severe, sudden ("thunderclap") | Mild or absent |
| Vomiting | Prominent | Uncommon |
| Level of consciousness | Depressed early | Usually preserved early |
| BP | Markedly elevated | Variable |
| Progression | Minutes to hours | Sudden onset maximal |
| Location (on CT) | Deep (HTN) or lobar (amyloid) | Vascular territory |
| SAH on CT | Subarachnoid blood + neck stiffness | β |
| Mimic | Key Distinguishing Feature | Mechanism |
|---|---|---|
| Todd's paresis | Preceding witnessed seizure + post-ictal state; weakness resolves within hours | Cortical exhaustion after seizure |
| Hypoglycaemia | BGL <2.8 mmol/L; ask for insulin/sulphonylurea use; reverses with glucose | Neuroglycopenia β cortical dysfunction |
| Hypertensive encephalopathy | Bilateral, gradual, + severe HTN + papilloedema | Posterior reversible encephalopathy |
| Brain tumour | Weeks of headache, morning vomiting; mass effect on CT | Space-occupying lesion |
| Hemiplegic migraine | Preceding aura, throbbing headache, personal/family history | CSD (cortical spreading depression) |
| CNS infection | Fever + altered behaviour before deficit; CSF pleocytosis | Encephalitis, cerebral abscess |
| Metabolic encephalopathy | Liver failure (flap, fetor), uraemia, hyponatraemia - BILATERAL deficits | Toxin accumulation |
| Subdural haematoma | History of fall/trauma (often trivial in elderly); gradual onset | Bridging vein rupture |
| Complication | Mechanism | Bedside Action |
|---|---|---|
| Aspiration pneumonia (most common cause of early death) | Dysphagia β silent aspiration β lung infection | Water swallow test before any oral intake. Nil by mouth until assessed by speech therapy |
| UTI | Urinary retention (bladder areflexia), catheter use | Avoid catheter if possible; monitor urine output |
| DVT/PE | Immobility, limb paresis, hypercoagulable state post-stroke | Compression stockings, LMWH, early mobilization |
| Pressure sores | Immobility + nutritional deficiency | 2-hourly repositioning, pressure mattress |
| Epileptic seizures | Cortical irritation in acute phase | Seizure precautions; AED if seizure occurs |
| Complication | Mechanism | Peak Timing |
|---|---|---|
| Malignant MCA syndrome | Large MCA infarction β massive cytotoxic oedema β transtentorial herniation | Day 3-5 (peaks) β resolves by day 14 |
| Haemorrhagic transformation | Reperfusion of ischaemic blood-brain barrier | 24-72 hours (especially cardioembolic) |
| Cerebral vasospasm (SAH) | Blood breakdown products β smooth muscle contraction | Day 5-14 |
| Hydrocephalus | IVH or SAH blocking CSF drainage | Early post-haemorrhage |
| Finding | Significance | Mechanism |
|---|---|---|
| Pulse irregularity | Atrial fibrillation (most common cardioembolic source) | Chaotic atrial depolarization β stasis β LA appendage thrombus β embolism |
| BP both arms | Subclavian steal syndrome if >20 mmHg difference | Subclavian artery stenosis β reversed vertebral artery flow |
| Apex beat | Displaced = LV dilatation (CCF β AF β cardioembolic) | |
| Heart murmur | Mitral stenosis = most common valvular cause of cardioembolic stroke in young | Rheumatic β thickened MV β turbulent flow β LA thrombus |
| Carotid bruits | Ipsilateral ICA stenosis (but absence doesn't exclude stenosis) | Turbulence from atheromatous plaque - listen just below angle of jaw |
| Investigation | Purpose |
|---|---|
| Blood glucose (bedside) | Exclude hypoglycaemia BEFORE anything else |
| FBC | Polycythaemia, anaemia, thrombocytopenia |
| Coagulation (INR/APTT, platelets) | Bleeding risk; anticoagulant status for thrombolysis eligibility |
| U&E, creatinine | Renal function; electrolytes |
| Blood glucose, HbA1c | Hyperglycaemia worsens outcome (directly toxic to ischaemic neurones) |
| ECG | AF, recent MI (mural thrombus), prolonged QTc |
| NCCT brain | Mandatory - exclude haemorrhage (100% sensitive for fresh blood) |
| Investigation | Purpose |
|---|---|
| MRI brain (DWI) | Gold standard for stroke detection; positive within minutes |
| Lipid profile | Dyslipidaemia risk factor |
| ESR, CRP | Vasculitis, infective endocarditis, inflammatory cause |
| LFTs | Statin use monitoring; liver disease affects coagulation |
| Echo (TTE/TOE) | Cardioembolic source: LV thrombus, valvular disease, PFO, atrial myxoma |
| Carotid duplex | ICA stenosis in anterior circulation stroke |
| CT/MR angiography | Large vessel occlusion (for thrombectomy eligibility) |
| Enemy | Target | Why It Harms |
|---|---|---|
| Hypotension | Maintain BP (permissive HTN in acute phase) | CPP = MAP - ICP; falling MAP reduces perfusion to penumbra |
| Hyperglycaemia | Target glucose 7-10 mmol/L (avoid >10) | Glucose β lactate in ischaemic tissue β local acidosis β cell death |
| Pyrexia | Treat fever aggressively (paracetamol, cooling) | For every 1Β°C rise β metabolic demand β 10% β accelerates penumbra death |
| Hypoxia | SpO2 >94% | O2 delivery to marginal tissue; intubate if needed |
| Contraindication | Reasoning |
|---|---|
| Minor/rapidly resolving symptoms | Risk-benefit unfavourable; deficit may resolve spontaneously |
| Stroke or serious head trauma in last 3 months | Recently infarcted brain = high haemorrhagic transformation risk |
| Known history of ICH | Prior ICH = underlying vascular abnormality; catastrophic re-bleed risk |
| SBP >185 or DBP >110 at time of treatment | Haemorrhagic transformation risk; can treat BP first then give tPA |
| Symptoms of SAH | tPA in SAH = catastrophic |
| GI/GU haemorrhage in last 21 days | Systemic haemorrhage risk |
| Arterial puncture at non-compressible site in last 7 days | Bleeding at puncture site |
| Heparin within 48 hours + elevated APTT | Coagulopathy |
| Platelets <100,000/ΞΌL | Coagulopathy |
| Aetiology | Secondary Prevention |
|---|---|
| Atherosclerosis | Aspirin 75-100 mg/day; statin (target LDL <1.8 mmol/L); BP control; DM control; smoking cessation; carotid endarterectomy/stenting if ICA stenosis β₯70% |
| Cardioembolism (AF) | Anticoagulation - NOAC preferred (dabigatran, rivaroxaban, apixaban); rate control; discuss with cardiology |
| Cardioembolism (valve/MS) | Warfarin (INR 2-3); valve surgery if indicated |
| Lacunar | Aggressive BP control (most important); antiplatelet therapy; statin |
| Thrombophilia/APS | Long-term anticoagulation |
| Pearl | Concept |
|---|---|
| "Sudden" onset = vascular until proven otherwise | Temporal profile is your first diagnostic clue |
| Bilateral weakness β stroke | Think metabolic, bilateral, spinal cord |
| Crossed signs = posterior circulation/brainstem | Ipsilateral CN deficit + contralateral limb = brainstem lesion |
| No cortical signs = lacunar | Aphasia/neglect/hemianopia exclude lacunar |
| Check glucose FIRST in every focal deficit | Hypoglycaemia is the most reversible stroke mimic |
| NCCT normal β no ischaemic stroke | CT rules out haemorrhage; MRI DWI detects ischaemia |
| Permissive HTN in acute ischaemia | Do not lower BP <220/120 without tPA; penumbra needs it |
| Fever + hyperglycaemia kill the penumbra | Actively treat both from minute 1 |
| Dysphagia screen before oral intake | 28-65% of stroke patients; aspiration pneumonia kills |
| Barthel + social history = clinical examination | Discharge planning begins on admission |
| tPA window = 4.5 hours (with contraindication check) | Bleeding risk outweighs benefit outside this window |
| Cerebellar haemorrhage >3cm = neurosurgical emergency | Small posterior fossa β rapid brainstem compression |
| AF in any stroke β start anticoagulation | Not antiplatelets - antiplatelet efficacy in AF is insufficient |
| "Worst headache of life" = SAH until proven otherwise | Do CT, then LP at 12h if CT negative |
Create a presentation on this stroke approach for ward rounds
mkdir -p /home/daytona/workspace/stroke-presentation && ls /home/daytona/workspaβ¦
~/stroke-presentation/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Medical Education";
pres.title = "Approach to Stroke β Ward Rounds";
// βββ PALETTE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const C = {
bg: "0A1628", // deep navy
panel: "132040", // mid-navy panel
card: "0E1A33", // card bg
accent1: "E63946", // red β emergency / stroke urgency
accent2: "2EC4B6", // teal β process / ischaemia
accent3: "F4A261", // amber β warning / pearl
accent4: "A8DADC", // sky β info / features
accent5: "6A994E", // green β safe / management
white: "FFFFFF",
light: "C8D8EC",
muted: "7B9AB8",
};
// βββ HELPERS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function bg(slide) { slide.background = { color: C.bg }; }
function headerBar(slide, title, sub) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.68,
fill: { color: C.accent1 }, line: { color: C.accent1 }
});
slide.addText(title.toUpperCase(), {
x: 0.28, y: 0, w: 9.4, h: 0.68,
fontSize: 17, bold: true, color: C.bg, valign: "middle", charSpacing: 2, margin: 0
});
if (sub) {
slide.addText(sub, {
x: 0.28, y: 0.68, w: 9.4, h: 0.26,
fontSize: 8.5, italic: true, color: C.muted, valign: "middle", margin: 0
});
}
}
function pearl(slide, text, x, y, w, h) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h,
fill: { color: C.panel }, line: { color: C.accent3, pt: 1.5 }
});
slide.addText([
{ text: "β
PEARL ", options: { bold: true, color: C.accent3, fontSize: 8 } },
{ text: text, options: { color: C.light, fontSize: 8 } }
], { x: x + 0.1, y, w: w - 0.2, h, valign: "middle", margin: 3 });
}
function badge(slide, text, x, y, w, h, col, fg) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w, h,
fill: { color: col }, line: { color: col }, rectRadius: 0.07
});
slide.addText(text, {
x, y, w, h,
fontSize: 8, bold: true, color: fg || C.white,
align: "center", valign: "middle", margin: 0
});
}
function divLine(slide, x, y, w, col) {
slide.addShape(pres.shapes.RECTANGLE, {
x, y, w, h: 0.035,
fill: { color: col || C.muted }, line: { color: col || C.muted }
});
}
function numbCircle(slide, n, x, y, r, col) {
slide.addShape(pres.shapes.OVAL, {
x, y, w: r, h: r,
fill: { color: col }, line: { color: col }
});
slide.addText(String(n), {
x, y, w: r, h: r,
fontSize: 11, bold: true, color: C.bg,
align: "center", valign: "middle", margin: 0
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 1 β TITLE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
// Left vertical accent
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.16, h: 5.625,
fill: { color: C.accent1 }, line: { color: C.accent1 }
});
// Decorative arcs
s.addShape(pres.shapes.OVAL, {
x: 7.2, y: -1.5, w: 5, h: 5,
fill: { color: C.panel, transparency: 50 }, line: { color: C.accent1, pt: 1.5 }
});
s.addShape(pres.shapes.OVAL, {
x: 7.8, y: -0.8, w: 3.5, h: 3.5,
fill: { color: C.accent1, transparency: 82 }, line: { color: C.accent1, pt: 0.5 }
});
s.addText("APPROACH TO", {
x: 0.45, y: 0.85, w: 9, h: 0.55,
fontSize: 18, color: C.muted, charSpacing: 8, margin: 0
});
s.addText("STROKE", {
x: 0.45, y: 1.32, w: 9, h: 1.6,
fontSize: 88, bold: true, color: C.accent1, charSpacing: 3, margin: 0
});
s.addText("A Systematic Ward Round Framework", {
x: 0.45, y: 3.0, w: 8, h: 0.42,
fontSize: 14, color: C.light, italic: true, margin: 0
});
divLine(s, 0.45, 3.5, 6, C.accent2);
s.addText("Faculty PDF Β· Fuster & Hurst's The Heart 15E Β· Bradley & Daroff's Neurology Β· Neuroanatomy through Clinical Cases 3E", {
x: 0.45, y: 3.62, w: 9.3, h: 0.26,
fontSize: 8, color: C.muted, margin: 0
});
// Bottom row of zone badges
const zones = [
{ t: "History", c: C.accent2 },
{ t: "Vascular Territory", c: C.accent3 },
{ t: "Aetiology", c: C.accent1 },
{ t: "Mimics", c: C.accent4 },
{ t: "Management", c: C.accent5 },
];
zones.forEach((z, i) => badge(s, z.t, 0.45 + i * 1.88, 4.42, 1.72, 0.46, z.c, C.bg));
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 2 β DEFINITION + KEY CONCEPTS
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Definition & Pathophysiology", "The 'Sudden' rule Β· Penumbra Β· Core");
// Left β definition cards
const cards = [
{ lbl: "STROKE DEFINED", text: "Focal (or global) neurological deficit due to a vascular cause lasting >24 hours β OR producing permanent deficit/death within 24 hours", col: C.accent1 },
{ lbl: "TRANSIENT ISCHAEMIC ATTACK (TIA)", text: "Same mechanism but deficit resolves completely within 24 h (modern: <1 h with no DWI lesion). NOT benign β 10β15% stroke risk within 2 days", col: C.accent3 },
{ lbl: "WHY 'SUDDEN' MATTERS", text: "Stroke produces instantaneous maximal deficit at onset. The brain has no pain receptors in parenchyma β you feel the loss of function, not the cell death. Gradual onset = tumour, abscess, SDH", col: C.accent2 },
];
cards.forEach((c, i) => {
const y = 1.02 + i * 1.45;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 4.55, h: 1.38,
fill: { color: C.card }, line: { color: c.col, pt: 1.5 } });
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 4.55, h: 0.3,
fill: { color: c.col }, line: { color: c.col } });
s.addText(c.lbl, { x: 0.2, y, w: 4.55, h: 0.3,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(c.text, { x: 0.3, y: y + 0.34, w: 4.35, h: 1.0,
fontSize: 9, color: C.light, margin: 0, wrap: true });
});
// Right β Penumbra vs Core diagram (text-based)
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 1.02, w: 4.65, h: 0.32,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("ISCHAEMIC PENUMBRA CONCEPT", { x: 5.1, y: 1.02, w: 4.65, h: 0.32,
fontSize: 9, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
// Core circle
s.addShape(pres.shapes.OVAL, { x: 6.2, y: 1.48, w: 2.4, h: 2.4,
fill: { color: C.accent1, transparency: 15 }, line: { color: C.accent1, pt: 2 } });
s.addShape(pres.shapes.OVAL, { x: 5.8, y: 1.28, w: 3.2, h: 3.2,
fill: { color: C.accent3, transparency: 60 }, line: { color: C.accent3, pt: 1.5 } });
s.addText("CORE", { x: 6.85, y: 2.28, w: 1.1, h: 0.35,
fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
s.addText("CBF <10 mL/100g/min\nIrreversible death\nwithin minutes", { x: 6.25, y: 2.65, w: 2.3, h: 0.58,
fontSize: 7.5, color: C.light, align: "center", margin: 0 });
s.addText("PENUMBRA", { x: 5.88, y: 1.42, w: 1.5, h: 0.28,
fontSize: 9, bold: true, color: C.accent3, margin: 0 });
s.addText("CBF 10β20 mL/100g/min\nDysfunctional but ALIVE\nSALVAGEABLE with\nreperfusion therapy", { x: 5.2, y: 1.72, w: 1.7, h: 0.7,
fontSize: 7.5, color: C.light, margin: 0 });
// CBF threshold legend
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 4.65, w: 4.65, h: 0.65,
fill: { color: C.panel }, line: { color: C.accent2, pt: 1 } });
s.addText([
{ text: "Normal CBF: ", options: { bold: true, color: C.accent2 } },
{ text: "50 mL/100g/min ", options: { color: C.light } },
{ text: "Penumbra: ", options: { bold: true, color: C.accent3 } },
{ text: "10β20 ", options: { color: C.light } },
{ text: "Core death: ", options: { bold: true, color: C.accent1 } },
{ text: "<10\n", options: { color: C.light } },
{ text: "Every minute of untreated major stroke = ~1.9 million neurons die β 3.6 years of brain ageing", options: { bold: false, color: C.muted, fontSize: 7.5 } }
], { x: 5.2, y: 4.67, w: 4.45, h: 0.61, fontSize: 8.5, margin: 0, wrap: true });
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 3 β HISTORY-TAKING
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "History-Taking", "Presenting complaint Β· Symptom analysis Β· Aetiology Β· Complications");
// Opening case
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 0.98, w: 9.6, h: 0.52,
fill: { color: C.panel }, line: { color: C.accent2, pt: 1 } });
s.addText([
{ text: "OPENING CASE: ", options: { bold: true, color: C.accent2 } },
{ text: "Mr. X, 65 y/o, known HTN + DM, presented with ", options: { color: C.light } },
{ text: "sudden onset left-sided face + arm + leg weakness", options: { bold: true, color: C.accent3 } },
{ text: " for 2 hours", options: { color: C.light } }
], { x: 0.3, y: 0.98, w: 9.4, h: 0.52, fontSize: 9.5, valign: "middle", margin: 0 });
// Col 1 - PC + Symptom Analysis
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.58, w: 3.05, h: 0.3,
fill: { color: C.accent2 }, line: { color: C.accent2 } });
s.addText("PRESENTING COMPLAINT", { x: 0.2, y: 1.58, w: 3.05, h: 0.3,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const pc = [
"Sudden onset face, arm, leg weakness",
"Altered consciousness",
"Facial weakness / double vision / numbness",
"Difficulty talking / dysphagia / nasal regurg",
"Loss of balance / ataxia (cerebellar)",
];
pc.forEach((t, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.9 + i * 0.33, w: 3.05, h: 0.31,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText("Β· " + t, { x: 0.3, y: 1.9 + i * 0.33, w: 2.9, h: 0.31,
fontSize: 8, color: C.light, valign: "middle", margin: 0 });
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 3.58, w: 3.05, h: 0.28,
fill: { color: C.accent3 }, line: { color: C.accent3 } });
s.addText("SYMPTOM ANALYSIS (5 Questions)", { x: 0.2, y: 3.58, w: 3.05, h: 0.28,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const sq = ["What was patient doing at onset?", "Type: Face / Arm / Leg / Speech", "Loss of consciousness?", "UL vs LL predominant?", "Progression: resolved / static / worsening?"];
sq.forEach((t, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 3.88 + i * 0.31, w: 3.05, h: 0.29,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText((i+1)+". " + t, { x: 0.3, y: 3.88 + i * 0.31, w: 2.9, h: 0.29,
fontSize: 8, color: C.light, valign: "middle", margin: 0 });
});
// Col 2 - Aetiology history
s.addShape(pres.shapes.RECTANGLE, { x: 3.45, y: 1.58, w: 3.25, h: 0.3,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("AETIOLOGY HISTORY", { x: 3.45, y: 1.58, w: 3.25, h: 0.3,
fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const aetiRows = [
{ cause: "Atherosclerosis", ask: "DM, HTN, smoking, dyslipidaemia\nAngina, claudication, past TIA", col: C.accent3 },
{ cause: "Cardioembolism", ask: "Palpitations/AF, rheumatic fever\nMI, valvular disease, endocarditis", col: C.accent1 },
{ cause: "Vasculitis", ask: "SLE (joint pain, rash, oral ulcers)\nHIV, syphilis (IV drugs, sexual hx)", col: C.accent4 },
{ cause: "Thrombophilia", ask: "FHx young stroke\nRecurrent pregnancy losses, DVT/PE", col: C.accent2 },
{ cause: "Haemorrhagic", ask: "Anticoagulant use\nSevere HTN, cocaine/amphetamines", col: C.accent1 },
];
aetiRows.forEach((r, i) => {
const y = 1.93 + i * 0.62;
s.addShape(pres.shapes.RECTANGLE, { x: 3.45, y, w: 3.25, h: 0.6,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.RECTANGLE, { x: 3.45, y, w: 0.07, h: 0.6,
fill: { color: r.col }, line: { color: r.col } });
s.addText(r.cause, { x: 3.56, y: y+0.03, w: 1.1, h: 0.25,
fontSize: 8, bold: true, color: r.col, margin: 0 });
s.addText(r.ask, { x: 3.56, y: y+0.28, w: 3.06, h: 0.3,
fontSize: 7.5, color: C.muted, margin: 0 });
});
// Col 3 - Mimics + complications
s.addShape(pres.shapes.RECTANGLE, { x: 6.88, y: 1.58, w: 2.9, h: 0.3,
fill: { color: C.accent4 }, line: { color: C.accent4 } });
s.addText("EXCLUDE STROKE MIMICS", { x: 6.88, y: 1.58, w: 2.9, h: 0.3,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const mimics = [
["Todd's paresis", "Preceding seizure β post-ictal weakness"],
["Hypoglycaemia", "BGL <2.8 mmol/L β check FIRST"],
["Brain tumour", "Morning headache + vomiting (weeks)"],
["Hemiplegic migraine", "Aura + throbbing HA, FHx"],
["CNS infection", "Fever + altered behaviour before deficit"],
["Metabolic", "Bilateral; liver/renal disease; Na+ abnormal"],
["Subdural haematoma", "Trauma hx (trivial in elderly); gradual"],
];
mimics.forEach((m, i) => {
const y = 1.93 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, { x: 6.88, y, w: 2.9, h: 0.4,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText(m[0], { x: 6.96, y: y+0.02, w: 2.76, h: 0.18,
fontSize: 8, bold: true, color: C.accent4, margin: 0 });
s.addText(m[1], { x: 6.96, y: y+0.2, w: 2.76, h: 0.18,
fontSize: 7.5, color: C.muted, margin: 0 });
});
pearl(s, "CHECK GLUCOSE FIRST in every focal deficit β hypoglycaemia is the most reversible stroke mimic. Glucose before diagnosis, always.",
0.2, 5.2, 9.6, 0.28);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 4 β VASCULAR TERRITORY IDENTIFICATION
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Vascular Territory Identification", "Anterior Β· Posterior Β· Lacunar Circulation");
const territories = [
{
name: "ANTERIOR CIRCULATION",
sub: "ICA β MCA / ACA",
col: C.accent2,
features: [
"Contralateral face + arm + leg weakness",
"Higher cortical dysfunction:",
" Β· Aphasia (dominant hemisphere)",
" Β· Neglect, anosognosia (non-dominant)",
" Β· Hemianopia (homonymous)",
" Β· Memory loss, calculation errors",
"Arm > leg weakness = MCA territory",
"Leg > arm weakness = ACA territory",
],
pearl: "Aphasia = dominant hemisphere (L in >95% right-handers). Screen with: fluency, comprehension, repetition.",
},
{
name: "POSTERIOR CIRCULATION",
sub: "Vertebrobasilar β PICA/AICA/SCA/PCA",
col: C.accent3,
features: [
"D-V-F Triad:",
" Β· Diplopia (CN III/IV/VI nuclei)",
" Β· Vertigo (vestibular nuclei)",
" Β· Facial numbness + weakness",
"Dysphagia + nasal regurgitation (CN IX/X)",
"Dysarthria (slurring of speech)",
"Imbalance / truncal ataxia",
"Crossed signs = PATHOGNOMONIC",
],
pearl: "CROSSED SIGNS = brainstem: ipsilateral CN deficit + contralateral limb findings. Unique to brainstem anatomy.",
},
{
name: "LACUNAR CIRCULATION",
sub: "Deep penetrating arteries (lenticulostriate, thalamoperforators)",
col: C.accent1,
features: [
"No cortical signs (no aphasia, neglect, hemianopia)",
"Classic syndromes:",
" Β· Pure Motor Hemiparesis (internal capsule/pons)",
" Β· Pure Sensory Stroke (thalamus VPL+VPM)",
" Β· Ataxic Hemiparesis",
" Β· Dysarthria-Clumsy Hand",
" Β· Sensorimotor Stroke",
"Infarct β€2 cm on DWI / β€1.5 cm on CT",
],
pearl: "Any cortical sign (aphasia, neglect, hemianopia) EXCLUDES lacunar β re-examine your localisation.",
},
];
territories.forEach((t, i) => {
const x = 0.2 + i * 3.27;
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.02, w: 3.1, h: 4.35,
fill: { color: C.card }, line: { color: t.col, pt: 2 } });
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.02, w: 3.1, h: 0.4,
fill: { color: t.col }, line: { color: t.col } });
s.addText(t.name, { x, y: 1.02, w: 3.1, h: 0.4,
fontSize: 9.5, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(t.sub, { x: x+0.1, y: 1.44, w: 2.9, h: 0.3,
fontSize: 8, italic: true, color: t.col, margin: 0 });
divLine(s, x+0.1, 1.76, 2.9, t.col);
t.features.forEach((f, fi) => {
s.addText(f, { x: x+0.1, y: 1.82 + fi * 0.3, w: 2.9, h: 0.28,
fontSize: 8, color: f.startsWith(" Β·") ? C.muted : (f.includes(":") ? C.light : C.light),
bold: f.includes(":") && !f.startsWith(" "),
margin: 0 });
});
// Pearl at bottom of each card
s.addShape(pres.shapes.RECTANGLE, { x: x+0.08, y: 4.68, w: 2.95, h: 0.62,
fill: { color: C.panel }, line: { color: C.accent3, pt: 1 } });
s.addText("β
" + t.pearl, { x: x+0.15, y: 4.7, w: 2.8, h: 0.58,
fontSize: 7.5, color: C.light, margin: 0, wrap: true });
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 5 β LACUNAR SYNDROMES TABLE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Lacunar Stroke Syndromes", "Neuroanatomy through Clinical Cases 3E Β· Fuster & Hurst 15E");
// Table
const hdr = ["SYNDROME", "CLINICAL FEATURES", "LOCATION", "ARTERY"];
const hdrW = [2.2, 2.85, 2.5, 2.1];
const hdrX = [0.2, 2.42, 5.28, 7.8];
hdr.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: hdrX[i], y: 1.02, w: hdrW[i], h: 0.38,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText(h, { x: hdrX[i], y: 1.02, w: hdrW[i], h: 0.38,
fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
});
const rows = [
["Pure Motor Hemiparesis", "Face + arm + leg UMN weakness\nNo sensory loss, no cortical signs", "Post. limb internal capsule\nVentral pons\nCorona radiata", "Lenticulostriate\nPontine perforators"],
["Pure Sensory Stroke\n(Thalamic lacune)", "All modality sensory loss:\nContralateral face + body", "Thalamus VPL + VPM nuclei", "Thalamoperforators (PCA branch)"],
["Ataxic Hemiparesis", "Ipsilateral weakness\n+ ipsilateral limb ataxia", "Pons / internal capsule /\ncorona radiata", "Pontine perforators\nLenticulostriate"],
["Dysarthria-Clumsy Hand", "Dysarthria +\ncontralateral hand clumsiness", "Pons / internal capsule", "Pontine perforators"],
["Sensorimotor Stroke\n(Thalamocapsular)", "Combined thalamic + motor\nhemiparesis features", "Post. limb IC +\nthalamic VPL/VPM", "Thalamoperforators\n+ lenticulostriate"],
["Basal Ganglia Lacune", "Often asymptomatic\nMay β hemiballismus", "Caudate, putamen,\nglobus pallidus, STN", "Lenticulostriate\nAnterior choroidal"],
];
rows.forEach((row, ri) => {
const y = 1.44 + ri * 0.62;
const bg2 = ri % 2 === 0 ? C.panel : C.card;
hdrX.forEach((cx, ci) => {
s.addShape(pres.shapes.RECTANGLE, { x: cx, y, w: hdrW[ci], h: 0.6,
fill: { color: bg2 }, line: { color: bg2 } });
s.addText(row[ci], { x: cx + 0.06, y, w: hdrW[ci] - 0.12, h: 0.6,
fontSize: ci === 0 ? 8.5 : 8, bold: ci === 0,
color: ci === 0 ? C.light : C.muted, valign: "middle", margin: 0, wrap: true });
});
});
pearl(s, "All lacunar strokes share one key feature: ABSENT cortical signs. Presence of aphasia, neglect, or hemianopia means the lesion is NOT lacunar β it is cortical or involves white matter projection fibres.",
0.2, 5.24, 9.6, 0.27);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 6 β AETIOLOGY (TOAST CLASSIFICATION)
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Aetiology β TOAST Classification", "Fuster & Hurst 15E Β· Faculty PDF framework");
const types = [
{
title: "LARGE ARTERY\nATHEROSCLEROSIS",
col: C.accent3,
patho: "Plaque rupture β in-situ thrombosis OR artery-to-artery embolism from carotid/vertebral",
clues: ["DM, HTN, smoking, dyslipidaemia", "Angina / intermittent claudication", "Past TIA in same territory", "Carotid bruit on exam"],
prev: "Antiplatelet + statin + BP control\nCarotid endarterectomy if ICA β₯70%",
},
{
title: "CARDIOEMBOLISM",
col: C.accent1,
patho: "Thrombus from heart β sudden complete occlusion β large cortical infarct (no time for collaterals to develop)",
clues: ["AF (most common β >40% in >60yr)", "Rheumatic MS β LA thrombus", "Recent MI β mural thrombus", "Infective endocarditis β septic emboli"],
prev: "Anticoagulation (NOAC for AF)\nWARFARIN for mechanical valves",
},
{
title: "LACUNAR / SMALL\nARTERY OCCLUSION",
col: C.accent2,
patho: "Lipohyalinosis + microaneurysm (Charcot-Bouchard) in penetrating arteries from chronic HTN/DM",
clues: ["Classic lacunar syndrome", "No cortical signs", "Lesion β€2cm on DWI", "Same vessels rupture β deep ICH"],
prev: "Aggressive BP control (PRIMARY)\nAntiplatelet + statin",
},
{
title: "VASCULITIS /\nOTHER CAUSES",
col: C.accent4,
patho: "Vessel wall inflammation β stenosis/thrombosis. Young patients. Always screen in stroke <45 years",
clues: ["SLE: joint pain, rash, oral ulcers", "HIV/syphilis: sexual/IV drug hx", "Dissection: neck pain/trauma", "APS: recurrent thrombosis/fetal loss"],
prev: "Treat underlying cause\nAntiphospholipid β anticoagulation",
},
];
types.forEach((t, i) => {
const x = 0.2 + (i % 2) * 4.88;
const y = i < 2 ? 1.02 : 3.3;
const w = 4.62; const h = 2.1;
s.addShape(pres.shapes.RECTANGLE, { x, y, w, h,
fill: { color: C.card }, line: { color: t.col, pt: 1.5 } });
s.addShape(pres.shapes.RECTANGLE, { x, y, w, h: 0.38,
fill: { color: t.col }, line: { color: t.col } });
s.addText(t.title, { x, y, w, h: 0.38,
fontSize: 9.5, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText("Pathophysiology:", { x: x+0.1, y: y+0.42, w: w-0.2, h: 0.2,
fontSize: 7.5, bold: true, color: t.col, margin: 0 });
s.addText(t.patho, { x: x+0.1, y: y+0.62, w: w-0.2, h: 0.42,
fontSize: 8, color: C.light, margin: 0, wrap: true });
divLine(s, x+0.1, y+1.06, w-0.2, t.col);
s.addText("Key history clues:", { x: x+0.1, y: y+1.12, w: w-0.2, h: 0.2,
fontSize: 7.5, bold: true, color: t.col, margin: 0 });
t.clues.forEach((c, ci) => {
s.addText("Β· " + c, { x: x+0.1, y: y+1.32 + ci*0.17, w: w*0.55, h: 0.17,
fontSize: 7.5, color: C.muted, margin: 0 });
});
s.addText("Prevention:", { x: x + w*0.57, y: y+1.12, w: w*0.4, h: 0.2,
fontSize: 7.5, bold: true, color: C.accent5, margin: 0 });
s.addText(t.prev, { x: x + w*0.57, y: y+1.32, w: w*0.4, h: 0.62,
fontSize: 7.5, color: C.muted, margin: 0, wrap: true });
});
pearl(s, "Haemorrhagic transformation is hallmark of CARDIOEMBOLISM: embolus fragments β reperfusion into ischaemic BBB-damaged tissue β bleeding. Reason anticoagulation timing must be carefully considered (1-3-6-12 day rule).",
0.2, 5.46, 9.6, 0.0);
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 5.2, w: 9.6, h: 0.34,
fill: { color: C.panel }, line: { color: C.accent3, pt: 1.5 } });
s.addText([
{ text: "β
PEARL ", options: { bold: true, color: C.accent3, fontSize: 8 } },
{ text: "Haemorrhagic transformation is hallmark of CARDIOEMBOLISM: large embolus occludes then fragments β reperfusion into ischaemic BBB-damaged tissue β petechial/confluent haemorrhage. Anticoagulation timing: small non-disabling stroke β day 1β3; large disabling β wait 6β12 days.", options: { color: C.light, fontSize: 8 } }
], { x: 0.3, y: 5.2, w: 9.4, h: 0.34, valign: "middle", margin: 3 });
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 7 β PHYSICAL EXAMINATION
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Physical Examination", "General Β· Neurological Β· Cardiovascular Β· Functional");
// Col 1 β General exam
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.02, w: 2.35, h: 0.3,
fill: { color: C.accent2 }, line: { color: C.accent2 } });
s.addText("GENERAL EXAM", { x: 0.2, y: 1.02, w: 2.35, h: 0.3,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const gen = [
["GCS", "Baseline + trend; falling GCS in ischaemia = herniation/HT"],
["Neck stiffness", "SAH (meningism); test gently"],
["Plethora", "Polycythaemia β β viscosity β thrombosis"],
["Pallor", "Anaemia; consider cardiac cause"],
["Xanthelasma/arcus", "Hyperlipidaemia β atherosclerosis"],
["Osler's nodes/splinters", "Infective endocarditis β septic emboli"],
["Livedo reticularis", "Antiphospholipid syndrome"],
["Rash + oral ulcers", "SLE / vasculitis aetiology"],
["Bed sores", "Examine on admission as baseline"],
];
gen.forEach((r, i) => {
const y = 1.35 + i * 0.44;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 2.35, h: 0.42,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText(r[0], { x: 0.28, y: y+0.01, w: 2.2, h: 0.19,
fontSize: 8, bold: true, color: C.accent2, margin: 0 });
s.addText(r[1], { x: 0.28, y: y+0.21, w: 2.2, h: 0.19,
fontSize: 7.5, color: C.muted, margin: 0 });
});
// Col 2 β Neurological exam
s.addShape(pres.shapes.RECTANGLE, { x: 2.75, y: 1.02, w: 2.95, h: 0.3,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("NEUROLOGICAL EXAM", { x: 2.75, y: 1.02, w: 2.95, h: 0.3,
fontSize: 8, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const neuro = [
{ item: "Motor", detail: "Spastic weakness, hyperreflexia, Babinski +ve\nAcute stroke: initially hypotonic (diaschisis)" },
{ item: "Pronator Drift", detail: "Arms extended palms up, eyes closed β\naffected arm drifts DOWN + PRONATES (early UMN sign)" },
{ item: "Cranial Nerves", detail: "CN VII: UMN = forehead spared\nCN XII: tongue deviates towards lesion" },
{ item: "Hemianopia", detail: "Test each visual field quadrant\nMCA/PCA involvement; patient unaware (neglect)" },
{ item: "Sensory", detail: "Pure sensory: all modalities (thalamic lacune)\nCortical: graphaesthesia + stereognosis impaired" },
{ item: "Higher Functions", detail: "MMSE/MoCA, aphasia screen:\nFluency / Comprehension / Repetition / Naming" },
{ item: "Cerebellar", detail: "Finger-nose, heel-shin, dysdiadochokinesia\nGait and tandem walking" },
];
neuro.forEach((r, i) => {
const y = 1.35 + i * 0.59;
s.addShape(pres.shapes.RECTANGLE, { x: 2.75, y, w: 2.95, h: 0.57,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText(r.item, { x: 2.83, y: y+0.03, w: 2.79, h: 0.22,
fontSize: 8.5, bold: true, color: C.light, margin: 0 });
s.addText(r.detail, { x: 2.83, y: y+0.26, w: 2.79, h: 0.3,
fontSize: 7.5, color: C.muted, margin: 0, wrap: true });
});
// Col 3 β CVS exam + functional
s.addShape(pres.shapes.RECTANGLE, { x: 5.9, y: 1.02, w: 3.9, h: 0.3,
fill: { color: C.accent3 }, line: { color: C.accent3 } });
s.addText("CARDIOVASCULAR + FUNCTIONAL", { x: 5.9, y: 1.02, w: 3.9, h: 0.3,
fontSize: 8, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const cvs = [
["Pulse", "Irregularly irregular β AF (cardioembolic)\nBP both arms (>20 mmHg diff = subclavian steal)"],
["Apex beat", "Displaced = LV dilation β CCF β AF β embolism"],
["Heart murmurs", "Mitral stenosis = most common valvular cause\nin young patients (rheumatic fever)"],
["Carotid bruits", "ICA stenosis 40-80% (bruit disappears >95%)\nAlways do duplex regardless of auscultation"],
["Lung exam", "Aspiration pneumonia (most common\ncause of early death after stroke)"],
];
cvs.forEach((r, i) => {
const y = 1.35 + i * 0.6;
s.addShape(pres.shapes.RECTANGLE, { x: 5.9, y, w: 3.9, h: 0.58,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addText(r[0], { x: 5.98, y: y+0.03, w: 3.74, h: 0.22,
fontSize: 8.5, bold: true, color: C.accent3, margin: 0 });
s.addText(r[1], { x: 5.98, y: y+0.27, w: 3.74, h: 0.3,
fontSize: 7.5, color: C.muted, margin: 0, wrap: true });
});
pearl(s, "PRONATOR DRIFT: arms extended horizontally palms up, eyes closed 10s β affected arm drifts DOWN + PRONATES. More sensitive than Babinski for subtle corticospinal lesions.",
0.2, 5.18, 9.6, 0.3);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 8 β INVESTIGATIONS
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Investigations", "Immediate Β· Second-line Β· Imaging Β· Young stroke screen");
// IMMEDIATE panel
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.02, w: 4.65, h: 0.3,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("IMMEDIATE (First Hour) β EVERY PATIENT", { x: 0.2, y: 1.02, w: 4.65, h: 0.3,
fontSize: 9, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const imm = [
["Blood glucose (BEDSIDE)", "Exclude hypoglycaemia BEFORE anything else", C.accent3],
["FBC", "Polycythaemia, anaemia, thrombocytopenia, infection", C.accent2],
["Coagulation: INR, APTT, platelets", "Bleeding risk; anticoagulant status for tPA eligibility", C.accent2],
["U&E, creatinine", "Renal function; Na+ (SIADH in SAH)", C.accent2],
["Blood glucose + HbA1c", "Hyperglycaemia = directly toxic to ischaemic neurones", C.accent3],
["ECG", "AF, recent MI (mural thrombus), prolonged QTc", C.accent1],
["NCCT Brain (MANDATORY)", "100% sensitive for haemorrhage. Often NORMAL in early ischaemia β does NOT exclude stroke", C.accent1],
];
imm.forEach((r, i) => {
const y = 1.35 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 4.65, h: 0.4,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.OVAL, { x: 0.26, y: y+0.11, w: 0.18, h: 0.18,
fill: { color: r[2] }, line: { color: r[2] } });
s.addText(r[0], { x: 0.52, y: y+0.01, w: 4.28, h: 0.19,
fontSize: 8, bold: true, color: C.light, margin: 0 });
s.addText(r[1], { x: 0.52, y: y+0.2, w: 4.28, h: 0.18,
fontSize: 7.5, color: C.muted, margin: 0 });
});
// SECOND LINE + IMAGING
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 1.02, w: 4.7, h: 0.3,
fill: { color: C.accent2 }, line: { color: C.accent2 } });
s.addText("SUBSEQUENT + YOUNG STROKE SCREEN", { x: 5.1, y: 1.02, w: 4.7, h: 0.3,
fontSize: 9, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const sub = [
["MRI Brain (DWI)", "Gold standard: positive within minutes; penumbra mapping", C.accent2],
["Lipid profile + LFTs", "Dyslipidaemia; statin monitoring", C.accent2],
["ESR + CRP", "Vasculitis, infective endocarditis", C.accent4],
["Echo (TTE/TOE)", "LV thrombus, MS, valvular disease, PFO", C.accent1],
["Carotid duplex", "ICA stenosis in anterior circulation stroke", C.accent3],
["CT/MR Angiography", "Large vessel occlusion for thrombectomy", C.accent3],
["ANA, ANCA, APS screen", "Young stroke β vasculitis/thrombophilia", C.accent4],
["HIV, VDRL/TPHA", "Young stroke β infective vasculitis", C.accent4],
["Protein C/S, AT-III, Factor V Leiden", "Thrombophilia screen in young patients", C.accent4],
["Haemoglobin electrophoresis", "Sickle cell disease in young/ethnic patients", C.accent4],
];
sub.forEach((r, i) => {
const y = 1.35 + i * 0.38;
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y, w: 4.7, h: 0.36,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.OVAL, { x: 5.16, y: y+0.09, w: 0.18, h: 0.18,
fill: { color: r[2] }, line: { color: r[2] } });
s.addText(r[0], { x: 5.42, y: y+0.01, w: 4.3, h: 0.18,
fontSize: 8, bold: true, color: C.light, margin: 0 });
s.addText(r[1], { x: 5.42, y: y+0.19, w: 4.3, h: 0.16,
fontSize: 7, color: C.muted, margin: 0 });
});
pearl(s, "NCCT normal β no stroke. CT excludes haemorrhage and mimics (tumour/abscess). Ischaemia is invisible on CT for 6-24h. MRI DWI detects ischaemia within MINUTES of onset.",
0.2, 5.2, 9.6, 0.3);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 9 β ACUTE MANAGEMENT
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Acute Management", "Salvage the penumbra Β· Faculty PDF protocol");
// 4 ENEMIES OF THE PENUMBRA
s.addText("THE 4 ENEMIES OF THE PENUMBRA β ACT ON ALL FROM MINUTE 1", {
x: 0.2, y: 1.0, w: 9.6, h: 0.28,
fontSize: 9, bold: true, color: C.accent3, margin: 0
});
const enemies = [
{ e: "HYPOTENSION", t: "Maintain BP: permissive HTN in acute phase\n>220/120 mmHg β careful lowering\nAfter 72h β gradual antihypertensives", c: C.accent1 },
{ e: "HYPERGLYCAEMIA", t: "Target glucose 7β10 mmol/L\nGlucose β lactate in ischaemic tissue β local acidosis β accelerates cell death", c: C.accent3 },
{ e: "PYREXIA", t: "1Β°C rise = 10% β metabolic demand\nTreat fever aggressively: paracetamol, cooling\nCommon source: aspiration pneumonia", c: C.accent1 },
{ e: "HYPOXIA", t: "Target SpO2 >94%\nO2 delivery to marginal tissue is critical\nIntubate if needed for airway protection", c: C.accent2 },
];
enemies.forEach((e, i) => {
const x = 0.2 + i * 2.42;
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.32, w: 2.28, h: 1.62,
fill: { color: C.card }, line: { color: e.c, pt: 2 } });
s.addShape(pres.shapes.RECTANGLE, { x, y: 1.32, w: 2.28, h: 0.32,
fill: { color: e.c }, line: { color: e.c } });
s.addText(e.e, { x, y: 1.32, w: 2.28, h: 0.32,
fontSize: 9, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(e.t, { x: x+0.1, y: 1.67, w: 2.1, h: 1.25,
fontSize: 8, color: C.light, margin: 0, wrap: true });
});
divLine(s, 0.2, 3.02, 9.6, C.accent1);
// Ischaemic specific treatment
s.addText("SPECIFIC TREATMENT β ISCHAEMIC STROKE", {
x: 0.2, y: 3.1, w: 4.7, h: 0.28,
fontSize: 9, bold: true, color: C.accent2, margin: 0
});
const isc = [
{ n: "1", t: "ASPIRIN 300 mg IMMEDIATELY after haemorrhage excluded on NCCT", col: C.accent2 },
{ n: "2", t: "IV ALTEPLASE (rt-PA): within 4.5 hours of onset, if no contraindications (see next slide)", col: C.accent3 },
{ n: "3", t: "PERMISSIVE HTN: do NOT lower BP unless >220/120 (or >185/110 for tPA). Brain autoreg shifted right β penumbra needs the pressure", col: C.accent3 },
{ n: "4", t: "THROMBECTOMY: large vessel occlusion (ICA, M1 MCA) within 6h (up to 24h in selected patients β DAWN/DEFUSE-3)", col: C.accent5 },
{ n: "5", t: "MALIGNANT MCA SYNDROME: >2/3 MCA territory + midline shift >5mm β decompressive HEMICRANIECTOMY (peaks day 3β5)", col: C.accent1 },
];
isc.forEach((r, i) => {
numbCircle(s, r.n, 0.2, 3.42 + i * 0.4, 0.32, r.col);
s.addText(r.t, { x: 0.58, y: 3.42 + i * 0.4, w: 4.4, h: 0.38,
fontSize: 8, color: C.light, valign: "middle", margin: 0, wrap: true });
});
// ICH treatment
s.addText("SPECIFIC TREATMENT β HAEMORRHAGIC STROKE (ICH)", {
x: 5.1, y: 3.1, w: 4.7, h: 0.28,
fontSize: 9, bold: true, color: C.accent1, margin: 0
});
const ich = [
{ n: "1", t: "BP TARGET: SBP <140 mmHg (INTERACT2 trial) β OPPOSITE to ischaemic. Reduces haematoma expansion", col: C.accent1 },
{ n: "2", t: "CEREBELLAR HAEMORRHAGE >3 cm + deteriorating + brainstem compression β URGENT surgical evacuation or EVD", col: C.accent3 },
{ n: "3", t: "SUPRATENTORIAL lobar clot >30 mL within 1 cm of surface + clinical deterioration β surgical evacuation", col: C.accent3 },
{ n: "4", t: "REVERSE anticoagulation immediately: Vit K + PCC for warfarin; idarucizumab for dabigatran; andexanet for Xa inhibitors", col: C.accent2 },
{ n: "5", t: "SAH: Nimodipine (prevents vasospasm), EVD if hydrocephalus, coil/clip aneurysm urgently", col: C.accent4 },
];
ich.forEach((r, i) => {
numbCircle(s, r.n, 5.1, 3.42 + i * 0.4, 0.32, r.col);
s.addText(r.t, { x: 5.48, y: 3.42 + i * 0.4, w: 4.3, h: 0.38,
fontSize: 8, color: C.light, valign: "middle", margin: 0, wrap: true });
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 10 β tPA CRITERIA
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Thrombolysis β IV Alteplase (rt-PA)", "Faculty PDF criteria Β· 4.5-hour window (ECASS III)");
// Indications
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.02, w: 4.5, h: 0.35,
fill: { color: C.accent5 }, line: { color: C.accent5 } });
s.addText("INDICATIONS", { x: 0.2, y: 1.02, w: 4.5, h: 0.35,
fontSize: 11, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const indic = [
"Age > 18 years",
"Clinical diagnosis of ischaemic stroke",
"Measurable neurological deficit present",
"Onset of symptoms within 4.5 hours",
"No haemorrhage on CT brain",
];
indic.forEach((t, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.4 + i * 0.48, w: 4.5, h: 0.46,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.OVAL, { x: 0.28, y: 1.54 + i*0.48, w: 0.2, h: 0.2,
fill: { color: C.accent5 }, line: { color: C.accent5 } });
s.addText("β", { x: 0.28, y: 1.54 + i*0.48, w: 0.2, h: 0.2,
fontSize: 9, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(t, { x: 0.56, y: 1.4 + i*0.48, w: 4.1, h: 0.46,
fontSize: 9.5, color: C.light, valign: "middle", margin: 0 });
});
// Contraindications
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y: 1.02, w: 4.7, h: 0.35,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("CONTRAINDICATIONS", { x: 5.1, y: 1.02, w: 4.7, h: 0.35,
fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const contra = [
["Minor/rapidly resolving symptoms", "Risk-benefit unfavourable; may resolve spontaneously"],
["Stroke / serious head trauma within 3 months", "Recently infarcted brain = high haemorrhagic transformation risk"],
["Known history of ICH", "Prior ICH = underlying vascular abnormality; catastrophic re-bleed"],
["SBP >185 or DBP >110 at treatment time", "Can treat BP first, then give tPA if achieved"],
["Symptoms suggestive of SAH", "tPA in SAH = catastrophic outcome"],
["GI or GU haemorrhage within 21 days", "Systemic haemorrhage risk"],
["Arterial puncture at non-compressible site within 7 days", "Bleeding risk at puncture site"],
["Heparin within 48h + elevated APTT", "Active anticoagulation"],
["Platelets < 100,000 / ΞΌL", "Coagulopathy; inadequate haemostasis"],
];
contra.forEach((r, i) => {
const y = 1.4 + i * 0.42;
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y, w: 4.7, h: 0.4,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.RECTANGLE, { x: 5.1, y, w: 0.08, h: 0.4,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText(r[0], { x: 5.22, y: y+0.01, w: 4.5, h: 0.2,
fontSize: 8, bold: true, color: C.light, margin: 0 });
s.addText(r[1], { x: 5.22, y: y+0.22, w: 4.5, h: 0.17,
fontSize: 7.5, color: C.muted, margin: 0 });
});
pearl(s, "TIME IS BRAIN: every minute = ~1.9 million neurons die. Door-to-needle target < 60 min. The 4.5h window extended from 3h by ECASS III trial. Beyond 4.5h β thrombectomy in eligible large vessel occlusion patients.",
0.2, 5.2, 9.6, 0.3);
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 11 β COMPLICATIONS + BARTHEL INDEX
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Complications & Functional Assessment", "Daily ward vigilance Β· Barthel Index");
// Medical complications
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 1.02, w: 4.75, h: 0.3,
fill: { color: C.accent1 }, line: { color: C.accent1 } });
s.addText("MEDICAL COMPLICATIONS β Proactively Screen Daily", { x: 0.2, y: 1.02, w: 4.75, h: 0.3,
fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle", margin: 0 });
const medComp = [
{ c: "Aspiration Pneumonia", d: "Most common cause of early death after stroke\nDysphagia in 28β65% β water swallow test BEFORE oral intake\nNil by mouth β NG tube until SLT clears patient", col: C.accent1 },
{ c: "UTI", d: "Urinary retention (bladder areflexia), catheter use\nAvoid urinary catheter if possible", col: C.accent3 },
{ c: "DVT / PE", d: "Immobility + limb paresis + post-stroke hypercoagulable state\nCompression stockings + LMWH + early mobilisation", col: C.accent4 },
{ c: "Pressure Sores", d: "Immobility + nutritional deficiency\n2-hourly repositioning; pressure-relieving mattress", col: C.accent3 },
{ c: "Epileptic Seizures", d: "Cortical irritation β 3β10% of stroke patients\nAED if seizures occur; seizure precautions", col: C.accent2 },
];
medComp.forEach((r, i) => {
const y = 1.35 + i * 0.67;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 4.75, h: 0.65,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 0.08, h: 0.65,
fill: { color: r.col }, line: { color: r.col } });
s.addText(r.c, { x: 0.34, y: y+0.03, w: 4.53, h: 0.24,
fontSize: 9, bold: true, color: r.col, margin: 0 });
s.addText(r.d, { x: 0.34, y: y+0.3, w: 4.53, h: 0.32,
fontSize: 8, color: C.muted, margin: 0, wrap: true });
});
// Neurological complications
s.addShape(pres.shapes.RECTANGLE, { x: 5.15, y: 1.02, w: 4.65, h: 0.3,
fill: { color: C.accent3 }, line: { color: C.accent3 } });
s.addText("NEUROLOGICAL COMPLICATIONS", { x: 5.15, y: 1.02, w: 4.65, h: 0.3,
fontSize: 8.5, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
const neurComp = [
{ c: "Malignant MCA Syndrome", d: "CT >50% MCA territory + septum pellucidum shift >5mm\nPeak day 3β5 β herniation\nDecompressive hemicraniectomy (age <60, within 48h)", col: C.accent1 },
{ c: "Haemorrhagic Transformation", d: "Reperfusion of BBB-damaged ischaemic tissue\nEspecially post-tPA and cardioembolic stroke\nRepeat CT if neurological deterioration", col: C.accent1 },
{ c: "Cerebral Vasospasm (SAH)", d: "Blood breakdown products β smooth muscle contraction\nPeak day 5β14 β delayed cerebral ischaemia\nNimodipine prophylaxis", col: C.accent3 },
{ c: "Hydrocephalus", d: "IVH or SAH blocking CSF drainage\nEarly post-haemorrhage; EVD may be needed", col: C.accent2 },
];
neurComp.forEach((r, i) => {
const y = 1.35 + i * 0.82;
s.addShape(pres.shapes.RECTANGLE, { x: 5.15, y, w: 4.65, h: 0.78,
fill: { color: i%2===0?C.card:C.panel }, line: { color: i%2===0?C.card:C.panel } });
s.addShape(pres.shapes.RECTANGLE, { x: 5.15, y, w: 0.08, h: 0.78,
fill: { color: r.col }, line: { color: r.col } });
s.addText(r.c, { x: 5.3, y: y+0.04, w: 4.42, h: 0.24,
fontSize: 9, bold: true, color: r.col, margin: 0 });
s.addText(r.d, { x: 5.3, y: y+0.32, w: 4.42, h: 0.42,
fontSize: 8, color: C.muted, margin: 0, wrap: true });
});
// Barthel strip
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y: 5.08, w: 9.6, h: 0.42,
fill: { color: C.panel }, line: { color: C.accent2, pt: 1 } });
s.addText([
{ text: "BARTHEL INDEX (0β100): ", options: { bold: true, color: C.accent2, fontSize: 9 } },
{ text: "Bathing Β· Toileting Β· Dressing Β· Hygiene Β· Grooming Β· Eating Β· Mobility Β· Transfers Β· Recreation Β· Speech & Higher functions ", options: { color: C.light, fontSize: 8 } },
{ text: "| Also: PT & OT started? Social support? Home environment barriers?", options: { color: C.muted, fontSize: 7.5, italic: true } }
], { x: 0.3, y: 5.08, w: 9.4, h: 0.42, valign: "middle", margin: 3 });
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 12 β CLINICAL PEARLS RAPID-FIRE
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "Clinical Pearls β Rapid Fire", "High-yield bedside rules for ward rounds and exams");
const pearls = [
{ p: "'Sudden' onset = vascular", d: "Instantaneous maximal deficit. Gradual onset β tumour, abscess, SDH, metabolic" },
{ p: "Bilateral weakness β stroke", d: "Think metabolic, bilateral lesions, spinal cord. Unilateral = stroke until proven otherwise" },
{ p: "Crossed signs = brainstem", d: "Ipsilateral CN deficit + contralateral limb = brainstem lesion. Pathognomonic" },
{ p: "No cortical signs = lacunar", d: "Aphasia / neglect / hemianopia EXCLUDE lacunar syndrome" },
{ p: "Check glucose FIRST", d: "Hypoglycaemia <2.8 mmol/L perfectly mimics stroke. Reversible. Give glucose before tPA" },
{ p: "NCCT normal β no stroke", d: "CT excludes haemorrhage; ischaemia invisible for 6β24h. MRI DWI detects within minutes" },
{ p: "Permissive HTN in ischaemia", d: "Do NOT lower BP <220/120 (without tPA). Autoreg shifts right β penumbra needs the pressure" },
{ p: "Fever kills the penumbra", d: "1Β°C rise = 10% β metabolic demand. Treat fever aggressively from minute 1" },
{ p: "Dysphagia screen before mouth", d: "28β65% of acute strokes. Aspiration pneumonia = most common cause of early death" },
{ p: "Carotid bruit can disappear", d: ">95% ICA stenosis β flow too low β bruit disappears. Always do duplex regardless" },
{ p: "Charcot-Bouchard = HTN vessel", d: "Same microaneurysms that occlude β lacunar infarct will rupture β deep ICH (HTN)" },
{ p: "Cerebellar ICH >3 cm = surgery", d: "Small posterior fossa β rapid brainstem compression + hydrocephalus. Neurosurgical emergency" },
{ p: "AF + stroke β anticoagulate", d: "Antiplatelets are insufficient for AF. NOAC first choice; timing depends on stroke severity" },
{ p: "'Worst headache of life' = SAH", d: "Thunderclap onset. CT first (98% within 12h), then LP at 12h if CT negative (xanthochromia)" },
];
// 2 columns Γ 7 rows
const half = 7;
pearls.forEach((p, i) => {
const col = i < half ? 0 : 1;
const row = i < half ? i : i - half;
const x = col === 0 ? 0.2 : 5.1;
const y = 1.02 + row * 0.63;
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 4.72, h: 0.58,
fill: { color: C.panel },
line: { color: row % 2 === 0 ? C.accent1 : C.accent2, pt: 1 }
});
s.addText("β
" + p.p, { x: x+0.1, y: y+0.04, w: 4.52, h: 0.24,
fontSize: 9, bold: true, color: row%2===0 ? C.accent1 : C.accent2, margin: 0 });
s.addText(p.d, { x: x+0.1, y: y+0.3, w: 4.52, h: 0.24,
fontSize: 8, color: C.light, margin: 0 });
});
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// SLIDE 13 β THE 3 BEDSIDE QUESTIONS + SOURCES
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
{
const s = pres.addSlide(); bg(s);
headerBar(s, "The 3 Bedside Questions", "Ask these on every stroke patient β in order");
const questions = [
{
n: "1",
q: "What is the temporal profile?",
a: "SUDDEN onset β vascular (stroke/TIA)\nGradual (weeks) β tumour\nDays + fever β abscess/encephalitis\nMinutes + seizure history β Todd's paresis",
col: C.accent2,
},
{
n: "2",
q: "Which vascular territory?",
a: "Anterior: face+arm+leg + cortical signs\nPosterior: D-V-F triad + crossed signs\nLacunar: pure motor/sensory, NO cortical signs\nβ Localise before imaging",
col: C.accent3,
},
{
n: "3",
q: "What is the aetiology?",
a: "Atherosclerosis: RF + TIA + bruit\nCardioembolism: AF + murmur + maximal deficit\nLacunar: HTN + DM + no cortical signs\nYoung: vasculitis + thrombophilia + dissection",
col: C.accent1,
},
];
questions.forEach((q, i) => {
const y = 1.05 + i * 1.4;
s.addShape(pres.shapes.RECTANGLE, { x: 0.2, y, w: 9.6, h: 1.33,
fill: { color: C.panel }, line: { color: q.col, pt: 2 } });
s.addShape(pres.shapes.OVAL, { x: 0.35, y: y+0.3, w: 0.72, h: 0.72,
fill: { color: q.col }, line: { color: q.col } });
s.addText(q.n, { x: 0.35, y: y+0.3, w: 0.72, h: 0.72,
fontSize: 24, bold: true, color: C.bg, align: "center", valign: "middle", margin: 0 });
s.addText(q.q, { x: 1.22, y: y+0.08, w: 8.4, h: 0.38,
fontSize: 13, bold: true, color: q.col, margin: 0 });
s.addText(q.a, { x: 1.22, y: y+0.5, w: 8.3, h: 0.75,
fontSize: 9, color: C.light, margin: 0, wrap: true });
});
// Source footer
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.25, w: 10, h: 0.375,
fill: { color: C.card }, line: { color: C.card } });
s.addText("Sources: Faculty PDF (Stroke vith del.pdf) Β· Fuster & Hurst's The Heart 15E Β· Neuroanatomy through Clinical Cases 3E Β· Bradley & Daroff's Neurology in Clinical Practice", {
x: 0.2, y: 5.27, w: 9.6, h: 0.33,
fontSize: 7, color: C.muted, valign: "middle", margin: 0, italic: true
});
}
// ββ WRITE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
pres.writeFile({ fileName: "/home/daytona/workspace/stroke-presentation/Approach_to_Stroke_Ward_Rounds.pptx" })
.then(() => console.log("Done: Approach_to_Stroke_Ward_Rounds.pptx"))
.catch(err => { console.error(err); process.exit(1); });
cd /home/daytona/workspace/stroke-presentation && node build.js 2>&1
ls -lh /home/daytona/workspace/stroke-presentation/
Approach to Stroke Ward Rounds
Presentation Β· PPTX
| # | Slide | Content |
|---|---|---|
| 1 | Title | Deep navy + red design, five topic badges |
| 2 | Definition & Pathophysiology | Stroke vs TIA, why "sudden" matters, Penumbra vs Core diagram with CBF thresholds |
| 3 | History-Taking | Opening case, presenting complaints, 5 symptom analysis questions, aetiology history table, stroke mimics column |
| 4 | Vascular Territory Identification | Anterior / Posterior / Lacunar - 3 full columns with features, pathophysiology and bedside pearls |
| 5 | Lacunar Syndromes Table | All 6 syndromes - clinical features, location, artery (from Neuroanatomy through Clinical Cases 3E + Fuster 15E) |
| 6 | Aetiology β TOAST Classification | 4 quadrant layout: atherosclerosis, cardioembolism, lacunar, vasculitis - each with pathophysiology, history clues, prevention |
| 7 | Physical Examination | 3 columns - general exam, neurological exam (pronator drift, UMN pattern, higher functions), cardiovascular exam |
| 8 | Investigations | Immediate first-hour panel vs second-line; young stroke screen (APS, thrombophilia, HIV, sickle cell) |
| 9 | Acute Management | 4 Enemies of the Penumbra + ischaemic specific treatment (aspirin, tPA, thrombectomy, hemicraniectomy) + ICH management side-by-side |
| 10 | Thrombolysis Criteria | Faculty PDF indications vs contraindications with pathophysiological reasoning for each |
| 11 | Complications + Barthel | Medical complications (aspiration pneumonia first), neurological complications (malignant MCA, vasospasm), Barthel Index strip |
| 12 | Clinical Pearls Rapid-Fire | 14 bedside rules in 2-column layout |
| 13 | 3 Bedside Questions | The master framework as 3 numbered cards with source footer |