Make an ppt on case reports on cardiatitis

Asking for Preferences
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Finding Sources
Searching PubMed

myocarditis case report

Reading File
Reading File
Reading File
Searching PubMed

pericarditis endocarditis case report

Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty"

Running Command

mkdir -p /home/daytona/workspace/carditis-ppt && echo "created"

Writing File

~/carditis-ppt/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Case Reports on Carditis";
pres.author = "Medical Education";

// ─── PALETTE ────────────────────────────────────────────────────────────────
const BG_DARK   = "1A2340";   // deep navy  (title/section slides)
const BG_LIGHT  = "F4F7FC";   // pale blue-white (content slides)
const ACCENT1   = "E84545";   // crimson red (heart / highlights)
const ACCENT2   = "2196C4";   // sky blue (sub-headings)
const TXT_DARK  = "1A2340";
const TXT_LIGHT = "FFFFFF";
const TXT_MID   = "344568";
const GOLD      = "F5A623";

// ─── HELPERS ────────────────────────────────────────────────────────────────
function darkSlide(slide) {
  slide.background = { color: BG_DARK };
}
function lightSlide(slide) {
  slide.background = { color: BG_LIGHT };
}

// Add a coloured left-side accent bar
function accentBar(slide, color) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: color || ACCENT1 }
  });
}

// Standard content slide header
function slideHeader(slide, title, color) {
  slide.addText(title.toUpperCase(), {
    x: 0.35, y: 0.18, w: 9.3, h: 0.55,
    fontSize: 18, bold: true, color: color || ACCENT1,
    charSpacing: 1.5, fontFace: "Calibri", margin: 0
  });
  // thin underline
  slide.addShape(pres.ShapeType.line, {
    x: 0.35, y: 0.75, w: 9.3, h: 0,
    line: { color: ACCENT2, width: 1.5, dashType: "solid" }
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);

  // Heart icon using a decorative shape bar
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.12, fill: { color: ACCENT1 }
  });
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.505, w: 10, h: 0.12, fill: { color: ACCENT1 }
  });

  // Large title
  s.addText("CARDITIS", {
    x: 0.6, y: 0.9, w: 8.8, h: 1.3,
    fontSize: 60, bold: true, color: TXT_LIGHT,
    fontFace: "Calibri", align: "center", charSpacing: 8
  });

  // Subtitle
  s.addText("Case Reports Across the Spectrum", {
    x: 0.6, y: 2.1, w: 8.8, h: 0.7,
    fontSize: 26, bold: false, color: ACCENT2,
    fontFace: "Calibri", align: "center", italic: true
  });

  // Red divider
  s.addShape(pres.ShapeType.rect, {
    x: 3.5, y: 2.9, w: 3, h: 0.08, fill: { color: ACCENT1 }
  });

  // Tagline
  s.addText("Myocarditis  |  Pericarditis  |  Endocarditis", {
    x: 0.6, y: 3.1, w: 8.8, h: 0.5,
    fontSize: 16, bold: false, color: GOLD,
    fontFace: "Calibri", align: "center"
  });

  // Bottom info
  s.addText("For Medical Students  •  June 2026", {
    x: 0.6, y: 4.8, w: 8.8, h: 0.4,
    fontSize: 12, color: "7A8BB0", fontFace: "Calibri", align: "center"
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW: WHAT IS CARDITIS?
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, ACCENT1);
  slideHeader(s, "What is Carditis?", ACCENT1);

  // 3 boxes side by side
  const boxes = [
    { label: "MYOCARDITIS", sub: "Inflammation of the\nmyocardium (heart muscle)", color: ACCENT1 },
    { label: "PERICARDITIS", sub: "Inflammation of the\npericardial sac", color: ACCENT2 },
    { label: "ENDOCARDITIS", sub: "Inflammation of the\nendocardium & valves", color: "27AE60" }
  ];

  boxes.forEach((b, i) => {
    const x = 0.4 + i * 3.15;
    s.addShape(pres.ShapeType.roundRect, {
      x: x, y: 0.95, w: 2.9, h: 3.9,
      fill: { color: b.color }, rectRadius: 0.12
    });
    s.addText(b.label, {
      x: x + 0.1, y: 1.1, w: 2.7, h: 0.7,
      fontSize: 15, bold: true, color: TXT_LIGHT,
      fontFace: "Calibri", align: "center"
    });
    s.addShape(pres.ShapeType.line, {
      x: x + 0.4, y: 1.83, w: 2.1, h: 0,
      line: { color: "FFFFFF", width: 1, dashType: "solid" }
    });
    s.addText(b.sub, {
      x: x + 0.1, y: 1.95, w: 2.7, h: 0.9,
      fontSize: 12, color: TXT_LIGHT, fontFace: "Calibri", align: "center"
    });
  });

  // Bottom note
  s.addText(
    "Each layer can be affected independently or simultaneously (pancarditis). Accurate layer localisation guides diagnosis and management.",
    { x: 0.4, y: 5.0, w: 9.2, h: 0.45, fontSize: 11, color: TXT_MID, fontFace: "Calibri", italic: true }
  );
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — MYOCARDITIS: SECTION DIVIDER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 4.2, h: 5.625, fill: { color: ACCENT1 }
  });

  s.addText("01", {
    x: 0.25, y: 0.4, w: 3.7, h: 1.8,
    fontSize: 110, bold: true, color: "FFFFFF40",
    fontFace: "Calibri", align: "center"
  });
  s.addText("MYOCARDITIS", {
    x: 0.2, y: 2.3, w: 3.8, h: 0.9,
    fontSize: 28, bold: true, color: TXT_LIGHT,
    fontFace: "Calibri", align: "center", charSpacing: 3
  });
  s.addText("Case Report", {
    x: 0.2, y: 3.2, w: 3.8, h: 0.5,
    fontSize: 16, color: TXT_LIGHT, fontFace: "Calibri", align: "center", italic: true
  });

  s.addText([
    { text: "Aetiology: ", options: { bold: true } },
    { text: "Viral, Autoimmune, Toxic, Drug-induced\n" },
    { text: "Incidence: ", options: { bold: true } },
    { text: "10–22 per 100,000 per year\n" },
    { text: "High-risk group: ", options: { bold: true } },
    { text: "Young adults, males" }
  ], {
    x: 4.5, y: 1.5, w: 5.2, h: 2.5,
    fontSize: 14, color: TXT_LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.4
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — MYOCARDITIS CASE REPORT
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, ACCENT1);
  slideHeader(s, "Case Report — Viral Myocarditis", ACCENT1);

  // Case box (left)
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 0.88, w: 5.4, h: 3.8,
    fill: { color: "FFF0F0" }, line: { color: ACCENT1, width: 1.5 }, rectRadius: 0.1
  });
  s.addText("CASE PRESENTATION", {
    x: 0.5, y: 0.95, w: 5.1, h: 0.4,
    fontSize: 12, bold: true, color: ACCENT1, fontFace: "Calibri"
  });
  s.addText([
    { text: "Patient: ", options: { bold: true } },
    { text: "22-year-old male college athlete\n" },
    { text: "History: ", options: { bold: true } },
    { text: "URI 1 week prior (fever, myalgia)\n" },
    { text: "Presenting complaint: ", options: { bold: true } },
    { text: "Chest pain, palpitations, dyspnoea on exertion\n" },
    { text: "Exam: ", options: { bold: true } },
    { text: "Tachycardia, faint S3 gallop, no friction rub\n" },
    { text: "ECG: ", options: { bold: true } },
    { text: "Diffuse ST elevation, non-specific T-wave changes\n" },
    { text: "Troponin I: ", options: { bold: true } },
    { text: "12.4 ng/mL (markedly elevated)\n" },
    { text: "Echo: ", options: { bold: true } },
    { text: "Mildly reduced LVEF 45%, no effusion\n" },
    { text: "CMR: ", options: { bold: true } },
    { text: "Late gadolinium enhancement (mid-wall)\n" },
    { text: "Serology: ", options: { bold: true } },
    { text: "Coxsackievirus B3 IgM positive" }
  ], {
    x: 0.5, y: 1.38, w: 5.1, h: 3.1,
    fontSize: 11.5, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.35
  });

  // Right panel: management
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.0, y: 0.88, w: 3.65, h: 3.8,
    fill: { color: "E8F4FD" }, line: { color: ACCENT2, width: 1.5 }, rectRadius: 0.1
  });
  s.addText("MANAGEMENT", {
    x: 6.1, y: 0.95, w: 3.4, h: 0.4,
    fontSize: 12, bold: true, color: ACCENT2, fontFace: "Calibri"
  });
  s.addText([
    { text: "• Rest & activity restriction (3–6 months)\n", options: { bullet: false } },
    { text: "• NSAIDs for pain relief\n" },
    { text: "• ACE-I / beta-blocker if EF reduced\n" },
    { text: "• No competitive sport until normalisation\n" },
    { text: "• Cardiac monitoring (Holter)\n" },
    { text: "• Immunosuppression only if biopsy-proven giant cell or autoimmune aetiology\n" },
    { text: "• Follow-up CMR at 3–6 months" }
  ], {
    x: 6.1, y: 1.42, w: 3.4, h: 3.0,
    fontSize: 11, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.4
  });

  // Outcome tag
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 4.8, w: 9.3, h: 0.55,
    fill: { color: "27AE60" }, rectRadius: 0.08
  });
  s.addText("OUTCOME: Full recovery at 3 months. EF normalised to 60%. Cleared for return to sport.", {
    x: 0.5, y: 4.85, w: 9.0, h: 0.4,
    fontSize: 11.5, bold: true, color: TXT_LIGHT, fontFace: "Calibri"
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — MYOCARDITIS: DIAGNOSIS & KEY TEACHING
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, ACCENT1);
  slideHeader(s, "Myocarditis — Diagnostic Workup & Teaching Points", ACCENT1);

  // Left: diagnostic steps
  const steps = [
    ["History & Exam", "Recent viral illness, chest pain, palpitations,\ndyspnoea; assess for friction rub, S3"],
    ["ECG", "Diffuse ST elevation, T-wave inversion, arrhythmias"],
    ["Biomarkers", "Troponin I/T, BNP/NT-proBNP, CRP, ESR"],
    ["Echo", "LV dysfunction, wall motion abnormality, effusion"],
    ["CMR (Gold Std)", "Lake Louise criteria: T2 signal + LGE pattern"],
    ["EMB", "Reserved for fulminant/unexplained cases (Dallas criteria)"],
  ];

  steps.forEach((step, i) => {
    const y = 0.92 + i * 0.73;
    // number circle
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.3, y: y, w: 0.42, h: 0.42,
      fill: { color: ACCENT1 }
    });
    s.addText(String(i + 1), {
      x: 0.3, y: y, w: 0.42, h: 0.42,
      fontSize: 13, bold: true, color: TXT_LIGHT, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0
    });
    s.addText(step[0], {
      x: 0.85, y: y, w: 2.3, h: 0.42,
      fontSize: 11.5, bold: true, color: ACCENT1, fontFace: "Calibri", valign: "middle", margin: 0
    });
    s.addText(step[1], {
      x: 3.2, y: y, w: 3.0, h: 0.42,
      fontSize: 10.5, color: TXT_MID, fontFace: "Calibri", valign: "middle", margin: 0
    });
  });

  // Right: teaching points
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.3, y: 0.88, w: 3.4, h: 4.4,
    fill: { color: BG_DARK }, rectRadius: 0.12
  });
  s.addText("KEY TEACHING POINTS", {
    x: 6.4, y: 0.98, w: 3.2, h: 0.45,
    fontSize: 12, bold: true, color: GOLD, fontFace: "Calibri", align: "center"
  });
  s.addText([
    { text: "• Mimics ACS — always check for preceding viral illness\n" },
    { text: "• CMR is the non-invasive gold standard\n" },
    { text: "• Coxsackievirus B3 is the most common viral aetiology\n" },
    { text: "• COVID-19 myocarditis: incidence up to 33% of hospitalised patients\n" },
    { text: "• Vaccine-associated myocarditis: rare, self-limiting in young males\n" },
    { text: "• Activity restriction is the single most important intervention" }
  ], {
    x: 6.4, y: 1.5, w: 3.1, h: 3.5,
    fontSize: 10.5, color: TXT_LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.5
  });

  s.addText("Source: Fuster & Hurst's The Heart, 15e  •  Braunwald's Heart Disease", {
    x: 0.35, y: 5.3, w: 9.3, h: 0.3,
    fontSize: 9, color: "9AA0B0", fontFace: "Calibri", italic: true
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — PERICARDITIS: SECTION DIVIDER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 4.2, h: 5.625, fill: { color: ACCENT2 }
  });
  s.addText("02", {
    x: 0.25, y: 0.4, w: 3.7, h: 1.8,
    fontSize: 110, bold: true, color: "FFFFFF40",
    fontFace: "Calibri", align: "center"
  });
  s.addText("PERICARDITIS", {
    x: 0.2, y: 2.3, w: 3.8, h: 0.9,
    fontSize: 26, bold: true, color: TXT_LIGHT,
    fontFace: "Calibri", align: "center", charSpacing: 3
  });
  s.addText("Case Report", {
    x: 0.2, y: 3.2, w: 3.8, h: 0.5,
    fontSize: 16, color: TXT_LIGHT, fontFace: "Calibri", align: "center", italic: true
  });
  s.addText([
    { text: "Aetiology: ", options: { bold: true } },
    { text: "Viral (idiopathic), autoimmune, TB, neoplastic, post-cardiac injury\n" },
    { text: "Hallmark: ", options: { bold: true } },
    { text: "Pleuritic chest pain + pericardial friction rub\n" },
    { text: "ECG classic: ", options: { bold: true } },
    { text: "Diffuse saddle-shaped ST elevation + PR depression" }
  ], {
    x: 4.5, y: 1.5, w: 5.2, h: 2.5,
    fontSize: 14, color: TXT_LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.5
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — PERICARDITIS CASE REPORT
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, ACCENT2);
  slideHeader(s, "Case Report — Acute Pericarditis", ACCENT2);

  // Left: case
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 0.88, w: 5.4, h: 3.8,
    fill: { color: "EDF4FB" }, line: { color: ACCENT2, width: 1.5 }, rectRadius: 0.1
  });
  s.addText("CASE PRESENTATION", {
    x: 0.5, y: 0.95, w: 5.1, h: 0.4,
    fontSize: 12, bold: true, color: ACCENT2, fontFace: "Calibri"
  });
  s.addText([
    { text: "Patient: ", options: { bold: true } },
    { text: "35-year-old male teacher\n" },
    { text: "History: ", options: { bold: true } },
    { text: "URTI 2 weeks ago; no cardiac history\n" },
    { text: "Complaint: ", options: { bold: true } },
    { text: "Sharp pleuritic chest pain, worse supine, relieved leaning forward\n" },
    { text: "Exam: ", options: { bold: true } },
    { text: "Fever 38.2°C, pericardial friction rub (3-component)\n" },
    { text: "ECG: ", options: { bold: true } },
    { text: "Diffuse saddle-shaped ST elevation; PR depression in II, III, aVF;\nPR elevation in aVR\n" },
    { text: "CXR: ", options: { bold: true } },
    { text: "Normal cardiac silhouette\n" },
    { text: "Echo: ", options: { bold: true } },
    { text: "Small pericardial effusion, no tamponade physiology\n" },
    { text: "Labs: ", options: { bold: true } },
    { text: "CRP 48 mg/L; mild troponin elevation (myopericarditis)" }
  ], {
    x: 0.5, y: 1.38, w: 5.1, h: 3.15,
    fontSize: 11, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.3
  });

  // Right: management
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.0, y: 0.88, w: 3.65, h: 3.8,
    fill: { color: "F0FFF4" }, line: { color: "27AE60", width: 1.5 }, rectRadius: 0.1
  });
  s.addText("MANAGEMENT", {
    x: 6.1, y: 0.95, w: 3.4, h: 0.4,
    fontSize: 12, bold: true, color: "27AE60", fontFace: "Calibri"
  });
  s.addText([
    { text: "1st Line:\n" },
    { text: "  • Aspirin 750–1000 mg TID × 2 wks (then taper)\n" },
    { text: "  • Colchicine 0.5 mg BD × 3 months\n\n" },
    { text: "If NSAID-intolerant:\n" },
    { text: "  • Ibuprofen 600 mg TDS\n\n" },
    { text: "Refractory/autoimmune:\n" },
    { text: "  • Low-dose corticosteroids\n" },
    { text: "  • IL-1 antagonist (Anakinra) for recurrent cases\n\n" },
    { text: "Activity restriction until CRP normalises" }
  ], {
    x: 6.1, y: 1.4, w: 3.4, h: 3.1,
    fontSize: 10.5, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.35
  });

  // Outcome
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 4.8, w: 9.3, h: 0.55,
    fill: { color: ACCENT2 }, rectRadius: 0.08
  });
  s.addText("OUTCOME: Resolved within 2 weeks. Colchicine reduced recurrence risk. No constrictive pericarditis at 6 months.", {
    x: 0.5, y: 4.85, w: 9.0, h: 0.4,
    fontSize: 11.5, bold: true, color: TXT_LIGHT, fontFace: "Calibri"
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — PERICARDITIS: COMPLICATIONS & ECG STAGES
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, ACCENT2);
  slideHeader(s, "Pericarditis — ECG Stages & Complications", ACCENT2);

  // ECG Stages table
  s.addText("ECG EVOLUTION IN ACUTE PERICARDITIS", {
    x: 0.4, y: 0.9, w: 5.3, h: 0.4,
    fontSize: 12, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const stages = [
    ["Stage I", "Diffuse ST elevation (concave-up / saddle-shaped)\nPR depression in limb & precordial leads; PR elevation in aVR"],
    ["Stage II", "ST returns to baseline; PR depression normalises"],
    ["Stage III", "Diffuse T-wave inversion (may mimic ischaemia)"],
    ["Stage IV", "ECG normalises (weeks to months)"],
  ];
  stages.forEach((row, i) => {
    const y = 1.38 + i * 0.85;
    const bg = i % 2 === 0 ? "DDEEFF" : "EDF4FB";
    s.addShape(pres.ShapeType.rect, { x: 0.4, y: y, w: 1.2, h: 0.75, fill: { color: ACCENT2 } });
    s.addText(row[0], { x: 0.4, y: y, w: 1.2, h: 0.75, fontSize: 11.5, bold: true, color: TXT_LIGHT, fontFace: "Calibri", align: "center", valign: "middle" });
    s.addShape(pres.ShapeType.rect, { x: 1.6, y: y, w: 4.15, h: 0.75, fill: { color: bg } });
    s.addText(row[1], { x: 1.65, y: y + 0.05, w: 4.0, h: 0.65, fontSize: 10.5, color: TXT_DARK, fontFace: "Calibri", valign: "middle" });
  });

  // Right: Complications
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.1, y: 0.88, w: 3.55, h: 4.5,
    fill: { color: BG_DARK }, rectRadius: 0.12
  });
  s.addText("COMPLICATIONS", {
    x: 6.2, y: 0.98, w: 3.3, h: 0.4,
    fontSize: 12, bold: true, color: GOLD, fontFace: "Calibri", align: "center"
  });
  s.addText([
    { text: "Pericardial Effusion\n", options: { bold: true } },
    { text: "  Exudate accumulation; assess by echo\n\n" },
    { text: "Cardiac Tamponade\n", options: { bold: true } },
    { text: "  Beck's Triad: hypotension + JVD + muffled heart sounds; needs urgent pericardiocentesis\n\n" },
    { text: "Constrictive Pericarditis\n", options: { bold: true } },
    { text: "  Fibrous thickening → diastolic restriction; Kussmaul sign (JVP rises on inspiration); may need pericardiectomy\n\n" },
    { text: "Recurrent Pericarditis\n", options: { bold: true } },
    { text: "  ~30% risk; colchicine reduces by 50%" }
  ], {
    x: 6.2, y: 1.45, w: 3.3, h: 3.7,
    fontSize: 10, color: TXT_LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.3
  });

  s.addText("Source: Frameworks for Internal Medicine  •  Goldman-Cecil Medicine", {
    x: 0.35, y: 5.3, w: 9.3, h: 0.3,
    fontSize: 9, color: "9AA0B0", fontFace: "Calibri", italic: true
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — ENDOCARDITIS: SECTION DIVIDER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 4.2, h: 5.625, fill: { color: "27AE60" }
  });
  s.addText("03", {
    x: 0.25, y: 0.4, w: 3.7, h: 1.8,
    fontSize: 110, bold: true, color: "FFFFFF40",
    fontFace: "Calibri", align: "center"
  });
  s.addText("ENDOCARDITIS", {
    x: 0.2, y: 2.3, w: 3.8, h: 0.9,
    fontSize: 24, bold: true, color: TXT_LIGHT,
    fontFace: "Calibri", align: "center", charSpacing: 2
  });
  s.addText("Case Report", {
    x: 0.2, y: 3.2, w: 3.8, h: 0.5,
    fontSize: 16, color: TXT_LIGHT, fontFace: "Calibri", align: "center", italic: true
  });
  s.addText([
    { text: "Most common aetiology: ", options: { bold: true } },
    { text: "Staph. aureus (especially IVDU)\n" },
    { text: "Other key organisms: ", options: { bold: true } },
    { text: "Viridans streptococci, Enterococcus, HACEK\n" },
    { text: "Risk factors: ", options: { bold: true } },
    { text: "Valvular disease, prosthetic valves, IVDU, indwelling catheters" }
  ], {
    x: 4.5, y: 1.5, w: 5.2, h: 2.5,
    fontSize: 14, color: TXT_LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.5
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — ENDOCARDITIS CASE REPORT
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, "27AE60");
  slideHeader(s, "Case Report — Infective Endocarditis (IVDU)", "27AE60");

  // Left: case
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 0.88, w: 5.4, h: 3.8,
    fill: { color: "EDFAF1" }, line: { color: "27AE60", width: 1.5 }, rectRadius: 0.1
  });
  s.addText("CASE PRESENTATION", {
    x: 0.5, y: 0.95, w: 5.1, h: 0.4,
    fontSize: 12, bold: true, color: "27AE60", fontFace: "Calibri"
  });
  s.addText([
    { text: "Patient: ", options: { bold: true } },
    { text: "31-year-old male IVDU\n" },
    { text: "Presenting complaints: ", options: { bold: true } },
    { text: "Acute fever, progressive dyspnoea, malaise × 1 week\n" },
    { text: "Exam: ", options: { bold: true } },
    { text: "Fever 39.1°C, elevated JVP, new diastolic murmur (aortic regurgitation)\n" },
    { text: "Peripheral signs: ", options: { bold: true } },
    { text: "Osler's nodes (tender finger nodules), Janeway lesions (painless palmar macules), Quincke's pulse, de Musset sign\n" },
    { text: "Blood cultures: ", options: { bold: true } },
    { text: "3/3 bottles Staphylococcus aureus (MSSA)\n" },
    { text: "Echo (TOE): ", options: { bold: true } },
    { text: "10 mm vegetation on aortic valve; severe AR; abscess formation suspected\n" },
    { text: "Duke Criteria: ", options: { bold: true } },
    { text: "2 major + 3 minor = DEFINITE IE" }
  ], {
    x: 0.5, y: 1.38, w: 5.1, h: 3.15,
    fontSize: 11, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.3
  });

  // Right: management
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.0, y: 0.88, w: 3.65, h: 3.8,
    fill: { color: "FFF9EE" }, line: { color: GOLD, width: 1.5 }, rectRadius: 0.1
  });
  s.addText("MANAGEMENT", {
    x: 6.1, y: 0.95, w: 3.4, h: 0.4,
    fontSize: 12, bold: true, color: GOLD, fontFace: "Calibri"
  });
  s.addText([
    { text: "Antibiotics (IV, 4–6 weeks):\n" },
    { text: "  • MSSA: Flucloxacillin 2g q4h\n" },
    { text: "  • MRSA: Vancomycin + Rifampicin\n" },
    { text: "  • Gentamicin synergy (selected cases)\n\n" },
    { text: "Endocarditis team approach:\n" },
    { text: "  Cardiology + Cardiac surgery + Infectious disease + Microbiology\n\n" },
    { text: "Surgical indications:\n" },
    { text: "  • Heart failure (most common)\n" },
    { text: "  • Abscess / fistula\n" },
    { text: "  • Uncontrolled infection\n" },
    { text: "  • Large vegetation (>10 mm) with embolism risk" }
  ], {
    x: 6.1, y: 1.4, w: 3.4, h: 3.1,
    fontSize: 10.5, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.3
  });

  // Outcome
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 4.8, w: 9.3, h: 0.55,
    fill: { color: "27AE60" }, rectRadius: 0.08
  });
  s.addText("OUTCOME: Emergency aortic valve replacement. 6 weeks IV antibiotics. Survived with biological prosthesis.", {
    x: 0.5, y: 4.85, w: 9.0, h: 0.4,
    fontSize: 11.5, bold: true, color: TXT_LIGHT, fontFace: "Calibri"
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 11 — DUKE CRITERIA & PERIPHERAL SIGNS
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  lightSlide(s);
  accentBar(s, "27AE60");
  slideHeader(s, "Infective Endocarditis — Duke Criteria & Peripheral Signs", "27AE60");

  // Duke criteria: major
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 0.88, w: 4.4, h: 2.5,
    fill: { color: "EDFAF1" }, line: { color: "27AE60", width: 1.2 }, rectRadius: 0.1
  });
  s.addText("MAJOR CRITERIA", {
    x: 0.5, y: 0.95, w: 4.1, h: 0.38,
    fontSize: 11.5, bold: true, color: "27AE60", fontFace: "Calibri"
  });
  s.addText([
    { text: "1. Positive blood cultures (2 separate draws, typical organisms)\n" },
    { text: "2. Positive echocardiogram:\n" },
    { text: "   • Vegetation  |  Abscess  |  New valve dehiscence\n" },
    { text: "3. New valvular regurgitation" }
  ], {
    x: 0.5, y: 1.38, w: 4.1, h: 1.8,
    fontSize: 10.5, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.4
  });

  // Duke: minor
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.35, y: 3.5, w: 4.4, h: 1.85,
    fill: { color: "FFF5EE" }, line: { color: ACCENT1, width: 1.2 }, rectRadius: 0.1
  });
  s.addText("MINOR CRITERIA", {
    x: 0.5, y: 3.57, w: 4.1, h: 0.38,
    fontSize: 11.5, bold: true, color: ACCENT1, fontFace: "Calibri"
  });
  s.addText("Predisposition  •  Fever >38°C  •  Vascular phenomena  •  Immunologic phenomena  •  Microbiologic (not major)", {
    x: 0.5, y: 4.0, w: 4.1, h: 1.2,
    fontSize: 10, color: TXT_DARK, fontFace: "Calibri", lineSpacingMultiple: 1.4
  });

  // Right: peripheral signs
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.0, y: 0.88, w: 4.65, h: 4.47,
    fill: { color: BG_DARK }, rectRadius: 0.12
  });
  s.addText("PERIPHERAL MANIFESTATIONS", {
    x: 5.1, y: 0.96, w: 4.45, h: 0.4,
    fontSize: 11.5, bold: true, color: GOLD, fontFace: "Calibri", align: "center"
  });

  const signs = [
    ["Osler's nodes", "Painful, tender subcutaneous nodules on finger/toe pads\n(immune complex deposition — subacute IE)"],
    ["Janeway lesions", "Painless haemorrhagic macules on palms & soles\n(septic emboli — acute IE)"],
    ["Splinter haemorrhages", "Longitudinal dark streaks under nails (non-specific)"],
    ["Roth spots", "Oval retinal haemorrhages with pale centres on fundoscopy"],
    ["Clubbing", "Late feature in chronic/subacute cases"],
  ];
  signs.forEach((sign, i) => {
    const y = 1.45 + i * 0.75;
    s.addText(sign[0] + ":", { x: 5.15, y: y, w: 4.35, h: 0.28, fontSize: 11, bold: true, color: GOLD, fontFace: "Calibri" });
    s.addText(sign[1], { x: 5.15, y: y + 0.28, w: 4.35, h: 0.4, fontSize: 9.5, color: TXT_LIGHT, fontFace: "Calibri" });
  });

  s.addText("Source: Frameworks for Internal Medicine  •  Harrison's Principles 22e  •  Goldman-Cecil Medicine", {
    x: 0.35, y: 5.3, w: 9.3, h: 0.3,
    fontSize: 9, color: "9AA0B0", fontFace: "Calibri", italic: true
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 12 — SUMMARY & COMPARISON TABLE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkSlide(s);

  s.addText("CARDITIS AT A GLANCE", {
    x: 0.4, y: 0.18, w: 9.2, h: 0.65,
    fontSize: 24, bold: true, color: TXT_LIGHT,
    fontFace: "Calibri", align: "center", charSpacing: 3
  });
  s.addShape(pres.ShapeType.rect, {
    x: 3.0, y: 0.83, w: 4.0, h: 0.07, fill: { color: ACCENT1 }
  });

  // Table headers
  const cols = [
    { label: "FEATURE", x: 0.25, w: 1.8 },
    { label: "MYOCARDITIS", x: 2.1, w: 2.5, color: ACCENT1 },
    { label: "PERICARDITIS", x: 4.65, w: 2.5, color: ACCENT2 },
    { label: "ENDOCARDITIS", x: 7.2, w: 2.55, color: "27AE60" },
  ];

  cols.forEach(col => {
    s.addShape(pres.ShapeType.rect, {
      x: col.x, y: 0.95, w: col.w, h: 0.48,
      fill: { color: col.color || "2C3A5E" }
    });
    s.addText(col.label, {
      x: col.x + 0.05, y: 0.95, w: col.w - 0.1, h: 0.48,
      fontSize: 11, bold: true, color: TXT_LIGHT, fontFace: "Calibri",
      align: "center", valign: "middle"
    });
  });

  const rows = [
    ["Layer", "Myocardium", "Pericardium", "Endocardium/Valves"],
    ["Chest pain", "Dull, aching", "Sharp, pleuritic; improves leaning fwd", "Usually absent"],
    ["Classic sign", "S3 gallop, ↓EF", "Friction rub", "New regurgitant murmur"],
    ["ECG", "Non-specific ST/T; arrhythmias", "Saddle-shaped ST ↑; PR depression", "Usually normal; may show ischaemia"],
    ["Key test", "CMR (LGE)", "Echo + CRP", "TOE + Blood cultures"],
    ["Treatment", "Rest, ACE-I/BB; immunosuppression if needed", "Aspirin + Colchicine", "IV antibiotics 4–6 wks ± surgery"],
    ["Complication", "Dilated cardiomyopathy", "Constrictive pericarditis", "Emboli, valve destruction, HF"],
  ];

  rows.forEach((row, i) => {
    const y = 1.48 + i * 0.55;
    const bg = i % 2 === 0 ? "232E4A" : "2C3A5E";
    cols.forEach((col, j) => {
      s.addShape(pres.ShapeType.rect, {
        x: col.x, y: y, w: col.w, h: 0.5, fill: { color: bg }
      });
      s.addText(row[j], {
        x: col.x + 0.06, y: y + 0.03, w: col.w - 0.12, h: 0.44,
        fontSize: j === 0 ? 10.5 : 9.5,
        bold: j === 0,
        color: j === 0 ? GOLD : TXT_LIGHT,
        fontFace: "Calibri", valign: "middle",
        wrap: true
      });
    });
  });

  s.addText("Fuster & Hurst's The Heart 15e  •  Harrison's 22e  •  Goldman-Cecil Medicine  •  Braunwald's Heart Disease", {
    x: 0.3, y: 5.35, w: 9.4, h: 0.25,
    fontSize: 8.5, color: "5A6A8A", fontFace: "Calibri", italic: true, align: "center"
  });
}

// ─── WRITE FILE ──────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/carditis-ppt/Carditis_Case_Reports.pptx" })
  .then(() => console.log("DONE: /home/daytona/workspace/carditis-ppt/Carditis_Case_Reports.pptx"))
  .catch(err => { console.error("ERROR:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/carditis-ppt && node build.js 2>&1

Editing File

~/carditis-ppt/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/carditis-ppt/build.js'
Running Command

cd /home/daytona/workspace/carditis-ppt && grep -n "FFFFFF40" build.js

Running Command

cd /home/daytona/workspace/carditis-ppt && sed -i 's/"FFFFFF40"/"2B4A6E"/g' build.js && node build.js 2>&1

Reading File
Editing File

~/carditis-ppt/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/carditis-ppt/build.js'
Reading File
Editing File

~/carditis-ppt/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/carditis-ppt/build.js'
Running Command

cd /home/daytona/workspace/carditis-ppt && node build.js 2>&1

Your presentation is ready - no errors!

Carditis Case Reports

Presentation · PPTX


What's inside (12 slides)

SlideContent
1Title slide - bold navy/crimson design
2What is Carditis? - 3 coloured boxes comparing all three types
3Myocarditis section divider - key stats & epidemiology
4Myocarditis case report - 22-yr-old athlete, Coxsackievirus B3; full workup + management + outcome
5Myocarditis diagnostic workup - 6-step flowchart + key teaching points (COVID, vaccine-associated, activity restriction)
6Pericarditis section divider - classic ECG features highlighted
7Pericarditis case report - 35-yr-old male, viral, saddle-shaped ST elevation; aspirin + colchicine treatment
8Pericarditis ECG stages I-IV + complications table (tamponade, constrictive pericarditis, recurrence)
9Endocarditis section divider - organisms, risk factors
10Endocarditis case report - 31-yr-old IVDU, MSSA, Duke criteria, TOE, aortic valve replacement
11Duke Criteria (major + minor) + peripheral signs (Osler's nodes, Janeway lesions, Roth spots, splinter haemorrhages)
12Summary comparison table - all three types side by side
Sources: Fuster & Hurst's The Heart 15e, Braunwald's Heart Disease, Harrison's 22e, Goldman-Cecil Medicine, Frameworks for Internal Medicine.
This is a shared conversation. Sign in to Orris to start your own chat.