I need to know everything about Tavi. Make notes about that procedure, everything, uh, whatever that you can find online. It has to be a really comprehensive notes which covers every single thing, including the procedural steps, the complications, how to handle them. Whatever you can find about Tavi, create a comprehensive notes for me.
TAVI TAVR transcatheter aortic valve implantation comprehensive procedure steps complications 2024 2025
"transcatheter aortic valve implantation" TAVI complications management
https://eurointervention.pcronline.com/article/complications…
| COR | Recommendation |
|---|---|
| I (A) | < 65 years or life expectancy > 20 years → SAVR |
| I (A) | Age 65-80, no anatomic contraindication to TF-TAVI → either SAVR or TAVI after shared decision-making |
| I (A) | > 80 years or life expectancy < 10 years, no TF contraindication → TAVI preferred |
| I (A) | Any age with high/prohibitive surgical risk, predicted survival > 12 months → TAVI |
| I (C-EO) | Predicted survival < 12 months or minimal QoL improvement → palliative care |
| 2b (C-EO) | Critically ill with severe AS → balloon aortic valvuloplasty as bridge |
| Feature | TAVI | SAVR |
|---|---|---|
| Approach | Minimally invasive / percutaneous | Open heart surgery with CPB |
| 30-day mortality (STS/ACC registry) | ~2.6% | Higher in high-risk patients |
| Stroke rates | Lower (transfemoral) | Higher in high-risk |
| Pacemaker need | Higher (5-25% depending on valve type) | Lower |
| Paravalvular leak | Higher (though much lower with newer valves) | Rare |
| Leaflet thrombosis | Higher | Lower |
| Hospital stay | Significantly shorter | Longer |
| Return to activity | Faster | Slower |
| AF risk | Lower | Higher |
| Long-term durability | Still under study (5-10yr data emerging) | Well established |
| Preferred age | >65-80 (especially >80) | <65 or life expectancy >20 years |
| Parameter | Value (STS/ACC TVT Registry) |
|---|---|
| 30-day mortality | ~2.6% |
| 30-day stroke | ~2.3% |
| Permanent pacemaker at 30 days | ~10.8% |
| New-onset dialysis | <0.5% |
| Procedural success | >95% in appropriately selected patients |
| Complication | Incidence | Key Prevention | First-line Management |
|---|---|---|---|
| Vascular/access site injury | 10-15% (all grades) | Careful CT sizing, closure device technique | Balloon tamponade, covered stent, surgery |
| Stroke | 2-3% | De-airing, adequate ACT, EPD | Neurology, thrombolysis/thrombectomy |
| Paravalvular leak (mod-severe) | <5% (new generation) | CT sizing, optimal positioning | Post-dilation, valve-in-valve |
| Pacemaker requirement | 10.8% (all-comers) | ECG screening, valve depth control | Temporary then permanent pacemaker |
| Coronary obstruction | ~1% | CT planning, BASILICA, chimney stent | Emergency PCI, surgery if needed |
| Annular rupture | 0.5-1% | Avoid oversizing, LVOT Ca² screening | CPB, emergency surgery |
| Valve embolisation | Rare | Correct sizing, adequate pacing | Snare retrieval, surgery |
| Tamponade | ~1-2% | Careful wire handling | Pericardiocentesis, CPB if annular tear |
| Leaflet thrombosis | 0.5% clinical | Adequate anticoagulation protocol | Anticoagulation |
| AKI | ~5% | Hydration, minimise contrast | Supportive, dialysis if needed |
Search for latest clinical images and anatomical diagrams of TAVI techniques
TAVI TAVR anatomical diagrams clinical images access routes valve deployment 2024 2025




| Panel | Step | What's Happening |
|---|---|---|
| A | Balloon aortic valvuloplasty (BAV) | Balloon catheter inflated across the calcified native aortic valve to create space; rapid RV pacing (180 bpm) active |
| B | Valve positioning | Crimped bioprosthetic valve on balloon catheter advanced across the annulus on a guidewire; positioned straddling the annular plane |
| C | Valve deployment | Balloon inflated under rapid pacing; valve expands and locks into the native annulus, pushing aside diseased leaflets |
| D | Completion | Balloon deflated and withdrawn; new bioprosthetic valve seated in position; guidewire removed |


| ESC/EACTS 2021 | AHA/ACC 2020 | |
|---|---|---|
| Low-risk / young cut-off | Age < 75 + EuroSCORE < 4 → SAVR | Life expectancy > 20 yrs OR age < 65 → SAVR |
| High-risk cut-off | Age > 75 + EuroSCORE > 8 → TAVR | Age > 80 OR life expectancy < 10 yrs → TAVR |
| Middle zone | Age 65-80 shared decision | Similar grey zone |

| Image | Source | Clinical Value |
|---|---|---|
| BEV device (SAPIEN-type) | Harrison's 22e | Understand valve anatomy before deploying |
| SEV device (CoreValve-type) | Harrison's 22e | Understand nitinol frame, supra-annular position |
| Transapical vs Transfemoral anatomy | Sabiston Surgery | Access route selection, anatomical orientation |
| 4-step deployment sequence | Goldman-Cecil Medicine | Step-by-step procedural understanding |
| AHA/ACC decision algorithm | Harrison's 22e (AHA/ACC 2020) | Clinical decision-making |
| ESC vs AHA guideline comparison | Sabiston Surgery | International practice variation |
| Evolut LR 4-year Kaplan-Meier | Harrison's 22e (Forrest 2023) | Outcomes evidence in low-risk patients |
Create a comprehensive PDF guide combining the notes and clinical images
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/tavi-guide && echo "ready"
cd /home/daytona/workspace/tavi-guide && python3 -c " import urllib.request, os imgs = { 'transapical_transfemoral.png': 'https://cdn.orris.care/cdss_images/e79d76dafaec886da1a3ce29eb5fe20689fc07106a3435f44bf6c13a786f437d.png', 'deployment_steps.png': 'https://cdn.orris.care/cdss_images/1a6e8608e34391fd07a2522de81a5712b6deffc6e555667dbc7c1cd1bd35b099.png', 'bev_valve.png': 'https://cdn.orris.care/cdss_images/534e0337eae28805a6365e6c2bc2ea97b6b596357ef47b15b8e15f76c5f8fbe4.png', 'sev_valve.png': 'https://cdn.orris.care/cdss_images/fe112fcdf883a5906dacfc58383242a3584d66f8a666f36250fd3723b6171723.png', 'decision_algorithm.png': 'https://cdn.orris.care/cdss_images/859b29460b07cfcc53b3ad63eb30d8bdfb6a979f4c70f80fabd6c0d6e501c47e.png', 'guideline_comparison.png': 'https://cdn.orris.care/cdss_images/2a031a6799b61d6e59f0cf1b7ffb0eab9b5474e8dffbc0ff8d45034651b2ca97.png', 'kaplan_meier.png': 'https://cdn.orris.care/cdss_images/90c6d2dbca22c3aa94b7f85ec5d017c5dd4a66b56116294fef6a16de1bbdfe51.png', } for fname, url in imgs.items(): urllib.request.urlretrieve(url, fname) sz = os.path.getsize(fname) print(f'{fname}: {sz} bytes') print('All images downloaded') "
~/tavi-guide/build_tavi_pdf.py
"""
TAVI Comprehensive Guide - PDF Builder
Uses ReportLab for professional layout with embedded clinical images.
"""
import os
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm, mm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.platypus.flowables import BalancedColumns
from reportlab.graphics.shapes import Drawing, Rect, String
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
# ── Page setup ────────────────────────────────────────────────────────────────
W, H = A4
MARGIN = 2 * cm
DOC_PATH = "/home/daytona/workspace/tavi-guide/TAVI_Comprehensive_Guide.pdf"
IMG_DIR = "/home/daytona/workspace/tavi-guide"
doc = SimpleDocTemplate(
DOC_PATH,
pagesize=A4,
leftMargin=MARGIN, rightMargin=MARGIN,
topMargin=2.2*cm, bottomMargin=2*cm,
title="TAVI Comprehensive Clinical Guide",
author="Orris Medical AI",
subject="Transcatheter Aortic Valve Implantation",
)
# ── Colour palette ─────────────────────────────────────────────────────────────
NAVY = colors.HexColor("#1a2c5b")
TEAL = colors.HexColor("#0e7490")
LIGHT_BG = colors.HexColor("#f0f7fa")
WARN_BG = colors.HexColor("#fff7ed")
WARN_BDR = colors.HexColor("#ea580c")
GREEN_BG = colors.HexColor("#f0fdf4")
GREEN_BDR = colors.HexColor("#16a34a")
RED_BG = colors.HexColor("#fef2f2")
RED_BDR = colors.HexColor("#dc2626")
MID_GREY = colors.HexColor("#64748b")
LIGHT_GREY= colors.HexColor("#e2e8f0")
WHITE = colors.white
# ── Styles ─────────────────────────────────────────────────────────────────────
base = getSampleStyleSheet()
def S(name, **kw):
p = ParagraphStyle(name, **kw)
return p
COVER_TITLE = S("CoverTitle",
fontSize=34, leading=42, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER, spaceAfter=6)
COVER_SUB = S("CoverSub",
fontSize=16, leading=22, textColor=colors.HexColor("#bfdbfe"),
fontName="Helvetica", alignment=TA_CENTER, spaceAfter=4)
COVER_NOTE = S("CoverNote",
fontSize=10, leading=14, textColor=colors.HexColor("#93c5fd"),
fontName="Helvetica", alignment=TA_CENTER)
H1 = S("H1",
fontSize=18, leading=24, textColor=WHITE,
fontName="Helvetica-Bold", spaceBefore=0, spaceAfter=6,
backColor=NAVY, leftPadding=10, rightPadding=10,
borderPadding=(6, 10, 6, 10))
H2 = S("H2",
fontSize=13, leading=18, textColor=NAVY,
fontName="Helvetica-Bold", spaceBefore=14, spaceAfter=4,
borderPadding=(4, 0, 2, 0))
H3 = S("H3",
fontSize=11, leading=15, textColor=TEAL,
fontName="Helvetica-Bold", spaceBefore=10, spaceAfter=3)
BODY = S("Body",
fontSize=9.5, leading=14, textColor=colors.HexColor("#1e293b"),
fontName="Helvetica", spaceBefore=2, spaceAfter=2,
alignment=TA_JUSTIFY)
BULLET = S("Bullet",
fontSize=9.5, leading=14, textColor=colors.HexColor("#1e293b"),
fontName="Helvetica", leftIndent=14, firstLineIndent=-10,
spaceBefore=1, spaceAfter=1)
SUB_BULLET = S("SubBullet",
fontSize=9, leading=13, textColor=colors.HexColor("#334155"),
fontName="Helvetica", leftIndent=26, firstLineIndent=-10,
spaceBefore=1, spaceAfter=1)
CAPTION = S("Caption",
fontSize=8.5, leading=12, textColor=MID_GREY,
fontName="Helvetica-Oblique", alignment=TA_CENTER,
spaceBefore=4, spaceAfter=8)
BOX_TITLE = S("BoxTitle",
fontSize=10, leading=14, textColor=WHITE,
fontName="Helvetica-Bold")
BOX_BODY = S("BoxBody",
fontSize=9, leading=13, textColor=colors.HexColor("#1e293b"),
fontName="Helvetica", spaceBefore=1, spaceAfter=1)
FOOTER_STYLE = S("Footer",
fontSize=7.5, leading=10, textColor=MID_GREY,
fontName="Helvetica", alignment=TA_CENTER)
# ── Helper builders ────────────────────────────────────────────────────────────
def section_header(text, num=None):
label = f"{num}. {text}" if num else text
return [
Spacer(1, 8),
Table(
[[Paragraph(label, H1)]],
colWidths=[W - 2*MARGIN],
style=TableStyle([
("BACKGROUND", (0,0), (-1,-1), NAVY),
("ROUNDEDCORNERS", [5]),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
])
),
Spacer(1, 6),
]
def sub_header(text):
return [Paragraph(text, H2), HRFlowable(width="100%", thickness=1.2, color=TEAL, spaceAfter=4)]
def h3(text):
return Paragraph(text, H3)
def body(text):
return Paragraph(text, BODY)
def bullet(text, level=1):
style = BULLET if level == 1 else SUB_BULLET
marker = "•" if level == 1 else "–"
return Paragraph(f"{marker} {text}", style)
def caption(text):
return Paragraph(text, CAPTION)
def spacer(h=6):
return Spacer(1, h)
def hr(color=LIGHT_GREY):
return HRFlowable(width="100%", thickness=0.5, color=color, spaceAfter=4)
def img(fname, width_cm=14, caption_text=None):
path = os.path.join(IMG_DIR, fname)
items = [Image(path, width=width_cm*cm, kind='proportional')]
if caption_text:
items.append(caption(caption_text))
return items
def info_box(title, items, bg=LIGHT_BG, border=TEAL, title_bg=TEAL):
content_rows = [[Paragraph(f"• {i}", BOX_BODY)] for i in items]
header_row = [[Paragraph(title, BOX_TITLE)]]
all_rows = header_row + content_rows
col_w = W - 2*MARGIN - 0.4*cm
t = Table(all_rows, colWidths=[col_w])
style = TableStyle([
("BACKGROUND", (0,0), (-1,0), title_bg),
("BACKGROUND", (0,1), (-1,-1), bg),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("BOX", (0,0), (-1,-1), 1, border),
("INNERGRID", (0,1), (-1,-1), 0.3, LIGHT_GREY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("ROUNDEDCORNERS",[4]),
])
t.setStyle(style)
return [t, spacer(6)]
def two_col_table(headers, rows, col_widths=None):
page_w = W - 2*MARGIN
if not col_widths:
col_widths = [page_w/len(headers)] * len(headers)
hdr_row = [Paragraph(f"<b>{h}</b>", S("TH", fontSize=8.5, leading=12,
fontName="Helvetica-Bold", textColor=WHITE)) for h in headers]
data_rows = []
for row in rows:
data_rows.append([Paragraph(str(c), S("TD", fontSize=8.5, leading=12,
fontName="Helvetica", textColor=colors.HexColor("#1e293b")))
for c in row])
all_data = [hdr_row] + data_rows
t = Table(all_data, colWidths=col_widths)
style = TableStyle([
("BACKGROUND", (0,0), (-1,0), NAVY),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_BG]),
("BOX", (0,0), (-1,-1), 0.8, NAVY),
("INNERGRID", (0,0), (-1,-1), 0.3, LIGHT_GREY),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
])
t.setStyle(style)
return [t, spacer(8)]
# ── Page callbacks ─────────────────────────────────────────────────────────────
def on_page(canvas, doc):
canvas.saveState()
pg = doc.page
# Header bar
canvas.setFillColor(NAVY)
canvas.rect(0, H - 1.1*cm, W, 1.1*cm, fill=1, stroke=0)
canvas.setFillColor(WHITE)
canvas.setFont("Helvetica-Bold", 8)
canvas.drawString(MARGIN, H - 0.72*cm, "TAVI – Comprehensive Clinical Guide")
canvas.setFont("Helvetica", 8)
canvas.drawRightString(W - MARGIN, H - 0.72*cm, "Orris Medical AI | July 2026")
# Footer
canvas.setFillColor(LIGHT_GREY)
canvas.rect(0, 0, W, 1.3*cm, fill=1, stroke=0)
canvas.setFillColor(MID_GREY)
canvas.setFont("Helvetica", 7.5)
canvas.drawCentredString(W/2, 0.5*cm,
f"Page {pg} | Sources: Harrison's 22E, Braunwald's Heart Disease, Sabiston Surgery, Goldman-Cecil, Miller's Anesthesia, Bailey & Love")
canvas.restoreState()
def on_first_page(canvas, doc):
# Solid navy cover background
canvas.setFillColor(NAVY)
canvas.rect(0, 0, W, H, fill=1, stroke=0)
# Accent stripe
canvas.setFillColor(TEAL)
canvas.rect(0, H*0.52, W, 6, fill=1, stroke=0)
canvas.restoreState()
# ── Build story ────────────────────────────────────────────────────────────────
story = []
# ═══════════════════════════════════════════════════════════════════════════════
# COVER PAGE
# ═══════════════════════════════════════════════════════════════════════════════
def cover_page():
items = []
items.append(Spacer(1, 5.5*cm))
# Title block on navy background (already set by on_first_page)
title_data = [[
Paragraph("TAVI", S("CT", fontSize=52, leading=58, textColor=WHITE,
fontName="Helvetica-Bold", alignment=TA_CENTER))
]]
title_t = Table(title_data, colWidths=[W - 2*MARGIN])
title_t.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),colors.transparent)]))
items.append(title_t)
items.append(spacer(6))
items.append(Paragraph("Transcatheter Aortic Valve Implantation", COVER_TITLE))
items.append(spacer(10))
items.append(Paragraph("Comprehensive Clinical Reference Guide", COVER_SUB))
items.append(spacer(6))
items.append(Paragraph("Procedure · Indications · Devices · Complications · Management", COVER_SUB))
items.append(spacer(30))
items.append(hr(colors.HexColor("#3b82f6")))
items.append(spacer(10))
items.append(Paragraph(
"Sources: Harrison's Principles of Internal Medicine 22E (2025) · Braunwald's Heart Disease · "
"Sabiston Textbook of Surgery · Goldman-Cecil Medicine · Miller's Anesthesia 10e · Bailey & Love's Surgery 28e · EuroIntervention",
COVER_NOTE))
items.append(spacer(6))
items.append(Paragraph("Compiled by Orris Medical AI · July 2026", COVER_NOTE))
items.append(PageBreak())
return items
story += cover_page()
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 1 – BACKGROUND & HISTORY
# ═══════════════════════════════════════════════════════════════════════════════
story += section_header("Background & History", 1)
story += sub_header("Origins and Evolution")
story += [
body("TAVI (also called TAVR – Transcatheter Aortic Valve Replacement) was first performed in humans by "
"<b>Alain Cribier</b> in <b>2002</b>, treating an inoperable patient with severe calcific aortic stenosis. "
"The technology has since evolved from an experimental last-resort procedure into the most commonly "
"performed aortic valve intervention in the United States."),
spacer(4),
]
story += info_box("FDA Approval Timeline", [
"2002 – First-in-human TAVI (Alain Cribier)",
"2011 – FDA approval: Prohibitive surgical risk (STS predicted 30-day mortality >50%)",
"2012 – FDA approval: High surgical risk (STS >10% or ≥2 frailty indices)",
"2016 – FDA approval: Intermediate surgical risk (STS 4%–8%); TAVI volume surpasses SAVR in USA",
"2019 – FDA approval: Low surgical risk (STS ≤4%) – PARTNER 3 & Evolut Low Risk trials",
"2025 – FDA approval for asymptomatic severe aortic stenosis (landmark regulatory expansion)",
"2025 – Medtronic Evolut systems gain expanded redo-TAVR indication",
])
story += [
body("<b>Current volume:</b> Over 70,000 TAVI procedures performed annually in the USA. "
"Over 95% use the transfemoral (TF) approach. CMS mandates a minimum of 20 procedures/year "
"per accredited TAVI centre (2023 rule)."),
spacer(6),
]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 2 – INDICATIONS & DECISION MAKING
# ═══════════════════════════════════════════════════════════════════════════════
story += section_header("Indications & Decision-Making", 2)
story += sub_header("Severe Aortic Stenosis – Echocardiographic Definition")
story += two_col_table(
["Parameter", "Threshold for Severe AS"],
[
["Aortic valve area (AVA)", "< 1.0 cm²"],
["Mean gradient", "> 40 mmHg"],
["Peak aortic jet velocity", "> 4 m/s"],
["Indexed AVA", "< 0.6 cm²/m²"],
],
col_widths=[(W-2*MARGIN)*0.55, (W-2*MARGIN)*0.45]
)
story += sub_header("AHA/ACC 2020 Guideline Recommendations")
story += two_col_table(
["COR", "LOE", "Recommendation"],
[
["I", "A", "Age < 65 or life expectancy > 20 years → SAVR recommended"],
["I", "A", "Age 65–80, no TF contraindication → SAVR or TF-TAVI after shared decision-making"],
["I", "A", "Age > 80 or life expectancy < 10 yrs, no TF contraindication → TF-TAVI preferred over SAVR"],
["I", "A", "Any age, high/prohibitive surgical risk, predicted survival > 12 months → TAVI"],
["I", "B-NR", "Asymptomatic AS with LVEF < 50% → follow same age-stratified recommendations"],
["I", "B-NR", "Asymptomatic AS with abnormal exercise test/very severe AS/rapid progression → SAVR preferred"],
["I", "C-EO", "Predicted survival < 12 months or minimal QoL benefit → palliative care"],
["2b", "C-EO", "Critically ill with severe AS → balloon valvuloplasty as bridge to TAVI/SAVR"],
],
col_widths=[(W-2*MARGIN)*0.07, (W-2*MARGIN)*0.08, (W-2*MARGIN)*0.85]
)
story += sub_header("TAVI vs SAVR Decision Algorithm (AHA/ACC 2020)")
story += img("decision_algorithm.png", 13,
"FIGURE 1 – AHA/ACC decision flowchart. If anatomy is unsuitable for TF-TAVI → SAVR regardless of age. "
"Age <65 → SAVR (Class 1). Age 65–80 → either SAVR or TF-TAVI (both Class 1). Age >80 → TF-TAVI preferred (Class 1). "
"(Source: Harrison's Principles of Internal Medicine 22E, 2025)")
story.append(spacer(4))
story += sub_header("ESC/EACTS (Europe) vs AHA/ACC (USA) Guideline Comparison")
story += img("guideline_comparison.png", 15,
"FIGURE 2 – Side-by-side ESC/EACTS (top, 75-year cut-off) vs AHA/ACC (bottom, 65/80-year cut-offs) guidelines. "
"Europe uses EuroSCORE <4 or >8; USA uses life expectancy and age thresholds. "
"(Source: Sabiston Textbook of Surgery / Coisne et al. JACC 2023)")
story += sub_header("Special Indications")
story += [
bullet("<b>Valve-in-Valve (ViV) TAVI:</b> Failed bioprosthetic aortic valves – FDA approved 2015; sharply increasing volumes"),
bullet("<b>Porcelain aorta:</b> Heavily calcified ascending aorta precludes safe aortic cross-clamping for SAVR"),
bullet("<b>Prior chest radiation:</b> Radiation-induced fibrosis increases SAVR morbidity"),
bullet("<b>Re-sternotomy:</b> High adhesion risk makes TAVI preferable"),
bullet("<b>Bicuspid aortic valve (BAV):</b> Off-label; selected cases only – avoid if prominent calcified raphe"),
bullet("<b>Pure aortic insufficiency (AI):</b> Off-label; dedicated devices in development"),
bullet("<b>TAVI + PCI:</b> Concurrent or staged percutaneous coronary intervention in intermediate-risk patients with non-complex CAD"),
spacer(8),
]
# Contraindications box
story += sub_header("Contraindications")
row_data = [
[Paragraph("<b>Absolute</b>", S("TH2", fontSize=9, fontName="Helvetica-Bold", textColor=NAVY)),
Paragraph("<b>Relative / Access-Specific</b>", S("TH2", fontSize=9, fontName="Helvetica-Bold", textColor=NAVY))],
[Paragraph("• Expected survival < 12 months after TAVI\n• No improvement in QoL expected\n"
"• Active infective endocarditis\n• No available access route", BOX_BODY),
Paragraph("• Significant iliofemoral disease (TF)\n• Iliofemoral diameter < 5.0–5.5 mm (TF)\n"
"• LV apical thrombus (transapical)\n• Recent MI < 3 months (transapical)\n"
"• Severe pulmonary dysfunction (transapical)\n• Heavily calcified LVOT (annular rupture risk)", BOX_BODY)],
]
ct = Table(row_data, colWidths=[(W-2*MARGIN)/2]*2)
ct.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), LIGHT_BG),
("BOX", (0,0), (-1,-1), 1, RED_BDR),
("INNERGRID", (0,0), (-1,-1), 0.5, LIGHT_GREY),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story += [ct, spacer(6)]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 3 – VALVE DEVICES
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Valve Devices", 3)
story += sub_header("Types of Prostheses")
story += [
body("All TAVI prostheses incorporate a <b>pericardial tissue bioprosthesis</b> mounted within a metallic frame. "
"Two main categories exist, differentiated by their deployment mechanism:"),
spacer(6),
]
# Side-by-side valve image table
valve_img_table = Table([
[Image(os.path.join(IMG_DIR, "bev_valve.png"), width=7.5*cm, kind='proportional'),
Image(os.path.join(IMG_DIR, "sev_valve.png"), width=7.5*cm, kind='proportional')],
[Paragraph("Balloon-Expandable Valve (BEV)\nEdwards SAPIEN series\nB=Balloon · V=Valve · N=Nose cone", CAPTION),
Paragraph("Self-Expanding Valve (SEV)\nMedtronic CoreValve / Evolut series\nNitinol mesh frame with tissue leaflets and pericardial skirt", CAPTION)],
], colWidths=[(W-2*MARGIN)/2]*2)
valve_img_table.setStyle(TableStyle([
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("BOX", (0,0), (-1,-1), 0.5, LIGHT_GREY),
("INNERGRID", (0,0), (-1,-1), 0.5, LIGHT_GREY),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
]))
story += [valve_img_table,
caption("FIGURE 3 – Left: Balloon-expandable TAVI valve (Edwards SAPIEN-type) on delivery catheter. "
"Right: Self-expanding valve (CoreValve-type) showing the large nitinol mesh frame. "
"(Source: Harrison's Principles of Internal Medicine 22E, 2025)"),
spacer(8)]
story += two_col_table(
["Feature", "Balloon-Expandable (BEV)", "Self-Expanding (SEV)"],
[
["Example devices", "Edwards SAPIEN 3, SAPIEN 3 Ultra", "Medtronic CoreValve, Evolut R/PRO/FX"],
["Frame material", "Cobalt-chromium/stainless steel", "Nitinol (nickel-titanium)"],
["Deployment", "Balloon inflation under rapid pacing", "Sheath withdrawal; self-expands"],
["Position", "Intra-annular", "Supra-annular (extends into ascending aorta)"],
["Repositionable", "No (once deployed)", "Yes – Evolut R/PRO/FX can be recaptured"],
["Paravalvular leak", "Low (especially SAPIEN 3 with outer skirt)", "Slightly higher historically"],
["Pacemaker need", "Lower (~5–10%)", "Higher (~15–25% with older designs)"],
["Valve area (EOA)", "Slightly smaller (intra-annular)", "Larger (supra-annular position)"],
],
col_widths=[(W-2*MARGIN)*0.25, (W-2*MARGIN)*0.375, (W-2*MARGIN)*0.375]
)
story += sub_header("Valve Sizing Principles")
story += [
bullet("<b>CT-based annular measurement</b> is the gold standard (ECG-gated, IV contrast, <1 mm slices)"),
bullet("Annulus dimensions measured in systole; both area-derived and perimeter-derived diameters used"),
bullet("Target <b>0–20% oversizing</b> relative to annulus area"),
bullet("Under-sizing → paravalvular leak (PVL)"),
bullet("Over-sizing → annular rupture risk (especially with LVOT calcification)"),
bullet("CT also assesses: coronary heights, LVOT calcium, aortic arch, iliofemoral vessels"),
spacer(8),
]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 4 – PREPROCEDURAL WORKUP
# ═══════════════════════════════════════════════════════════════════════════════
story += section_header("Pre-Procedural Workup & Patient Selection", 4)
story += sub_header("Multidisciplinary Heart Team")
story += [
body("A formal <b>Heart Team</b> evaluation is mandatory (AHA/ACC, ESC/EACTS, and CMS requirements). "
"Both a <b>cardiac surgeon</b> and an <b>interventional cardiologist</b> must evaluate and perform the procedure."),
bullet("Interventional cardiologist"),
bullet("Cardiac surgeon"),
bullet("Cardiac anaesthesiologist"),
bullet("Imaging specialist (echocardiography + CT)"),
bullet("Intensivist / CCU physician"),
bullet("Specialty nursing and catheter lab staff"),
spacer(6),
]
story += sub_header("Pre-Procedural Investigations")
story += two_col_table(
["Investigation", "Purpose / Key Findings"],
[
["TAVI-protocol CT angiography (ECG-gated, IV contrast, <1 mm slices)",
"Annulus sizing; LVOT/coronary anatomy; calcium distribution; iliofemoral access assessment; aortic arch pathology"],
["Transthoracic echocardiography (TTE)",
"Confirm severe AS; assess LVEF, wall motion, MR severity, other valvular disease; annular dimensions"],
["Transesophageal echocardiography (TEE)",
"Used intra-procedurally for positioning guidance and immediate post-deployment assessment"],
["Coronary angiography",
"Assess CAD severity; plan concurrent or staged PCI if needed"],
["12-lead ECG",
"Baseline conduction: QRS duration, AV block, fascicular block (pacemaker risk predictors)"],
["Frailty assessment",
"Gait speed, grip strength, ADLs, serum albumin – score >2/5 indicates high frailty"],
["Blood tests",
"FBC, U&E (renal function, contrast nephropathy risk), coagulation, Group & Save, BNP/NT-proBNP"],
["Pulmonary function tests",
"Especially relevant if transapical approach considered"],
],
col_widths=[(W-2*MARGIN)*0.38, (W-2*MARGIN)*0.62]
)
story += sub_header("TAVI vs SAVR: Key Anatomical Preference Factors")
story += two_col_table(
["Factor", "Favours TAVI", "Favours SAVR"],
[
["Age", "> 80 years", "< 65 years"],
["Life expectancy", "< 10 years", "> 20 years"],
["Surgical risk", "High/prohibitive STS", "Low STS"],
["Conduction", "Pre-existing pacemaker", "No pre-existing block"],
["Aorta", "Porcelain aorta", "Normal aorta"],
["Sternum", "Re-sternotomy required", "Virgin sternum"],
["Chest radiation", "Prior RT to chest", "No prior RT"],
["Coronary access", "Simple anatomy post-TAVI", "Complex anatomy requiring CABG"],
["Valve anatomy", "Tricuspid valve", "Bicuspid/complex anatomy"],
["Frailty", "High frailty", "Normal physiological reserve"],
],
col_widths=[(W-2*MARGIN)*0.3, (W-2*MARGIN)*0.35, (W-2*MARGIN)*0.35]
)
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 5 – ACCESS ROUTES
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Access Routes", 5)
story += img("transapical_transfemoral.png", 15,
"FIGURE 4 – Anatomical illustration comparing Transapical (left) and Transfemoral (right) TAVI access routes. "
"Transapical: device enters the LV apex via mini-thoracotomy, anterograde passage. "
"Transfemoral: retrograde delivery from the femoral artery up the aorta. "
"(Source: Sabiston Textbook of Surgery)")
story.append(spacer(4))
story += sub_header("Access Route Summary")
story += two_col_table(
["Route", "Approach", "% of TAVI (USA)", "Key Advantage", "Key Limitation"],
[
["Transfemoral (TF)", "Retrograde via CFA", "~95%", "Lowest complication rate; sedation possible", "Requires adequate iliofemoral diameter/anatomy"],
["Transaxillary / Transsubclavian", "Retrograde via subclavian/axillary a.", "~3%", "Good alternative; often used when TF fails", "Requires vessel diameter ≥6 mm; ipsilateral arm ischaemia risk"],
["Transcarotid (TC)", "Retrograde via common carotid a.", "~1%", "Direct route; minimal tortuosity", "Cerebrovascular risk; bilateral carotid stenosis contraindication"],
["Transaortic (TAo)", "Direct ascending aorta via mini-sternotomy", "<1%", "Avoids peripheral vascular access", "Requires surgical chest access"],
["Transapical (TA)", "Anterograde via LV apex (mini-thoracotomy)", "<1%", "No aortic arch crossing; useful for aortic arch disease", "Higher morbidity; requires GA; LV injury risk"],
["Transcaval", "IVC-to-aorta transcaval puncture", "Rare", "No arterial cut-down needed", "Highly specialised; aortocaval fistula risk"],
],
col_widths=[(W-2*MARGIN)*0.18, (W-2*MARGIN)*0.2, (W-2*MARGIN)*0.12, (W-2*MARGIN)*0.25, (W-2*MARGIN)*0.25]
)
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 6 – PROCEDURAL STEPS
# ═══════════════════════════════════════════════════════════════════════════════
story += section_header("Procedural Steps (Transfemoral Approach)", 6)
story += sub_header("Procedure Environment & Monitoring Setup")
story += [
bullet("<b>Setting:</b> Hybrid operating room or cardiac catheterisation lab with state-of-the-art fluoroscopy, echocardiography, and emergency CPB capability"),
bullet("<b>Required personnel:</b> Interventional cardiologist, cardiac surgeon, cardiac anaesthesiologist, scrub nurse, cath lab technician, echo cardiographer, CPB perfusionist on standby"),
bullet("<b>Monitoring:</b> Radial arterial line (continuous BP), large-bore IV ×2, external defibrillation pads"),
bullet("<b>CPB:</b> Perfusionist and cardiac surgeon must be immediately available – CPB set up and primed before procedure begins"),
bullet("<b>Anticoagulation:</b> Heparin to achieve ACT > 250–300 sec initiated after vascular access"),
spacer(6),
]
story += sub_header("Anaesthesia Options")
story += two_col_table(
["Approach", "When Used", "Monitoring", "Key Considerations"],
[
["General Anaesthesia (GA)", "Transapical; alternative access; complex cases or failed sedation",
"ETT/LMA, TEE, art line, CVP", "TEE guides positioning and assesses result; allows full rescue manoeuvres"],
["Conscious Sedation ('Minimalist')", "Uncomplicated TF-TAVI – majority of cases at modern centres",
"Art line, TTE or fluoroscopy-only guidance", "Faster recovery; earlier mobilisation; shorter stay; must plan GA bail-out"],
],
col_widths=[(W-2*MARGIN)*0.2, (W-2*MARGIN)*0.28, (W-2*MARGIN)*0.22, (W-2*MARGIN)*0.3]
)
story += sub_header("Step-by-Step Procedure")
steps = [
("Step 1 – Vascular Access",
"Percutaneous puncture of common femoral artery (CFA) under ultrasound guidance. "
"Two ProGlide pre-close sutures deployed before inserting the large sheath. "
"Contralateral femoral artery accessed for pigtail catheter. "
"Femoral vein access for temporary RV pacing wire."),
("Step 2 – Baseline Haemodynamics",
"Simultaneous LV and aortic pressure measurement. Baseline gradient documented. "
"Optimal fluoroscopic angulation determined (LAO/RAO + cranial/caudal) "
"to view aortic valve plane perpendicularly ('co-planar' view)."),
("Step 3 – Guidewire Crossing",
"Stiff guidewire (e.g. Amplatz Extra Stiff) advanced retrograde across the stenotic native aortic valve "
"using a straight or angled catheter. Guidewire tip positioned deep in the LV apex for stability. "
"Entire subsequent procedure performed over this guidewire."),
("Step 4 – Balloon Aortic Valvuloplasty (BAV)",
"Balloon catheter advanced across the native aortic valve. "
"Rapid RV pacing initiated at <b>180 beats/min</b> (reduces cardiac output, prevents balloon ejection). "
"Balloon inflated to dilate stenotic native valve and create space. Deflated; pacing stopped. "
"<i>Note: Pre-dilation is increasingly omitted with newer-generation valves (direct implantation).</i>"),
("Step 5 – Valve Crimping & Loading",
"Selected prosthetic valve crimped onto delivery system in sterile field. "
"BEV (e.g. SAPIEN 3): crimped onto balloon catheter with dedicated crimper. "
"SEV (e.g. Evolut PRO): loaded within the outer sheath of the delivery catheter. "
"Size verified; integrity confirmed."),
("Step 6 – Valve Delivery & Positioning",
"Delivery system advanced over the stiff guidewire, through the large sheath, and retrograde "
"across the native aortic valve under continuous <b>fluoroscopy + echocardiographic (TEE/TTE)</b> guidance. "
"Optimal position: prosthesis straddling annulus, ~50% below annular plane. "
"Pigtail in non-coronary cusp (NCC) used as fluoroscopic landmark. "
"Fine-tune angulation for perpendicularity to valve plane."),
("Step 7 – Valve Deployment",
"<b>BEV:</b> Rapid pacing reinitiated → balloon inflated (valve expands and locks) → balloon deflated → pacing stopped.<br/>"
"<b>SEV:</b> Outer sheath gradually withdrawn, allowing self-expansion. Pacing used at critical phases. "
"Modern SEVs (Evolut R/PRO/FX) allow <b>repositioning and recapture</b> before full deployment."),
("Step 8 – Immediate Assessment",
"<b>Aortography:</b> from contralateral pigtail – assess PVL location/severity, coronary perfusion, prosthesis position.<br/>"
"<b>TEE/TTE:</b> confirm valve function, mean gradient (target <10 mmHg), PVL degree, LV function, pericardial effusion.<br/>"
"<b>ECG:</b> watch for new LBBB, AV block.<br/>"
"If moderate-severe PVL → post-dilation with balloon inside deployed valve."),
("Step 9 – Haemostasis & Closure",
"Temporary pacing wire retained until conduction stability confirmed. "
"Arterial sheath removed; pre-close sutures deployed; fluoroscopic check of femoral site. "
"Additional manual compression, balloon tamponade, or vascular surgical repair if needed. "
"Protamine given to reverse heparin if significant bleeding."),
("Step 10 – Recovery",
"Transfer to CCU/HDU. Continuous invasive BP monitoring ≥2 hours. ECG monitoring 48–72 hours. "
"Sedation/anaesthesia reversed early ('fast-track'). Aggressive treatment of hypotension "
"(exclude tamponade/bleeding first → fluids/vasopressors). Early mobilisation."),
]
for title, desc in steps:
step_data = [[
Paragraph(f"<b>{title}</b>", S("StepT", fontSize=9.5, fontName="Helvetica-Bold",
textColor=WHITE, leading=13)),
Paragraph(desc, S("StepD", fontSize=9, fontName="Helvetica",
textColor=colors.HexColor("#1e293b"), leading=13, alignment=TA_JUSTIFY)),
]]
t = Table(step_data, colWidths=[4.5*cm, W - 2*MARGIN - 4.5*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,-1), TEAL),
("BACKGROUND", (1,0), (1,-1), LIGHT_BG),
("BOX", (0,0), (-1,-1), 0.5, TEAL),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story += [t, spacer(4)]
story.append(spacer(6))
story += img("deployment_steps.png", 14.5,
"FIGURE 5 – Four-step BEV deployment sequence: A) Balloon dilation of native stenotic valve (BAV). "
"B) Crimped stented valve inserted over guidewire into aortic annulus. C) Balloon inflation deploys the prosthesis. "
"D) Balloon deflated and removed; new bioprosthetic valve seated in position. "
"(Source: Goldman-Cecil Medicine, International Edition)")
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 7 – COMPLICATIONS
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Complications – Classification & Management", 7)
story += sub_header("Complication Overview")
story += two_col_table(
["Complication", "Incidence", "Key Prevention", "First-Line Management"],
[
["Vascular access injury", "10–15% (all grades)", "CT planning, closure device technique", "Balloon tamponade, covered stent, surgery"],
["Stroke", "2–3% clinical", "De-airing, ACT >250–300 sec, embolic protection device", "Neuro consult, thrombolysis/thrombectomy"],
["Paravalvular leak (mod-severe)", "<5% (new-gen valves)", "Accurate CT sizing, optimal positioning", "Post-dilation, valve-in-valve"],
["Permanent pacemaker", "~10.8% (all-comers)", "ECG screening pre-op, valve depth control", "Temporary pacing wire → PPM if persistent CHB"],
["Coronary obstruction", "~0.7–1.0%", "CT coronary height measurement, BASILICA, chimney stent", "Emergency PCI; surgery if not re-openable"],
["Annular rupture", "0.5–1%", "Avoid oversizing; screen LVOT calcium", "CPB + emergency surgical repair"],
["Valve embolisation", "Rare (<1%)", "Correct sizing, adequate pacing, operator experience", "Snare retrieval; emergency surgery"],
["Cardiac tamponade", "~1–2%", "Careful wire/pacing lead handling", "Pericardiocentesis; CPB if annular tear"],
["Leaflet thrombosis (clinical)", "~0.5%", "Post-TAVI anticoagulation protocol", "Anticoagulation (warfarin/NOAC)"],
["Acute kidney injury", "~5% (mild)", "IV hydration, minimise contrast", "Supportive; dialysis if needed (<0.5%)"],
["Infective endocarditis", "<1% late", "Antibiotic prophylaxis; aseptic technique", "Prolonged IV antibiotics; surgery in selected cases"],
],
col_widths=[(W-2*MARGIN)*0.22, (W-2*MARGIN)*0.13, (W-2*MARGIN)*0.33, (W-2*MARGIN)*0.32]
)
story += sub_header("Vascular Complications – Detailed Management")
story += [
h3("Access Site Haemorrhage"),
bullet("<b>Minor:</b> Prolonged manual compression; balloon tamponade from inside the vessel"),
bullet("<b>Major (arterial rupture):</b>"),
bullet("1. Immediate recognition (sudden BP drop, groin haematoma expansion)", 2),
bullet("2. Emergency aortography from contralateral femoral access", 2),
bullet("3. Introduce soft aortic occlusion balloon – inflate at low pressure to control bleeding", 2),
bullet("4. Administer protamine to reverse heparin", 2),
bullet("5. Balloon inflation for 10 minutes often seals small tears", 2),
bullet("6. Large tears → covered stent deployment (e.g. covered Viabahn/BeGraft) or surgical repair", 2),
bullet("7. If haemorrhage is uncontrollable → abort procedure, achieve haemostasis, reschedule", 2),
spacer(4),
h3("Retroperitoneal Haematoma"),
bullet("Presents with ipsilateral flank/back pain, falling Hb, haemodynamic compromise"),
bullet("CT abdomen/pelvis for diagnosis; conservative management if stable; covered stent or surgical exploration if expanding"),
spacer(8),
]
story += sub_header("Stroke – Detailed Management")
story += [
body("<b>Incidence:</b> 2–3% clinical stroke; subclinical MRI lesions present in up to 80% (silent emboli)."),
bullet("<b>Mechanism:</b> Calcium debris, air emboli, thrombus dislodged during catheter manipulation in aortic arch"),
bullet("<b>Risk factors:</b> Heavy aortic arch calcification, atrial fibrillation, prior stroke, heavy native valve calcium"),
h3("Prevention"),
bullet("Maintain ACT > 250–300 sec throughout procedure"),
bullet("Meticulous de-airing of all catheters and delivery systems"),
bullet("Minimise catheter manipulations within the aortic arch"),
bullet("<b>Sentinel Cerebral Protection Device</b> (Claret Medical): dual filters in brachiocephalic and left carotid arteries – captures emboli during TAVI; updated meta-analysis (Braite et al., Catheter Cardiovasc Interv 2025, PMID 41121677) supports use in high-risk cases"),
h3("Management of Acute Stroke Post-TAVI"),
bullet("Immediate neurological assessment; NIHSS scoring"),
bullet("Urgent non-contrast CT head (exclude haemorrhage)"),
bullet("Activate acute stroke pathway; neurology consultation"),
bullet("Consider thrombolysis (IV alteplase) or mechanical thrombectomy depending on CT findings and time window"),
bullet("Antiplatelet/anticoagulation adjustments per neurologist guidance"),
spacer(6),
]
story += sub_header("Paravalvular Regurgitation (PVL)")
story += [
body("<b>Mechanism:</b> Incomplete apposition of prosthesis to native annulus due to calcification, "
"under-sizing, or malpositioning. Eccentric calcium prevents full frame expansion."),
bullet("Mild PVL: clinically acceptable; monitor with serial echocardiography"),
bullet("Moderate-severe PVL: associated with increased late mortality; intervention required"),
h3("Intraoperative Management of Significant PVL"),
bullet("1. Precisely localise: TEE (multiple views) + aortography – determine circumferential vs localised"),
bullet("2. <b>Post-dilation:</b> Inflate balloon inside deployed valve (risk: worsening conduction, annular injury)"),
bullet("3. <b>Valve-in-valve implantation:</b> Second TAVI valve deployed inside first if position correctable"),
bullet("4. Surgical conversion in extreme cases"),
spacer(6),
]
story += sub_header("Conduction Disturbances & Pacemaker")
story += [
bullet("<b>New LBBB:</b> Most common finding; 30–60% with SEV, lower with BEV"),
bullet("<b>Complete Heart Block (CHB):</b> Most serious; 15–25% with SEV, 5–10% with BEV"),
h3("Predictors of Pacemaker Requirement"),
bullet("Pre-existing RBBB (highest risk)"),
bullet("QRS > 120 ms pre-procedure"),
bullet("Any degree of AV block pre-procedure"),
bullet("Deep valve implantation depth (more sub-annular)"),
bullet("Heavy membranous septum calcification"),
h3("Management"),
bullet("Keep temporary pacing wire until conduction stability confirmed (48–72 hours post-procedure)"),
bullet("ECG monitoring for minimum 48–72 hours"),
bullet("Permanent pacemaker (PPM) if: CHB persists, symptomatic high-degree AV block, new LBBB + PR prolongation"),
bullet("GLUCO-TAVI randomised trial (EuroIntervention 2026): investigating peri-procedural glucocorticoids to reduce PPM rates"),
spacer(6),
]
story += sub_header("Coronary Obstruction")
story += [
body("<b>Incidence:</b> ~0.7–1.0% (higher in valve-in-valve TAVI). Presents with sudden ST elevation and "
"haemodynamic collapse immediately after deployment."),
bullet("<b>Mechanism:</b> Native valve leaflet or prosthesis frame displaces/occludes coronary ostium"),
bullet("<b>Risk factors:</b> Coronary ostia height < 10–12 mm above annulus; heavy leaflet calcification; female sex (shorter coronary heights); ViV procedures"),
h3("Prevention Strategies"),
bullet("CT pre-planning: measure sinus of Valsalva dimensions and coronary ostial heights"),
bullet("<b>BASILICA technique:</b> Electrosurgical laceration of native leaflet before TAVI to prevent leaflet-induced obstruction"),
bullet("<b>Chimney stent ('coronary snorkelling'):</b> Pre-position coronary guidewire/balloon/stent as rescue standby"),
h3("Management"),
bullet("Immediately wire affected coronary artery (pre-positioned wire allows instant access)"),
bullet("Balloon angioplasty ± stenting via chimney technique"),
bullet("If not re-openable percutaneously → emergency CPB and surgical coronary revascularisation"),
spacer(6),
]
story += sub_header("Annular Rupture")
story += [
body("<b>Incidence:</b> 0.5–1%; <b>Mortality: very high</b> – most catastrophic intraprocedural complication."),
bullet("<b>Mechanism:</b> Oversized valve fractures the annular/LVOT complex, particularly with heavy calcification"),
bullet("<b>Presentation:</b> Sudden haemodynamic collapse during or immediately after deployment; haemopericardium/haemothorax on imaging"),
h3("Management (time-critical)"),
bullet("1. Immediate recognition – sudden, profound haemodynamic collapse"),
bullet("2. Emergency pericardiocentesis if tamponade"),
bullet("3. Initiate CPB immediately"),
bullet("4. Emergency surgical repair – may require full aortic root surgery or Bentall procedure"),
bullet("5. Preventive: careful CT sizing, avoid oversizing, avoid TAVI if severe LVOT calcification with small annulus"),
spacer(6),
]
story += sub_header("Leaflet Thrombosis")
story += [
bullet("Subclinical HALT (Hypo-Attenuating Leaflet Thickening) on CT: ~10–15% at 30–90 days"),
bullet("Clinical leaflet thrombosis: ~0.5% – associated with stroke and elevated gradients on follow-up echo"),
bullet("Higher rates than SAVR (different haemodynamic environment, absence of native leaflets)"),
bullet("<b>Management:</b> Anticoagulation (warfarin target INR 2–3, or DOAC) – usually resolves thrombus within weeks"),
bullet("Monitor with CT or echo at follow-up; no intervention needed if responding to anticoagulation"),
spacer(8),
]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 8 – OUTCOMES DATA
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Outcomes Data & Trial Evidence", 8)
story += sub_header("STS/ACC TVT Registry Benchmarks (All-Comers, All Risk Profiles)")
story += two_col_table(
["Outcome Parameter", "Rate"],
[
["30-day mortality", "~2.6%"],
["30-day stroke", "~2.3%"],
["Permanent pacemaker at 30 days", "~10.8%"],
["New-onset dialysis", "< 0.5%"],
["Overall procedural success", "> 95%"],
["1-year mortality reduction (vs medical Rx in high-risk)", "51% → 31% (45% relative reduction)"],
],
col_widths=[(W-2*MARGIN)*0.65, (W-2*MARGIN)*0.35]
)
story += sub_header("Landmark Clinical Trials")
story += two_col_table(
["Trial", "Population", "Key Result"],
[
["PARTNER 1A", "High surgical risk", "TAVI non-inferior to SAVR at 1 year; landmark trial establishing TAVI"],
["PARTNER 1B", "Inoperable patients", "TAVI superior to standard Rx (balloon valvuloplasty); 20% absolute mortality reduction at 1 year"],
["PARTNER 2", "Intermediate risk", "TAVI non-inferior to SAVR; similar 2-year outcomes"],
["PARTNER 3", "Low risk (avg STS 1.9%)", "TAVI superior to SAVR at 1 year: composite death/stroke/rehospitalisation (8.5% vs 15.1%)"],
["Evolut Low Risk", "Low risk (SEV)", "TAVI non-inferior to SAVR at 24 months for composite death/disabling stroke"],
["Evolut Low Risk – 4yr (Forrest 2023)", "Low risk (SEV)", "HR 0.74 (95% CI 0.54–1.00) SE-TAVR vs SAVR; absolute risk reduction 3.4% at 4 years"],
["NOTION", "All-comers", "TAVI non-inferior to SAVR in all-comers (not just high risk)"],
],
col_widths=[(W-2*MARGIN)*0.22, (W-2*MARGIN)*0.25, (W-2*MARGIN)*0.53]
)
story += sub_header("Evolut Low Risk Trial – 4-Year Kaplan-Meier (SE-TAVR vs SAVR)")
story += img("kaplan_meier.png", 14,
"FIGURE 6 – Cumulative incidence of all-cause mortality or disabling stroke: SE-TAVR (blue, n=730) vs SAVR (red, n=684) "
"in low surgical risk patients. SE-TAVR shows consistently lower event rates from ~6 months onward. "
"4-year absolute risk reduction: 3.4% (10.7% vs 14.1%). HR=0.74 (95% CI 0.54–1.00), log-rank p=0.05. "
"(Source: Forrest et al. J Am Coll Cardiol 2023; reproduced in Harrison's 22E, 2025)")
story += sub_header("TAVI vs SAVR: Head-to-Head Comparison")
story += two_col_table(
["Feature", "TAVI", "SAVR"],
[
["Approach", "Minimally invasive / percutaneous", "Open heart surgery with cardiopulmonary bypass"],
["Periprocedural stroke", "Lower (transfemoral)", "Higher (aortic manipulation, CPB)"],
["Pacemaker requirement", "Higher (5–25%)", "Lower (1–3%)"],
["Paravalvular leak", "Higher (though much lower new-gen)", "Rare"],
["Leaflet thrombosis", "Higher", "Lower"],
["Periprocedural AF", "Lower", "Higher"],
["Major bleeding", "Lower", "Higher"],
["Hospital stay", "Significantly shorter (1–3 days)", "5–7 days"],
["Return to activity", "Faster (days to weeks)", "Weeks to months"],
["Long-term durability", "Promising at 5–10 yrs; under study", "Well established (20+ yr data)"],
["Preferred age", "Age > 65–80 (especially > 80)", "Age < 65 / life expectancy > 20 yrs"],
["Re-intervention options", "Redo TAVI (ViV) or TAVI explant", "Redo SAVR or TAVI"],
],
col_widths=[(W-2*MARGIN)*0.3, (W-2*MARGIN)*0.35, (W-2*MARGIN)*0.35]
)
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 9 – POST-PROCEDURAL MANAGEMENT
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Post-Procedural Management", 9)
story += sub_header("Immediate Post-Procedure Care (First 24–72 Hours)")
story += [
bullet("<b>Setting:</b> CCU or monitored HDU"),
bullet("<b>Continuous ECG monitoring</b> for minimum 48–72 hours (conduction disturbance, new CHB)"),
bullet("<b>Invasive BP monitoring</b> ≥ 2 hours post-procedure; watch for hypotension"),
bullet("<b>Hypotension protocol:</b> First exclude tamponade and access-site bleeding → then IV fluids/vasopressors"),
bullet("<b>Blood gas monitoring:</b> K⁺ level (pacing threshold affected by hypokalaemia), oxygenation"),
bullet("Temporary pacing wire: retain until conduction stability confirmed; test threshold daily"),
bullet("<b>Echocardiogram</b> at 24–48 hours: gradient, PVL, LV function, effusion"),
bullet("<b>Early mobilisation:</b> most TF-TAVI patients ambulant day 1–2"),
spacer(6),
]
story += sub_header("Antithrombotic Therapy Post-TAVI")
story += two_col_table(
["Clinical Scenario", "Recommended Regimen", "Duration"],
[
["No indication for anticoagulation (standard)", "Aspirin 75–100 mg monotherapy", "3 months, then lifelong aspirin"],
["DAPT (aspirin + clopidogrel)", "No longer preferred over aspirin monotherapy – similar outcomes with more bleeding (POPULAR-TAVI trial)", "Avoid routine use"],
["AF or other anticoagulation indication", "Therapeutic anticoagulation (NOAC preferred over warfarin); aspirin can be added", "Indefinite"],
["Leaflet thrombosis (HALT)", "Anticoagulation (warfarin INR 2–3 or DOAC)", "Until resolution on CT/echo (usually 3–6 months)"],
["Valve-in-Valve TAVI", "Anticoagulation for 3 months (higher thrombosis risk)", "3 months minimum"],
],
col_widths=[(W-2*MARGIN)*0.3, (W-2*MARGIN)*0.45, (W-2*MARGIN)*0.25]
)
story += sub_header("Follow-Up Schedule")
story += two_col_table(
["Timepoint", "Assessment"],
[
["Discharge", "Clinical review; ECG; TTE (gradient, PVL, LVEF, pericardial effusion)"],
["30 days", "Clinical review; ECG; TTE; access site check; renal function"],
["3 months", "Review antithrombotic therapy; TTE; ECG"],
["6 months", "TTE (structural valve deterioration screening); clinical review"],
["12 months (and annually thereafter)", "TTE – gradients, leaflet morphology (HALT), PVL, LV remodelling; ECG; clinical review"],
["If elevated gradients on echo", "Consider CT to evaluate HALT vs structural deterioration; review anticoagulation"],
],
col_widths=[(W-2*MARGIN)*0.25, (W-2*MARGIN)*0.75]
)
story += sub_header("Endocarditis Prophylaxis")
story += [
body("Bioprosthetic valve in aortic position – standard antibiotic prophylaxis recommended for all dental "
"procedures and at-risk interventions as per current AHA/ESC infective endocarditis guidelines. "
"High-risk pathogens post-TAVI include <i>Staphylococcus aureus</i>, <i>Enterococcus spp.</i>, and <i>Streptococcus viridans</i>."),
spacer(8),
]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 10 – SPECIAL TOPICS
# ═══════════════════════════════════════════════════════════════════════════════
story += section_header("Special Topics & Future Directions", 10)
story += sub_header("Valve-in-Valve (ViV) TAVI")
story += [
bullet("FDA approved 2015 for degenerated bioprosthetic aortic valves"),
bullet("Sharply increasing volumes as first-generation TAVI valves approach structural deterioration"),
bullet("<b>Key challenges:</b> Smaller effective orifice area (PPM risk); higher coronary obstruction risk; higher leaflet thrombosis"),
bullet("BASILICA technique routinely considered in ViV procedures to prevent coronary obstruction"),
bullet("Meta-analysis (Comentale et al. J Cardiovasc Med 2025, PMID 39976067, >20,000 patients): TAVI-in-failed-bioprosthesis comparable to redo surgery"),
bullet("Redo TAVI (TAVI-in-TAVI) complications: valve embolisation, annular rupture, conversion to open surgery are rare; PPM rate <10%"),
bullet("TAVI explant surgery increasingly discussed for younger patients requiring re-intervention"),
spacer(6),
]
story += sub_header("TAVI in Bicuspid Aortic Valve (BAV)")
story += [
bullet("Excluded from landmark RCTs – off-label use"),
bullet("Challenges: asymmetric calcification, eccentric opening, calcified raphe → eccentric/underexpanded prosthesis"),
bullet("Higher risk of PVL, annular rupture, and pacemaker requirement"),
bullet("Reserve for patients unsuitable for SAVR; avoid if prominent calcified raphe and excessive leaflet calcium"),
spacer(6),
]
story += sub_header("Asymptomatic Severe Aortic Stenosis")
story += [
bullet("FDA approved TAVI for asymptomatic severe AS in 2025 (landmark regulatory expansion)"),
bullet("Randomised trial data expected ~2024–2025 (RECOVERY-2, AVATAR, EVOLVED trials)"),
bullet("Traditional management: watchful waiting until symptoms develop"),
spacer(6),
]
story += sub_header("TAVI and Coronary Interventions")
story += [
bullet("PCI timing: staged pre-TAVI PCI for significant CAD is most common approach"),
bullet("Concomitant PCI + TAVI: feasible in same session for simple lesions"),
bullet("Post-TAVI coronary access can be challenging, especially with SEV supra-annular valves (Evolut)"),
bullet("Left main cannulation success: ~77% for Evolut R/PRO; ~100% for BEV (SAPIEN) – due to intra-annular position"),
bullet("Commissure alignment systems developed to improve coronary access post-SEV"),
bullet("EuroIntervention 2026 State-of-the-Art: technical considerations and clinical scenarios for TAVI + coronary interventions"),
spacer(6),
]
story += sub_header("Embolic Protection Devices (EPD)")
story += [
bullet("Sentinel Cerebral Protection System (Claret Medical): dual filters capture emboli from brachiocephalic + left carotid arteries"),
bullet("Brain lesions on MRI commonly seen post-TAVI (silent emboli) even without clinical stroke"),
bullet("Updated meta-analysis (Braite et al. Catheter Cardiovasc Interv 2025, PMID 41121677): EPD reduces stroke/lesion burden, particularly in high-risk neurological anatomy"),
bullet("Not yet universally adopted; consideration especially in patients with prior stroke, heavy aortic arch calcium"),
spacer(6),
]
story += sub_header("Pacemaker Reduction Strategies")
story += [
bullet("GLUCO-TAVI randomised trial (EuroIntervention, May 2026): investigating whether peri-procedural glucocorticoids reduce PPM requirement – results awaited"),
bullet("High implant techniques (more supra-annular positioning) reduce pacemaker rates with SEV"),
bullet("Cusp overlap technique on fluoroscopy reduces SEV depth and PPM rates"),
spacer(6),
]
story += sub_header("Pure Aortic Insufficiency (AI)")
story += [
bullet("Challenging: no calcification to anchor the valve → higher embolisation risk"),
bullet("Off-label use of existing valves; dedicated devices (e.g. JenaValve, Tendyne) in development/use in selected centres"),
bullet("Higher technical difficulty; reserved for high/prohibitive surgical risk patients"),
spacer(8),
]
# ═══════════════════════════════════════════════════════════════════════════════
# SECTION 11 – QUICK REFERENCE
# ═══════════════════════════════════════════════════════════════════════════════
story += [PageBreak()]
story += section_header("Quick Reference Summary", 11)
story += sub_header("Key Numbers to Remember")
story += two_col_table(
["Parameter", "Value"],
[
["Severe AS: valve area", "< 1.0 cm²"],
["Severe AS: mean gradient", "> 40 mmHg"],
["Severe AS: peak jet velocity", "> 4 m/s"],
["Symptomatic AS 1-year mortality (untreated)", "~50%"],
["TAVI procedural success rate", "> 95%"],
["30-day mortality (TVT registry)", "~2.6%"],
["30-day stroke", "~2.3%"],
["Pacemaker rate (all-comers)", "~10.8%"],
["New-onset dialysis", "< 0.5%"],
["Annual TAVI volume (USA)", "> 70,000/year"],
["Minimum centre volume (CMS)", "20 procedures/year"],
["Rapid pacing rate during deployment", "180 beats/min"],
["Target ACT during TAVI", "> 250–300 seconds"],
["Coronary height threshold (obstruction risk)", "< 10–12 mm from annular plane"],
["Valvuloplasty balloon inflation time", "< 5–10 seconds (minimise ischaemia)"],
["PPM threshold (coronary ostia – TAVI planning)", "Minimum ~5.0–5.5 mm iliofemoral diameter for TF access"],
],
col_widths=[(W-2*MARGIN)*0.6, (W-2*MARGIN)*0.4]
)
story += sub_header("Mnemonics & Memory Aids")
story += [
h3("TAVI Complications – 'PAVE-CS'"),
bullet("<b>P</b> – Paravalvular leak"),
bullet("<b>A</b> – AV conduction block / Pacemaker"),
bullet("<b>V</b> – Vascular access complications"),
bullet("<b>E</b> – Embolic stroke"),
bullet("<b>C</b> – Coronary obstruction"),
bullet("<b>S</b> – Structural complications (annular rupture, valve embolisation, tamponade)"),
spacer(8),
h3("Annular Rupture Risk Factors – 'COSOH'"),
bullet("<b>C</b> – Calcification of LVOT (heavy)"),
bullet("<b>O</b> – Oversizing (valve too large for annulus)"),
bullet("<b>S</b> – Small annulus"),
bullet("<b>O</b> – Operator selection error"),
bullet("<b>H</b> – Heavy post-dilation after initial deployment"),
spacer(8),
]
story += sub_header("References")
refs = [
"Harrison's Principles of Internal Medicine, 22nd Edition (2025). McGraw Hill Medical.",
"Braunwald's Heart Disease: A Textbook of Cardiovascular Medicine, 2-Vol Set. Elsevier.",
"Sabiston Textbook of Surgery: The Biological Basis of Modern Surgical Practice. Elsevier.",
"Goldman-Cecil Medicine, International Edition, 2-Volume Set. Elsevier.",
"Miller's Anesthesia, 2-Volume Set, 10th Edition. Elsevier.",
"Bailey and Love's Short Practice of Surgery, 28th Edition. CRC Press.",
"Otto CM et al. 2020 AHA/ACC Guideline for Management of Patients with Valvular Heart Disease. J Am Coll Cardiol. 2021;77:e25–e197.",
"Forrest JK et al. 4-Year Outcomes of Patients with Aortic Stenosis in the EVOLUT Low Risk Trial. J Am Coll Cardiol. 2023;82:2163.",
"Coisne A, Lancellotti P et al. ACC/AHA and ESC/EACTS Guidelines for Valvular Heart Diseases: JACC Guideline Comparison. JACC. 2023;82(8):721–734.",
"Zou Q, Wei Z, Sun S. Complications in TAVR: A Comprehensive Analysis and Management Strategies. Curr Probl Cardiol. 2024 (PMID 38437930).",
"Braite M et al. Sentinel Cerebral Protection System in TAVI: Updated Meta-Analysis. Catheter Cardiovasc Interv. 2025 (PMID 41121677).",
"Comentale G et al. TAVI vs surgery for failed bioprosthesis: meta-analysis of >20,000 patients. J Cardiovasc Med. 2025 (PMID 39976067).",
"Theofilis P et al. Invasive vs conservative management in IE after TAVI: systematic review. Curr Probl Cardiol. 2026 (PMID 41529748).",
"Dalby M et al. Complications of transcatheter aortic valve implantation: avoidance and management. EuroIntervention.",
"Lee GS, Tang G et al. The current state of redo TAVR and limitations. Ann Cardiothorac Surg. 2025;14(2):98–111.",
"Aquino Bruno H et al. TAVI and coronary interventions: indications, technical considerations, and clinical scenarios. EuroIntervention. 2026.",
"Fuertes-Kenneally L et al. GLUCO-TAVI randomised trial. EuroIntervention. 2026.",
"J Clin Med 2025;14(5):1651 – Access options for transcatheter aortic valve replacement.",
]
for i, r in enumerate(refs, 1):
story.append(Paragraph(f"{i}. {r}", S("Ref", fontSize=8, leading=12,
fontName="Helvetica", textColor=MID_GREY, spaceAfter=2, leftIndent=14, firstLineIndent=-14)))
story.append(spacer(12))
story.append(hr(TEAL))
story.append(Paragraph(
"This guide was compiled by Orris Medical AI from peer-reviewed textbooks and clinical literature. "
"It is intended as an educational reference only and does not replace clinical judgement, "
"local protocols, or direct patient assessment. Always verify drug dosages and management decisions "
"against current guidelines and institutional standards.",
S("Disclaimer", fontSize=7.5, leading=11, textColor=MID_GREY,
fontName="Helvetica-Oblique", alignment=TA_CENTER, spaceBefore=6)
))
# ── Build ──────────────────────────────────────────────────────────────────────
doc.build(story, onFirstPage=on_first_page, onLaterPages=on_page)
print(f"PDF built: {DOC_PATH}")
cd /home/daytona/workspace/tavi-guide && python3 build_tavi_pdf.py 2>&1
~/tavi-guide/build_tavi_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/tavi-guide/build_tavi_pdf.py'
cd /home/daytona/workspace/tavi-guide && python3 build_tavi_pdf.py 2>&1
~/tavi-guide/build_tavi_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/tavi-guide/build_tavi_pdf.py'
~/tavi-guide/build_tavi_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/tavi-guide/build_tavi_pdf.py'
cd /home/daytona/workspace/tavi-guide && python3 build_tavi_pdf.py 2>&1
cd /home/daytona/workspace/tavi-guide && python3 -c " from pypdf import PdfReader r = PdfReader('TAVI_Comprehensive_Guide.pdf') print(f'Pages: {len(r.pages)}') print(f'File size: {__import__(\"os\").path.getsize(\"TAVI_Comprehensive_Guide.pdf\") / 1024:.1f} KB') print(f'Title: {r.metadata.title}') print(f'Author: {r.metadata.author}') "
TAVI Comprehensive Guide
PDF Document · PDF
| Section | Content |
|---|---|
| Cover page | Navy/teal professional cover with full title and source attribution |
| 1. Background & History | FDA approval timeline from 2002 → 2025; volume statistics |
| 2. Indications & Decision-Making | AHA/ACC 2020 + ESC/EACTS guidelines; decision algorithm diagram; SAVR vs TAVI selection table; contraindications |
| 3. Valve Devices | Side-by-side BEV vs SEV device photos (from Harrison's 22E); feature comparison table; valve sizing principles |
| 4. Pre-Procedural Workup | Heart team composition; all investigations; TAVI vs SAVR anatomical preference factors |
| 5. Access Routes | Transapical vs Transfemoral anatomy diagram; all 6 routes compared in table |
| 6. Procedural Steps | All 10 steps in colour-coded step blocks; 4-step deployment diagram (Goldman-Cecil) |
| 7. Complications | Master complication table; detailed management of vascular injury, stroke, PVL, pacemaker, coronary obstruction, annular rupture, tamponade, leaflet thrombosis |
| 8. Outcomes Data | TVT Registry benchmarks; all landmark trials (PARTNER 1/2/3, Evolut LR); Kaplan-Meier curve (Evolut 4-year data) |
| 9. Post-Procedural Management | ICU care protocol; antithrombotic therapy table; follow-up schedule; endocarditis prophylaxis |
| 10. Special Topics | ViV TAVI; BAV; asymptomatic AS (2025 FDA approval); coronary access post-TAVI; EPDs; GLUCO-TAVI; pure AI |
| 11. Quick Reference | Key numbers; PAVE-CS mnemonic for complications; full 18-source reference list |