Make presentation on hepatitis for pharmacy students divide topic into five students
hepatitis virus types comparison table
hepatitis B serology markers diagnosis
hepatitis C direct acting antiviral treatment sofosbuvir
hepatitis A vaccine hepatitis B vaccine schedule
ls -la /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/hepatitis-pptx
~/hepatitis-pptx/build.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ─── Fetch images ────────────────────────────────────────────────────────────
const imageUrls = [
"https://cdn.orris.care/cdss_images/HARRISON_1763033912702_6c8b3aeb-d09d-4456-9e4a-51e468791295.png", // HAV-HEV nomenclature table
"https://cdn.orris.care/cdss_images/HARRISON_1763031941963_b8714721-0c5c-4031-a531-da171f3c8e24.png", // chronic HBV serology timeline
"https://cdn.orris.care/cdss_images/GLGCA_41753_1766502006027_6fb9687b-4165-46fa-a1ed-7ae80b6c4566_21bf0166-de59-45a3-9836-5b11d5412c80.png", // HBV/HDV lab diagnosis table
"https://cdn.orris.care/cdss_images/GLGCA_25111_1766507250153_31c81149-4a38-4e6a-b6cf-03ba3e4a07f8_9859b8d5-ed1c-4ff6-a126-066bcccaf791.png", // HCV DAA lifecycle (try)
"https://cdn.orris.care/cdss_images/GLGCA_2232415_1763366073233_eb427168-5573-434d-9914-2a97b7413bae.png", // HCV lifecycle & DAA targets
"https://cdn.orris.care/cdss_images/GLGCA_4779637_1766686947536_b2bfdfdc-a8c3-49f6-b774-cb9299224a8f_a4791fd6-8d67-4a9b-afc8-071fa27ef5b8.png", // HAV vaccine table
];
console.log("Fetching images...");
let images = [];
try {
const result = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`,
{ timeout: 60000 }
).toString();
images = JSON.parse(result);
console.log("Images fetched:", images.map((img, i) => `${i}: ${img.error ? "ERROR: " + img.error : "OK"}`).join(", "));
} catch (e) {
console.error("Image fetch error:", e.message);
images = imageUrls.map(() => ({ base64: null, error: "fetch failed" }));
}
// ─── Color palette ───────────────────────────────────────────────────────────
const C = {
navy: "0D2B55", // deep navy (dominant bg)
teal: "0E7C7B", // teal accent (section headers)
gold: "F4A11D", // gold accent (highlights / student labels)
white: "FFFFFF",
offWhite:"EEF2F7",
lightBg: "1A3A6B", // slightly lighter navy for card bg
subtleGray: "A8B8CC",
darkText: "0D1F3C",
red: "D94F3D",
green: "2EAF6C",
};
// ─── Helpers ─────────────────────────────────────────────────────────────────
function addSlide(pres, bgColor) {
const sld = pres.addSlide();
sld.background = { color: bgColor || C.navy };
return sld;
}
function sectionBanner(sld, studentNum, studentLabel, topic) {
// Top banner stripe
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.33, h: 0.55, fill: { color: C.teal } });
sld.addText(`STUDENT ${studentNum} · ${studentLabel}`, {
x: 0.3, y: 0, w: 9, h: 0.55,
fontSize: 11, bold: true, color: C.white, valign: "middle", margin: 0
});
sld.addText(`HEPATITIS · PHARMACY`, {
x: 9.5, y: 0, w: 3.5, h: 0.55,
fontSize: 9, color: C.offWhite, align: "right", valign: "middle", margin: 0
});
}
function slideTitle(sld, title, subtitle, yTitle) {
yTitle = yTitle || 0.7;
sld.addText(title, {
x: 0.4, y: yTitle, w: 12.5, h: 0.65,
fontSize: 26, bold: true, color: C.gold, fontFace: "Calibri"
});
if (subtitle) {
sld.addText(subtitle, {
x: 0.4, y: yTitle + 0.65, w: 12.5, h: 0.38,
fontSize: 13, color: C.subtleGray, italic: true
});
}
}
function bulletBox(sld, bullets, x, y, w, h, opts) {
opts = opts || {};
const items = bullets.map((b, i) => {
if (typeof b === "object" && b.sub) {
return [
{ text: b.head, options: { bullet: { indent: 15 }, bold: true, color: C.gold, fontSize: opts.fontSize || 13, breakLine: false } },
{ text: " — " + b.sub, options: { bold: false, color: C.offWhite, fontSize: opts.fontSize || 13, breakLine: true } }
];
}
return { text: b, options: { bullet: { indent: 15 }, color: C.offWhite, fontSize: opts.fontSize || 13, breakLine: i < bullets.length - 1 } };
}).flat();
sld.addText(items, { x, y, w, h, valign: "top", lineSpacingMultiple: 1.25, ...opts });
}
function divider(sld, y) {
sld.addShape(pres.ShapeType.line, {
x: 0.4, y, w: 12.5, h: 0,
line: { color: C.teal, width: 1.2, dashType: "solid" }
});
}
// ─── Init ─────────────────────────────────────────────────────────────────────
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.33" × 7.5"
pres.title = "Hepatitis — Pharmacy Students Presentation";
pres.author = "Orris Medical AI";
// ════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ════════════════════════════════════════════════════════════
{
const sld = addSlide(pres, C.navy);
// decorative vertical stripe
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.teal } });
sld.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 7.5, fill: { color: C.gold } });
sld.addText("HEPATITIS", {
x: 0.6, y: 1.2, w: 12, h: 1.6,
fontSize: 72, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 8
});
sld.addText("A Comprehensive Pharmacy Review", {
x: 0.6, y: 2.85, w: 10, h: 0.6,
fontSize: 22, color: C.gold, italic: true
});
// 5 student badges
const students = [
{ n: "1", label: "Overview & Epidemiology" },
{ n: "2", label: "Pathophysiology" },
{ n: "3", label: "Diagnosis & Serology" },
{ n: "4", label: "Pharmacotherapy" },
{ n: "5", label: "Prevention & Vaccination" },
];
students.forEach((s, i) => {
const bx = 0.6 + i * 2.5;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 3.7, w: 2.3, h: 1.1, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.5 } });
sld.addText(`Student ${s.n}`, { x: bx, y: 3.72, w: 2.3, h: 0.38, fontSize: 10, bold: true, color: C.gold, align: "center" });
sld.addText(s.label, { x: bx + 0.08, y: 4.08, w: 2.14, h: 0.6, fontSize: 9.5, color: C.offWhite, align: "center" });
});
sld.addText("Pharmacy Students Group Presentation · April 2026", {
x: 0.6, y: 5.1, w: 10, h: 0.35,
fontSize: 11, color: C.subtleGray
});
sld.addText("Sources: Harrison's, Goldman-Cecil, Robbins Pathology, Sleisenger & Fordtran, Red Book 2021", {
x: 0.6, y: 6.95, w: 12, h: 0.35,
fontSize: 8.5, color: C.subtleGray, italic: true
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 1 — OVERVIEW & EPIDEMIOLOGY
// ════════════════════════════════════════════════════════════
// Slide 2 — Types of Hepatitis Viruses
{
const sld = addSlide(pres);
sectionBanner(sld, 1, "Overview & Epidemiology", "Types of Hepatitis Viruses");
slideTitle(sld, "Types of Hepatitis Viruses", "Five major viruses — distinct genomes, transmission routes & risks");
bulletBox(sld, [
{ head: "Hepatitis A (HAV)", sub: "ssRNA picornavirus · fecal-oral · self-limiting acute disease" },
{ head: "Hepatitis B (HBV)", sub: "dsDNA hepadnavirus · parenteral/sexual/perinatal · can become chronic" },
{ head: "Hepatitis C (HCV)", sub: "ssRNA flavivirus · blood-borne · 70–85% progress to chronic" },
{ head: "Hepatitis D (HDV)", sub: "RNA deltavirus · requires HBV coinfection · worsens HBV severity" },
{ head: "Hepatitis E (HEV)", sub: "ssRNA hepevirus · fecal-oral · high mortality in pregnancy (20%)" },
], 0.4, 1.7, 7.2, 4.8, { fontSize: 13.5 });
// image — Harrison's nomenclature table
if (images[0] && !images[0].error) {
sld.addImage({ data: images[0].base64, x: 7.8, y: 1.5, w: 5.2, h: 3.0 });
sld.addText("Harrison's Principles of Internal Medicine 22E · Table 339-1", {
x: 7.8, y: 4.55, w: 5.2, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 3 — Global Epidemiology
{
const sld = addSlide(pres);
sectionBanner(sld, 1, "Overview & Epidemiology", "Global Burden of Hepatitis");
slideTitle(sld, "Global Epidemiology", "Hepatitis remains a leading cause of liver-related mortality worldwide");
// Stat cards
const stats = [
{ val: "354 M", lbl: "Chronic HBV + HCV infections globally (WHO)" },
{ val: "~1.4M", lbl: "Deaths/year from viral hepatitis" },
{ val: "90%", lbl: "of infants exposed to HBV at birth develop chronic infection (without vaccination)" },
{ val: "70–85%", lbl: "of acute HCV infections become chronic" },
{ val: "20%", lbl: "Mortality rate of HEV in pregnant women" },
];
stats.forEach((s, i) => {
const rx = (i % 3) * 4.2 + 0.4;
const ry = 1.8 + Math.floor(i / 3) * 2.1;
sld.addShape(pres.ShapeType.roundRect, { x: rx, y: ry, w: 3.9, h: 1.85, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.2 } });
sld.addText(s.val, { x: rx, y: ry + 0.08, w: 3.9, h: 0.75, fontSize: 30, bold: true, color: C.gold, align: "center" });
sld.addText(s.lbl, { x: rx + 0.1, y: ry + 0.82, w: 3.7, h: 0.9, fontSize: 10.5, color: C.offWhite, align: "center" });
});
sld.addText("Sources: WHO Global Hepatitis Report · Goldman-Cecil Medicine · Harrison's 22E", {
x: 0.4, y: 6.9, w: 12.5, h: 0.3, fontSize: 8, color: C.subtleGray, italic: true
});
}
// Slide 4 — Transmission Routes
{
const sld = addSlide(pres);
sectionBanner(sld, 1, "Overview & Epidemiology", "Transmission Routes");
slideTitle(sld, "Transmission Routes", "Understanding spread is key to prevention counselling");
divider(sld, 1.5);
// Two columns
bulletBox(sld, [
"🦠 HAV & HEV",
"→ Contaminated food/water",
"→ Poor sanitation & hygiene",
"→ Travel to endemic regions",
"→ Close household contact",
"",
"🩸 HBV, HCV & HDV",
"→ Contaminated blood/needles",
"→ Sexual contact (especially HBV)",
"→ Perinatal (mother-to-child)",
"→ Tattooing / unscreened blood products",
], 0.4, 1.6, 5.6, 4.9, { fontSize: 12.5 });
// Risk factors box
sld.addShape(pres.ShapeType.roundRect, { x: 6.5, y: 1.6, w: 6.5, h: 4.8, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.5 } });
sld.addText("High-Risk Groups for Pharmacy Counselling", {
x: 6.5, y: 1.65, w: 6.5, h: 0.5, fontSize: 13, bold: true, color: C.gold, align: "center"
});
divider(sld, 2.22);
bulletBox(sld, [
"Injection drug users (HBV, HCV, HDV)",
"Healthcare workers — needlestick exposure",
"Travellers to endemic regions (HAV, HEV)",
"Pregnant women — risk of vertical HBV/HCV",
"Patients on haemodialysis (HCV)",
"Men who have sex with men (HAV, HBV)",
"Immunocompromised patients (all types)",
], 6.7, 2.28, 6.1, 4.0, { fontSize: 12 });
}
// ════════════════════════════════════════════════════════════
// STUDENT 2 — PATHOPHYSIOLOGY
// ════════════════════════════════════════════════════════════
// Slide 5 — Liver Injury Mechanisms
{
const sld = addSlide(pres);
sectionBanner(sld, 2, "Pathophysiology", "Mechanisms of Hepatic Injury");
slideTitle(sld, "Mechanisms of Hepatic Injury", "Immune-mediated damage is the hallmark of viral hepatitis");
bulletBox(sld, [
{ head: "Direct cytopathic effect", sub: "HCV, HEV can directly damage hepatocytes" },
{ head: "CD8+ T-cell mediated killing", sub: "Primary mechanism in HBV; T-cells destroy infected hepatocytes presenting viral antigens (HBcAg, HBsAg)" },
{ head: "Cytokine storm", sub: "TNF-α, IFN-γ, IL-2 — amplify inflammation, cause bystander injury" },
{ head: "Interface hepatitis", sub: "Lymphocytic infiltration at the portal-parenchymal junction; drives fibrosis" },
{ head: "Hepatocyte apoptosis", sub: "Councilman bodies (acidophilic apoptotic remnants) — hallmark histology" },
{ head: "Stellate cell activation", sub: "Chronic inflammation → TGF-β → collagen deposition → FIBROSIS → CIRRHOSIS" },
], 0.4, 1.7, 12.5, 4.8, { fontSize: 13 });
}
// Slide 6 — Acute vs Chronic Hepatitis
{
const sld = addSlide(pres);
sectionBanner(sld, 2, "Pathophysiology", "Acute vs Chronic Disease");
slideTitle(sld, "Acute vs Chronic Hepatitis", "Clinical course depends on immune response and viral persistence");
// Acute column
sld.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.6, w: 5.9, h: 4.8, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.green, width: 1.5 } });
sld.addText("ACUTE HEPATITIS", { x: 0.4, y: 1.65, w: 5.9, h: 0.45, fontSize: 14, bold: true, color: C.green, align: "center" });
bulletBox(sld, [
"Duration < 6 months",
"AST/ALT markedly elevated (10–50× ULN)",
"Symptoms: jaundice, RUQ pain, fatigue, nausea",
"Fulminant hepatitis: rare but life-threatening (HBV > HAV)",
"Histology: lobular disarray, Councilman bodies",
"HAV & HEV → always self-limiting in immunocompetent",
"HBV acute → 95% adults recover; 5% chronic",
"HCV acute → 15–30% spontaneous clearance",
], 0.6, 2.15, 5.5, 4.1, { fontSize: 11.5 });
// Chronic column
sld.addShape(pres.ShapeType.roundRect, { x: 7.0, y: 1.6, w: 5.9, h: 4.8, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.red, width: 1.5 } });
sld.addText("CHRONIC HEPATITIS", { x: 7.0, y: 1.65, w: 5.9, h: 0.45, fontSize: 14, bold: true, color: C.red, align: "center" });
bulletBox(sld, [
"Duration > 6 months",
"HBV: risk highest in neonates (90%); lowest in adults (5%)",
"HCV: 70–85% of acute infections",
"HDV: always chronic if superinfection on HBV carrier",
"Histology: periportal fibrosis, bridging, ground-glass hepatocytes (HBV)",
"Complications: cirrhosis, portal hypertension, HCC",
"HCC risk: 100× higher with chronic HBV than controls",
"MELD score guides transplant prioritization",
], 7.2, 2.15, 5.5, 4.1, { fontSize: 11.5 });
// Arrow between
sld.addShape(pres.ShapeType.rect, { x: 6.35, y: 3.55, w: 0.6, h: 0.4, fill: { color: C.teal } });
sld.addText("→", { x: 6.32, y: 3.52, w: 0.66, h: 0.46, fontSize: 22, bold: true, color: C.white, align: "center" });
}
// Slide 7 — HBV Histology Image
{
const sld = addSlide(pres);
sectionBanner(sld, 2, "Pathophysiology", "Histological Features");
slideTitle(sld, "Histological Hallmarks of Viral Hepatitis");
sld.addText("The histological findings below correlate with the degree of hepatocellular injury, inflammation, and fibrosis:", {
x: 0.4, y: 1.48, w: 12.5, h: 0.4, fontSize: 12, color: C.offWhite, italic: true
});
bulletBox(sld, [
{ head: "Councilman bodies", sub: "Eosinophilic apoptotic hepatocytes — hallmark of acute viral hepatitis" },
{ head: "Ground-glass hepatocytes", sub: "HBsAg-laden cytoplasm in chronic HBV — pale, homogeneous staining" },
{ head: "Portal lymphocytic infiltrates", sub: "Predominant CD4+/CD8+ T-lymphocytes in HBV & HCV" },
{ head: "Bridging fibrosis", sub: "Connects adjacent portal tracts — precursor to cirrhosis" },
{ head: "Regenerative nodules", sub: "Cirrhotic remodelling — disrupts hepatic architecture" },
], 0.4, 2.0, 6.8, 4.5, { fontSize: 12.5 });
sld.addText("Liver biopsy: chronic HBV with cirrhosis\nGround-glass cytoplasm, regenerative nodules, dense fibrous septa visible", {
x: 7.5, y: 5.3, w: 5.5, h: 0.8, fontSize: 9, color: C.subtleGray, italic: true, align: "center"
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 3 — DIAGNOSIS & SEROLOGY
// ════════════════════════════════════════════════════════════
// Slide 8 — Clinical Presentation
{
const sld = addSlide(pres);
sectionBanner(sld, 3, "Diagnosis & Serology", "Clinical Presentation");
slideTitle(sld, "Clinical Presentation of Hepatitis", "From subclinical infection to fulminant hepatic failure");
// 3-phase timeline bar
const phases = [
{ label: "Prodrome", dur: "1–2 weeks", sx: "Fatigue, anorexia, nausea, RUQ discomfort, fever (HAV)", color: C.teal },
{ label: "Icteric Phase", dur: "2–6 weeks", sx: "Jaundice, dark urine (bilirubinuria), pale stools, pruritus, tender hepatomegaly", color: C.gold },
{ label: "Recovery", dur: "Weeks–months", sx: "Symptom resolution; LFTs normalise; risk of chronicity (HBV/HCV)", color: C.green },
];
phases.forEach((p, i) => {
const bx = 0.4 + i * 4.3;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.7, w: 4.1, h: 1.0, rectRadius: 0.1, fill: { color: p.color } });
sld.addText(`${p.label} · ${p.dur}`, { x: bx, y: 1.72, w: 4.1, h: 0.45, fontSize: 12.5, bold: true, color: C.darkText, align: "center" });
sld.addText(p.sx, { x: bx + 0.08, y: 2.18, w: 3.94, h: 0.48, fontSize: 9.5, color: C.darkText, align: "center" });
});
divider(sld, 2.85);
sld.addText("Key Laboratory Findings:", { x: 0.4, y: 2.95, w: 12.5, h: 0.4, fontSize: 13, bold: true, color: C.gold });
bulletBox(sld, [
{ head: "ALT/AST", sub: "Markedly elevated (hepatocellular pattern); ALT > AST in viral hepatitis" },
{ head: "Bilirubin", sub: "Total and direct bilirubin elevated; urobilinogen in urine" },
{ head: "Alkaline phosphatase / GGT", sub: "Mildly elevated (unless cholestatic component)" },
{ head: "PT / INR", sub: "Prolonged in severe or fulminant disease — best marker of synthetic function" },
{ head: "Albumin", sub: "Decreased in chronic hepatitis (impaired synthetic function)" },
], 0.4, 3.4, 12.5, 3.7, { fontSize: 12.5 });
}
// Slide 9 — Serological Markers
{
const sld = addSlide(pres);
sectionBanner(sld, 3, "Diagnosis & Serology", "Serological Markers");
slideTitle(sld, "Serological Diagnosis", "Specific serological markers identify virus type, phase and immunity status");
// HAV
sld.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.6, w: 3.8, h: 2.45, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.2 } });
sld.addText("Hepatitis A", { x: 0.4, y: 1.62, w: 3.8, h: 0.38, fontSize: 12, bold: true, color: C.teal, align: "center" });
bulletBox(sld, [
"IgM anti-HAV → Acute infection",
"IgG anti-HAV → Past infection / immunity",
"No chronic carrier state",
], 0.55, 2.04, 3.5, 1.9, { fontSize: 11 });
// HBV
sld.addShape(pres.ShapeType.roundRect, { x: 4.5, y: 1.6, w: 4.1, h: 2.45, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.2 } });
sld.addText("Hepatitis B", { x: 4.5, y: 1.62, w: 4.1, h: 0.38, fontSize: 12, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"HBsAg → Active infection (surface antigen)",
"Anti-HBs → Immunity (recovery/vaccine)",
"IgM anti-HBc → Acute HBV",
"IgG anti-HBc → Past/chronic exposure",
"HBeAg → High replication / infectivity",
"HBV DNA → Viral load (PCR)",
], 4.65, 2.04, 3.8, 2.0, { fontSize: 10.5 });
// HCV
sld.addShape(pres.ShapeType.roundRect, { x: 8.9, y: 1.6, w: 4.1, h: 2.45, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.red, width: 1.2 } });
sld.addText("Hepatitis C", { x: 8.9, y: 1.62, w: 4.1, h: 0.38, fontSize: 12, bold: true, color: C.red, align: "center" });
bulletBox(sld, [
"Anti-HCV ELISA → Screening test",
"HCV RNA (PCR) → Confirms active infection",
"HCV genotype → Guides DAA therapy",
"Anti-HCV alone ≠ active infection",
"(does not distinguish acute/chronic/resolved)",
], 9.05, 2.04, 3.8, 2.0, { fontSize: 10.5 });
// Bottom: HBV serology timeline image
if (images[1] && !images[1].error) {
sld.addImage({ data: images[1].base64, x: 0.4, y: 4.2, w: 7.5, h: 2.9 });
sld.addText("Chronic HBV serology timeline — Harrison's Principles of Internal Medicine 22E", {
x: 0.4, y: 7.15, w: 7.5, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
if (images[2] && !images[2].error) {
sld.addImage({ data: images[2].base64, x: 8.2, y: 4.2, w: 4.9, h: 2.9 });
sld.addText("HBV/HDV lab diagnosis markers — Clinical Microbiology Guide", {
x: 8.2, y: 7.15, w: 4.9, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 10 — Diagnostic Algorithm
{
const sld = addSlide(pres);
sectionBanner(sld, 3, "Diagnosis & Serology", "Diagnostic Algorithm");
slideTitle(sld, "Diagnostic Algorithm for Hepatitis", "Step-by-step approach to identifying hepatitis type");
const steps = [
{ n: "1", title: "Suspect viral hepatitis", body: "↑ ALT/AST + jaundice/fatigue + risk factors" },
{ n: "2", title: "Initial screening panel", body: "IgM anti-HAV · HBsAg · IgM anti-HBc · Anti-HCV" },
{ n: "3", title: "Confirm & characterise", body: "HCV RNA (if anti-HCV+) · HBV DNA, HBeAg, anti-HBe · HEV IgM (if travel history)" },
{ n: "4", title: "Assess severity", body: "LFTs (ALT, AST, bilirubin, albumin) · PT/INR · CBC · Ultrasound / fibroscan" },
{ n: "5", title: "Chronic disease workup", body: "Liver biopsy (HAI score) · AFP (HCC surveillance) · EGD (varices) · MELD score" },
];
steps.forEach((s, i) => {
const sy = 1.75 + i * 1.0;
sld.addShape(pres.ShapeType.ellipse, { x: 0.3, y: sy, w: 0.55, h: 0.55, fill: { color: C.teal } });
sld.addText(s.n, { x: 0.3, y: sy, w: 0.55, h: 0.55, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle" });
sld.addShape(pres.ShapeType.roundRect, { x: 1.05, y: sy, w: 11.8, h: 0.82, rectRadius: 0.08, fill: { color: C.lightBg }, line: { color: C.teal, width: 0.8 } });
sld.addText(s.title, { x: 1.15, y: sy + 0.04, w: 3.5, h: 0.38, fontSize: 13, bold: true, color: C.gold });
sld.addText(s.body, { x: 4.8, y: sy + 0.06, w: 7.8, h: 0.62, fontSize: 11.5, color: C.offWhite, valign: "middle" });
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 4 — PHARMACOTHERAPY
// ════════════════════════════════════════════════════════════
// Slide 11 — HBV Treatment
{
const sld = addSlide(pres);
sectionBanner(sld, 4, "Pharmacotherapy", "Hepatitis B Treatment");
slideTitle(sld, "Pharmacotherapy: Hepatitis B", "Goals — Suppress viral replication, prevent cirrhosis & HCC");
bulletBox(sld, [
{ head: "PEG-Interferon α-2a", sub: "Subcutaneous · 48 weeks · finite therapy · HBeAg seroconversion in ~30%" },
{ head: "Tenofovir disoproxil (TDF)", sub: "1st-line NRT analogue · high barrier to resistance · safe in pregnancy" },
{ head: "Tenofovir alafenamide (TAF)", sub: "Preferred over TDF — lower bone/renal toxicity; 25 mg/day orally" },
{ head: "Entecavir (ETV)", sub: "1st-line; high genetic barrier to resistance; avoid in lamivudine-resistant HBV" },
{ head: "Lamivudine / Adefovir", sub: "Older agents; high resistance rates — no longer preferred first-line" },
], 0.4, 1.7, 12.5, 4.2, { fontSize: 13 });
divider(sld, 5.8);
sld.addText("Treatment indications: HBeAg+ with HBV DNA >20,000 IU/mL · HBeAg− with HBV DNA >2,000 IU/mL · Any HBV with compensated or decompensated cirrhosis", {
x: 0.4, y: 5.9, w: 12.5, h: 0.55, fontSize: 10.5, color: C.subtleGray, italic: true
});
}
// Slide 12 — HCV Treatment (DAAs)
{
const sld = addSlide(pres);
sectionBanner(sld, 4, "Pharmacotherapy", "Hepatitis C — Direct-Acting Antivirals");
slideTitle(sld, "Pharmacotherapy: Hepatitis C", "DAAs achieve >95% sustained virological response (SVR) — effectively curative");
// Left: drug classes
bulletBox(sld, [
{ head: "NS3/4A Protease Inhibitors (-previr)", sub: "Glecaprevir, Grazoprevir, Voxilaprevir — block polyprotein processing" },
{ head: "NS5A Inhibitors (-asvir)", sub: "Pibrentasvir, Ledipasvir, Velpatasvir — block RNA replication complex" },
{ head: "NS5B Polymerase Inhibitors (-buvir)", sub: "Sofosbuvir (NUC) — inhibits RNA-dependent RNA polymerase" },
"",
{ head: "Key Regimens (pan-genotypic):", sub: "" },
{ head: "Glecaprevir/Pibrentasvir (Maviret)", sub: "8–12 weeks · pan-genotypic · treatment-naive non-cirrhotic: 8 wks" },
{ head: "Sofosbuvir/Velpatasvir (Epclusa)", sub: "12 weeks · pan-genotypic · can be used in decompensated cirrhosis (+ ribavirin)" },
{ head: "Ledipasvir/Sofosbuvir (Harvoni)", sub: "8–12 weeks · genotype 1 preferred" },
], 0.4, 1.7, 6.8, 5.1, { fontSize: 12 });
// HCV lifecycle image
if (images[4] && !images[4].error) {
sld.addImage({ data: images[4].base64, x: 7.5, y: 1.5, w: 5.5, h: 4.0 });
sld.addText("HCV life cycle & DAA molecular targets", {
x: 7.5, y: 5.55, w: 5.5, h: 0.28, fontSize: 8, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 13 — Other hepatitis treatments
{
const sld = addSlide(pres);
sectionBanner(sld, 4, "Pharmacotherapy", "HAV · HDV · HEV & Supportive Care");
slideTitle(sld, "Other Hepatitis — Management", "Supportive care, emerging therapies and special situations");
// cards
const cards = [
{ title: "Hepatitis A (HAV)", color: C.teal, items: [
"No specific antiviral therapy",
"Supportive care: rest, hydration, avoid hepatotoxic drugs & alcohol",
"Post-exposure prophylaxis: Ig within 14 days + vaccine",
"Hospitalise if PT/INR ↑ or severe bilirubin elevation",
]},
{ title: "Hepatitis D (HDV)", color: C.red, items: [
"Peg-interferon α-2a — only approved therapy; 48 weeks",
"Bulevirtide (EU approved, 2020) — entry inhibitor; prevents HBV/HDV co-entry",
"Control HBV with NRTIs — reducing HBV replication limits HDV",
"Liver transplant for end-stage disease",
]},
{ title: "Hepatitis E (HEV)", color: C.gold, items: [
"Usually self-limiting — supportive care",
"Ribavirin — immunocompromised/chronic HEV (off-label)",
"Hecolin® vaccine — approved in China (genotype 1); not WHO pre-qualified",
"Stop immunosuppression in transplant recipients if possible",
]},
];
cards.forEach((c, i) => {
const bx = 0.4 + i * 4.3;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.6, w: 4.1, h: 5.3, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: c.color, width: 1.8 } });
sld.addText(c.title, { x: bx, y: 1.64, w: 4.1, h: 0.45, fontSize: 13.5, bold: true, color: c.color, align: "center" });
bulletBox(sld, c.items, bx + 0.12, 2.14, 3.86, 4.6, { fontSize: 11.5 });
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 5 — PREVENTION & VACCINATION
// ════════════════════════════════════════════════════════════
// Slide 14 — Vaccines
{
const sld = addSlide(pres);
sectionBanner(sld, 5, "Prevention & Vaccination", "Hepatitis Vaccines");
slideTitle(sld, "Hepatitis Vaccines", "Vaccination is the most powerful tool for preventing viral hepatitis");
bulletBox(sld, [
{ head: "Hepatitis A Vaccine (Havrix / Vaqta)", sub: "Inactivated · 2-dose series (0, 6–12 months) · >94% seroprotection after 2 doses · lifelong immunity" },
{ head: "Hepatitis B Vaccine (Engerix-B / Recombivax HB)", sub: "Recombinant HBsAg · 3-dose series (0, 1, 6 months) · confirm Anti-HBs ≥10 mIU/mL post-series" },
{ head: "Heplisav-B (HepB-CpG)", sub: "Adjuvanted with CpG1018 · 2-dose series (0, 4 weeks) · higher seroprotection rates vs standard" },
{ head: "Twinrix (HAV + HBV)", sub: "Combined · 3 doses (0, 1, 6 months) · ≥18 years · accelerated schedule available" },
{ head: "HEV vaccine (Hecolin®)", sub: "Approved in China only · genotype 1 · 3 doses · especially important for pregnant women in endemic areas" },
{ head: "No vaccine for HCV or HDV", sub: "HDV: preventing/treating HBV prevents HDV · HCV: research ongoing" },
], 0.4, 1.7, 12.5, 4.8, { fontSize: 12.5 });
}
// Slide 15 — Vaccine schedule + image
{
const sld = addSlide(pres);
sectionBanner(sld, 5, "Prevention & Vaccination", "Vaccine Schedules & Special Populations");
slideTitle(sld, "Vaccine Schedules & Special Populations");
// Left: schedule content
bulletBox(sld, [
"Universal HBV vaccination: birth dose within 24 hours + 2–3 booster doses",
"HBsAg+ mothers: infant receives HBV vaccine + HBIG at birth (prevents 85–95% vertical transmission)",
"HAV: recommended for all travellers to endemic regions, MSM, PWID, chronic liver disease patients",
"Healthcare workers: mandatory HBV vaccination; confirm anti-HBs response",
"Dialysis patients: double-dose HBV vaccine + regular anti-HBs monitoring",
"HIV+ patients: Heplisav-B preferred (superior response with CpG adjuvant)",
"Pregnancy: HBV vaccine safe; HAV vaccine may be given if high risk",
], 0.4, 1.65, 7.0, 5.0, { fontSize: 12 });
// HAV vaccine table image
if (images[5] && !images[5].error) {
sld.addImage({ data: images[5].base64, x: 7.7, y: 1.5, w: 5.4, h: 3.5 });
sld.addText("Hepatitis A vaccine schedules — Sexually Transmitted Infections reference guide", {
x: 7.7, y: 5.05, w: 5.4, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 16 — Post-Exposure Prophylaxis
{
const sld = addSlide(pres);
sectionBanner(sld, 5, "Prevention & Vaccination", "Post-Exposure Prophylaxis");
slideTitle(sld, "Post-Exposure Prophylaxis (PEP)", "Time-critical interventions for pharmacy practice");
// HBV PEP
sld.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.6, w: 5.9, h: 5.3, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.5 } });
sld.addText("HBV Post-Exposure Prophylaxis", { x: 0.4, y: 1.64, w: 5.9, h: 0.42, fontSize: 13, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"Unvaccinated: HBIG (0.06 mL/kg IM) + HBV vaccine — within 24 h",
"Previously vaccinated with adequate anti-HBs (≥10 mIU/mL): no action",
"Previously vaccinated — non-responder: HBIG × 2 doses (1 month apart)",
"Needle-stick or sexual exposure: administer within 7 days (ideally 24 h)",
"HBIG = Hepatitis B Immunoglobulin (passive immunity)",
"Efficacy of combined HBIG + vaccine: 85–95%",
], 0.55, 2.1, 5.6, 4.5, { fontSize: 11.5 });
// HAV PEP
sld.addShape(pres.ShapeType.roundRect, { x: 7.0, y: 1.6, w: 5.9, h: 5.3, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.5 } });
sld.addText("HAV Post-Exposure Prophylaxis", { x: 7.0, y: 1.64, w: 5.9, h: 0.42, fontSize: 13, bold: true, color: C.teal, align: "center" });
bulletBox(sld, [
"Immune globulin (IGIM) — effective if given within 14 days of exposure",
"HAV vaccine preferred for healthy persons aged 1–40 years",
"Both IGIM + vaccine for immunocompromised, chronic liver disease, or >40 years",
"Travel prophylaxis: single HAV vaccine dose sufficient for most destinations",
"Dose: IGIM 0.1 mL/kg IM for short-term travel (≤1 month)",
"Breastfeeding: not contraindicated with hepatitis B vaccination",
], 7.15, 2.1, 5.6, 4.5, { fontSize: 11.5 });
}
// ════════════════════════════════════════════════════════════
// SUMMARY SLIDE
// ════════════════════════════════════════════════════════════
{
const sld = addSlide(pres, C.navy);
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.gold } });
sld.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 7.5, fill: { color: C.teal } });
sld.addText("Key Takeaways", { x: 0.5, y: 0.2, w: 12.5, h: 0.7, fontSize: 32, bold: true, color: C.gold });
divider(sld, 0.95);
const takeaways = [
{ n: "1", text: "Five distinct hepatitis viruses (A–E) differ in genome, transmission, chronicity risk and clinical outcomes." },
{ n: "2", text: "Immune-mediated hepatocellular injury (CD8+ T-cells, cytokines) drives both acute damage and chronic fibrosis/cirrhosis." },
{ n: "3", text: "Serology is the cornerstone of diagnosis: HBsAg, anti-HBc IgM, HCV RNA, and anti-HAV IgM guide management." },
{ n: "4", text: "HBV treatment: TDF/TAF or Entecavir (NRTIs) suppress viral replication; PEG-IFN for finite therapy. HCV DAAs achieve >95% cure." },
{ n: "5", text: "Vaccination (HBV at birth, HAV for at-risk groups) combined with HBIG PEP are the most effective preventive strategies." },
];
takeaways.forEach((t, i) => {
const ty = 1.1 + i * 1.1;
sld.addShape(pres.ShapeType.ellipse, { x: 0.5, y: ty + 0.05, w: 0.55, h: 0.55, fill: { color: C.teal } });
sld.addText(t.n, { x: 0.5, y: ty + 0.05, w: 0.55, h: 0.55, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle" });
sld.addText(t.text, { x: 1.25, y: ty, w: 11.8, h: 0.75, fontSize: 13, color: C.offWhite, valign: "middle" });
});
sld.addText("Sources: Harrison's 22E · Goldman-Cecil Medicine · Robbins & Kumar Pathology · Sleisenger & Fordtran · Red Book 2021 · Washington Manual", {
x: 0.5, y: 6.9, w: 12.5, h: 0.35, fontSize: 8.5, color: C.subtleGray, italic: true
});
}
// ─── Write file ────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/hepatitis-pptx/Hepatitis_Pharmacy_Presentation.pptx" })
.then(() => console.log("SUCCESS: Presentation created!"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/hepatitis-pptx && node build.js 2>&1
~/hepatitis-pptx/build.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
const fs = require("fs");
// ─── Fetch images in small batches ───────────────────────────────────────────
const imageUrls = [
"https://cdn.orris.care/cdss_images/HARRISON_1763033912702_6c8b3aeb-d09d-4456-9e4a-51e468791295.png",
"https://cdn.orris.care/cdss_images/HARRISON_1763031941963_b8714721-0c5c-4031-a531-da171f3c8e24.png",
"https://cdn.orris.care/cdss_images/GLGCA_41753_1766502006027_6fb9687b-4165-46fa-a1ed-7ae80b6c4566_21bf0166-de59-45a3-9836-5b11d5412c80.png",
"https://cdn.orris.care/cdss_images/GLGCA_2232415_1763366073233_eb427168-5573-434d-9914-2a97b7413bae.png",
"https://cdn.orris.care/cdss_images/GLGCA_4779637_1766686947536_b2bfdfdc-a8c3-49f6-b774-cb9299224a8f_a4791fd6-8d67-4a9b-afc8-071fa27ef5b8.png",
];
function fetchImages(urls) {
const results = [];
for (const url of urls) {
try {
const r = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js "${url}"`,
{ timeout: 30000, maxBuffer: 20 * 1024 * 1024 }
).toString();
const parsed = JSON.parse(r);
results.push(parsed[0]);
} catch (e) {
console.warn("Image fetch failed for", url, ":", e.message.slice(0, 80));
results.push({ url, base64: null, error: e.message });
}
}
return results;
}
console.log("Fetching images one by one...");
const images = fetchImages(imageUrls);
console.log("Images:", images.map((img, i) => `${i}:${img && !img.error ? "OK" : "FAIL"}`).join(", "));
// ─── Color palette ────────────────────────────────────────────────────────────
const C = {
navy: "0D2B55",
teal: "0E7C7B",
gold: "F4A11D",
white: "FFFFFF",
offWhite: "EEF2F7",
lightBg: "1A3A6B",
subtleGray:"A8B8CC",
darkText: "0D1F3C",
red: "D94F3D",
green: "2EAF6C",
};
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.33" × 7.5"
pres.title = "Hepatitis — Pharmacy Students Presentation";
pres.author = "Orris Medical AI";
// ─── Helpers ──────────────────────────────────────────────────────────────────
function addSlide(bgColor) {
const sld = pres.addSlide();
sld.background = { color: bgColor || C.navy };
return sld;
}
function sectionBanner(sld, studentNum, studentLabel, topic) {
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.33, h: 0.52, fill: { color: C.teal } });
sld.addText(`STUDENT ${studentNum} · ${studentLabel.toUpperCase()}`, {
x: 0.3, y: 0, w: 9, h: 0.52,
fontSize: 10, bold: true, color: C.white, valign: "middle", margin: 0
});
sld.addText("HEPATITIS · PHARMACY", {
x: 9.5, y: 0, w: 3.5, h: 0.52,
fontSize: 9, color: C.offWhite, align: "right", valign: "middle", margin: 0
});
}
function slideTitle(sld, title, subtitle) {
sld.addText(title, {
x: 0.4, y: 0.62, w: 12.5, h: 0.68,
fontSize: 26, bold: true, color: C.gold, fontFace: "Calibri"
});
if (subtitle) {
sld.addText(subtitle, {
x: 0.4, y: 1.3, w: 12.5, h: 0.35,
fontSize: 12, color: C.subtleGray, italic: true
});
}
}
// Converts bullet items (string or {head, sub} objects) to rich text array
function makeBulletItems(bullets, fontSize) {
const fs2 = fontSize || 12;
const items = [];
for (let i = 0; i < bullets.length; i++) {
const b = bullets[i];
if (!b || b === "") {
items.push({ text: " ", options: { fontSize: fs2 * 0.5, breakLine: true } });
} else if (typeof b === "object" && b.head !== undefined) {
// head + sub on same line
items.push({ text: b.head, options: { bullet: { indent: 14 }, bold: true, color: C.gold, fontSize: fs2, breakLine: !b.sub } });
if (b.sub) {
items.push({ text: " — " + b.sub, options: { bold: false, color: C.offWhite, fontSize: fs2, breakLine: true } });
}
} else {
items.push({ text: String(b), options: { bullet: { indent: 14 }, color: C.offWhite, fontSize: fs2, breakLine: true } });
}
}
// remove breakLine from last real item
if (items.length > 0) {
items[items.length - 1].options.breakLine = false;
}
return items;
}
function bulletBox(sld, bullets, x, y, w, h, fontSize) {
const items = makeBulletItems(bullets, fontSize);
sld.addText(items, { x, y, w, h, valign: "top", lineSpacingMultiple: 1.28 });
}
function divider(sld, y) {
sld.addShape(pres.ShapeType.line, {
x: 0.4, y, w: 12.5, h: 0,
line: { color: C.teal, width: 1.2 }
});
}
// ════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ════════════════════════════════════════════════════════════
{
const sld = addSlide(C.navy);
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 7.5, fill: { color: C.teal } });
sld.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.08, h: 7.5, fill: { color: C.gold } });
sld.addText("HEPATITIS", {
x: 0.6, y: 0.9, w: 12, h: 1.6,
fontSize: 72, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 8
});
sld.addText("A Comprehensive Pharmacy Review", {
x: 0.6, y: 2.55, w: 10, h: 0.6,
fontSize: 22, color: C.gold, italic: true
});
const students = [
{ n: "1", label: "Overview &\nEpidemiology" },
{ n: "2", label: "Pathophysiology" },
{ n: "3", label: "Diagnosis &\nSerology" },
{ n: "4", label: "Pharmacotherapy" },
{ n: "5", label: "Prevention &\nVaccination" },
];
students.forEach((s, i) => {
const bx = 0.5 + i * 2.5;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 3.4, w: 2.3, h: 1.2, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.5 } });
sld.addText("Student " + s.n, { x: bx, y: 3.42, w: 2.3, h: 0.4, fontSize: 11, bold: true, color: C.gold, align: "center" });
sld.addText(s.label, { x: bx + 0.08, y: 3.82, w: 2.14, h: 0.68, fontSize: 10, color: C.offWhite, align: "center" });
});
sld.addText("Pharmacy Students Group Presentation | April 2026", {
x: 0.6, y: 4.85, w: 10, h: 0.35,
fontSize: 11, color: C.subtleGray
});
sld.addText("Sources: Harrison's 22E · Goldman-Cecil Medicine · Robbins Pathology · Sleisenger & Fordtran · Red Book 2021", {
x: 0.6, y: 7.05, w: 12, h: 0.3,
fontSize: 8.5, color: C.subtleGray, italic: true
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 1 — OVERVIEW & EPIDEMIOLOGY
// ════════════════════════════════════════════════════════════
// Slide 2 — Types of Hepatitis Viruses
{
const sld = addSlide();
sectionBanner(sld, 1, "Overview & Epidemiology", "Types");
slideTitle(sld, "Types of Hepatitis Viruses", "Five major viruses — distinct genomes, transmission routes and clinical courses");
bulletBox(sld, [
{ head: "Hepatitis A (HAV)", sub: "ssRNA picornavirus | fecal-oral | self-limiting acute disease, no chronicity" },
{ head: "Hepatitis B (HBV)", sub: "dsDNA hepadnavirus (3.2 kb) | parenteral/sexual/perinatal | chronic in 5–10% adults; 90% neonates" },
{ head: "Hepatitis C (HCV)", sub: "ssRNA flavivirus | blood-borne | 70–85% progress to chronic; 6 genotypes" },
{ head: "Hepatitis D (HDV)", sub: "RNA deltavirus | requires HBV co-infection | worsens HBV severity significantly" },
{ head: "Hepatitis E (HEV)", sub: "ssRNA hepevirus | fecal-oral | usually self-limiting; 20% mortality in pregnant women" },
], 0.4, 1.65, 7.0, 5.0, 13);
if (images[0] && !images[0].error) {
sld.addImage({ data: images[0].base64, x: 7.7, y: 1.45, w: 5.3, h: 3.0 });
sld.addText("Harrison's Principles of Internal Medicine 22E — Table 339-1", {
x: 7.7, y: 4.5, w: 5.3, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 3 — Global Epidemiology
{
const sld = addSlide();
sectionBanner(sld, 1, "Overview & Epidemiology", "Global Burden");
slideTitle(sld, "Global Epidemiology", "Hepatitis remains a leading infectious cause of liver-related mortality worldwide");
const stats = [
{ val: "354 M", lbl: "People with chronic HBV or HCV infection globally (WHO 2022)" },
{ val: "~1.4 M", lbl: "Deaths per year attributed to viral hepatitis" },
{ val: "90%", lbl: "Neonates exposed to HBV without vaccination who develop chronic infection" },
{ val: "70–85%", lbl: "Acute HCV infections that progress to chronicity" },
{ val: "20%", lbl: "Case fatality rate of HEV in pregnant women (3rd trimester)" },
{ val: "2 M+", lbl: "New HCV infections per year (injection drug use main driver)" },
];
stats.forEach((s, i) => {
const rx = (i % 3) * 4.3 + 0.4;
const ry = 1.65 + Math.floor(i / 3) * 2.2;
sld.addShape(pres.ShapeType.roundRect, { x: rx, y: ry, w: 4.0, h: 1.95, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.2 } });
sld.addText(s.val, { x: rx, y: ry + 0.1, w: 4.0, h: 0.75, fontSize: 30, bold: true, color: C.gold, align: "center" });
sld.addText(s.lbl, { x: rx + 0.1, y: ry + 0.88, w: 3.8, h: 0.95, fontSize: 10.5, color: C.offWhite, align: "center" });
});
}
// Slide 4 — Transmission Routes
{
const sld = addSlide();
sectionBanner(sld, 1, "Overview & Epidemiology", "Transmission");
slideTitle(sld, "Transmission Routes & High-Risk Groups", "Key counselling points for pharmacy practice");
sld.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.6, w: 6.0, h: 5.3, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.3 } });
sld.addText("Fecal-Oral (HAV, HEV)", { x: 0.4, y: 1.65, w: 5.8, h: 0.42, fontSize: 13.5, bold: true, color: C.teal, align: "center" });
bulletBox(sld, [
"Contaminated food or water",
"Poor sanitation / inadequate hand hygiene",
"Travel to endemic areas",
"Shellfish from polluted waters",
"Close household or institutional contact",
], 0.5, 2.12, 5.7, 2.2, 12);
sld.addText("Parenteral / Blood-Borne (HBV, HCV, HDV)", { x: 0.4, y: 4.3, w: 5.8, h: 0.42, fontSize: 12, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"Sharing needles (PWID — major HCV driver)",
"Sexual contact (especially HBV in MSM)",
"Perinatal: mother-to-child (HBV, HCV)",
"Needlestick injuries in healthcare workers",
"Unscreened blood products / tattooing",
], 0.5, 4.75, 5.7, 2.0, 12);
sld.addShape(pres.ShapeType.roundRect, { x: 6.8, y: 1.6, w: 6.2, h: 5.3, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.3 } });
sld.addText("High-Risk Groups for Pharmacy Counselling", { x: 6.9, y: 1.65, w: 6.0, h: 0.42, fontSize: 13, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"Injection drug users (HCV, HBV, HDV)",
"Healthcare workers — needlestick exposure",
"Travellers to HAV/HEV endemic regions",
"Pregnant women — vertical transmission risk",
"Haemodialysis patients (HCV)",
"Men who have sex with men (HAV, HBV)",
"Immunocompromised / HIV co-infected patients",
"Household contacts of HBV-infected individuals",
"Infants born to HBsAg-positive mothers",
], 7.0, 2.12, 5.8, 4.6, 12);
}
// ════════════════════════════════════════════════════════════
// STUDENT 2 — PATHOPHYSIOLOGY
// ════════════════════════════════════════════════════════════
// Slide 5 — Mechanisms of Hepatic Injury
{
const sld = addSlide();
sectionBanner(sld, 2, "Pathophysiology", "Mechanisms of Hepatic Injury");
slideTitle(sld, "Mechanisms of Hepatic Injury", "Immune-mediated hepatocellular damage is the hallmark of viral hepatitis");
bulletBox(sld, [
{ head: "Direct cytopathic effect", sub: "HCV & HEV can directly damage hepatocytes; limited in HBV" },
{ head: "CD8+ cytotoxic T-cell killing", sub: "Primary HBV mechanism — T-cells destroy infected hepatocytes presenting HBcAg/HBsAg on MHC-I" },
{ head: "Cytokine-mediated inflammation", sub: "TNF-α, IFN-γ, IL-2, IL-6 — amplify hepatic inflammation and cause bystander hepatocyte injury" },
{ head: "Interface hepatitis", sub: "Lymphocytic infiltration at portal-parenchymal junction — drives fibrosis progression (HAI score)" },
{ head: "Hepatocyte apoptosis", sub: "Councilman (acidophilic) bodies — apoptotic remnants; hallmark histological finding in acute hepatitis" },
{ head: "Hepatic stellate cell activation", sub: "Chronic injury → TGF-β release → stellate cells activate → collagen deposition → FIBROSIS → CIRRHOSIS" },
{ head: "Oxidative stress & mitochondrial dysfunction", sub: "Contributes to hepatocyte necrosis and lipid peroxidation in chronic HCV" },
], 0.4, 1.65, 12.5, 5.5, 13);
}
// Slide 6 — Acute vs Chronic Hepatitis
{
const sld = addSlide();
sectionBanner(sld, 2, "Pathophysiology", "Acute vs Chronic Disease");
slideTitle(sld, "Acute vs Chronic Hepatitis", "Clinical course depends on viral load, host immunity and viral persistence");
sld.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.55, w: 6.0, h: 5.45, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.green, width: 1.5 } });
sld.addText("ACUTE HEPATITIS (<6 months)", { x: 0.3, y: 1.59, w: 6.0, h: 0.45, fontSize: 13.5, bold: true, color: C.green, align: "center" });
bulletBox(sld, [
"AST/ALT markedly elevated (10–50× ULN)",
"Jaundice, RUQ pain, fatigue, nausea, anorexia",
"Fulminant hepatitis: rare — coagulopathy + encephalopathy",
"Histology: lobular disarray, Councilman bodies, ballooning",
"HAV & HEV → always self-limiting in immunocompetent",
"Acute HBV → 95% adults recover spontaneously",
"Acute HCV → 15–30% spontaneous clearance",
"Management: supportive; avoid hepatotoxic drugs & alcohol",
], 0.5, 2.1, 5.7, 4.7, 11.5);
sld.addShape(pres.ShapeType.roundRect, { x: 7.0, y: 1.55, w: 6.0, h: 5.45, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: C.red, width: 1.5 } });
sld.addText("CHRONIC HEPATITIS (>6 months)", { x: 7.0, y: 1.59, w: 6.0, h: 0.45, fontSize: 13.5, bold: true, color: C.red, align: "center" });
bulletBox(sld, [
"Defined as persistence of HBsAg or HCV RNA >6 months",
"HBV: risk 90% in neonates; 5% in immunocompetent adults",
"HCV: 70–85% of acute infections become chronic",
"HDV: always chronic if HBV superinfection",
"Ground-glass hepatocytes (HBsAg-laden cytoplasm) in HBV",
"Complications: cirrhosis, portal hypertension, HCC",
"HCC risk: 100× higher with chronic HBV vs general population",
"Monitor: LFTs, viral load, AFP, HCC surveillance every 6 months",
], 7.2, 2.1, 5.7, 4.7, 11.5);
}
// ════════════════════════════════════════════════════════════
// STUDENT 3 — DIAGNOSIS & SEROLOGY
// ════════════════════════════════════════════════════════════
// Slide 7 — Clinical Presentation
{
const sld = addSlide();
sectionBanner(sld, 3, "Diagnosis & Serology", "Clinical Presentation");
slideTitle(sld, "Clinical Presentation", "From asymptomatic infection to fulminant hepatic failure");
const phases = [
{ label: "Prodrome", dur: "1–2 weeks", sx: "Fatigue, anorexia, nausea, low-grade fever, RUQ discomfort, myalgia", color: C.teal },
{ label: "Icteric Phase", dur: "2–6 weeks", sx: "Jaundice, dark urine (bilirubinuria), pale stools, pruritus, tender hepatomegaly", color: C.gold },
{ label: "Recovery", dur: "Weeks–months", sx: "Symptom resolution; LFTs normalise; risk of chronicity persists for HBV/HCV/HDV", color: C.green },
];
phases.forEach((p, i) => {
const bx = 0.4 + i * 4.3;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.65, w: 4.1, h: 1.05, rectRadius: 0.1, fill: { color: p.color } });
sld.addText(p.label + " | " + p.dur, { x: bx + 0.08, y: 1.67, w: 3.94, h: 0.44, fontSize: 12.5, bold: true, color: C.darkText, align: "center" });
sld.addText(p.sx, { x: bx + 0.08, y: 2.12, w: 3.94, h: 0.55, fontSize: 10, color: C.darkText, align: "center" });
});
divider(sld, 2.85);
sld.addText("Key Laboratory Findings:", { x: 0.4, y: 2.9, w: 12.5, h: 0.4, fontSize: 13.5, bold: true, color: C.gold });
bulletBox(sld, [
{ head: "ALT / AST", sub: "Markedly elevated (hepatocellular pattern); ALT > AST distinguishes viral from alcoholic hepatitis" },
{ head: "Total & Direct Bilirubin", sub: "Elevated with jaundice; urobilinogen in urine; absent urobilinogen in complete obstruction" },
{ head: "Alkaline Phosphatase / GGT", sub: "Mildly elevated unless cholestatic component; GGT rises with alcohol use" },
{ head: "Prothrombin Time / INR", sub: "Best marker of hepatic synthetic function; prolonged in severe/fulminant hepatitis" },
{ head: "Albumin", sub: "Decreased in chronic hepatitis — reflects long-term synthetic failure" },
], 0.4, 3.35, 12.5, 3.85, 12.5);
}
// Slide 8 — Serological Markers
{
const sld = addSlide();
sectionBanner(sld, 3, "Diagnosis & Serology", "Serological Markers");
slideTitle(sld, "Serological Diagnosis", "Specific markers identify virus type, phase and immunity status");
// HAV card
sld.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.58, w: 3.9, h: 2.55, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.3 } });
sld.addText("Hepatitis A", { x: 0.3, y: 1.61, w: 3.9, h: 0.4, fontSize: 13, bold: true, color: C.teal, align: "center" });
bulletBox(sld, [
"IgM anti-HAV → Acute active infection",
"IgG anti-HAV → Past infection or vaccination immunity",
"No chronic carrier state",
"Window period: IgM appears 5–10 days after symptoms",
], 0.45, 2.06, 3.65, 2.0, 11);
// HBV card
sld.addShape(pres.ShapeType.roundRect, { x: 4.5, y: 1.58, w: 4.3, h: 2.55, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.3 } });
sld.addText("Hepatitis B", { x: 4.5, y: 1.61, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"HBsAg — Active infection (surface antigen)",
"Anti-HBs — Immunity (recovery or vaccine)",
"IgM anti-HBc — Acute HBV infection",
"IgG anti-HBc — Past or chronic exposure",
"HBeAg — High viral replication / infectivity",
"Anti-HBe — Seroconversion, lower infectivity",
"HBV DNA (PCR) — Viral load monitoring",
], 4.65, 2.05, 4.0, 2.05, 10.5);
// HCV card
sld.addShape(pres.ShapeType.roundRect, { x: 9.1, y: 1.58, w: 3.9, h: 2.55, rectRadius: 0.1, fill: { color: C.lightBg }, line: { color: C.red, width: 1.3 } });
sld.addText("Hepatitis C", { x: 9.1, y: 1.61, w: 3.9, h: 0.4, fontSize: 13, bold: true, color: C.red, align: "center" });
bulletBox(sld, [
"Anti-HCV (ELISA) → Screening",
"HCV RNA (PCR) → Confirms active infection",
"HCV genotype → Guides DAA selection",
"Anti-HCV alone ≠ active infection",
"(cannot distinguish acute/chronic/resolved)",
"SVR12 = cure (no HCV RNA at 12 weeks post-therapy)",
], 9.25, 2.05, 3.65, 2.0, 10.5);
// Bottom images
if (images[1] && !images[1].error) {
sld.addImage({ data: images[1].base64, x: 0.3, y: 4.28, w: 7.5, h: 2.85 });
sld.addText("Chronic HBV serology timeline — Harrison's 22E", {
x: 0.3, y: 7.15, w: 7.5, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
if (images[2] && !images[2].error) {
sld.addImage({ data: images[2].base64, x: 8.1, y: 4.28, w: 5.0, h: 2.85 });
sld.addText("HBV/HDV laboratory diagnosis markers — Clinical Microbiology Guide", {
x: 8.1, y: 7.15, w: 5.0, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 9 — Diagnostic Algorithm
{
const sld = addSlide();
sectionBanner(sld, 3, "Diagnosis & Serology", "Diagnostic Algorithm");
slideTitle(sld, "Diagnostic Algorithm", "Systematic approach to identifying hepatitis type and severity");
const steps = [
{ n: "1", title: "Suspect Viral Hepatitis", body: "Elevated ALT/AST + jaundice/fatigue + risk factors (travel, PWID, sexual exposure, healthcare worker)" },
{ n: "2", title: "Initial Screening Panel", body: "IgM anti-HAV · HBsAg · IgM anti-HBc · Anti-HCV ELISA · HEV IgM if travel history" },
{ n: "3", title: "Confirmatory & Characterisation Tests", body: "HCV RNA PCR (if anti-HCV+) · HBV DNA + HBeAg/anti-HBe · HBsAg quantification for HBV" },
{ n: "4", title: "Severity Assessment", body: "Full LFTs · PT/INR · Albumin · CBC · Abdominal ultrasound / FibroScan (liver stiffness)" },
{ n: "5", title: "Chronic Disease Workup", body: "Liver biopsy (Knodell/HAI score) · AFP (HCC surveillance every 6 months) · EGD for varices · MELD score" },
];
steps.forEach((s, i) => {
const sy = 1.62 + i * 1.07;
sld.addShape(pres.ShapeType.ellipse, { x: 0.3, y: sy, w: 0.58, h: 0.58, fill: { color: C.teal } });
sld.addText(s.n, { x: 0.3, y: sy, w: 0.58, h: 0.58, fontSize: 17, bold: true, color: C.white, align: "center", valign: "middle" });
sld.addShape(pres.ShapeType.roundRect, { x: 1.05, y: sy, w: 12.0, h: 0.88, rectRadius: 0.08, fill: { color: C.lightBg }, line: { color: C.teal, width: 0.8 } });
sld.addText(s.title, { x: 1.18, y: sy + 0.05, w: 3.6, h: 0.38, fontSize: 12.5, bold: true, color: C.gold });
sld.addText(s.body, { x: 5.0, y: sy + 0.06, w: 7.8, h: 0.72, fontSize: 11, color: C.offWhite, valign: "middle" });
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 4 — PHARMACOTHERAPY
// ════════════════════════════════════════════════════════════
// Slide 10 — HBV Treatment
{
const sld = addSlide();
sectionBanner(sld, 4, "Pharmacotherapy", "Hepatitis B Treatment");
slideTitle(sld, "Pharmacotherapy: Hepatitis B (HBV)", "Goal — Suppress viral replication, prevent cirrhosis and hepatocellular carcinoma");
bulletBox(sld, [
{ head: "PEG-Interferon α-2a (Pegasys)", sub: "SC injection · 48 weeks · finite therapy · ~30% HBeAg seroconversion · many side effects" },
{ head: "Tenofovir disoproxil fumarate (TDF)", sub: "1st-line NRTI analogue · very high barrier to resistance · safe in pregnancy (Cat B)" },
{ head: "Tenofovir alafenamide (TAF)", sub: "Preferred over TDF — lower bone/renal toxicity · 25 mg/day orally" },
{ head: "Entecavir (ETV)", sub: "1st-line · high barrier to resistance · avoid in lamivudine-resistant HBV (cross-resistance risk)" },
{ head: "Lamivudine / Adefovir / Telbivudine", sub: "Older agents — high resistance rates; no longer preferred 1st-line therapy" },
], 0.4, 1.65, 12.5, 4.4, 13);
divider(sld, 5.85);
sld.addText("Treatment indications (AASLD): HBeAg+ with HBV DNA >20,000 IU/mL | HBeAg− with HBV DNA >2,000 IU/mL + elevated ALT | Any HBV with cirrhosis regardless of HBV DNA", {
x: 0.4, y: 5.95, w: 12.5, h: 0.55, fontSize: 10.5, color: C.subtleGray, italic: true
});
sld.addText("Sources: Harrison's 22E · AASLD HBV Guidelines", {
x: 0.4, y: 7.1, w: 12.5, h: 0.3, fontSize: 8, color: C.subtleGray, italic: true
});
}
// Slide 11 — HCV Treatment (DAAs)
{
const sld = addSlide();
sectionBanner(sld, 4, "Pharmacotherapy", "Hepatitis C — Direct-Acting Antivirals");
slideTitle(sld, "Pharmacotherapy: Hepatitis C (HCV)", "Direct-acting antivirals (DAAs) achieve >95% sustained virological response — effectively curative");
bulletBox(sld, [
{ head: "NS3/4A Protease Inhibitors (-previr)", sub: "Glecaprevir, Grazoprevir, Voxilaprevir — block polyprotein processing; pan-genotypic" },
{ head: "NS5A Inhibitors (-asvir)", sub: "Pibrentasvir, Ledipasvir, Velpatasvir — inhibit RNA replication complex; pan-genotypic" },
{ head: "NS5B Polymerase Inhibitors (-buvir)", sub: "Sofosbuvir (nucleotide analogue) — inhibits RNA-dependent RNA polymerase; backbone of all regimens" },
{ head: "Glecaprevir + Pibrentasvir (Maviret)", sub: "8 weeks for treatment-naive non-cirrhotic · pan-genotypic · 12 weeks for cirrhosis" },
{ head: "Sofosbuvir + Velpatasvir (Epclusa)", sub: "12 weeks · pan-genotypic · with ribavirin for decompensated cirrhosis" },
{ head: "Ledipasvir + Sofosbuvir (Harvoni)", sub: "8–12 weeks · genotype 1 preferred · 8 weeks if non-cirrhotic + low viral load" },
], 0.4, 1.65, 7.2, 5.5, 12.5);
if (images[3] && !images[3].error) {
sld.addImage({ data: images[3].base64, x: 7.8, y: 1.45, w: 5.2, h: 4.2 });
sld.addText("HCV life cycle & DAA molecular targets — Hepatitis C in CKD", {
x: 7.8, y: 5.68, w: 5.2, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 12 — HAV / HDV / HEV Management
{
const sld = addSlide();
sectionBanner(sld, 4, "Pharmacotherapy", "HAV · HDV · HEV Management");
slideTitle(sld, "Management: HAV, HDV & HEV", "Supportive care remains central; emerging therapies for HDV");
const cards = [
{ title: "Hepatitis A (HAV)", color: C.teal, items: [
"No specific antiviral therapy available",
"Supportive care: rest, hydration, adequate nutrition",
"Avoid hepatotoxic drugs (paracetamol high-dose, statins) & alcohol",
"Post-exposure: IGIM (within 14 days) + HAV vaccine",
"Hospitalise if PT/INR prolonged or severe bilirubin elevation",
"Prognosis: excellent; <1% fulminant hepatitis",
]},
{ title: "Hepatitis D (HDV)", color: C.red, items: [
"Peg-interferon α-2a: only established therapy; 48 weeks",
"Bulevirtide (Hepcludi): EU-approved 2020 — entry inhibitor; prevents HBV/HDV co-entry into hepatocytes",
"Control HBV with NRTIs — reducing HBV replication limits HDV",
"Lonafarnib (farnesyl inhibitor) — investigational",
"Liver transplantation for end-stage disease",
]},
{ title: "Hepatitis E (HEV)", color: C.gold, items: [
"Immunocompetent: supportive care — self-limiting",
"Ribavirin (off-label): for chronic HEV in transplant recipients or immunocompromised (3–6 months)",
"PEG-interferon: used with ribavirin failure in transplant recipients",
"Reduce immunosuppression if possible in organ transplant patients",
"Hecolin vaccine (China only) — 3 doses; not WHO pre-qualified",
]},
];
cards.forEach((c, i) => {
const bx = 0.3 + i * 4.35;
sld.addShape(pres.ShapeType.roundRect, { x: bx, y: 1.58, w: 4.15, h: 5.55, rectRadius: 0.14, fill: { color: C.lightBg }, line: { color: c.color, width: 1.8 } });
sld.addText(c.title, { x: bx, y: 1.62, w: 4.15, h: 0.44, fontSize: 13.5, bold: true, color: c.color, align: "center" });
bulletBox(sld, c.items, bx + 0.1, 2.1, 3.95, 4.9, 11);
});
}
// ════════════════════════════════════════════════════════════
// STUDENT 5 — PREVENTION & VACCINATION
// ════════════════════════════════════════════════════════════
// Slide 13 — Vaccines
{
const sld = addSlide();
sectionBanner(sld, 5, "Prevention & Vaccination", "Hepatitis Vaccines");
slideTitle(sld, "Hepatitis Vaccines", "Vaccination is the most effective public health tool for preventing viral hepatitis");
bulletBox(sld, [
{ head: "Hepatitis A Vaccine (Havrix / Vaqta)", sub: "Inactivated · 2-dose series (0, 6–12 months) · >94% seroprotection · lifelong immunity after complete series" },
{ head: "Hepatitis B Vaccine (Engerix-B / Recombivax HB)", sub: "Recombinant HBsAg · 3-dose series (0, 1, 6 months) · confirm anti-HBs ≥10 mIU/mL post-vaccination" },
{ head: "Heplisav-B (HepB-CpG adjuvanted)", sub: "2-dose series (0, 4 weeks) · CpG1018 adjuvant → superior immunogenicity · preferred in adults ≥18 years" },
{ head: "Twinrix (HAV + HBV combined)", sub: "3 doses (0, 1, 6 months) · adults ≥18 years · accelerated schedule: 0, 7, 21–30 days + booster at 12 months" },
{ head: "Hecolin® (HEV vaccine)", sub: "Approved in China only · genotype 1 · 3 doses · important for pregnant women and travellers to endemic areas" },
{ head: "No vaccine for HCV or HDV", sub: "HDV prevention: control HBV through vaccination · HCV: no vaccine; prevention relies on harm reduction strategies" },
], 0.4, 1.65, 12.5, 5.3, 12.5);
}
// Slide 14 — Vaccine schedules with image
{
const sld = addSlide();
sectionBanner(sld, 5, "Prevention & Vaccination", "Schedules & Special Populations");
slideTitle(sld, "Vaccine Schedules & Special Populations");
bulletBox(sld, [
"Universal HBV at birth: dose within 24 hours + 2–3 booster doses (ACIP schedule)",
"HBsAg+ mothers: infant receives HBV vaccine + HBIG at birth → prevents 85–95% vertical transmission",
"HAV: all travellers to endemic regions · MSM · PWID · chronic liver disease patients",
"Healthcare workers: mandatory HBV vaccination + post-series anti-HBs confirmation",
"Dialysis patients: double-dose HBV vaccine + regular anti-HBs monitoring every 12 months",
"HIV-positive patients: Heplisav-B preferred (CpG adjuvant provides superior response)",
"Pregnancy: HBV vaccine safe in all trimesters · HAV may be given if at-risk",
"Non-responders (<10 mIU/mL): revaccinate with Heplisav-B series or additional 3-dose series",
], 0.4, 1.6, 7.2, 5.4, 12);
if (images[4] && !images[4].error) {
sld.addImage({ data: images[4].base64, x: 7.8, y: 1.45, w: 5.2, h: 3.8 });
sld.addText("Hepatitis A vaccine schedules (Havrix, Vaqta, Twinrix) — STI Reference Guide", {
x: 7.8, y: 5.28, w: 5.2, h: 0.35, fontSize: 7.5, color: C.subtleGray, italic: true, align: "center"
});
}
}
// Slide 15 — Post-Exposure Prophylaxis
{
const sld = addSlide();
sectionBanner(sld, 5, "Prevention & Vaccination", "Post-Exposure Prophylaxis");
slideTitle(sld, "Post-Exposure Prophylaxis (PEP)", "Time-critical interventions — essential pharmacist counselling points");
sld.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.58, w: 6.0, h: 5.45, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.gold, width: 1.5 } });
sld.addText("HBV Post-Exposure Prophylaxis", { x: 0.3, y: 1.62, w: 6.0, h: 0.44, fontSize: 13, bold: true, color: C.gold, align: "center" });
bulletBox(sld, [
"Unvaccinated: HBIG (0.06 mL/kg IM) + HBV vaccine within 24 hours",
"Previously vaccinated with adequate anti-HBs (≥10 mIU/mL): no action needed",
"Previously vaccinated non-responder: HBIG × 2 doses (1 month apart)",
"Needle-stick or sexual exposure: administer within 7 days (ideally <24 h)",
"HBIG = Hepatitis B Immune Globulin — provides passive immediate immunity",
"Combined HBIG + vaccine efficacy: 85–95% for perinatal exposure",
"HCV: no proven PEP — monitor HCV RNA at 4–6 weeks post-exposure",
"Follow-up LFTs and viral markers at 6 weeks, 3 months, 6 months",
], 0.48, 2.1, 5.7, 4.75, 11.2);
sld.addShape(pres.ShapeType.roundRect, { x: 7.0, y: 1.58, w: 6.0, h: 5.45, rectRadius: 0.12, fill: { color: C.lightBg }, line: { color: C.teal, width: 1.5 } });
sld.addText("HAV Post-Exposure Prophylaxis", { x: 7.0, y: 1.62, w: 6.0, h: 0.44, fontSize: 13, bold: true, color: C.teal, align: "center" });
bulletBox(sld, [
"IGIM is effective if given within 14 days of exposure",
"HAV vaccine preferred for healthy persons aged 1–40 years (rapid immunisation)",
"Immunocompromised / chronic liver disease / >40 years: IGIM + vaccine",
"IGIM dose: 0.1 mL/kg IM for short-term travel (≤1 month)",
"0.2 mL/kg IM for longer stays in endemic areas",
"Not indicated >14 days after exposure or if clinical disease has started",
"HEV: no licensed PEP; supportive care only",
"Breastfeeding: not contraindicated with hepatitis B vaccination",
], 7.18, 2.1, 5.7, 4.75, 11.2);
}
// ════════════════════════════════════════════════════════════
// SUMMARY / KEY TAKEAWAYS SLIDE
// ════════════════════════════════════════════════════════════
{
const sld = addSlide(C.navy);
sld.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.2, h: 7.5, fill: { color: C.gold } });
sld.addShape(pres.ShapeType.rect, { x: 0.2, y: 0, w: 0.08, h: 7.5, fill: { color: C.teal } });
sld.addText("Key Takeaways", { x: 0.55, y: 0.15, w: 12.5, h: 0.75, fontSize: 34, bold: true, color: C.gold });
divider(sld, 0.95);
const takeaways = [
{ n: "1", s: "Student 1", text: "Five distinct hepatitis viruses (A–E) differ in genome type, transmission route, chronicity risk and clinical outcomes. HAV/HEV are fecal-oral; HBV/HCV/HDV are bloodborne." },
{ n: "2", s: "Student 2", text: "Immune-mediated hepatocellular injury (CD8+ T-cells, TNF-α, IL-6) drives both acute inflammation and chronic fibrosis; stellate cell activation is the key fibrosis pathway." },
{ n: "3", s: "Student 3", text: "Serology is the cornerstone of diagnosis: HBsAg, IgM anti-HBc, HCV RNA PCR, and IgM anti-HAV guide management decisions and treatment timing." },
{ n: "4", s: "Student 4", text: "HBV: 1st-line TDF/TAF or entecavir (long-term NRTIs). HCV: pan-genotypic DAA regimens achieve >95% SVR12 — a functional cure of HCV infection." },
{ n: "5", s: "Student 5", text: "Universal HBV vaccination (birth dose) + HBIG PEP for exposed neonates prevents the majority of chronic infections. HAV vaccine for travellers and at-risk groups." },
];
takeaways.forEach((t, i) => {
const ty = 1.08 + i * 1.2;
sld.addShape(pres.ShapeType.ellipse, { x: 0.45, y: ty + 0.08, w: 0.56, h: 0.56, fill: { color: C.teal } });
sld.addText(t.n, { x: 0.45, y: ty + 0.08, w: 0.56, h: 0.56, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle" });
sld.addText(t.s + ": ", { x: 1.2, y: ty + 0.08, w: 1.5, h: 0.56, fontSize: 11, bold: true, color: C.gold, valign: "middle" });
sld.addText(t.text, { x: 2.7, y: ty, w: 10.3, h: 0.85, fontSize: 12, color: C.offWhite, valign: "middle" });
});
sld.addText("References: Harrison's Principles of Internal Medicine 22E · Goldman-Cecil Medicine · Robbins & Kumar Basic Pathology · Sleisenger & Fordtran's GI & Liver Disease · Red Book 2021", {
x: 0.4, y: 7.1, w: 12.7, h: 0.28, fontSize: 7.5, color: C.subtleGray, italic: true
});
}
// ─── Write file ────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/hepatitis-pptx/Hepatitis_Pharmacy_Presentation.pptx" })
.then(() => console.log("SUCCESS: Presentation created!"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });