Make a repeat, uh, of how much, uh, page you can take. I don't care about the size. Just in that, uh, repeat, you have to teach, uh, how we can treat, uh, a patient who have a small piece of clots in his lungs and the steps we have to perform during a surgery.

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
I now have rich, authoritative content from multiple textbooks. I have everything I need to compile a thorough "cheat sheet" / study repeat on:
  1. What small pulmonary emboli are (subsegmental/non-massive PE)
  2. Clinical features and diagnosis
  3. Risk stratification
  4. Medical management steps
  5. Surgical embolectomy steps in detail
Let me now compile this into a comprehensive, well-organized repeat/handout document.

Pulmonary Embolism (PE): Small Clots in the Lungs - Complete Study Sheet

Source references: Sabiston Textbook of Surgery (19e/21e), Rosen's Emergency Medicine, Murray & Nadel's Textbook of Respiratory Medicine

1. What Is a Small Pulmonary Embolism?

A pulmonary embolism (PE) occurs when a blood clot (thrombus) - usually originating from a deep vein thrombosis (DVT) in the legs or pelvis - travels through the venous system and lodges in a pulmonary artery, blocking blood flow to part of the lung.
"Small" clots typically refer to subsegmental PE (clots in smaller, more peripheral pulmonary arteries) or non-massive (low-risk) PE, as opposed to massive PE which causes hemodynamic collapse.
PE is the third most common cause of cardiovascular death after myocardial infarction and stroke. - Sabiston Textbook of Surgery

2. Risk Factors (Virchow's Triad)

FactorExamples
HypercoagulabilityCancer, inherited thrombophilia (Factor V Leiden, Protein C/S deficiency, Antithrombin deficiency), oral contraceptives, pregnancy
Venous stasisProlonged immobility, heart failure, post-surgical bed rest
Endothelial injurySurgery, trauma, central venous catheters

3. Clinical Features

Symptoms (most to least common)

  • Dyspnea (75-80%) - may be constant, worsening, or only on exertion
  • Chest pain - often pleuritic (sharp, worsens with breathing); present in ~67% of cases
  • Hemoptysis - suggests pulmonary infarction
  • Palpitations, dizziness, syncope (<5% present with syncope but it can occur)
  • Unilateral leg swelling (<30%) - raises suspicion when combined with dyspnea

Signs

  • Tachycardia, tachypnea
  • Low-grade fever (<38.6°C)
  • Hypoxemia (SpO2 <94%)
  • Signs of RV strain in severe cases
Note: Small PE can be completely asymptomatic - Rosen's Emergency Medicine

4. Diagnosis

Step-by-Step Diagnostic Approach

Step 1 - Assess Pre-test Probability (PTP)
Use the Revised Geneva Score or Wells Score:
Revised Geneva ScorePoints
Age >65 years1
Previous DVT or PE3
Surgery/fracture within 1 month2
Active malignancy2
Unilateral lower limb pain3
Hemoptysis2
HR 75-94 bpm3
HR ≥95 bpm5
DVT pain/edema on palpation4
Low risk = 0-3Intermediate = 4-10
Step 2 - PERC Rule (if low pre-test probability)
If ALL 8 criteria are negative, PE can be excluded without further testing:
  • Age <50, HR <100, SpO2 >94%, no leg swelling, no hemoptysis, no recent surgery/trauma, no prior PE/DVT, no hormone use
Step 3 - D-Dimer
  • 95-98% sensitive; useful to rule out PE in non-high PTP
  • Threshold: 500 ng/mL standard, or age x 10 ng/mL for patients >50 years
  • False positives: infection, cancer, pregnancy, surgery
Step 4 - CT Pulmonary Angiography (CTPA)
  • Gold standard imaging for PE
  • Look for filling defects in pulmonary arteries
Step 5 - Echocardiography
  • Useful in hemodynamically unstable patients
  • RV dilation, McConnell sign (RV free wall akinesis, apical sparing), D-sign (septal shift)
Other tests:
  • ECG: New RBBB, S1Q3T3 pattern, T-wave inversions V1-V4, sinus tachycardia
  • ABG: Hypoxemia (PaO2 <80 mmHg), hypocapnia, elevated A-a gradient >20 Torr
  • Troponin / BNP: Elevated in RV strain; help risk-stratify intermediate PE

5. Risk Stratification

CategoryCriteriaMortality
Low-Risk (non-massive)Hemodynamically stable, no RV dysfunction<1-3%
Intermediate-Risk (submassive)Stable + RV dysfunction on imaging OR elevated troponin/BNP3-15%
High-Risk (massive)Hemodynamically unstable (SBP <90 mmHg)15-50%
Small peripheral clots usually fall into the Low-Risk category.

6. Medical Treatment - Step by Step

For Low-Risk (Small) PE:

Step 1 - Supportive Care
  • Supplemental oxygen to keep SpO2 >90%
  • Avoid intubation if possible (increases intrathoracic pressure, worsens RV failure)
Step 2 - Anticoagulation (Start immediately - cornerstone of treatment)
Preferred agents:
  • DOAC (Direct Oral Anticoagulants) - preferred for low-risk PE:
    • Rivaroxaban 15 mg twice daily x 21 days, then 20 mg daily
    • Apixaban 10 mg twice daily x 7 days, then 5 mg twice daily
  • LMWH (Low-Molecular-Weight Heparin) - e.g., enoxaparin 1 mg/kg SC twice daily
  • Unfractionated Heparin (UFH) IV - used if thrombolysis or surgery planned
Duration of anticoagulation:
  • Provoked PE (reversible cause): 3 months
  • Unprovoked PE: minimum 3 months, consider extended therapy
  • Cancer-associated: indefinite (use LMWH or DOAC)
Step 3 - Monitoring
  • Monitor hemodynamics, repeat troponin/BNP at 6-12 hours
  • Watch for clinical deterioration - if patient worsens, upgrade risk category
Step 4 - Disposition
  • Low-risk patients may be suitable for outpatient treatment (use Hestia criteria or PESI score to confirm safety)
  • Intermediate-risk: hospital admission, monitored bed
  • High-risk: ICU

7. Percutaneous (Catheter-Based) Interventions

Used for patients who fail anticoagulation or are not candidates for surgery:
  • Catheter-Directed Thrombolysis (CDT): Catheter placed directly into pulmonary artery, thrombolytics (tPA) infused locally at low dose over 12-24 hours - lower bleeding risk than systemic thrombolysis
  • Catheter-Assisted Thrombus Removal (CATR) / Aspiration Thrombectomy: Mechanical suction device removes clot via catheter; major bleeding rate ~5%
  • Ultrasound-Accelerated Thrombolysis (EKOS): Ultrasound energy with CDT to enhance drug penetration into clot

8. Surgical Treatment - Pulmonary Embolectomy (Step by Step)

Indications (AHA 2011 / ESC 2019 Guidelines)

  • Massive PE with contraindications to fibrinolysis
  • Massive PE that remains hemodynamically unstable after fibrinolysis
  • Intermediate-high-risk PE with hemodynamic deterioration on anticoagulation
  • Coexisting right atrial/ventricular thrombus
  • RV overload with risk of further thrombus migration
Note: Surgical embolectomy is typically NOT indicated for small, low-risk PE. It is reserved for life-threatening cases. The steps below describe what happens when surgery is required.

Historical Note

Frederick Trendelenburg first proposed direct thrombus removal in 1908. The first successful surgery was reported in 1924. Cooley reported the first successful case using cardiopulmonary bypass (CPB) in 1961. - Sabiston Textbook of Surgery

Surgical Steps: Open Pulmonary Embolectomy

Step 1 - Patient Preparation and Anesthesia
  • General anesthesia
  • Arterial line, central venous access, Foley catheter
  • TEE (transesophageal echocardiography) monitoring
  • Full anticoagulation with heparin (systemic)
Step 2 - Incision
  • Median sternotomy - vertical incision down the center of the chest, sternum divided
Step 3 - Cannulation for Cardiopulmonary Bypass (CPB)
  • Cannulate the ascending aorta (arterial return)
  • Cannulate both venae cavae (superior and inferior) for venous drainage
  • Initiate CPB - the heart-lung machine takes over circulation
Step 4 - Cardiac Management During Surgery
  • Surgery is often performed WITHOUT aortic cross-clamping (beating heart or fibrillating heart)
  • Aortic cross-clamp + cold cardioplegia (cardiac arrest) is used if:
    • Right heart thrombi are present
    • Thrombus straddles the foramen ovale
Step 5 - Opening the Pulmonary Artery
  • The main pulmonary artery is opened 1-2 cm downstream from the pulmonary valve
  • The incision is extended into the proximal left pulmonary artery
Step 6 - Clot Removal
  • Use forceps and suction catheters to remove clots from:
    • Left pulmonary artery
    • Behind the aorta toward the right pulmonary artery (RPA)
  • If needed, the RPA is exposed and opened between the aorta and superior vena cava (SVC) for better access to distal segments
  • In acute PE: thrombi are typically soft, rod-shaped, red - relatively easy to remove
  • Goal: remove all easily accessible large central thrombi - even partial removal gives significant hemodynamic improvement
  • Fogarty balloon catheter is rarely used (risk of vessel wall injury in distal arteries); however, flexible choledochoscope-guided balloon thrombectomy has been reported
Step 7 - Check for Acute-on-Chronic PE
  • If chronic thromboembolic pulmonary hypertension (CTEPH) is found, a more complex procedure - pulmonary thromboendarterectomy (PTE/PEA) - may be required
Step 8 - Closure
  • Pulmonary arteriotomy is closed
  • CPB is weaned off gradually as the heart recovers
  • Sternum is closed with sternal wires
  • Skin closed in layers
Step 9 - Post-Operative Care
  • ICU admission
  • Continue anticoagulation (start UFH, transition to long-term anticoagulation)
  • Monitor RV function by echocardiography
  • Watch for reperfusion injury, bleeding complications

9. Summary Table: Treatment by Risk Category

PE TypeFirst TreatmentSecond LineSurgery?
Low-risk (small PE)DOAC anticoagulation-No
IntermediateHeparin + monitoringCDT or systemic thrombolysisRarely
High-risk (massive)Heparin + systemic tPACDT, CATRYes, if thrombolysis fails/contraindicated

10. Key Drugs Quick Reference

DrugClassDoseNotes
RivaroxabanDOAC15 mg BID x 21d → 20 mg dailyNo monitoring needed
ApixabanDOAC10 mg BID x 7d → 5 mg BIDPreferred in cancer, elderly
EnoxaparinLMWH1 mg/kg SC BIDAvoid if CrCl <30
UFHHeparin80 u/kg IV bolus → 18 u/kg/hrUse if surgery/thrombolysis planned
Alteplase (tPA)Thrombolytic100 mg IV over 2hSystemic; high bleeding risk

Sources: Sabiston Textbook of Surgery (21st ed.), Rosen's Emergency Medicine (10th ed.), Murray & Nadel's Textbook of Respiratory Medicine

I want PPT for the whole. PPT, PPT, PPT, PPT.

Reading File
Reading File
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /home/daytona/workspace/pulmonary-embolism-ppt

Writing File

~/pulmonary-embolism-ppt/create_ppt.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pulmonary Embolism: Diagnosis, Treatment & Surgery";
pres.author = "Medical Education";

// ─── COLOR PALETTE ───────────────────────────────────────────────
// Deep navy dominates, crimson accent, light slate for cards, white text
const C = {
  navy:       "0D1B2A",   // dominant background
  navyMid:    "1A2E45",   // secondary bg panels
  crimson:    "C0392B",   // accent / danger
  teal:       "1ABC9C",   // highlight / steps
  gold:       "F39C12",   // warning / caution
  white:      "FFFFFF",
  offWhite:   "ECF0F1",
  lightGray:  "BDC3C7",
  darkText:   "1C2833",
  cardBg:     "1E3A5F",   // card backgrounds
  cardBg2:    "154360",
};

// ─── HELPER FUNCTIONS ─────────────────────────────────────────────
function darkBg(slide) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 10, h: 5.625,
    fill: { color: C.navy }, line: { color: C.navy }
  });
}

function sectionBg(slide) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 10, h: 5.625,
    fill: { color: C.navyMid }, line: { color: C.navyMid }
  });
}

function contentBg(slide) {
  // light navy background for content slides
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 10, h: 5.625,
    fill: { color: "0A1628" }, line: { color: "0A1628" }
  });
}

function addSideAccent(slide) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 0.07, h: 5.625,
    fill: { color: C.crimson }, line: { color: C.crimson }
  });
}

function slideTitle(slide, text, sub) {
  slide.addText(text, {
    x: 0.35, y: 0.22, w: 9.3, h: 0.6,
    fontSize: 22, bold: true, color: C.white,
    fontFace: "Calibri", margin: 0
  });
  if (sub) {
    slide.addShape(pres.shapes.RECTANGLE, {
      x: 0.35, y: 0.87, w: 1.2, h: 0.04,
      fill: { color: C.teal }, line: { color: C.teal }
    });
    slide.addText(sub, {
      x: 0.35, y: 0.96, w: 9.3, h: 0.3,
      fontSize: 11, color: C.teal, fontFace: "Calibri",
      bold: false, italic: true, margin: 0
    });
  } else {
    slide.addShape(pres.shapes.RECTANGLE, {
      x: 0.35, y: 0.87, w: 1.2, h: 0.04,
      fill: { color: C.teal }, line: { color: C.teal }
    });
  }
}

function card(slide, x, y, w, h, color) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h,
    fill: { color: color || C.cardBg },
    line: { color: color || C.cardBg },
    rectRadius: 0.12
  });
}

function pill(slide, x, y, w, h, color, text, textColor) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h,
    fill: { color: color },
    line: { color: color },
    rectRadius: 0.08
  });
  slide.addText(text, {
    x, y, w, h,
    fontSize: 9.5, bold: true, color: textColor || C.white,
    align: "center", valign: "middle", fontFace: "Calibri", margin: 0
  });
}

function bulletList(slide, items, x, y, w, h, opts) {
  const o = opts || {};
  const rows = items.map((item, i) => ({
    text: item,
    options: { bullet: true, breakLine: i < items.length - 1, color: o.color || C.offWhite, fontSize: o.fs || 11, fontFace: "Calibri" }
  }));
  slide.addText(rows, { x, y, w, h, valign: "top", margin: 4 });
}

function stepCircle(slide, num, x, y, color) {
  slide.addShape(pres.shapes.ELLIPSE, {
    x, y, w: 0.42, h: 0.42,
    fill: { color: color || C.crimson }, line: { color: color || C.crimson }
  });
  slide.addText(String(num), {
    x, y, w: 0.42, h: 0.42,
    fontSize: 13, bold: true, color: C.white,
    align: "center", valign: "middle", fontFace: "Calibri", margin: 0
  });
}

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

  // Left crimson bar
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 0.12, h: 5.625,
    fill: { color: C.crimson }, line: { color: C.crimson }
  });

  // Top teal stripe
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 10, h: 0.06,
    fill: { color: C.teal }, line: { color: C.teal }
  });

  // Lung icon placeholder (circle + text)
  s.addShape(pres.shapes.ELLIPSE, {
    x: 7.2, y: 0.7, w: 2.3, h: 2.3,
    fill: { color: C.navyMid }, line: { color: C.crimson, pt: 2 }
  });
  s.addText("🫁", {
    x: 7.2, y: 0.7, w: 2.3, h: 2.3,
    fontSize: 52, align: "center", valign: "middle", margin: 0
  });

  // Main title
  s.addText("Pulmonary Embolism", {
    x: 0.5, y: 1.2, w: 6.5, h: 0.85,
    fontSize: 36, bold: true, color: C.white,
    fontFace: "Calibri", margin: 0
  });

  // Subtitle
  s.addText("Small Clots in the Lungs", {
    x: 0.5, y: 2.1, w: 6.5, h: 0.5,
    fontSize: 22, color: C.teal, fontFace: "Calibri", bold: false, margin: 0
  });

  s.addText("Diagnosis · Medical Treatment · Surgical Embolectomy", {
    x: 0.5, y: 2.65, w: 6.5, h: 0.35,
    fontSize: 12, color: C.lightGray, fontFace: "Calibri", italic: true, margin: 0
  });

  // Tags
  const tags = [
    { t: "Pulmonology", c: C.crimson },
    { t: "Surgery", c: "1A5276" },
    { t: "Emergency Medicine", c: "1B4F72" }
  ];
  let tx = 0.5;
  tags.forEach(tag => {
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x: tx, y: 3.3, w: 1.7, h: 0.3,
      fill: { color: tag.c }, line: { color: tag.c }, rectRadius: 0.06
    });
    s.addText(tag.t, {
      x: tx, y: 3.3, w: 1.7, h: 0.3,
      fontSize: 9, bold: true, color: C.white, align: "center",
      valign: "middle", fontFace: "Calibri", margin: 0
    });
    tx += 1.85;
  });

  // Source
  s.addText("Sources: Sabiston Textbook of Surgery · Rosen's Emergency Medicine · Murray & Nadel's Respiratory Medicine", {
    x: 0.5, y: 5.2, w: 9, h: 0.28,
    fontSize: 8, color: C.lightGray, italic: true, fontFace: "Calibri", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS PE?
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "What is a Pulmonary Embolism?", "Definition & Overview");

  // Definition box
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0.35, y: 1.2, w: 9.3, h: 0.9,
    fill: { color: C.cardBg }, line: { color: C.teal, pt: 1.5 }
  });
  s.addText([
    { text: "Pulmonary Embolism (PE): ", options: { bold: true, color: C.teal } },
    { text: "A blood clot (thrombus) — usually from a deep vein thrombosis (DVT) in the legs or pelvis — that travels through the venous system and lodges in a pulmonary artery, blocking blood flow to part of the lung.", options: { color: C.offWhite } }
  ], {
    x: 0.45, y: 1.2, w: 9.1, h: 0.9,
    fontSize: 11, fontFace: "Calibri", valign: "middle", margin: 8
  });

  // Three key facts cards
  const facts = [
    { icon: "3rd", label: "Most Common\nCardiovascular Killer", sub: "After MI and Stroke", col: C.crimson },
    { icon: "~50%", label: "Cases are\nSilent / Asymptomatic", sub: "Especially small PE", col: "1A5276" },
    { icon: "DVT", label: "Origin of\nMost Clots", sub: "Deep veins of legs/pelvis", col: "117A65" },
  ];
  facts.forEach((f, i) => {
    const x = 0.35 + i * 3.12;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 2.3, w: 2.95, h: 1.6,
      fill: { color: f.col }, line: { color: f.col }, rectRadius: 0.12
    });
    s.addText(f.icon, {
      x, y: 2.35, w: 2.95, h: 0.55,
      fontSize: 22, bold: true, color: C.white,
      align: "center", fontFace: "Calibri", margin: 0
    });
    s.addText(f.label, {
      x, y: 2.9, w: 2.95, h: 0.6,
      fontSize: 10.5, bold: true, color: C.white,
      align: "center", fontFace: "Calibri", margin: 0
    });
    s.addText(f.sub, {
      x, y: 3.52, w: 2.95, h: 0.3,
      fontSize: 9, color: "D6EAF8", italic: true,
      align: "center", fontFace: "Calibri", margin: 0
    });
  });

  // Small PE note
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0.35, y: 4.1, w: 9.3, h: 0.55,
    fill: { color: "1E2D3D" }, line: { color: C.gold, pt: 1 }
  });
  s.addText([
    { text: "⚠  Small PE ", options: { bold: true, color: C.gold } },
    { text: "= subsegmental or non-massive clots in peripheral pulmonary arteries. Low mortality (<3%) but still require treatment.", options: { color: C.offWhite } }
  ], { x: 0.45, y: 4.1, w: 9.1, h: 0.55, fontSize: 10.5, fontFace: "Calibri", valign: "middle", margin: 5 });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 3 — RISK FACTORS (VIRCHOW'S TRIAD)
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Risk Factors — Virchow's Triad", "The 3 Pillars of Clot Formation");

  const triad = [
    {
      title: "Hypercoagulability",
      icon: "🧬",
      color: C.crimson,
      items: ["Cancer (active malignancy)", "Factor V Leiden mutation", "Protein C / S deficiency", "Antithrombin deficiency", "Oral contraceptives / Pregnancy", "Antiphospholipid syndrome"]
    },
    {
      title: "Venous Stasis",
      icon: "🛌",
      color: "1A5276",
      items: ["Prolonged immobility / bed rest", "Long-haul travel", "Heart failure", "Post-surgical state", "Obesity", "Varicose veins"]
    },
    {
      title: "Endothelial Injury",
      icon: "🩹",
      color: "117A65",
      items: ["Surgery / Trauma", "Central venous catheters", "Prior DVT/PE", "Pelvic vein trauma at delivery", "Hypertension", "Smoking"]
    }
  ];

  triad.forEach((t, i) => {
    const x = 0.25 + i * 3.22;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 1.15, w: 3.05, h: 0.45,
      fill: { color: t.color }, line: { color: t.color }, rectRadius: 0.08
    });
    s.addText(t.icon + "  " + t.title, {
      x, y: 1.15, w: 3.05, h: 0.45,
      fontSize: 12.5, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });

    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 1.65, w: 3.05, h: 3.5,
      fill: { color: C.cardBg }, line: { color: t.color, pt: 1 }, rectRadius: 0.1
    });

    const rows = t.items.map((item, idx) => ({
      text: item,
      options: { bullet: true, breakLine: idx < t.items.length - 1, color: C.offWhite, fontSize: 10.5, fontFace: "Calibri" }
    }));
    s.addText(rows, { x: x + 0.08, y: 1.72, w: 2.88, h: 3.35, valign: "top", margin: 5 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 4 — CLINICAL FEATURES
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Clinical Features", "Symptoms & Signs of PE");

  // Left column: symptoms
  card(s, 0.35, 1.15, 4.4, 3.9, C.cardBg);
  s.addText("SYMPTOMS", {
    x: 0.45, y: 1.22, w: 4.2, h: 0.3,
    fontSize: 11, bold: true, color: C.teal, fontFace: "Calibri",
    charSpacing: 2, margin: 0
  });

  const syms = [
    ["Dyspnea (SOB)", "75–80%", C.crimson],
    ["Chest pain (pleuritic)", "~67%", "E67E22"],
    ["Hemoptysis", "~10%", "9B59B6"],
    ["Palpitations / Dizziness", "variable", "2980B9"],
    ["Syncope", "<5%", "16A085"],
    ["Leg swelling (unilateral)", "<30%", "8E44AD"],
  ];
  syms.forEach(([sym, pct, col], i) => {
    const y = 1.6 + i * 0.52;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x: 0.42, y, w: 3.0, h: 0.38,
      fill: { color: "12293F" }, line: { color: "12293F" }, rectRadius: 0.06
    });
    s.addText(sym, {
      x: 0.5, y, w: 2.4, h: 0.38,
      fontSize: 10, color: C.offWhite, fontFace: "Calibri",
      valign: "middle", margin: 4
    });
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x: 2.88, y: y + 0.05, w: 0.65, h: 0.27,
      fill: { color: col }, line: { color: col }, rectRadius: 0.05
    });
    s.addText(pct, {
      x: 2.88, y: y + 0.05, w: 0.65, h: 0.27,
      fontSize: 9, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });
  });

  // Right column: signs
  card(s, 5.0, 1.15, 4.65, 3.9, C.cardBg);
  s.addText("SIGNS", {
    x: 5.1, y: 1.22, w: 4.45, h: 0.3,
    fontSize: 11, bold: true, color: C.teal, fontFace: "Calibri",
    charSpacing: 2, margin: 0
  });

  const signs = [
    "Tachycardia (most common sign)",
    "Tachypnea / Hypoxemia (SpO₂ <94%)",
    "Low-grade fever (<38.6 °C)",
    "Hypotension (massive PE only)",
    "Raised JVP / RV heave",
    "Pleural rub (if infarction)",
    "Calf tenderness (if DVT source)",
  ];
  signs.forEach((sign, i) => {
    s.addText([{ text: "• " + sign, options: { color: C.offWhite } }], {
      x: 5.1, y: 1.6 + i * 0.48, w: 4.35, h: 0.42,
      fontSize: 10, fontFace: "Calibri", valign: "middle", margin: 4
    });
  });

  // Warning note
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0.35, y: 5.2, w: 9.3, h: 0.3,
    fill: { color: "1E2D3D" }, line: { color: C.gold, pt: 1 }
  });
  s.addText("⚠  Small PE can be ASYMPTOMATIC — always consider PE in unexplained dyspnea, chest pain, or tachycardia", {
    x: 0.45, y: 5.22, w: 9.0, h: 0.25,
    fontSize: 9.5, color: C.gold, italic: true, fontFace: "Calibri", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 5 — DIAGNOSIS ALGORITHM
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Diagnostic Algorithm", "Step-by-Step Workup for Suspected PE");

  const steps = [
    { num: 1, title: "Assess Pre-Test Probability (PTP)", body: "Use Revised Geneva Score or Wells Score\nLow (0–3) / Intermediate (4–10) / High (≥11)", col: C.crimson },
    { num: 2, title: "PERC Rule", body: "If low PTP — all 8 PERC criteria negative → PE excluded (no further tests)", col: "8E44AD" },
    { num: 3, title: "D-Dimer", body: "Non-high PTP: If D-dimer <500 ng/mL (or <age×10) → PE excluded\nHigh PTP: Skip D-dimer, go straight to imaging", col: "2980B9" },
    { num: 4, title: "CT Pulmonary Angiography (CTPA)", body: "Gold standard. Filling defects = clot. If CTPA positive → confirmed PE", col: "16A085" },
    { num: 5, title: "Echocardiography", body: "For hemodynamically unstable patients. RV dilation, McConnell sign, D-sign", col: "E67E22" },
  ];

  steps.forEach((st, i) => {
    const y = 1.1 + i * 0.85;
    // connecting line (not for last)
    if (i < steps.length - 1) {
      s.addShape(pres.shapes.RECTANGLE, {
        x: 0.55, y: y + 0.55, w: 0.04, h: 0.42,
        fill: { color: "2C3E50" }, line: { color: "2C3E50" }
      });
    }
    stepCircle(s, st.num, 0.35, y + 0.08, st.col);
    card(s, 0.88, y, 8.72, 0.75, "12293F");
    s.addText(st.title, {
      x: 1.0, y: y + 0.04, w: 8.5, h: 0.28,
      fontSize: 11, bold: true, color: st.col, fontFace: "Calibri", margin: 0
    });
    s.addText(st.body, {
      x: 1.0, y: y + 0.33, w: 8.5, h: 0.38,
      fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", margin: 0
    });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 6 — REVISED GENEVA SCORE TABLE
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Revised Geneva Score", "Pre-Test Probability Scoring for PE");

  const rows = [
    ["Risk Factor / Finding", "Points"],
    ["Age >65 years", "1"],
    ["Previous DVT or PE", "3"],
    ["Surgery or fracture within 1 month", "2"],
    ["Active malignancy", "2"],
    ["Unilateral lower limb pain", "3"],
    ["Hemoptysis", "2"],
    ["Heart rate 75–94 bpm", "3"],
    ["Heart rate ≥95 bpm", "5"],
    ["DVT pain/edema on palpation", "4"],
  ];

  const colW = [7.5, 1.5];
  const startX = 0.35;
  const startY = 1.15;
  const rowH = 0.36;

  rows.forEach((row, ri) => {
    const y = startY + ri * rowH;
    const isHeader = ri === 0;
    const bgColor = isHeader ? C.crimson : (ri % 2 === 0 ? "0D2137" : C.cardBg);
    let cx = startX;
    row.forEach((cell, ci) => {
      s.addShape(pres.shapes.RECTANGLE, {
        x: cx, y, w: colW[ci], h: rowH,
        fill: { color: bgColor }, line: { color: "0A1628", pt: 0.5 }
      });
      s.addText(cell, {
        x: cx + 0.06, y, w: colW[ci] - 0.12, h: rowH,
        fontSize: isHeader ? 11 : 10.5,
        bold: isHeader,
        color: isHeader ? C.white : C.offWhite,
        valign: "middle", fontFace: "Calibri", margin: 0,
        align: ci === 1 ? "center" : "left"
      });
      cx += colW[ci];
    });
  });

  // Score interpretation
  const cats = [
    { label: "LOW RISK", range: "0–3 pts", color: "117A65" },
    { label: "INTERMEDIATE", range: "4–10 pts", color: C.gold },
    { label: "HIGH RISK", range: "≥11 pts", color: C.crimson },
  ];
  cats.forEach((c, i) => {
    const x = 0.35 + i * 3.2;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 4.95, w: 3.05, h: 0.5,
      fill: { color: c.color }, line: { color: c.color }, rectRadius: 0.08
    });
    s.addText(c.label + "\n" + c.range, {
      x, y: 4.95, w: 3.05, h: 0.5,
      fontSize: 10, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 7 — ECG & LAB FINDINGS
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "ECG, Labs & Imaging Findings", "Supporting Diagnostic Tools");

  // 3 cards
  const cols = [
    {
      title: "🫀  ECG Changes",
      col: C.crimson,
      items: [
        "Sinus tachycardia (most common)",
        "S1Q3T3 pattern",
        "New right bundle branch block (RBBB)",
        "T-wave inversions in V1–V4",
        "Rightward QRS axis shift",
        "AF / Atrial flutter",
        "ST elevation in V1 and aVR",
      ]
    },
    {
      title: "🧪  Lab Values",
      col: "8E44AD",
      items: [
        "D-dimer: elevated (sensitivity 95–98%)",
        "Troponin: elevated → RV injury",
        "BNP / NT-proBNP: elevated → RV strain",
        "ABG: PaO₂ <80 mmHg (hypoxemia)",
        "ABG: hypocapnia (low PaCO₂)",
        "A-a gradient >20 Torr",
        "WBC may be mildly elevated",
      ]
    },
    {
      title: "📸  Imaging Signs",
      col: "16A085",
      items: [
        "CTPA: filling defect in pulmonary artery",
        "Echo: RV dilation (RV:LV ratio >1)",
        "Echo: McConnell sign (RV free wall akinesis, apical sparing)",
        "Echo: D-sign (septal shift left)",
        "CXR: Hampton's hump, Westermark sign",
        "V/Q scan: mismatched perfusion defect",
      ]
    }
  ];

  cols.forEach((col, i) => {
    const x = 0.25 + i * 3.25;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 1.1, w: 3.1, h: 0.42,
      fill: { color: col.col }, line: { color: col.col }, rectRadius: 0.08
    });
    s.addText(col.title, {
      x, y: 1.1, w: 3.1, h: 0.42,
      fontSize: 11, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });
    card(s, x, 1.57, 3.1, 3.85, C.cardBg);
    const rows = col.items.map((item, idx) => ({
      text: item,
      options: { bullet: true, breakLine: idx < col.items.length - 1, color: C.offWhite, fontSize: 10, fontFace: "Calibri" }
    }));
    s.addText(rows, { x: x + 0.08, y: 1.62, w: 2.94, h: 3.75, valign: "top", margin: 5 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 8 — RISK STRATIFICATION
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Risk Stratification", "Categorizing PE Severity to Guide Treatment");

  const cats = [
    {
      label: "LOW-RISK\n(Non-Massive)",
      mort: "<1–3%",
      color: "117A65",
      criteria: ["Hemodynamically stable", "No RV dysfunction", "Troponin normal", "BNP normal"],
      action: ["DOAC anticoagulation", "Consider outpatient Rx", "Hestia criteria / PESI score"]
    },
    {
      label: "INTERMEDIATE-RISK\n(Submassive)",
      mort: "3–15%",
      color: C.gold,
      criteria: ["Hemodynamically stable", "RV dysfunction on echo/CT", "Troponin OR BNP elevated"],
      action: ["Heparin anticoagulation", "Admit for monitoring", "Activate PERT team", "Possible CDT or thrombolysis"]
    },
    {
      label: "HIGH-RISK\n(Massive)",
      mort: "15–50%",
      color: C.crimson,
      criteria: ["SBP <90 mmHg or drop >40 mmHg", "Hemodynamically unstable", "Shock / cardiac arrest"],
      action: ["Heparin IV stat", "Systemic thrombolysis (tPA)", "If failed/contraindicated:", "→ Surgical Embolectomy", "ICU admission"]
    },
  ];

  cats.forEach((c, i) => {
    const x = 0.25 + i * 3.25;
    // Header
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 1.1, w: 3.1, h: 0.65,
      fill: { color: c.color }, line: { color: c.color }, rectRadius: 0.1
    });
    s.addText(c.label, {
      x, y: 1.1, w: 2.5, h: 0.65,
      fontSize: 11, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });
    s.addText("Mortality\n" + c.mort, {
      x: x + 2.52, y: 1.1, w: 0.58, h: 0.65,
      fontSize: 9, bold: true, color: C.white,
      align: "center", valign: "middle", fontFace: "Calibri", margin: 0
    });

    // Criteria
    card(s, x, 1.8, 3.1, 1.7, "0D2137");
    s.addText("CRITERIA", { x: x + 0.08, y: 1.84, w: 2.9, h: 0.25, fontSize: 9, bold: true, color: c.color, fontFace: "Calibri", margin: 0, charSpacing: 1 });
    const cRows = c.criteria.map((item, idx) => ({
      text: item,
      options: { bullet: true, breakLine: idx < c.criteria.length - 1, color: C.offWhite, fontSize: 9.5, fontFace: "Calibri" }
    }));
    s.addText(cRows, { x: x + 0.08, y: 2.1, w: 2.94, h: 1.35, valign: "top", margin: 3 });

    // Action
    card(s, x, 3.57, 3.1, 1.9, C.cardBg);
    s.addText("TREATMENT", { x: x + 0.08, y: 3.61, w: 2.9, h: 0.25, fontSize: 9, bold: true, color: c.color, fontFace: "Calibri", margin: 0, charSpacing: 1 });
    const aRows = c.action.map((item, idx) => ({
      text: item,
      options: { bullet: !item.startsWith("→"), breakLine: idx < c.action.length - 1, color: item.startsWith("→") ? C.gold : C.offWhite, fontSize: 9.5, fontFace: "Calibri", bold: item.startsWith("→") }
    }));
    s.addText(aRows, { x: x + 0.08, y: 3.88, w: 2.94, h: 1.55, valign: "top", margin: 3 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 9 — MEDICAL TREATMENT STEPS
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Medical Treatment — Step by Step", "For Small / Low-Risk PE");

  const steps = [
    { n: 1, title: "Supportive Care", body: "Supplemental O₂ → target SpO₂ >90%  |  Avoid intubation (↑ intrathoracic pressure worsens RV)  |  If intubation needed: optimize hemodynamics FIRST, use vasopressors pre-induction", col: C.teal },
    { n: 2, title: "Start Anticoagulation Immediately", body: "DOAC (preferred for low-risk):  Rivaroxaban 15 mg BID ×21d → 20 mg daily  OR  Apixaban 10 mg BID ×7d → 5 mg BID\nLMWH (enoxaparin 1 mg/kg SC BID)  |  UFH IV if surgery or thrombolysis planned", col: C.crimson },
    { n: 3, title: "Duration of Anticoagulation", body: "Provoked PE (reversible cause) → 3 months  |  Unprovoked PE → min. 3 months, consider extended\nCancer-associated → indefinite (LMWH or DOAC)", col: C.gold },
    { n: 4, title: "Monitoring", body: "Serial troponin + BNP at 6–12 hrs  |  Watch for hemodynamic deterioration  |  If patient worsens → upgrade risk category → escalate therapy", col: "8E44AD" },
    { n: 5, title: "Disposition", body: "Low-risk → Outpatient if Hestia criteria negative / low PESI  |  Intermediate → Admit monitored bed  |  High-risk → ICU", col: "16A085" },
  ];

  steps.forEach((st, i) => {
    const y = 1.1 + i * 0.85;
    if (i < steps.length - 1) {
      s.addShape(pres.shapes.RECTANGLE, { x: 0.55, y: y + 0.55, w: 0.04, h: 0.42, fill: { color: "2C3E50" }, line: { color: "2C3E50" } });
    }
    stepCircle(s, st.n, 0.35, y + 0.08, st.col);
    card(s, 0.88, y, 8.72, 0.75, "12293F");
    s.addText(st.title, { x: 1.0, y: y + 0.04, w: 8.5, h: 0.28, fontSize: 11, bold: true, color: st.col, fontFace: "Calibri", margin: 0 });
    s.addText(st.body, { x: 1.0, y: y + 0.33, w: 8.5, h: 0.38, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 10 — KEY DRUGS TABLE
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Key Drugs Quick Reference", "Anticoagulants & Thrombolytics for PE");

  const headers = ["Drug", "Class", "Dose", "Notes"];
  const rows2 = [
    ["Rivaroxaban", "DOAC", "15 mg BID ×21d → 20 mg daily", "No monitoring; preferred low-risk"],
    ["Apixaban", "DOAC", "10 mg BID ×7d → 5 mg BID", "Preferred in cancer, elderly, CKD"],
    ["Enoxaparin", "LMWH", "1 mg/kg SC BID", "Avoid if CrCl <30 mL/min"],
    ["UFH", "Heparin", "80 u/kg IV bolus → 18 u/kg/hr infusion", "Use if surgery or thrombolysis planned; monitor aPTT"],
    ["Alteplase (tPA)", "Thrombolytic", "100 mg IV over 2 hours", "Systemic; high bleeding risk; ICU setting only"],
    ["Fondaparinux", "Anti-Xa", "5–10 mg SC daily (weight-based)", "HIT patients; renal caution"],
    ["Warfarin", "VKA", "Start 5 mg daily; target INR 2–3", "Overlap LMWH ≥5 days; slow onset"],
  ];

  const colW2 = [1.7, 1.3, 3.5, 3.15];
  const hdrColors = [C.crimson, "8E44AD", "2980B9", "16A085"];
  let cx = 0.35;
  headers.forEach((h, i) => {
    s.addShape(pres.shapes.RECTANGLE, { x: cx, y: 1.15, w: colW2[i], h: 0.38, fill: { color: hdrColors[i] }, line: { color: "0A1628", pt: 0.5 } });
    s.addText(h, { x: cx + 0.05, y: 1.15, w: colW2[i] - 0.1, h: 0.38, fontSize: 11, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
    cx += colW2[i];
  });

  rows2.forEach((row, ri) => {
    let cx2 = 0.35;
    const bg = ri % 2 === 0 ? C.cardBg : "0D2137";
    row.forEach((cell, ci) => {
      s.addShape(pres.shapes.RECTANGLE, { x: cx2, y: 1.55 + ri * 0.53, w: colW2[ci], h: 0.5, fill: { color: bg }, line: { color: "0A1628", pt: 0.5 } });
      s.addText(cell, {
        x: cx2 + 0.05, y: 1.55 + ri * 0.53, w: colW2[ci] - 0.1, h: 0.5,
        fontSize: ci === 0 ? 10.5 : 9.5,
        bold: ci === 0, color: ci === 0 ? C.teal : C.offWhite,
        valign: "middle", fontFace: "Calibri", margin: 0
      });
      cx2 += colW2[ci];
    });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 11 — CATHETER-BASED INTERVENTIONS
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Catheter-Based Interventions", "Between Medical Rx and Surgery");

  const opts = [
    {
      n: "01",
      title: "Systemic Thrombolysis",
      col: C.crimson,
      desc: "Alteplase 100 mg IV over 2 hrs\nGiven systemically (IV)\nFastest — but highest bleeding risk\nFor massive PE without contraindications",
      when: "Massive PE, no surgical access"
    },
    {
      n: "02",
      title: "Catheter-Directed Thrombolysis (CDT)",
      col: "8E44AD",
      desc: "Catheter placed directly into pulmonary artery\nLow-dose tPA infused locally over 12–24 hrs\nLower bleeding risk than systemic\nRequires IR/cath lab",
      when: "Intermediate-high risk or failed systemic"
    },
    {
      n: "03",
      title: "Catheter Aspiration / CATR",
      col: "2980B9",
      desc: "Mechanical suction device removes clot\nNo or minimal thrombolytics needed\nMajor bleeding rate ~5%\nUltrasound-accelerated (EKOS) variant available",
      when: "Thrombolysis contraindicated"
    },
  ];

  opts.forEach((o, i) => {
    const x = 0.25 + i * 3.25;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 1.1, w: 0.45, h: 0.45,
      fill: { color: o.col }, line: { color: o.col }, rectRadius: 0.1
    });
    s.addText(o.n, { x, y: 1.1, w: 0.45, h: 0.45, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(o.title, { x: x + 0.52, y: 1.12, w: 2.55, h: 0.42, fontSize: 11, bold: true, color: o.col, fontFace: "Calibri", valign: "middle", margin: 0 });

    card(s, x, 1.65, 3.1, 2.6, C.cardBg);
    s.addText(o.desc, { x: x + 0.1, y: 1.72, w: 2.9, h: 2.45, fontSize: 10, color: C.offWhite, fontFace: "Calibri", valign: "top", margin: 4 });

    s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
      x, y: 4.35, w: 3.1, h: 0.55,
      fill: { color: "1E2D3D" }, line: { color: o.col, pt: 1 }, rectRadius: 0.08
    });
    s.addText([{ text: "When: ", options: { bold: true, color: o.col } }, { text: o.when, options: { color: C.offWhite } }], {
      x: x + 0.08, y: 4.35, w: 2.94, h: 0.55, fontSize: 10, fontFace: "Calibri", valign: "middle", margin: 4
    });
  });

  // PERT note
  s.addShape(pres.shapes.RECTANGLE, {
    x: 0.35, y: 5.0, w: 9.3, h: 0.45,
    fill: { color: "1E2D3D" }, line: { color: C.teal, pt: 1 }
  });
  s.addText("💡  PERT (Pulmonary Embolism Response Team): Multidisciplinary team (pulm, cardiology, IR, surgery) activated for intermediate/high-risk PE to guide escalation decisions", {
    x: 0.45, y: 5.0, w: 9.1, h: 0.45, fontSize: 9.5, color: C.teal, italic: true, fontFace: "Calibri", valign: "middle", margin: 4
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 12 — SURGICAL EMBOLECTOMY: INDICATIONS
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Surgical Embolectomy — Indications", "When Is Surgery Required?");

  // Historical note
  card(s, 0.35, 1.12, 9.3, 0.6, "1A1A2E");
  s.addText([
    { text: "History: ", options: { bold: true, color: C.teal } },
    { text: "Trendelenburg proposed direct thrombus removal (1908). First successful surgery by Kirschner (1924). Cooley reported first successful case using cardiopulmonary bypass (CPB) in 1961. — Sabiston Textbook of Surgery", options: { color: C.lightGray, italic: true } }
  ], { x: 0.45, y: 1.12, w: 9.1, h: 0.6, fontSize: 9.5, fontFace: "Calibri", valign: "middle", margin: 5 });

  // Indications
  const inds = [
    { label: "AHA 2011 Guideline", color: C.crimson, items: ["Massive PE + contraindications to fibrinolysis", "Massive PE + hemodynamically unstable after fibrinolysis", "Submassive PE with poor prognosis signs:", "  → New hemodynamic instability", "  → Worsening respiratory failure", "  → Severe RV dysfunction", "  → Major myocardial necrosis"] },
    { label: "ESC 2019 Guideline", color: "2980B9", items: ["High-risk PE + fibrinolysis contraindicated", "Ineffective thrombolysis with clinical deterioration", "Intermediate-high-risk PE + hemodynamic deterioration on anticoagulation", "Coexisting RA / RV thrombus (→ increased death risk)", "RV overload with risk of further thrombus migration"] },
  ];

  inds.forEach((ind, i) => {
    const x = 0.35 + i * 4.8;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 1.85, w: 4.6, h: 0.38, fill: { color: ind.color }, line: { color: ind.color }, rectRadius: 0.08 });
    s.addText(ind.label, { x, y: 1.85, w: 4.6, h: 0.38, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    card(s, x, 2.28, 4.6, 2.95, C.cardBg);
    const rows = ind.items.map((item, idx) => ({
      text: item,
      options: { bullet: !item.startsWith("  →"), breakLine: idx < ind.items.length - 1, color: item.startsWith("  →") ? C.gold : C.offWhite, fontSize: 10, fontFace: "Calibri" }
    }));
    s.addText(rows, { x: x + 0.1, y: 2.35, w: 4.42, h: 2.8, valign: "top", margin: 5 });
  });

  s.addShape(pres.shapes.RECTANGLE, { x: 0.35, y: 5.3, w: 9.3, h: 0.22, fill: { color: "1E2D3D" }, line: { color: C.gold, pt: 1 } });
  s.addText("⚠  Note: Surgical embolectomy is NOT indicated for small low-risk PE — reserved for life-threatening massive/high-risk cases.", {
    x: 0.45, y: 5.3, w: 9.1, h: 0.22, fontSize: 9, color: C.gold, italic: true, fontFace: "Calibri", valign: "middle", margin: 0
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 13 — SURGICAL STEPS (PART 1: Setup → CPB)
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Surgical Embolectomy — Steps 1–5", "Patient Prep → Cardiopulmonary Bypass");

  const steps = [
    { n: 1, title: "Patient Preparation & Anesthesia", body: "General anesthesia · Arterial line, central venous access, Foley catheter · TEE monitoring for RV function · Full systemic heparinization", col: C.teal },
    { n: 2, title: "Median Sternotomy — Incision", body: "Vertical midline incision from sternal notch to xiphoid · Sternum divided with oscillating saw · Sternal retractor placed for exposure", col: C.crimson },
    { n: 3, title: "Cannulation for CPB", body: "Cannulate ascending aorta (arterial return) · Cannulate BOTH venae cavae: superior (SVC) and inferior (IVC) for venous drainage · Initiate cardiopulmonary bypass (CPB)", col: "8E44AD" },
    { n: 4, title: "Cardiac Management During Bypass", body: "Usually performed WITHOUT aortic cross-clamping (beating/fibrillating heart)\nCross-clamp + cold cardioplegia ONLY if: right heart thrombi present, thrombus straddles foramen ovale", col: "E67E22" },
    { n: 5, title: "Opening the Pulmonary Artery", body: "Main pulmonary artery opened 1–2 cm downstream from the pulmonary valve · Incision extended into proximal LEFT pulmonary artery", col: "2980B9" },
  ];

  steps.forEach((st, i) => {
    const y = 1.1 + i * 0.85;
    if (i < steps.length - 1) {
      s.addShape(pres.shapes.RECTANGLE, { x: 0.55, y: y + 0.55, w: 0.04, h: 0.42, fill: { color: "2C3E50" }, line: { color: "2C3E50" } });
    }
    stepCircle(s, st.n, 0.35, y + 0.08, st.col);
    card(s, 0.88, y, 8.72, 0.75, "12293F");
    s.addText(st.title, { x: 1.0, y: y + 0.04, w: 8.5, h: 0.28, fontSize: 11, bold: true, color: st.col, fontFace: "Calibri", margin: 0 });
    s.addText(st.body, { x: 1.0, y: y + 0.33, w: 8.5, h: 0.38, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 14 — SURGICAL STEPS (PART 2: Clot Removal → Closure)
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Surgical Embolectomy — Steps 6–9", "Clot Removal → Closure → Post-Op Care");

  const steps = [
    { n: 6, title: "Clot Removal (Core Step)", body: "Forceps + suction catheters remove clots: Left PA → behind aorta → Right PA (between aorta & SVC if needed) · In acute PE: soft, red, rod-shaped thrombi · Even partial removal of large central clots = significant hemodynamic benefit · Fogarty balloon rarely used (vessel injury risk); choledochoscope-guided technique reported", col: C.crimson },
    { n: 7, title: "Check for Chronic PE (Acute-on-Chronic)", body: "If CTEPH (chronic thromboembolic PH) is found, conversion to pulmonary thromboendarterectomy (PTE/PEA) is required — much more complex, requires specialist center", col: C.gold },
    { n: 8, title: "Closure", body: "Pulmonary arteriotomy closed with suture · CPB weaned gradually as heart recovers · Sternum closed with sternal wires · Skin closed in layers · Drains placed", col: "16A085" },
    { n: 9, title: "Post-Operative ICU Care", body: "Admit to ICU · Continue UFH → transition to long-term anticoagulation (DOAC or warfarin) · Echocardiography to monitor RV recovery · Watch for: reperfusion injury, bleeding, arrhythmias, RV failure", col: "2980B9" },
  ];

  steps.forEach((st, i) => {
    const y = 1.1 + i * 1.05;
    if (i < steps.length - 1) {
      s.addShape(pres.shapes.RECTANGLE, { x: 0.55, y: y + 0.68, w: 0.04, h: 0.52, fill: { color: "2C3E50" }, line: { color: "2C3E50" } });
    }
    stepCircle(s, st.n, 0.35, y + 0.1, st.col);
    card(s, 0.88, y, 8.72, 0.92, "12293F");
    s.addText(st.title, { x: 1.0, y: y + 0.05, w: 8.5, h: 0.28, fontSize: 11, bold: true, color: st.col, fontFace: "Calibri", margin: 0 });
    s.addText(st.body, { x: 1.0, y: y + 0.35, w: 8.5, h: 0.53, fontSize: 9.5, color: C.offWhite, fontFace: "Calibri", margin: 0 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 15 — TREATMENT SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Treatment Summary — At a Glance", "By Risk Category");

  const tRows = [
    { category: "Small / Low-Risk PE", first: "DOAC anticoagulation", second: "—", surgery: "❌ No", mort: "<3%", col: "117A65" },
    { category: "Intermediate-Low Risk", first: "Heparin + monitoring", second: "CDT (selective)", surgery: "Rarely", mort: "3–8%", col: C.gold },
    { category: "Intermediate-High Risk", first: "Heparin + PERT", second: "CDT or systemic tPA", surgery: "If deteriorates", mort: "8–15%", col: "E67E22" },
    { category: "Massive / High-Risk PE", first: "UFH IV stat", second: "Systemic tPA (alteplase)", surgery: "✅ Yes (if tPA fails)", mort: "15–50%", col: C.crimson },
  ];

  const cols3 = ["PE Category", "1st Line Rx", "2nd Line Rx", "Surgery?", "Mortality"];
  const colW3 = [2.2, 2.1, 2.2, 1.8, 1.35];
  const hdrC3 = ["0A3D62", "117A65", "8E44AD", C.crimson, "2C3E50"];

  let cx3 = 0.2;
  cols3.forEach((h, i) => {
    s.addShape(pres.shapes.RECTANGLE, { x: cx3, y: 1.15, w: colW3[i], h: 0.4, fill: { color: hdrC3[i] }, line: { color: "0A1628", pt: 0.5 } });
    s.addText(h, { x: cx3 + 0.05, y: 1.15, w: colW3[i] - 0.1, h: 0.4, fontSize: 10.5, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0, align: "center" });
    cx3 += colW3[i];
  });

  tRows.forEach((row, ri) => {
    const y = 1.58 + ri * 0.82;
    const cells = [row.category, row.first, row.second, row.surgery, row.mort];
    let cx4 = 0.2;
    cells.forEach((cell, ci) => {
      const bg = ci === 0 ? row.col : (ri % 2 === 0 ? C.cardBg : "0D2137");
      s.addShape(pres.shapes.RECTANGLE, { x: cx4, y, w: colW3[ci], h: 0.76, fill: { color: bg }, line: { color: "0A1628", pt: 0.5 } });
      s.addText(cell, {
        x: cx4 + 0.05, y, w: colW3[ci] - 0.1, h: 0.76,
        fontSize: ci === 0 ? 10.5 : 10,
        bold: ci === 0,
        color: ci === 0 ? C.white : (cell.includes("✅") ? C.teal : (cell.includes("❌") ? C.lightGray : C.offWhite)),
        valign: "middle", fontFace: "Calibri", margin: 0, align: "center"
      });
      cx4 += colW3[ci];
    });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 16 — PREVENTION & LONG-TERM MANAGEMENT
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  contentBg(s);
  addSideAccent(s);
  slideTitle(s, "Prevention & Long-Term Management", "Post-PE Follow-Up & VTE Prophylaxis");

  const cols4 = [
    {
      title: "🛡  VTE Prevention",
      col: "117A65",
      items: ["Early mobilization post-surgery", "Compression stockings / pneumatic compression devices", "LMWH prophylaxis in high-risk surgical patients", "Hydration, avoid prolonged immobility", "Heparin prophylaxis in pregnancy with prior PE/DVT", "IVC filter only if anticoagulation contraindicated"]
    },
    {
      title: "📋  Long-Term Anticoagulation",
      col: "2980B9",
      items: ["Provoked (reversible): 3 months", "Unprovoked: ≥3 months; reassess risk of recurrence", "Cancer-associated: indefinite (DOAC or LMWH)", "High recurrence risk → extended anticoagulation", "Reassess annually for bleeding vs clot risk balance"]
    },
    {
      title: "🔍  Follow-Up Monitoring",
      col: "8E44AD",
      items: ["6-week and 3-month outpatient review", "Echo at 3 months to assess RV recovery", "V/Q scan if PH symptoms persist → rule out CTEPH", "Screen for occult cancer (new unprovoked PE)", "Thrombophilia testing (after stopping anticoagulants)", "Post-PE syndrome: fatigue, dyspnea — may persist months"]
    }
  ];

  cols4.forEach((col, i) => {
    const x = 0.25 + i * 3.22;
    s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x, y: 1.1, w: 3.08, h: 0.42, fill: { color: col.col }, line: { color: col.col }, rectRadius: 0.08 });
    s.addText(col.title, { x, y: 1.1, w: 3.08, h: 0.42, fontSize: 10.5, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    card(s, x, 1.57, 3.08, 3.85, C.cardBg);
    const rows = col.items.map((item, idx) => ({
      text: item,
      options: { bullet: true, breakLine: idx < col.items.length - 1, color: C.offWhite, fontSize: 10, fontFace: "Calibri" }
    }));
    s.addText(rows, { x: x + 0.1, y: 1.63, w: 2.9, h: 3.72, valign: "top", margin: 5 });
  });
}

// ═══════════════════════════════════════════════════════════════════
// SLIDE 17 — CLOSING / KEY TAKEAWAYS
// ═══════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  darkBg(s);

  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 0.06, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.565, w: 10, h: 0.06, fill: { color: C.crimson }, line: { color: C.crimson } });

  s.addText("Key Takeaways", {
    x: 0.5, y: 0.2, w: 9, h: 0.55,
    fontSize: 28, bold: true, color: C.white, fontFace: "Calibri", margin: 0
  });
  s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 0.78, w: 2.5, h: 0.04, fill: { color: C.teal }, line: { color: C.teal } });

  const takeaways = [
    ["1", "Small PE = low-risk; start DOAC anticoagulation immediately and consider outpatient management.", C.teal],
    ["2", "Always risk-stratify (hemodynamics + RV function + troponin) to guide treatment escalation.", C.gold],
    ["3", "Thrombolysis (systemic or CDT) bridges the gap between anticoagulation and surgery.", "8E44AD"],
    ["4", "Surgical embolectomy is for massive PE failing or contraindicating fibrinolysis — uses median sternotomy + CPB.", C.crimson],
    ["5", "Surgical steps: sternotomy → CPB → open pulmonary artery → forceps/suction clot removal → closure → ICU.", "2980B9"],
    ["6", "PERT teams and multidisciplinary care improve outcomes in complex cases.", "16A085"],
  ];

  takeaways.forEach(([num, text, col], i) => {
    const y = 1.0 + i * 0.7;
    s.addShape(pres.shapes.ELLIPSE, { x: 0.4, y: y + 0.06, w: 0.35, h: 0.35, fill: { color: col }, line: { color: col } });
    s.addText(num, { x: 0.4, y: y + 0.06, w: 0.35, h: 0.35, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
    s.addText(text, { x: 0.9, y, w: 8.7, h: 0.58, fontSize: 11, color: C.offWhite, fontFace: "Calibri", valign: "middle", margin: 0 });
  });

  s.addText("Sources: Sabiston Textbook of Surgery · Rosen's Emergency Medicine (10e) · Murray & Nadel's Textbook of Respiratory Medicine", {
    x: 0.5, y: 5.32, w: 9, h: 0.2, fontSize: 7.5, color: "7F8C8D", italic: true, fontFace: "Calibri", margin: 0
  });
}

// ─── WRITE FILE ────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/pulmonary-embolism-ppt/Pulmonary_Embolism_Complete.pptx" })
  .then(() => console.log("✅ PPT created successfully!"))
  .catch(err => console.error("❌ Error:", err));
Running Command

cd /home/daytona/workspace/pulmonary-embolism-ppt && node create_ppt.js

Running Command

node -e "const p = require('pptxgenjs'); const pr = new p(); console.log(Object.…

Running Command

node -e "const p = require('pptxgenjs'); const pr = new p(); const keys = Object…

Editing File

~/pulmonary-embolism-ppt/create_ppt.js

Successfully replaced 3 instance(s) of the string in '/home/daytona/workspace/pulmonary-embolism-ppt/create_ppt.js'
Running Command

cd /home/daytona/workspace/pulmonary-embolism-ppt && node create_ppt.js

Running Command

ls -lh /home/daytona/workspace/pulmonary-embolism-ppt/Pulmonary_Embolism_Complet…

Your PPT is ready! Here's your download link:

Pulmonary Embolism Complete

Presentation · PPTX


The presentation has 17 slides with a bold deep navy + crimson design, covering everything from the study sheet:
SlideContent
1Title Slide
2What is PE? (Definition + key facts)
3Risk Factors - Virchow's Triad
4Clinical Features (Symptoms & Signs)
5Diagnostic Algorithm (5-step flowchart)
6Revised Geneva Score table
7ECG, Labs & Imaging Findings
8Risk Stratification (Low / Intermediate / High)
9Medical Treatment Step by Step
10Key Drugs Quick Reference table
11Catheter-Based Interventions (CDT, CATR, tPA)
12Surgical Embolectomy - Indications (AHA + ESC guidelines)
13Surgical Steps 1–5 (Prep → CPB → Open PA)
14Surgical Steps 6–9 (Clot Removal → Closure → ICU)
15Treatment Summary by Risk Category
16Prevention & Long-Term Management
17Key Takeaways

Search for clinical images of pulmonary emboli on CTPA

Finding Sources
Searching the Web

pulmonary embolism CTPA CT pulmonary angiography clinical images filling defect

Reading File
Loading Image
Loading Image
Loading Image
Loading Image
Loading Image
Searching the Web

pulmonary embolism CTPA polo mint sign railway track sign site:pmc.ncbi.nlm.nih.gov

Loading Image
Loading Image
Loading Image
Excellent - I now have 5 great clinical CTPA images. Here is a full annotated gallery:

Clinical CTPA Images of Pulmonary Embolism


Image 1 - Subsegmental PE with V/Q Correlation

(Murray & Nadel's Textbook of Respiratory Medicine)
Solitary subsegmental PE on CTPA with V/Q scintigraphy correlation
What you're seeing:
  • (A) Axial CTPA - small intraluminal filling defect (white arrow) in a posterior subsegmental left lower lobe pulmonary artery. This is the hallmark of PE on CTPA - a dark/grey area (low-attenuation clot) within a vessel filled with bright white contrast.
  • (B) The same vessel on a prior CTPA taken >1 year earlier - vessel is widely patent (arrowhead), confirming the defect in (A) is new thrombus.
  • (C & D) V/Q scintigraphy (nuclear medicine) - shows a matching perfusion defect (arrowheads) at the left base, confirming the subsegmental PE.
This is a classic example of a small / subsegmental PE - the most peripheral type, which is what "small clots in the lungs" looks like on imaging.

Image 2 - CTPA Overdiagnosis Example (False Positive)

(Murray & Nadel's Textbook of Respiratory Medicine)
CTPA false positive overdiagnosis of PE
What you're seeing:
  • (A-C) Axial CTPA cuts; (D) sagittal; (E) coronal reformats - all showing poor opacification of a small subsegmental right upper lobe pulmonary artery (arrows). This was initially read as PE, then overturned by a specialist.
  • Teaching point: Not every low-attenuation area = PE. Suboptimal contrast opacification, motion artifact, and beam hardening can mimic PE. A true PE should be seen on ≥2 slices and show the polo mint or railway track sign.

Image 3 - Saddle Embolus / Massive PE

(Radiopaedia - open access)
Massive pulmonary embolism on CTPA - saddle embolus
What you're seeing:
  • Axial CTPA at the level of the pulmonary trunk bifurcation showing a large, central filling defect straddling the main pulmonary artery - this is a saddle embolus, the most dangerous form.
  • The right pulmonary artery is essentially occluded - note the absence of contrast (bright white) that should be filling it.
  • This represents massive / high-risk PE - causes sudden hemodynamic collapse and cardiac arrest.

Image 4 - The Polo Mint Sign (Classic Teaching Image)

(PMC open access)
Polo mint sign on CTPA - acute pulmonary embolism
What you're seeing:
  • The inset (top left) shows an actual polo mint candy - a ring-shaped sweet with a hole in the middle - this is the analogy.
  • The main CTPA image shows an axial cut perpendicular to the long axis of a pulmonary artery. The white arrow points to a dark central filling defect (the clot) completely surrounded by a bright white rim of contrast - exactly like a polo mint.
  • This Polo Mint Sign = classic appearance of acute PE when the vessel is cut in cross-section. It confirms the clot is central and acute (not adherent to the wall like chronic PE).
Per Radiopaedia: "The central filling defect from the thrombus is surrounded by a thin rim of contrast, which has been called the polo mint sign."

Image 5 - Bilateral PE on CTPA

(Radiopaedia - open access)
Bilateral pulmonary embolism on CTPA
What you're seeing:
  • Axial CTPA at the level of the main pulmonary arteries showing bilateral filling defects - low-attenuation (grey/dark) clot material within both right and left pulmonary arteries which should be bright white with contrast.
  • This is an intermediate-to-high risk PE given bilateral involvement with large clot burden.

Summary: What to Look for on CTPA

FindingAppearanceSignificance
Filling defectDark/grey area in a contrast-filled bright white vesselCore sign of PE - all subtypes
Polo Mint SignDark central clot surrounded by ring of white contrast (axial view)Acute central PE
Railway Track SignTwo parallel lines of contrast flanking a central dark clot (longitudinal view)Acute non-occlusive PE
Vessel cutoff signAbrupt termination of contrast in a vesselComplete occlusion
Saddle embolusLarge clot straddling the pulmonary bifurcationMassive/high-risk PE
Dilated RVRV:LV ratio >1 on same axial cutRV strain - bad prognosis
Pulmonary infarctPeripheral wedge-shaped opacity (Hampton's hump)Infarction from distal PE
Technical requirement: CTPA must achieve contrast opacification of at least 210 Hounsfield units in the pulmonary arteries to reliably detect filling defects. - Clinical Imaging, Elsevier
This is a shared conversation. Sign in to Orris to start your own chat.