Pulmonary embolism

Reading File
Asking for Preferences

Overview and new guidelines

Finding Sources
Searching PubMed

"pulmonary embolism"[MeSH Terms] AND "guideline"[pt]

Searching the Web

pulmonary embolism new guidelines 2024 2025 ESC AHA management

Searching Images

pulmonary embolism CT angiography saddle embolus diagram

This diagnostic axial CT angiography (CTA) scan of the chest reveals a classic saddle pulmonary embolism. The primary visual finding is a large, low-attenuation filling defect centrally located at the bifurcation of the main pulmonary artery. This thrombus straddles the carina and extends into both the right and left pulmonary arteries. Two red arrows indicate the specific sites where the hypodense embolus obstructs the contrast-enhanced pulmonary vasculature. The surrounding mediastinal structures, including the ascending aorta and the superior vena cava, are visible and show normal contrast enhancement. This imaging modality is the gold standard for diagnosing acute pulmonary embolism, and the 'saddle' configuration demonstrated here indicates a massive or submassive embolic event with high clinical significance for hemodynamic instability.

This diagnostic axial CT angiography (CTA) scan of the chest reveals a classic saddle pulmonary embolism. The primary visual finding is a large, low-attenuation filling defect centrally located at the bifurcation of the main pulmonary artery. This thrombus straddles the carina and extends into both the right and left pulmonary arteries. Two red arrows indicate the specific sites where the hypodense embolus obstructs the contrast-enhanced pulmonary vasculature. The surrounding mediastinal structures, including the ascending aorta and the superior vena cava, are visible and show normal contrast enhancement. This imaging modality is the gold standard for diagnosing acute pulmonary embolism, and the 'saddle' configuration demonstrated here indicates a massive or submassive embolic event with high clinical significance for hemodynamic instability.

This diagnostic image is an axial cut from a CT Pulmonary Angiography (CTPA) demonstrating extensive pulmonary embolism. The primary visual finding is a large, low-attenuation filling defect appearing as a 'saddle embolus' at the bifurcation of the main pulmonary artery, extending into both the right and left main pulmonary arteries (indicated by red arrows). The central filling defects are characterized by absent or significantly reduced contrast enhancement within the vessel lumens, which are otherwise surrounded by hyperdense contrast material. Additional thromboembolic material is visible in the lobar and segmental branches bilaterally. The main pulmonary artery shows evidence of distension secondary to the large obstructive clot burden. This image serves as a classic clinical example of acute, high-burden pulmonary embolism in a patient with risk factors such as prolonged immobility, illustrating the critical role of CTPA in diagnosing life-threatening vascular obstructions.

This diagnostic image is an axial cut from a CT Pulmonary Angiography (CTPA) demonstrating extensive pulmonary embolism. The primary visual finding is a large, low-attenuation filling defect appearing as a 'saddle embolus' at the bifurcation of the main pulmonary artery, extending into both the right and left main pulmonary arteries (indicated by red arrows). The central filling defects are characterized by absent or significantly reduced contrast enhancement within the vessel lumens, which are otherwise surrounded by hyperdense contrast material. Additional thromboembolic material is visible in the lobar and segmental branches bilaterally. The main pulmonary artery shows evidence of distension secondary to the large obstructive clot burden. This image serves as a classic clinical example of acute, high-burden pulmonary embolism in a patient with risk factors such as prolonged immobility, illustrating the critical role of CTPA in diagnosing life-threatening vascular obstructions.

**Imaging Modality:** Contrast-enhanced Computed Tomography (CT) of the chest, specifically a CT Pulmonary Angiography (CTPA) protocol.

**Anatomical Region:** Axial section of the thorax at the level of the pulmonary artery bifurcation.

**Observed Pathology:** Large, bilateral pulmonary embolism. A prominent "saddle" embolus is visible, characterized by low-attenuation (hypodense) filling defects within the lumen of the main pulmonary artery, extending into both the right and left main pulmonary arteries.

**Characteristic Visual Features:**
*   **Filling Defects:** Central non-opacified areas surrounded by radiopaque contrast media, creating the classic "Polo Mint" sign in cross-section or "railway track" sign in longitudinal views.
*   **Vascular Anatomy:** The pulmonary trunk appears dilated.
*   **Surrounding Structures:** The ascending and descending aorta, superior vena cava, and vertebral body are visible and unremarkable in this single slice. Metal streak artifacts are present anteriorly from sternal wires, suggesting prior cardiac surgery.

**Key Diagnostic Features:** The presence of a large, centrally located thrombus straddling the bifurcation of the pulmonary trunk (saddle embolus) is the pathognomonic finding for acute major pulmonary embolism.

**Imaging Modality:** Contrast-enhanced Computed Tomography (CT) of the chest, specifically a CT Pulmonary Angiography (CTPA) protocol. **Anatomical Region:** Axial section of the thorax at the level of the pulmonary artery bifurcation. **Observed Pathology:** Large, bilateral pulmonary embolism. A prominent "saddle" embolus is visible, characterized by low-attenuation (hypodense) filling defects within the lumen of the main pulmonary artery, extending into both the right and left main pulmonary arteries. **Characteristic Visual Features:** * **Filling Defects:** Central non-opacified areas surrounded by radiopaque contrast media, creating the classic "Polo Mint" sign in cross-section or "railway track" sign in longitudinal views. * **Vascular Anatomy:** The pulmonary trunk appears dilated. * **Surrounding Structures:** The ascending and descending aorta, superior vena cava, and vertebral body are visible and unremarkable in this single slice. Metal streak artifacts are present anteriorly from sternal wires, suggesting prior cardiac surgery. **Key Diagnostic Features:** The presence of a large, centrally located thrombus straddling the bifurcation of the pulmonary trunk (saddle embolus) is the pathognomonic finding for acute major pulmonary embolism.

This diagnostic image is an axial contrast-enhanced CT Pulmonary Angiography (CTPA) of the chest. It demonstrates significant bilateral acute pulmonary emboli within the pulmonary arterial tree. Key findings include prominent, low-attenuation filling defects (darker regions) contrasted against the bright, opacified blood in the pulmonary arteries. Specifically, white arrows highlight large clots obstructing the main right and left pulmonary arteries, consistent with a saddle embolus configuration. Smaller peripheral filling defects are also visible in the branching segments of the arterial tree. Other visible thoracic structures include the ascending and descending aorta, the heart, and the superior vena cava, which show normal contrast enhancement. The image serves as a clinical illustration of massive pulmonary embolism causing significant vascular obstruction, often associated with hemodynamic instability and right ventricular strain in an acute clinical setting.

This diagnostic image is an axial contrast-enhanced CT Pulmonary Angiography (CTPA) of the chest. It demonstrates significant bilateral acute pulmonary emboli within the pulmonary arterial tree. Key findings include prominent, low-attenuation filling defects (darker regions) contrasted against the bright, opacified blood in the pulmonary arteries. Specifically, white arrows highlight large clots obstructing the main right and left pulmonary arteries, consistent with a saddle embolus configuration. Smaller peripheral filling defects are also visible in the branching segments of the arterial tree. Other visible thoracic structures include the ascending and descending aorta, the heart, and the superior vena cava, which show normal contrast enhancement. The image serves as a clinical illustration of massive pulmonary embolism causing significant vascular obstruction, often associated with hemodynamic instability and right ventricular strain in an acute clinical setting.

Reading File
Reading File
Reading Web Page

https://www.ecccp.org/infographic-aha-acc-2026-guidelines-ac…

Reading Article

PMID: 41712677

Reading File
Reading Web Page

https://www.ecccp.org/infographic-aha-acc-2026-guidelines-ac…

Loading Image
I now have comprehensive information to write a detailed, well-structured answer. Let me compile everything.

Pulmonary Embolism - Overview and 2026 Guidelines


What Is PE?

Pulmonary embolism (PE) is an acute obstruction of the pulmonary arterial tree, most commonly caused by a venous thrombus that forms in the deep veins of the legs or pelvis and embolizes to the lungs. Less common sources include fat emboli, air, amniotic fluid, and tumor. PE is the third most common acute cardiovascular syndrome and a leading cause of preventable in-hospital death.

Pathophysiology

When a thrombus lodges in the pulmonary vasculature, it causes:
  • Mechanical obstruction - raises pulmonary vascular resistance
  • Right ventricular (RV) pressure overload - RV dilates, shifts the interventricular septum leftward (D-sign), impairs LV filling
  • Impaired gas exchange - V/Q mismatch, increased dead space, hypoxia
  • Hemodynamic collapse - in massive PE, CO drops, systemic BP falls
In the extreme, PE can obstruct the entire RV outflow system, causing sudden cardiac arrest. About 25% of sudden cardiac deaths are attributed to PE.

Clinical Features

Symptoms (from most to least common):
SymptomPrevalence
Dyspnea75-80%
Chest pain (pleuritic or non-specific)~50-65%
Cough~25%
Hemoptysis~10-15%
Syncope<5% of syncopal presentations
Unilateral leg swelling<30%, but specific when present
Key caveat: no single symptom rules PE in or out. Even dyspnea - the most common symptom - is absent in ~25% of cases. - Rosen's Emergency Medicine, p.1202
Signs: Tachycardia (most common), tachypnea, hypoxia, pleuritic rub, S3/S4, elevated JVP, RV heave, hypotension (in massive PE).

Risk Factors (Virchow's Triad)

  • Hypercoagulability: Malignancy, thrombophilias (Factor V Leiden, Prothrombin G20210A, protein C/S/antithrombin deficiency, APS), oral contraceptives, pregnancy
  • Venous stasis: Prolonged immobility, long-haul travel, paralysis, heart failure
  • Endothelial injury: Surgery (especially orthopedic), trauma, central venous catheters
Pregnancy deserves special mention: VTE risk is 5x higher than in age-matched non-pregnant women, peaking in the postpartum period (especially after cesarean delivery). - Murray & Nadel's Respiratory Medicine, p.3029

Diagnosis

Step 1 - Pre-test Probability (PTP)

Wells Score (PE version):
CriterionPoints
Clinical signs of DVT3
PE most likely diagnosis3
Heart rate >1001.5
Immobilization >3 days or surgery in 4 weeks1.5
Prior DVT/PE1.5
Hemoptysis1
Malignancy1
  • Score <2: low; 2-6: moderate; >6: high probability
PERC Rule (if low PTP gestalt): all 8 criteria must be absent to rule out PE without further testing (age <50, HR <100, SaO2 >94%, no leg swelling, no hemoptysis, no recent trauma/surgery, no prior PE/DVT, no hormone use). - Rosen's Emergency Medicine, p.800

Step 2 - D-Dimer

  • Sensitivity 95-98%, specificity 40-55%
  • Age-adjusted threshold: Age x 10 ng/mL (for assays with 500 ng/mL cutoff) - safely increases the proportion of patients who avoid imaging by 10-20% in those over 70
  • YEARS algorithm: In patients with 0 YEARS criteria, D-dimer cutoff rises to 1000 ng/mL; with 1-3 criteria, use 500 ng/mL
  • D-dimer not reliable in pregnancy (physiologically elevated); Pregnancy-adapted YEARS algorithm can be used but has limitations

Step 3 - Imaging

CT Pulmonary Angiography (CTPA) - gold standard. Shows filling defects in pulmonary arteries. A "saddle embolus" straddling the bifurcation indicates massive PE.
Saddle pulmonary embolism on CTPA - bilateral filling defects at pulmonary artery bifurcation
Classic saddle PE on CTPA: low-attenuation thrombus (red arrows) straddling the main pulmonary artery bifurcation and extending into both left and right pulmonary arteries.
V/Q Scan: Used when CTPA is contraindicated (renal failure, contrast allergy, pregnancy)
Echo: Detects RV dysfunction (RV dilation, D-sign, TR, McConnell's sign), guides risk stratification - not diagnostic alone
Biomarkers:
  • Troponin (I or T): elevated in RV myocardial injury - indicates intermediate-high risk
  • BNP/NT-proBNP: elevated with RV pressure overload
  • Lactate: elevated in shock

2026 AHA/ACC Guideline - Key Updates

The 2026 AHA/ACC/ACCP/ACEP/CHEST/SCAI/SHM/SIR/SVM/SVN Guideline (Circulation. 2026;153:e977-e1051, PMID 41712677) is the first dedicated, de novo joint PE guideline from the AHA/ACC - replacing decades of fragmented society statements. It introduces several major changes.

1. New Five-Tier Clinical Category System (A-E)

The old ESC binary/ternary model (low/intermediate/high-risk based on hemodynamics alone) is replaced by a five-category AHA/ACC Acute PE Clinical Categories system for more precise, individualized management:
CategoryDescriptionKey FeatureRecommended Setting
AAsymptomatic PEIncidentally detected (e.g., cancer staging)ED discharge to outpatient
BSymptomatic, low severitysPESI = 0, PESI class I-II, no RV dysfunctionEarly discharge + outpatient anticoagulation
CElevated clinical severity ± RV involvementsPESI ≥ 1, RV changes on imaging/echo, elevated troponinHospitalization, standard anticoagulation
D1/D2Hemodynamically compromised - submassive/intermediate-highRV dysfunction + biomarker elevation, SBP trend decliningICU or monitored bed, consider advanced therapy
E1Hemodynamically unstable - massiveSBP <90 mmHg, shock, cardiac arrestCritical care, urgent reperfusion
Category A patients can be safely discharged from the ED - a major practice shift reflecting evidence that incidental PE carries far lower short-term mortality than symptomatic PE.

2. PERT - Class I Recommendation

Pulmonary Embolism Response Teams (PERTs) are now a Class I recommendation (previously had no formal guideline status). These are multidisciplinary teams (cardiologist, pulmonologist, emergency physician, interventional radiologist, hematologist, cardiac surgery) for rapid coordinated decision-making in intermediate- and high-risk PE.

3. DOACs as Preferred Anticoagulation

Direct Oral Anticoagulants (DOACs) are the preferred first-line anticoagulants for most patients with acute PE:
  • Apixaban (10 mg BID x 7 days, then 5 mg BID)
  • Rivaroxaban (15 mg BID x 21 days, then 20 mg OD)
  • Dabigatran/Edoxaban (after 5-10 days LMWH bridging)
Exceptions (Class I for alternatives):
PopulationRecommended Agent
PregnancyLMWH or UFH (DOACs are Class 3 - Harm)
Antiphospholipid SyndromeVKA (warfarin) preferred over DOACs (inferior outcomes with DOACs)
Severe CKD (stages 4-5) / ESRD on HDVKA (apixaban vs VKA uncertain - Class 2b)

4. Advanced Interventional Therapies - Expanded Guidance

The guideline defines an Advanced Therapy Matrix mapping clinical categories to interventional options:
Systemic Thrombolysis (tPA):
  • Class I in Category E1 (massive PE with hemodynamic collapse) if no contraindications
  • Not recommended in Categories A-C
Catheter-Directed Thrombolysis (CDT):
  • Class 2a in Category D1-D2 and E1 patients who fail or cannot receive systemic thrombolysis or have high bleeding risk
Mechanical Thrombectomy (MT - aspiration/rheolytic devices, e.g., Penumbra Indigo):
  • Class 2a in Category E1
  • Class 2b in selected Category D1-D2 patients (particularly when bleeding risk is high)
  • Class 3 (not recommended) in Categories A-C - an important guardrail against overuse
  • Evidence from the PEERLESS RCT (Circulation. 2025;151:260-273) showed large-bore MT is comparable to CDT in intermediate-risk PE
Surgical Embolectomy: Reserved for massive PE when thrombolysis is contraindicated or fails, or when catheter-based options are not available

5. Structured Follow-Up Care

The guideline formalizes post-PE follow-up (previously largely institution-dependent):
  • Communication and clinic visit at ~4-6 weeks post-discharge for all patients
  • Evaluation for CTEPH (chronic thromboembolic pulmonary hypertension) in symptomatic patients at 3-6 months
  • Assessment of anticoagulation duration (provoked vs. unprovoked PE)
  • Screening for occult malignancy in unprovoked PE

6. Special Populations

PopulationKey Recommendation
PregnancyLMWH/UFH; avoid DOACs and warfarin
APSVKA preferred (Class I, LOE A)
Cancer-associated PELMWH or DOACs (apixaban/rivaroxaban preferred)
Severe CKD/ESRDVKA; DOAC selection uncertain in advanced CKD

7. Equity Considerations

An accompanying AHA Scientific Statement (March 2025) highlights persistent racial, socioeconomic, and geographic disparities in PE diagnosis, PERT access, and outcomes. The guideline recommends universal PERT infrastructure and structured follow-up to narrow these gaps.

Summary: Old ESC 2019 vs. New AHA/ACC 2026

FeatureESC 2019AHA/ACC 2026
Risk classificationLow/Intermediate/High5 categories (A-E)
PERTNo formal recommendationClass I
DOACsPreferredPreferred (more explicit)
MTEmergingClass 2a (Cat E1), 2b (Cat D), Class 3 (Cat A-C)
Asymptomatic PENo dedicated guidanceCategory A - ED discharge
Follow-upMentionedFormally structured

Key reference: 2026 AHA/ACC PE Guideline - Creager MA et al., Circulation. 2026;153:e977-e1051
Note: An erratum to the 2026 guideline was published (PMID 42441758) - check for minor corrections if referencing specific recommendation text.

Can you make slides of this information for presentation

Reading File
Reading File
Reading File
Running Command

mkdir -p /tmp/workspace/pe-presentation && ls /tmp/workspace/pe-presentation/

Writing File

~/pe-presentation/build_pe_slides.py

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
import json, subprocess, base64
from io import BytesIO

# ── Colour palette (deep medical theme) ──────────────────────────────────────
NAVY      = RGBColor(0x0D, 0x2B, 0x55)   # dark navy
TEAL      = RGBColor(0x00, 0x7A, 0x8A)   # teal accent
LIGHT_BG  = RGBColor(0xF0, 0xF6, 0xFA)   # near-white blue tint
WHITE     = RGBColor(0xFF, 0xFF, 0xFF)
DARK_TEXT = RGBColor(0x1A, 0x1A, 0x2E)
MID_GREY  = RGBColor(0x55, 0x65, 0x75)
RED_ALERT = RGBColor(0xC0, 0x39, 0x2B)
AMBER     = RGBColor(0xE6, 0x7E, 0x22)
GREEN_OK  = RGBColor(0x1E, 0x8B, 0x4C)
GOLD      = RGBColor(0xF3, 0xC6, 0x22)
LIGHT_TEAL= RGBColor(0xE0, 0xF4, 0xF7)

W = Inches(13.333)
H = Inches(7.5)

prs = Presentation()
prs.slide_width  = W
prs.slide_height = H
blank = prs.slide_layouts[6]   # fully blank

# ─── Helpers ──────────────────────────────────────────────────────────────────

def add_rect(slide, x, y, w, h, fill=NAVY, line_color=None, line_width=0):
    shp = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, x, y, w, h)
    shp.fill.solid(); shp.fill.fore_color.rgb = fill
    if line_color:
        shp.line.color.rgb = line_color
        shp.line.width = Pt(line_width)
    else:
        shp.line.fill.background()
    shp.shadow.inherit = False
    return shp

def add_text(slide, text, x, y, w, h, size=18, bold=False, color=WHITE,
             align=PP_ALIGN.LEFT, italic=False, wrap=True, anchor=MSO_ANCHOR.TOP,
             font="Calibri"):
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = wrap
    tf.vertical_anchor = anchor
    tf.margin_left = 0; tf.margin_right = 0
    tf.margin_top = 0;  tf.margin_bottom = 0
    p = tf.paragraphs[0]
    p.alignment = align
    r = p.add_run()
    r.text = text
    r.font.name = font
    r.font.size = Pt(size)
    r.font.bold = bold
    r.font.italic = italic
    r.font.color.rgb = color
    return tf

def add_bullet_box(slide, items, x, y, w, h, size=15, color=DARK_TEXT,
                   bullet_color=TEAL, indent=False, font="Calibri"):
    """items: list of str. Each gets a coloured bullet dot prefix."""
    tb = slide.shapes.add_textbox(x, y, w, h)
    tf = tb.text_frame
    tf.word_wrap = True
    tf.margin_left  = Inches(0.05)
    tf.margin_right = Inches(0.05)
    tf.margin_top   = Inches(0.05)
    tf.margin_bottom= Inches(0.05)
    first = True
    for item in items:
        p = tf.paragraphs[0] if first else tf.add_paragraph()
        first = False
        p.space_before = Pt(3)
        # bullet dot
        r1 = p.add_run(); r1.text = "  " if indent else ""
        r2 = p.add_run(); r2.text = "\u25CF  "
        r2.font.color.rgb = bullet_color
        r2.font.size = Pt(size - 3)
        r2.font.name = font
        r3 = p.add_run(); r3.text = item
        r3.font.color.rgb = color
        r3.font.size = Pt(size)
        r3.font.name = font
    return tf

def header_bar(slide, title, subtitle=None):
    """Dark navy header spanning full width."""
    add_rect(slide, 0, 0, W, Inches(1.15), fill=NAVY)
    add_rect(slide, 0, Inches(1.15), W, Inches(0.06), fill=TEAL)
    add_text(slide, title, Inches(0.4), Inches(0.1), Inches(10), Inches(0.9),
             size=30, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
    if subtitle:
        add_text(slide, subtitle, Inches(0.4), Inches(0.1), Inches(12.5), Inches(1.0),
                 size=13, bold=False, color=GOLD, align=PP_ALIGN.RIGHT, anchor=MSO_ANCHOR.MIDDLE)

def footer(slide, text="Pulmonary Embolism | 2026 AHA/ACC Guidelines"):
    add_rect(slide, 0, Inches(7.18), W, Inches(0.32), fill=NAVY)
    add_text(slide, text, Inches(0.3), Inches(7.19), Inches(12), Inches(0.28),
             size=9, color=RGBColor(0xBB, 0xCC, 0xDD), anchor=MSO_ANCHOR.MIDDLE)

def section_label(slide, label, x, y, w=Inches(3.5), color=TEAL):
    add_rect(slide, x, y, w, Inches(0.34), fill=color)
    add_text(slide, label, x + Inches(0.12), y + Inches(0.02), w - Inches(0.2), Inches(0.3),
             size=12, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)

def colored_card(slide, title, items, x, y, w, h, hdr_color=TEAL, txt_size=13):
    add_rect(slide, x, y, w, Inches(0.38), fill=hdr_color)
    add_text(slide, title, x+Inches(0.1), y+Inches(0.04), w-Inches(0.2), Inches(0.3),
             size=13, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
    add_rect(slide, x, y+Inches(0.38), w, h-Inches(0.38), fill=LIGHT_BG,
             line_color=hdr_color, line_width=1)
    add_bullet_box(slide, items, x+Inches(0.15), y+Inches(0.42),
                   w-Inches(0.25), h-Inches(0.52), size=txt_size, color=DARK_TEXT)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 1 – TITLE
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=NAVY)
# decorative teal bar left
add_rect(sl, 0, 0, Inches(0.18), H, fill=TEAL)
add_rect(sl, Inches(0.18), 0, Inches(0.06), H, fill=GOLD)
# central panel
add_rect(sl, Inches(1.0), Inches(1.8), Inches(11.3), Inches(4.0),
         fill=RGBColor(0x06, 0x1A, 0x40))

add_text(sl, "PULMONARY EMBOLISM",
         Inches(1.3), Inches(2.0), Inches(10.8), Inches(1.3),
         size=52, bold=True, color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_text(sl, "Overview, Pathophysiology & 2026 AHA/ACC Guidelines",
         Inches(1.3), Inches(3.3), Inches(10.8), Inches(0.7),
         size=22, bold=False, color=GOLD, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
add_text(sl, "Based on 2026 AHA/ACC/ACCP/ACEP/CHEST/SCAI/SHM/SIR/SVM/SVN Guideline  |  Circulation. 2026;153:e977-e1051",
         Inches(1.0), Inches(4.2), Inches(11.3), Inches(0.5),
         size=11, color=RGBColor(0xAA, 0xBB, 0xCC), align=PP_ALIGN.CENTER)
add_text(sl, "July 2026",
         Inches(1.0), Inches(6.8), Inches(11.3), Inches(0.4),
         size=13, color=MID_GREY, align=PP_ALIGN.CENTER)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 2 – WHAT IS PE?
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "What is Pulmonary Embolism?", "Overview")
footer(sl)

# definition box
add_rect(sl, Inches(0.3), Inches(1.35), Inches(12.7), Inches(1.05), fill=TEAL)
add_text(sl, "Pulmonary embolism (PE) is an acute obstruction of the pulmonary arterial tree, "
             "most commonly caused by a thrombus originating from deep veins of the legs or pelvis "
             "that embolizes to the lungs.",
         Inches(0.5), Inches(1.4), Inches(12.3), Inches(0.95),
         size=16, bold=False, color=WHITE, wrap=True, anchor=MSO_ANCHOR.MIDDLE)

# 3 cards row
cards = [
    ("Epidemiology", ["3rd most common acute cardiovascular syndrome",
                      "Leading cause of preventable in-hospital death",
                      "~25% of sudden cardiac deaths attributed to PE",
                      "VTE incidence: ~1-2 per 1,000 person-years"]),
    ("Common Sources", ["Deep vein thrombosis (DVT) – lower limbs/pelvis (most common)",
                        "Upper limb DVT (central venous catheters)",
                        "Fat emboli (long bone fractures)",
                        "Air emboli, amniotic fluid (rare)"]),
    ("Virchow's Triad", ["Hypercoagulability: malignancy, thrombophilia, OCP, pregnancy",
                         "Venous stasis: immobility, long travel, heart failure",
                         "Endothelial injury: surgery, trauma, IV catheters"]),
]
for i, (title, items) in enumerate(cards):
    colored_card(sl, title, items, Inches(0.3 + i*4.35), Inches(2.55), Inches(4.15), Inches(4.3))

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 3 – PATHOPHYSIOLOGY
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "Pathophysiology", "Haemodynamic Consequences")
footer(sl)

steps = [
    ("1", "Thrombus embolises to pulmonary artery", TEAL),
    ("2", "Mechanical obstruction → ↑ pulmonary vascular resistance", TEAL),
    ("3", "RV pressure overload → RV dilation & dysfunction", AMBER),
    ("4", "Interventricular septum shifts left → ↓ LV filling", AMBER),
    ("5", "V/Q mismatch → hypoxia, ↑ dead space", AMBER),
    ("6", "↓ Cardiac output → haemodynamic collapse (massive PE)", RED_ALERT),
]
box_w = Inches(3.9)
box_h = Inches(0.7)
start_y = Inches(1.4)
x_left = Inches(0.35)
x_right = Inches(6.9)
for i, (num, text, col) in enumerate(steps):
    row = i % 3
    col_x = x_left if i < 3 else x_right
    y = start_y + row * Inches(1.7)
    add_rect(sl, col_x, y, box_w, box_h, fill=col)
    add_text(sl, num, col_x + Inches(0.08), y, Inches(0.5), box_h,
             size=24, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
    add_text(sl, text, col_x + Inches(0.55), y + Inches(0.05), Inches(3.3), box_h - Inches(0.1),
             size=13, bold=False, color=WHITE, wrap=True, anchor=MSO_ANCHOR.MIDDLE)
    # arrow (except last in each column)
    if row < 2:
        add_rect(sl, col_x + Inches(1.8), y + box_h, Inches(0.3), Inches(1.0), fill=col)

# consequence box
add_rect(sl, Inches(0.35), Inches(6.4), Inches(12.6), Inches(0.55), fill=RGBColor(0x1A, 0x1A, 0x2E))
add_text(sl, "In extreme cases, PE can obstruct the entire RV outflow tract → sudden cardiac arrest | "
             "Shock index >1 (HR > SBP) is an ominous sign of impending collapse",
         Inches(0.55), Inches(6.42), Inches(12.2), Inches(0.5),
         size=12, color=GOLD, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 4 – CLINICAL FEATURES
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "Clinical Features", "Symptoms & Signs")
footer(sl)

# Symptoms table
sym_data = [
    ("Dyspnoea",                  "75 – 80%",  "Most common; may be subtle or exertional only"),
    ("Chest pain (pleuritic/non-specific)", "50 – 65%", "Pleuritic pain suggests peripheral PE with infarction"),
    ("Cough",                     "~25%",      "Usually dry"),
    ("Haemoptysis",               "10 – 15%",  "Small volume; frank haemoptysis suggests infarction"),
    ("Syncope",                   "<5%",       "Suggests massive PE; haemodynamic compromise"),
    ("Unilateral leg swelling",   "<30%",      "Relatively specific when present with dyspnoea"),
]
col_widths = [Inches(3.3), Inches(1.4), Inches(7.5)]
hdr_colors = [NAVY, NAVY, NAVY]
row_h = Inches(0.47)
start_y = Inches(1.35)
# header row
xs = [Inches(0.3), Inches(3.65), Inches(5.1)]
headers = ["Symptom", "Prevalence", "Clinical Note"]
for j, (hd, cw, x) in enumerate(zip(headers, col_widths, xs)):
    add_rect(sl, x, start_y, cw, row_h, fill=NAVY)
    add_text(sl, hd, x+Inches(0.1), start_y+Inches(0.05), cw-Inches(0.15), row_h-Inches(0.1),
             size=13, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
for r, (sym, prev, note) in enumerate(sym_data):
    y = start_y + row_h * (r + 1)
    bg = LIGHT_BG if r % 2 == 0 else WHITE
    data = [sym, prev, note]
    for j, (val, cw, x) in enumerate(zip(data, col_widths, xs)):
        add_rect(sl, x, y, cw, row_h, fill=bg, line_color=MID_GREY, line_width=0.5)
        add_text(sl, val, x+Inches(0.1), y+Inches(0.04), cw-Inches(0.15), row_h-Inches(0.08),
                 size=12, color=DARK_TEXT, anchor=MSO_ANCHOR.MIDDLE)

# Signs box
add_rect(sl, Inches(0.3), Inches(5.05), Inches(12.6), Inches(0.32), fill=TEAL)
add_text(sl, "KEY SIGNS", Inches(0.5), Inches(5.06), Inches(2.0), Inches(0.28),
         size=12, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
add_text(sl, "Tachycardia (most common sign) | Tachypnoea | Hypoxia | Hypotension (massive PE) | "
             "Raised JVP | RV heave | Loud P2 | Pleural rub",
         Inches(2.6), Inches(5.07), Inches(10.0), Inches(0.27),
         size=11, color=WHITE, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# warning note
add_rect(sl, Inches(0.3), Inches(5.5), Inches(12.6), Inches(0.55), fill=RGBColor(0xFE, 0xF9, 0xE7))
add_rect(sl, Inches(0.3), Inches(5.5), Inches(0.08), Inches(0.55), fill=AMBER)
add_text(sl, "No single symptom rules PE in or out. Dyspnoea is absent in ~25% of confirmed cases. "
             "Symptoms must always be interpreted in the full clinical context.",
         Inches(0.5), Inches(5.52), Inches(12.2), Inches(0.5),
         size=12, color=DARK_TEXT, italic=True, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 5 – DIAGNOSIS
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "Diagnosis", "Pre-test Probability → Biomarkers → Imaging")
footer(sl)

# Step 1 – PTP
section_label(sl, "STEP 1 – Pre-test Probability (PTP)", Inches(0.3), Inches(1.35), Inches(5.5))
wells = ["Clinical signs of DVT  +3", "PE most likely diagnosis  +3",
         "Heart rate >100  +1.5", "Immobilisation >3 d or surgery in 4 wks  +1.5",
         "Prior DVT/PE  +1.5", "Haemoptysis  +1", "Malignancy  +1",
         "Score <2 = Low | 2-6 = Moderate | >6 = High"]
add_bullet_box(sl, wells, Inches(0.35), Inches(1.75), Inches(5.4), Inches(2.45),
               size=12, color=DARK_TEXT, bullet_color=TEAL)

# PERC Rule
section_label(sl, "PERC Rule (if Low PTP)", Inches(0.3), Inches(4.3), Inches(4.0), color=NAVY)
perc = ["Age <50 | HR <100 | SaO₂ >94%",
        "No leg swelling | No haemoptysis",
        "No recent trauma/surgery | No prior PE/DVT | No hormone use",
        "ALL 8 absent → PE excluded (no further testing)"]
add_bullet_box(sl, perc, Inches(0.35), Inches(4.7), Inches(5.4), Inches(2.2),
               size=12, color=DARK_TEXT, bullet_color=NAVY)

# Step 2 – D-dimer
section_label(sl, "STEP 2 – D-Dimer", Inches(5.9), Inches(1.35), Inches(3.2))
ddimer = ["Sensitivity 95-98%, Specificity 40-55%",
          "Negative rules out PE in non-high PTP",
          "Age-adjusted cutoff: Age × 10 ng/mL",
          "YEARS algorithm: 0 criteria → cutoff 1000 ng/mL",
          "Not reliable in pregnancy (physiologically elevated)"]
add_bullet_box(sl, ddimer, Inches(5.95), Inches(1.75), Inches(3.5), Inches(2.45),
               size=12, color=DARK_TEXT, bullet_color=TEAL)

# Step 3 – Imaging
section_label(sl, "STEP 3 – Imaging", Inches(5.9), Inches(4.3), Inches(3.0))
imaging = ["CTPA – gold standard; shows filling defects",
           "V/Q scan – if CTPA contraindicated (renal failure, allergy, pregnancy)",
           "Echo – detects RV dysfunction; not diagnostic alone",
           "Lower limb USS – confirms DVT, supports indirect diagnosis"]
add_bullet_box(sl, imaging, Inches(5.95), Inches(4.7), Inches(3.5), Inches(2.2),
               size=12, color=DARK_TEXT, bullet_color=TEAL)

# Biomarkers box
add_rect(sl, Inches(9.55), Inches(1.35), Inches(3.45), Inches(5.6), fill=NAVY)
add_text(sl, "BIOMARKERS", Inches(9.65), Inches(1.42), Inches(3.25), Inches(0.38),
         size=13, bold=True, color=GOLD, anchor=MSO_ANCHOR.MIDDLE)
bio_items = [
    ("Troponin I/T", "RV myocardial injury → intermediate-high risk"),
    ("BNP / NT-proBNP", "RV pressure overload"),
    ("Lactate", "Elevated in cardiogenic/distributive shock"),
    ("D-dimer", "Rule-out tool (not confirmatory)"),
    ("ABG", "Hypoxia, hypocapnia, respiratory alkalosis"),
]
y_offset = Inches(1.9)
for marker, desc in bio_items:
    add_rect(sl, Inches(9.65), y_offset, Inches(3.1), Inches(0.28), fill=TEAL)
    add_text(sl, marker, Inches(9.72), y_offset+Inches(0.03), Inches(3.0), Inches(0.23),
             size=11, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)
    add_text(sl, desc, Inches(9.72), y_offset+Inches(0.3), Inches(3.1), Inches(0.45),
             size=11, color=RGBColor(0xCC, 0xDD, 0xEE), wrap=True)
    y_offset += Inches(0.82)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 6 – 2026 GUIDELINE: NEW CLASSIFICATION
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "2026 AHA/ACC Guideline", "New Five-Tier Clinical Category System (A–E)")
footer(sl)

add_rect(sl, Inches(0.3), Inches(1.32), Inches(12.7), Inches(0.42),
         fill=RGBColor(0x06, 0x1A, 0x40))
add_text(sl,
         "The first dedicated AHA/ACC PE guideline replaces low/intermediate/high-risk with a "
         "five-category physiopathological framework.  Circulation. 2026;153:e977-e1051 (PMID 41712677)",
         Inches(0.5), Inches(1.33), Inches(12.3), Inches(0.38),
         size=11, color=GOLD, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

cat_data = [
    ("A", "Asymptomatic PE", "Incidentally detected (e.g. cancer staging)",
     "ED discharge – no hospitalisation required", GREEN_OK),
    ("B", "Symptomatic\nLow Severity", "sPESI = 0 | PESI class I-II | No RV dysfunction",
     "Early discharge + outpatient anticoagulation", GREEN_OK),
    ("C", "Elevated Severity\n±RV Involvement", "sPESI ≥1 | RV changes | ↑Troponin/BNP",
     "Hospitalisation | Standard anticoagulation", AMBER),
    ("D1/D2", "Haemodynamically\nCompromised", "RV dysfunction + biomarkers | Declining SBP",
     "ICU/monitored bed | Consider advanced therapy", RED_ALERT),
    ("E1", "Haemodynamically\nUnstable (Massive)", "SBP <90 | Shock | Cardiac arrest",
     "Critical care | Urgent reperfusion", RGBColor(0x8B, 0x00, 0x00)),
]
box_w = Inches(2.42)
box_y_top = Inches(1.88)
for i, (cat, name, criteria, mgmt, col) in enumerate(cat_data):
    x = Inches(0.28 + i * 2.55)
    # category letter header
    add_rect(sl, x, box_y_top, box_w, Inches(0.55), fill=col)
    add_text(sl, f"Cat. {cat}", x, box_y_top, box_w, Inches(0.55),
             size=20, bold=True, color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE)
    # name
    add_rect(sl, x, box_y_top+Inches(0.55), box_w, Inches(0.65), fill=RGBColor(0x1A, 0x1A, 0x2E))
    add_text(sl, name, x+Inches(0.07), box_y_top+Inches(0.57), box_w-Inches(0.1), Inches(0.62),
             size=12, bold=True, color=WHITE, wrap=True, anchor=MSO_ANCHOR.MIDDLE)
    # criteria
    add_rect(sl, x, box_y_top+Inches(1.2), box_w, Inches(1.7), fill=LIGHT_BG,
             line_color=col, line_width=1.5)
    add_text(sl, "Criteria:", x+Inches(0.1), box_y_top+Inches(1.25), box_w-Inches(0.15), Inches(0.28),
             size=10, bold=True, color=col)
    add_text(sl, criteria, x+Inches(0.1), box_y_top+Inches(1.52), box_w-Inches(0.15), Inches(1.3),
             size=11, color=DARK_TEXT, wrap=True)
    # management
    add_rect(sl, x, box_y_top+Inches(2.9), box_w, Inches(1.5), fill=col,
             line_color=col, line_width=1)
    add_text(sl, "Management:", x+Inches(0.1), box_y_top+Inches(2.95), box_w-Inches(0.15), Inches(0.3),
             size=10, bold=True, color=WHITE)
    add_text(sl, mgmt, x+Inches(0.1), box_y_top+Inches(3.25), box_w-Inches(0.15), Inches(1.1),
             size=11, color=WHITE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 7 – 2026 GUIDELINE: KEY RECOMMENDATIONS
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "2026 AHA/ACC Guideline", "Key Recommendations")
footer(sl)

recs = [
    ("PERT – Class I", TEAL,
     ["Multidisciplinary Pulmonary Embolism Response Teams (PERTs) now Class I",
      "Teams: cardiologist, pulmonologist, EM physician, IR, haematologist, cardiac surgery",
      "For all intermediate- and high-risk categories (C, D, E)",
      "Enables rapid, coordinated, evidence-based decision-making"]),
    ("DOACs – Preferred", NAVY,
     ["DOACs are first-line anticoagulants for most patients",
      "Apixaban: 10 mg BID x7d → 5 mg BID",
      "Rivaroxaban: 15 mg BID x21d → 20 mg OD",
      "Exceptions: Pregnancy (LMWH/UFH), APS (VKA), severe CKD (VKA/uncertain)"]),
    ("Advanced Therapy Matrix", AMBER,
     ["Systemic thrombolysis (tPA): Class I in Cat E1 (massive PE)",
      "Catheter-directed thrombolysis: Class 2a in Cat D/E",
      "Mechanical thrombectomy (MT): Class 2a in Cat E1; Class 2b in selected D1-D2",
      "MT Class 3 (not recommended) in Cat A-C – guardrail vs. overuse"]),
    ("Follow-up Care", RGBColor(0x27, 0x6B, 0x53),
     ["Structured follow-up formalised (previously institution-dependent)",
      "Clinic visit at ~4–6 weeks post-discharge for all patients",
      "Evaluate for CTEPH at 3–6 months if symptomatic",
      "Screen for occult malignancy in unprovoked PE"]),
]
for i, (title, col, items) in enumerate(recs):
    row = i // 2; cidx = i % 2
    x = Inches(0.28 + cidx * 6.5)
    y = Inches(1.35 + row * 3.0)
    colored_card(sl, title, items, x, y, Inches(6.2), Inches(2.75), hdr_color=col, txt_size=13)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 8 – TREATMENT ALGORITHM
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "Management Algorithm", "Acute PE – Risk-Stratified Approach")
footer(sl)

# Three columns: Low risk | Intermediate | High risk
col_data = [
    ("LOW RISK\n(Cat A–B)", GREEN_OK, [
        "PERC negative + low PTP → discharge",
        "Cat A (asymptomatic): ED discharge, outpatient DOAC",
        "Cat B (symptomatic, sPESI=0): Early discharge",
        "Anticoagulation: DOAC preferred",
        "Apixaban or Rivaroxaban first-line",
        "Follow-up at 4-6 weeks",
    ]),
    ("INTERMEDIATE RISK\n(Cat C–D)", AMBER, [
        "Hospitalise; monitor closely",
        "Anticoagulation: DOAC or LMWH bridge",
        "Echo + troponin for RV assessment",
        "PERT consultation (Class I)",
        "Cat D: Consider CDT or MT if deteriorating",
        "ICU for Cat D2 (haemodynamically borderline)",
    ]),
    ("HIGH RISK\n(Cat E – Massive)", RED_ALERT, [
        "Critical care / ICU mandatory",
        "UFH anticoagulation immediately",
        "Systemic thrombolysis (tPA) – Class I if no contraindication",
        "If thrombolysis contraindicated: CDT or surgical embolectomy",
        "MT: Class 2a alternative; avoid in low-risk",
        "Mechanical circulatory support (ECMO) if refractory",
    ]),
]
for i, (title, col, items) in enumerate(col_data):
    x = Inches(0.28 + i * 4.35)
    add_rect(sl, x, Inches(1.35), Inches(4.15), Inches(0.65), fill=col)
    add_text(sl, title, x, Inches(1.35), Inches(4.15), Inches(0.65),
             size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER, anchor=MSO_ANCHOR.MIDDLE, wrap=True)
    add_rect(sl, x, Inches(2.0), Inches(4.15), Inches(4.9), fill=WHITE,
             line_color=col, line_width=2)
    add_bullet_box(sl, items, x+Inches(0.12), Inches(2.08), Inches(3.95), Inches(4.75),
                   size=13, color=DARK_TEXT, bullet_color=col)

# special pops note
add_rect(sl, Inches(0.28), Inches(7.0), Inches(12.7), Inches(0.35), fill=RGBColor(0x1A, 0x1A, 0x2E))
add_text(sl, "Special populations: Pregnancy → LMWH/UFH  |  APS → VKA (Class I)  |  "
             "Cancer-associated PE → LMWH or DOAC  |  Severe CKD/ESRD → VKA",
         Inches(0.5), Inches(7.01), Inches(12.2), Inches(0.32),
         size=11, color=GOLD, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 9 – OLD vs NEW GUIDELINES COMPARISON
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "ESC 2019 vs. AHA/ACC 2026", "What Has Changed?")
footer(sl)

comp_rows = [
    ("Risk Classification", "Low / Intermediate / High", "5 Categories: A–E (physiopathological)"),
    ("PERT", "No formal recommendation", "Class I – mandatory for Cat C–E"),
    ("DOACs", "Preferred in most patients", "Preferred – more explicit algorithm"),
    ("Mechanical Thrombectomy", "Emerging / limited guidance", "Class 2a (Cat E1), 2b (Cat D) — Class 3 in Cat A-C"),
    ("Asymptomatic PE", "No dedicated guidance", "Category A → safe ED discharge"),
    ("Outpatient Management", "Mentioned briefly", "Formally structured with criteria"),
    ("Follow-up", "Mentioned", "Structured 4–6 wk visit; CTEPH eval 3–6 mo"),
    ("Special Populations", "Covered", "Expanded with explicit anticoagulant guidance"),
    ("Equity & Disparities", "Not addressed", "AHA Scientific Statement – March 2025"),
]
row_h = Inches(0.53)
ys = Inches(1.35)
col_xs = [Inches(0.28), Inches(3.9), Inches(8.55)]
col_ws = [Inches(3.55), Inches(4.5), Inches(4.5)]
headers_row = ["Feature", "ESC 2019", "AHA/ACC 2026"]
hdr_cols_bg = [NAVY, RGBColor(0x44, 0x44, 0x77), TEAL]
for j, (hd, cw, x, hbc) in enumerate(zip(headers_row, col_ws, col_xs, hdr_cols_bg)):
    add_rect(sl, x, ys, cw, row_h, fill=hbc)
    add_text(sl, hd, x+Inches(0.1), ys+Inches(0.08), cw-Inches(0.15), row_h-Inches(0.1),
             size=13, bold=True, color=WHITE, anchor=MSO_ANCHOR.MIDDLE)

for r, (feat, old, new) in enumerate(comp_rows):
    y = ys + row_h * (r + 1)
    bg = LIGHT_BG if r % 2 == 0 else WHITE
    for j, (val, cw, x) in enumerate(zip([feat, old, new], col_ws, col_xs)):
        txt_col = DARK_TEXT if j < 2 else RGBColor(0x00, 0x55, 0x33)
        add_rect(sl, x, y, cw, row_h, fill=bg, line_color=MID_GREY, line_width=0.3)
        add_text(sl, val, x+Inches(0.1), y+Inches(0.04), cw-Inches(0.15), row_h-Inches(0.08),
                 size=11, color=txt_col, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 10 – SPECIAL POPULATIONS & FOLLOW-UP
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=LIGHT_BG)
header_bar(sl, "Special Populations & Follow-up", "2026 AHA/ACC Recommendations")
footer(sl)

sp_cards = [
    ("Pregnancy", RGBColor(0x6A, 0x0D, 0x6A), [
        "LMWH or UFH throughout pregnancy",
        "DOACs: Class 3 – Harm (fetal anomalies, miscarriage risk)",
        "Warfarin: Class 3 – Harm (especially 1st trimester)",
        "VTE risk 5x higher than non-pregnant women",
        "Pregnancy-adapted YEARS algorithm for diagnosis",
    ]),
    ("Antiphospholipid Syndrome (APS)", NAVY, [
        "VKA (warfarin) is preferred over DOACs",
        "Class I recommendation, Level of Evidence A",
        "DOACs associated with inferior outcomes in APS",
        "Confirm triple-positive antibody status before switching",
    ]),
    ("Cancer-Associated PE", RGBColor(0x7D, 0x1C, 0x00), [
        "LMWH or DOAC (apixaban / rivaroxaban) preferred",
        "DOAC: lower risk of recurrent VTE vs LMWH in many cancers",
        "Caution: GI malignancy (higher bleeding risk with DOACs)",
        "Duration typically ≥6 months; reassess continuously",
    ]),
    ("Chronic Kidney Disease", TEAL, [
        "Mild-moderate CKD (stages 2-3): DOACs preferred",
        "Severe CKD (stages 4-5): VKA recommended",
        "ESRD / haemodialysis: apixaban vs VKA uncertain (Class 2b)",
        "Monitor renal function regularly during DOAC therapy",
    ]),
]
for i, (title, col, items) in enumerate(sp_cards):
    row = i // 2; cidx = i % 2
    x = Inches(0.28 + cidx * 6.5)
    y = Inches(1.35 + row * 2.8)
    colored_card(sl, title, items, x, y, Inches(6.2), Inches(2.55), hdr_color=col, txt_size=12)

# Follow-up strip
add_rect(sl, Inches(0.28), Inches(7.0), Inches(12.7), Inches(0.35), fill=RGBColor(0x06, 0x1A, 0x40))
add_text(sl,
         "FOLLOW-UP:  4–6 wk clinic visit for ALL patients  |  Evaluate for CTEPH at 3–6 months if symptomatic  |  "
         "Screen for occult malignancy in unprovoked PE  |  Reassess anticoagulation duration (provoked vs unprovoked)",
         Inches(0.5), Inches(7.01), Inches(12.2), Inches(0.32),
         size=11, color=GOLD, anchor=MSO_ANCHOR.MIDDLE, wrap=True)

# ══════════════════════════════════════════════════════════════════════════════
# SLIDE 11 – KEY TAKEAWAYS
# ══════════════════════════════════════════════════════════════════════════════
sl = prs.slides.add_slide(blank)
add_rect(sl, 0, 0, W, H, fill=NAVY)
add_rect(sl, 0, 0, Inches(0.18), H, fill=TEAL)
add_rect(sl, Inches(0.18), 0, Inches(0.06), H, fill=GOLD)
header_bar(sl, "Key Takeaways", "Pulmonary Embolism – 2026 Guidelines")
footer(sl)

takeaways = [
    "PE severity is now defined by a five-tier Clinical Category system (A–E) — not just haemodynamics",
    "Category A (asymptomatic) patients can be safely discharged from the ED on outpatient anticoagulation",
    "PERTs are now a Class I recommendation for intermediate- and high-risk PE",
    "DOACs (apixaban, rivaroxaban) are the preferred anticoagulants for most patients",
    "Mechanical thrombectomy is Class 2a in massive PE (Cat E1) — but Class 3 (avoid) in low-risk categories",
    "Systemic thrombolysis remains Class I in haemodynamically unstable massive PE without contraindication",
    "Pregnancy → LMWH/UFH; APS → VKA (Class I, LOE A); Cancer → LMWH or DOAC",
    "Structured follow-up at 4–6 weeks is now formally recommended for all patients",
    "Health equity in PE care remains a significant ongoing challenge (AHA Scientific Statement, March 2025)",
]
add_bullet_box(sl, takeaways, Inches(0.6), Inches(1.35), Inches(12.2), Inches(5.6),
               size=15, color=WHITE, bullet_color=GOLD)

add_rect(sl, Inches(0.3), Inches(7.0), Inches(12.7), Inches(0.35),
         fill=RGBColor(0x06, 0x1A, 0x40))
add_text(sl,
         "Source: 2026 AHA/ACC/ACCP/ACEP/CHEST/SCAI/SHM/SIR/SVM/SVN Guideline | "
         "Circulation. 2026;153:e977-e1051 | DOI: 10.1161/CIR.0000000000001415 | PMID: 41712677",
         Inches(0.5), Inches(7.01), Inches(12.2), Inches(0.32),
         size=10, color=RGBColor(0xAA, 0xBB, 0xCC), anchor=MSO_ANCHOR.MIDDLE)

# ─── SAVE ─────────────────────────────────────────────────────────────────────
out = "/tmp/workspace/pe-presentation/Pulmonary_Embolism_2026_Guidelines.pptx"
buf = BytesIO()
prs.save(buf)
with open(out, "wb") as f:
    f.write(buf.getvalue())
print(f"Saved: {out}")
import os
print(f"Size: {os.path.getsize(out):,} bytes | Slides: {len(prs.slides)}")
Running Command

cd /tmp/workspace/pe-presentation && python build_pe_slides.py 2>&1

Your presentation is ready. Here's the download link:

Pulmonary Embolism 2026 Guidelines

Presentation · PPTX


The deck contains 11 slides in 16:9 widescreen format:
SlideTitle
1Title slide - Pulmonary Embolism: Overview & 2026 AHA/ACC Guidelines
2What is PE? - Definition, Epidemiology, Virchow's Triad
3Pathophysiology - Step-by-step haemodynamic cascade
4Clinical Features - Symptoms table with prevalence + key signs
5Diagnosis - Wells Score, PERC Rule, D-Dimer (age-adjusted/YEARS), Imaging, Biomarkers
62026 Guideline: New Five-Tier Category System (A-E) - colour-coded cards
72026 Guideline: Key Recommendations (PERT Class I, DOACs, Advanced Therapy Matrix, Follow-up)
8Management Algorithm - three-column risk-stratified approach (Low / Intermediate / High)
9ESC 2019 vs. AHA/ACC 2026 - side-by-side comparison table
10Special Populations (Pregnancy, APS, Cancer, CKD) + Follow-up recommendations
11Key Takeaways - 9 core points on dark navy background
The design uses a dark navy/teal/gold medical colour scheme with colour-coded severity (green = low risk, amber = intermediate, red = high risk). All slides include a header bar, footer with guideline citation, and structured content panels.
This is a shared conversation. Sign in to Orris to start your own chat.