Dural Av fistula.....why it causes recurrent CVT.......Clinical features and management and gammapheresis.............prepare ppt with imp points do it crisp
"dural arteriovenous fistula" AND "cerebral venous thrombosis"
dural AV fistula causes recurrent cerebral venous thrombosis mechanism plasmapheresis treatment 2024
mkdir -p /home/daytona/workspace/davf-cvt-ppt && ls /home/daytona/workspace/davf…
~/davf-cvt-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Dural AV Fistula & CVT';
// ─── COLOR PALETTE ───────────────────────────────────────────────
const BG_DARK = "0A1628"; // deep navy – title/section slides
const BG_MID = "0D2137"; // mid navy – content slides
const ACCENT1 = "E63946"; // arterial red
const ACCENT2 = "00B4D8"; // venous blue
const ACCENT3 = "FFB703"; // warning amber
const TEXT_MAIN = "E8F0FE"; // near-white
const TEXT_SUB = "9DB8D2"; // muted blue-grey
const WHITE = "FFFFFF";
const DIVIDER = "1A3A5C"; // subtle separator
// ─── HELPERS ─────────────────────────────────────────────────────
function titleSlide(title, subtitle) {
let s = pres.addSlide();
// full-bleed background
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
// left accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: ACCENT1 } });
// title
s.addText(title, {
x: 0.4, y: 1.6, w: 9.2, h: 1.4,
fontSize: 38, bold: true, color: WHITE,
fontFace: "Calibri", align: "center", valign: "middle", margin: 0
});
if (subtitle) {
s.addText(subtitle, {
x: 0.4, y: 3.1, w: 9.2, h: 0.8,
fontSize: 17, color: ACCENT2, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0
});
}
// bottom stripe
s.addShape(pres.ShapeType.rect, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: ACCENT1 } });
return s;
}
function sectionHeader(title, subtitle) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 2.5, w: 10, h: 0.08, fill: { color: ACCENT1 } });
s.addText(title, {
x: 0.5, y: 1.4, w: 9, h: 1, fontSize: 32, bold: true,
color: ACCENT1, fontFace: "Calibri", align: "center", margin: 0
});
if (subtitle) {
s.addText(subtitle, {
x: 0.5, y: 2.75, w: 9, h: 0.9, fontSize: 16,
color: TEXT_SUB, fontFace: "Calibri", align: "center", margin: 0
});
}
return s;
}
function contentSlide(title, bullets, opts = {}) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
// header bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
// title
s.addText(title, {
x: 0.4, y: 0.08, w: 9.2, h: 0.82,
fontSize: 20, bold: true, color: WHITE,
fontFace: "Calibri", valign: "middle", margin: 0
});
// bullet list
const items = bullets.map((b, i) => ({
text: b.text || b,
options: {
bullet: { type: "bullet", characterCode: "25B6" },
color: b.color || TEXT_MAIN,
fontSize: b.size || 15,
bold: b.bold || false,
breakLine: i < bullets.length - 1
}
}));
s.addText(items, {
x: 0.35, y: 1.15, w: 9.3, h: 4.3,
fontFace: "Calibri", valign: "top", margin: 4,
paraSpaceBefore: 6
});
return s;
}
function twoColSlide(title, col1Title, col1Items, col2Title, col2Items, col1Color, col2Color) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText(title, {
x: 0.4, y: 0.08, w: 9.2, h: 0.82,
fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
});
const COL_W = 4.5;
// col1 box
s.addShape(pres.ShapeType.rect, {
x: 0.2, y: 1.1, w: COL_W, h: 4.3,
fill: { color: "0B2033" }, line: { color: col1Color || ACCENT2, pt: 1.5 }
});
s.addText(col1Title, { x: 0.2, y: 1.1, w: COL_W, h: 0.45, fontSize: 14, bold: true, color: col1Color || ACCENT2, fontFace: "Calibri", align: "center", margin: 0 });
const c1 = col1Items.map((b, i) => ({
text: b,
options: { bullet: true, color: TEXT_MAIN, fontSize: 13, breakLine: i < col1Items.length - 1 }
}));
s.addText(c1, { x: 0.3, y: 1.6, w: COL_W - 0.2, h: 3.7, fontFace: "Calibri", valign: "top", margin: 4, paraSpaceBefore: 5 });
// col2 box
s.addShape(pres.ShapeType.rect, {
x: 5.3, y: 1.1, w: COL_W, h: 4.3,
fill: { color: "0B2033" }, line: { color: col2Color || ACCENT3, pt: 1.5 }
});
s.addText(col2Title, { x: 5.3, y: 1.1, w: COL_W, h: 0.45, fontSize: 14, bold: true, color: col2Color || ACCENT3, fontFace: "Calibri", align: "center", margin: 0 });
const c2 = col2Items.map((b, i) => ({
text: b,
options: { bullet: true, color: TEXT_MAIN, fontSize: 13, breakLine: i < col2Items.length - 1 }
}));
s.addText(c2, { x: 5.4, y: 1.6, w: COL_W - 0.2, h: 3.7, fontFace: "Calibri", valign: "top", margin: 4, paraSpaceBefore: 5 });
return s;
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════════
titleSlide(
"Dural Arteriovenous Fistula",
"Recurrent CVT | Clinical Features | Management | Plasmapheresis"
);
// ══════════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS DAVF?
// ══════════════════════════════════════════════════════════════════
contentSlide("What is a Dural AV Fistula?", [
{ text: "Abnormal arteriovenous shunts within the leaflets of the dura mater", bold: true, color: ACCENT2 },
{ text: "Acquired lesions — NOT developmental (unlike brain AVMs)" },
{ text: "Fed by: dural arteries (ECA branches, meningeal branches of vertebral artery)" },
{ text: "Drain to: dural venous sinuses ± cortical veins" },
{ text: "Account for 6% supratentorial and 35% posterior fossa vascular malformations" },
{ text: "Peak incidence: 50–60 years | No gender predilection", color: ACCENT3 },
{ text: "Locations: transverse-sigmoid sinus (most common), cavernous sinus, SSS, tentorial" }
]);
// ══════════════════════════════════════════════════════════════════
// SLIDE 3 — CLASSIFICATION
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Classification Systems (Borden & Cognard)", {
x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
});
// Borden box
const bordeRows = [
["Type", "Drainage", "Risk"],
["I", "Anterograde into dural sinus", "Benign"],
["II", "Sinus + retrograde into cortical veins", "Moderate"],
["III", "Direct retrograde cortical vein drainage", "HIGH – hemorrhage"],
];
s.addTable(bordeRows, {
x: 0.2, y: 1.1, w: 4.6, h: 2.0,
colW: [0.55, 2.85, 1.2],
fontFace: "Calibri", fontSize: 12,
border: { color: DIVIDER, pt: 0.5 },
fill: { color: "0A1A2E" },
color: TEXT_MAIN,
rowH: 0.42,
});
s.addText("Borden Classification", { x: 0.2, y: 1.0, w: 4.6, h: 0.25, fontSize: 11, bold: true, color: ACCENT2, fontFace: "Calibri", margin: 0 });
// Cognard box
const cognardRows = [
["Type", "Drainage", "Risk"],
["I", "Anterograde into sinus", "Benign"],
["IIa", "Sinus + retrograde sinus", "Low"],
["IIb", "Sinus + retrograde cortical vein", "Moderate"],
["III", "Direct cortical vein, no ectasia", "High"],
["IV", "Cortical vein with ectasia (>5 mm)", "Very High"],
["V", "Spinal perimedullary veins", "High"],
];
s.addTable(cognardRows, {
x: 5.1, y: 1.1, w: 4.7, h: 2.8,
colW: [0.65, 2.7, 1.35],
fontFace: "Calibri", fontSize: 12,
border: { color: DIVIDER, pt: 0.5 },
fill: { color: "0A1A2E" },
color: TEXT_MAIN,
rowH: 0.38,
});
s.addText("Cognard Classification", { x: 5.1, y: 1.0, w: 4.7, h: 0.25, fontSize: 11, bold: true, color: ACCENT3, fontFace: "Calibri", margin: 0 });
// Key point
s.addShape(pres.ShapeType.rect, { x: 0.2, y: 3.25, w: 9.6, h: 0.85, fill: { color: "2A0A0E" }, line: { color: ACCENT1, pt: 1.5 } });
s.addText("⚠ Cortical Venous Drainage (CVD) = KEY risk factor for hemorrhage and progressive neurological deficits", {
x: 0.3, y: 3.3, w: 9.4, h: 0.75, fontSize: 13, bold: true, color: ACCENT1, fontFace: "Calibri", valign: "middle", margin: 4
});
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 4 — SECTION HEADER: dAVF → CVT Link
// ══════════════════════════════════════════════════════════════════
sectionHeader("Why Does dAVF Cause Recurrent CVT?", "The Bidirectional Pathogenic Loop");
// ══════════════════════════════════════════════════════════════════
// SLIDE 5 — PATHOGENESIS
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Mechanism: dAVF → Recurrent CVT (Bidirectional Loop)", {
x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 19, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
});
// Arrow flow diagram
const steps = [
{ label: "dAVF Creates\nHigh-Flow Shunt", col: ACCENT1 },
{ label: "Sinus Venous\nHypertension", col: "D62839" },
{ label: "Sinus Wall\nDamage / Stasis", col: ACCENT3 },
{ label: "Thrombosis\n(CVT)", col: ACCENT2 },
];
const boxW = 2.0, boxH = 0.9, gapX = 0.3, startX = 0.3, boxY = 1.35;
steps.forEach((st, i) => {
s.addShape(pres.ShapeType.roundRect, {
x: startX + i * (boxW + gapX), y: boxY, w: boxW, h: boxH,
fill: { color: "0A1A2E" }, line: { color: st.col, pt: 2 }
});
s.addText(st.label, {
x: startX + i * (boxW + gapX), y: boxY, w: boxW, h: boxH,
fontSize: 12, bold: true, color: st.col, fontFace: "Calibri", align: "center", valign: "middle", margin: 0
});
if (i < steps.length - 1) {
s.addText("▶", {
x: startX + (i + 1) * (boxW + gapX) - gapX + 0.02, y: boxY + 0.2, w: gapX, h: 0.5,
fontSize: 18, color: WHITE, align: "center", margin: 0
});
}
});
// Reverse arrow
s.addShape(pres.ShapeType.rect, { x: 0.3, y: 2.5, w: 9.2, h: 0.05, fill: { color: ACCENT2 } });
s.addText("▲ CVT → Venous stasis → Angiogenesis → New dAVF formation (feedback loop!)", {
x: 0.3, y: 2.55, w: 9.2, h: 0.45, fontSize: 12, bold: true, color: ACCENT2, fontFace: "Calibri", align: "center", margin: 0
});
// Key mechanisms list
const mechs = [
{ text: "1. Retrograde venous hypertension impairs cortical venous drainage → turbulent / stagnant flow", bold: false },
{ text: "2. Arterialized pressure in sinuses → endothelial shear stress → thrombosis trigger", bold: false },
{ text: "3. Post-CVT angiogenesis: VEGF / TGF-β released from thrombus → opens pre-existing AV shunts", bold: false },
{ text: "4. Incompletely recanalized sinus retains residual dAVF → perpetuates clot recurrence", bold: true, color: ACCENT3 },
{ text: "5. Thrombophilic states (Factor V Leiden, Protein C/S deficiency) amplify both dAVF and CVT risk", bold: false },
];
const mechItems = mechs.map((m, i) => ({
text: m.text,
options: { color: m.color || TEXT_MAIN, fontSize: 13, bold: m.bold || false, breakLine: i < mechs.length - 1 }
}));
s.addText(mechItems, {
x: 0.3, y: 3.1, w: 9.4, h: 2.4, fontFace: "Calibri", valign: "top", margin: 4, paraSpaceBefore: 5
});
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 6 — CLINICAL FEATURES
// ══════════════════════════════════════════════════════════════════
sectionHeader("Clinical Features", "Presentation Depends on Location & Drainage Pattern");
twoColSlide(
"Clinical Features of dAVF",
"General / Intracranial",
[
"Pulsatile tinnitus (bruit) — most common",
"Headache (often positional / progressive)",
"Papilledema → pseudotumor syndrome",
"Seizures (uncommon, cortical irritation)",
"Cognitive decline / dementia (venous congestion)",
"Subarachnoid or intracerebral hemorrhage",
"Focal neurological deficits",
],
"Location-Specific",
[
"Cavernous sinus: proptosis, chemosis, painful ophthalmoplegia, raised IOP",
"Transverse/sigmoid sinus: pulsatile tinnitus ± otalgia",
"Superior sagittal sinus: seizures, hydrocephalus, confusion",
"Posterior fossa: lower cranial nerve deficits, cerebellar signs",
"Tentorial: HIGH risk — SAH, mass effect",
"Thalamic congestion → reversible dementia (rare)",
],
ACCENT2, ACCENT3
);
// ══════════════════════════════════════════════════════════════════
// SLIDE 7 — CVT-SPECIFIC CLINICAL FEATURES
// ══════════════════════════════════════════════════════════════════
contentSlide("CVT in the Context of dAVF — Clinical Red Flags", [
{ text: "Headache — thunderclap or progressive; most common symptom (>90%)", bold: true, color: ACCENT3 },
{ text: "Focal deficits: contralateral weakness / sensory loss / aphasia" },
{ text: "Seizures (40%) — focal or generalized; more common than in arterial stroke" },
{ text: "Altered consciousness / confusion / encephalopathy" },
{ text: "Papilledema with visual obscurations" },
{ text: "CVT recurrence rate: 1–2%/year generally; HIGHER in dAVF-associated CVT", color: ACCENT1, bold: true },
{ text: "Recurrence risk factors: thrombophilia, male sex, no precipitant, underlying dAVF not treated" },
{ text: "New-onset dAVF reported in ~2.4% of CVT patients at 8-month follow-up (AHA 2024 guidelines)" },
]);
// ══════════════════════════════════════════════════════════════════
// SLIDE 8 — DIAGNOSIS
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Diagnosis", { x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0 });
const diagRows = [
["Modality", "Findings / Role"],
["MRI + MRV", "Sinus occlusion (filling defect); cortical vein thrombus on SWI/GRE; venous infarct"],
["CT Venography", "Rapid screen; 'empty delta sign' in SSS; detects dAVF with CTA"],
["DSA (Angiography)", "GOLD STANDARD — defines feeding arteries, drainage pattern, Cognard/Borden grade"],
["MRA / CTA", "Non-invasive screening; early opacification of venous structures suggests AV shunt"],
["D-Dimer", "Elevated in acute CVT — useful but non-specific"],
["Thrombophilia workup", "Factor V Leiden, Prothrombin mutation, Protein C/S/Antithrombin, APLA screen"],
];
s.addTable(diagRows, {
x: 0.2, y: 1.1, w: 9.6, h: 4.3,
colW: [2.2, 7.4],
fontFace: "Calibri", fontSize: 13,
border: { color: DIVIDER, pt: 0.5 },
fill: { color: "0A1A2E" },
color: TEXT_MAIN,
rowH: 0.56,
});
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 9 — SECTION HEADER: Management
// ══════════════════════════════════════════════════════════════════
sectionHeader("Management", "Acute CVT | Definitive dAVF Treatment");
// ══════════════════════════════════════════════════════════════════
// SLIDE 10 — ACUTE CVT MANAGEMENT
// ══════════════════════════════════════════════════════════════════
contentSlide("Acute CVT Management", [
{ text: "ANTICOAGULATION — cornerstone even with hemorrhagic infarction", bold: true, color: ACCENT2 },
{ text: "Acute: IV Heparin (UFH) or LMWH (subcutaneous)" },
{ text: "Transition to: Warfarin (INR 2–3) — DOACs under study (RE-SPECT CVT, SECRET trials)" },
{ text: "Duration: 3–6 months provoked; 6–12 months unprovoked; indefinite in thrombophilia", color: ACCENT3 },
{ text: "ICP management: acetazolamide, repeat LP in pseudotumor; head elevation" },
{ text: "Seizure prophylaxis: AEDs if cortical involvement / hemorrhagic infarct" },
{ text: "Endovascular thrombectomy / thrombolysis: for deteriorating patients despite anticoagulation" },
{ text: "Decompressive hemicraniectomy: life-saving in malignant cerebral edema" },
{ text: "Treat underlying dAVF: essential to prevent CVT recurrence (see next slide)", bold: true, color: ACCENT1 },
]);
// ══════════════════════════════════════════════════════════════════
// SLIDE 11 — DAVF DEFINITIVE TREATMENT
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Definitive dAVF Treatment", { x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0 });
const txRows = [
["Modality", "Details", "Best For"],
["Endovascular Embolization", "Transarterial (NBCA / Onyx) ± transvenous; obliterates >90% with multimodal approach", "Large, inaccessible dAVFs"],
["Surgical Excision", "Direct ligation/resection of fistula + feeding vessels", "Small, accessible dAVFs; embolization failures"],
["Stereotactic Radiosurgery (SRS)", "20–30 Gy to nidus; obliteration takes 2–3 years; not suitable if cortical vein reflux", "Residual / recurrent; not first-line"],
["Combined (Embolization + Surgery/SRS)", "Sequential debulking → definitive treatment; preferred for complex high-grade fistulas", "Cognard III/IV, Borden II/III"],
["Anticoagulation alone", "Not curative; slows progression; risk: paradoxical venous thrombosis in draining sinus", "Bridge or palliation only"],
];
s.addTable(txRows, {
x: 0.2, y: 1.1, w: 9.6, h: 4.3,
colW: [2.6, 4.4, 2.6],
fontFace: "Calibri", fontSize: 12,
border: { color: DIVIDER, pt: 0.5 },
fill: { color: "0A1A2E" },
color: TEXT_MAIN,
rowH: 0.68,
});
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 12 — SECTION HEADER: Plasmapheresis
// ══════════════════════════════════════════════════════════════════
sectionHeader("Plasmapheresis in dAVF & CVT", "Rationale, Evidence & Protocol");
// ══════════════════════════════════════════════════════════════════
// SLIDE 13 — PLASMAPHERESIS SLIDE
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Plasmapheresis (Plasma Exchange) — Role in CVT/dAVF", {
x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 19, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
});
// Rationale box
s.addShape(pres.ShapeType.rect, { x: 0.2, y: 1.1, w: 4.5, h: 4.2, fill: { color: "0B1D30" }, line: { color: ACCENT2, pt: 1.5 } });
s.addText("RATIONALE", { x: 0.2, y: 1.1, w: 4.5, h: 0.4, fontSize: 13, bold: true, color: ACCENT2, fontFace: "Calibri", align: "center", margin: 0 });
const rationale = [
"Removes pro-thrombotic factors: fibrinogen, antiphospholipid antibodies (APLA), von Willebrand multimers",
"Removes pro-inflammatory cytokines driving endothelial damage",
"Corrects acquired deficiencies: Protein C/S, antithrombin (via FFP replacement)",
"Reduces blood viscosity — improves flow in congested sinuses",
"Targets APLA-associated recurrent CVT — removes pathogenic IgG/IgM",
].map((t, i, arr) => ({ text: t, options: { bullet: true, color: TEXT_MAIN, fontSize: 12, breakLine: i < arr.length - 1 } }));
s.addText(rationale, { x: 0.3, y: 1.55, w: 4.3, h: 3.7, fontFace: "Calibri", valign: "top", margin: 3, paraSpaceBefore: 6 });
// Clinical use box
s.addShape(pres.ShapeType.rect, { x: 5.1, y: 1.1, w: 4.7, h: 4.2, fill: { color: "0B1D30" }, line: { color: ACCENT3, pt: 1.5 } });
s.addText("CLINICAL USE & PROTOCOL", { x: 5.1, y: 1.1, w: 4.7, h: 0.4, fontSize: 13, bold: true, color: ACCENT3, fontFace: "Calibri", align: "center", margin: 0 });
const protocol = [
"Indications: APLA-associated recurrent CVT; catastrophic APS (CAPS) with CVT; refractory CVT with severe thrombophilia",
"Frequency: 5–7 sessions over 10–14 days (1–1.5× plasma volume per session)",
"Replacement fluid: FFP (replenishes coagulation factors) OR 5% albumin",
"NOT a standard guideline recommendation for CVT (AHA 2024) — used adjunctively",
"Best evidence: CAPS protocol — combine PLEX + heparin + steroids ± IVIG",
"Monitor: coagulation profile, calcium (citrate toxicity), BP, allergic reactions",
].map((t, i, arr) => ({ text: t, options: { bullet: true, color: TEXT_MAIN, fontSize: 12, breakLine: i < arr.length - 1 } }));
s.addText(protocol, { x: 5.2, y: 1.55, w: 4.5, h: 3.7, fontFace: "Calibri", valign: "top", margin: 3, paraSpaceBefore: 6 });
}
// ══════════════════════════════════════════════════════════════════
// SLIDE 14 — KEY TAKEAWAYS
// ══════════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: "14243A" } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0.95, w: 10, h: 0.07, fill: { color: ACCENT1 } });
s.addText("Key Takeaways", { x: 0.4, y: 0.08, w: 9.2, h: 0.82, fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0 });
const takes = [
{ icon: "🔴", text: "dAVF and CVT are BIDIRECTIONAL — each can cause and perpetuate the other", color: ACCENT1 },
{ icon: "🔵", text: "Mechanism: venous hypertension → stasis → endothelial injury → thrombosis; post-CVT angiogenesis → new fistula", color: ACCENT2 },
{ icon: "🟡", text: "Cognard III/IV / Borden II/III = high-grade, high hemorrhage risk — treat urgently", color: ACCENT3 },
{ icon: "🟢", text: "Acute CVT: ANTICOAGULATE even with hemorrhagic infarction; address underlying dAVF", color: "4CAF50" },
{ icon: "🔴", text: "dAVF treatment: Endovascular embolization (first-line) ± surgery ± radiosurgery", color: ACCENT1 },
{ icon: "🟡", text: "Plasmapheresis: adjunct for APLA-associated recurrent CVT / CAPS — NOT routine first-line", color: ACCENT3 },
{ icon: "🔵", text: "Long-term follow-up imaging mandatory — new dAVF can form months-years after CVT", color: ACCENT2 },
];
takes.forEach((t, i) => {
s.addShape(pres.ShapeType.roundRect, {
x: 0.2, y: 1.1 + i * 0.62, w: 9.6, h: 0.55,
fill: { color: "0D2137" }, line: { color: t.color, pt: 1 }
});
s.addText(`${t.icon} ${t.text}`, {
x: 0.3, y: 1.1 + i * 0.62, w: 9.4, h: 0.55,
fontSize: 13, color: t.color, fontFace: "Calibri",
bold: false, valign: "middle", margin: 4
});
});
}
// ══════════════════════════════════════════════════════════════════
// SAVE
// ══════════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/davf-cvt-ppt/DAVF_CVT_Presentation.pptx" })
.then(() => console.log("PPT saved successfully."))
.catch(e => console.error("Error:", e));
cd /home/daytona/workspace/davf-cvt-ppt && node create_ppt.js