Make a ppt on the topic of pots pine
POTS syndrome postural orthostatic tachycardia overview symptoms diagnosis treatment 2024
https://www.ncbi.nlm.nih.gov/books/NBK541074
mkdir -p /home/daytona/workspace/pots-syndrome-ppt && ls /home/daytona/workspace/pots-syndrome-ppt
~/pots-syndrome-ppt/pots_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "POTS Syndrome";
pres.subject = "Postural Orthostatic Tachycardia Syndrome";
pres.author = "Orris Medical";
// Color palette: deep navy dominant, teal accent, white text, soft coral for highlights
const NAVY = "0D1B3E";
const TEAL = "00B4D8";
const TEAL_DARK = "0077A8";
const LIGHT_BG = "EAF6FB";
const WHITE = "FFFFFF";
const CORAL = "E05C5C";
const GOLD = "F4A833";
const LIGHT_GRAY = "D9EFF7";
const DARK_TEXT = "1A2B4E";
// Helper: dark slide background
function darkBg(slide) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });
}
// Helper: light slide background
function lightBg(slide) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
}
// Helper: accent bar at top
function accentBar(slide, color = TEAL) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.08, fill: { color }, line: { color } });
}
// Helper: section heading box
function sectionBox(slide, text, x = 0, y = 0.15, w = 10, h = 0.65, bgColor = TEAL_DARK, txtColor = WHITE) {
slide.addShape(pres.ShapeType.rect, { x, y, w, h, fill: { color: bgColor }, line: { color: bgColor } });
slide.addText(text, {
x, y, w, h, fontSize: 20, bold: true, color: txtColor,
align: "center", valign: "middle", margin: 0
});
}
// ──────────────────────────────────────────────────────
// SLIDE 1: Title Slide
// ──────────────────────────────────────────────────────
const s1 = pres.addSlide();
darkBg(s1);
// Decorative accent bar
s1.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.12, fill: { color: TEAL }, line: { color: TEAL } });
s1.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: TEAL }, line: { color: TEAL } });
// Large vertical teal stripe on left
s1.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.3, h: 5.625, fill: { color: TEAL }, line: { color: TEAL } });
// Main title
s1.addText("POTS", {
x: 0.6, y: 0.9, w: 8.8, h: 1.5,
fontSize: 88, bold: true, color: WHITE,
align: "left", valign: "middle", fontFace: "Calibri", charSpacing: 8
});
// Subtitle
s1.addText("Postural Orthostatic Tachycardia Syndrome", {
x: 0.6, y: 2.35, w: 8.8, h: 0.65,
fontSize: 22, bold: false, color: TEAL,
align: "left", valign: "middle", fontFace: "Calibri"
});
// Divider line
s1.addShape(pres.ShapeType.rect, { x: 0.6, y: 3.1, w: 5.5, h: 0.04, fill: { color: TEAL }, line: { color: TEAL } });
// Tagline
s1.addText("Understanding Autonomic Dysfunction", {
x: 0.6, y: 3.2, w: 8.8, h: 0.5,
fontSize: 14, bold: false, color: LIGHT_GRAY,
align: "left", fontFace: "Calibri"
});
// Credit
s1.addText("Source: Bradley & Daroff's Neurology | StatPearls | CMAJ 2022", {
x: 0.6, y: 5.1, w: 9, h: 0.35,
fontSize: 10, color: TEAL, align: "left"
});
// ──────────────────────────────────────────────────────
// SLIDE 2: What is POTS?
// ──────────────────────────────────────────────────────
const s2 = pres.addSlide();
lightBg(s2);
accentBar(s2);
sectionBox(s2, "What is POTS?");
s2.addText("Definition", {
x: 0.4, y: 0.95, w: 9.2, h: 0.4,
fontSize: 14, bold: true, color: TEAL_DARK,
align: "left", fontFace: "Calibri"
});
s2.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.38, w: 9.2, h: 0.04, fill: { color: TEAL }, line: { color: TEAL } });
// Definition text box
s2.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.5, w: 9.2, h: 1.0, fill: { color: TEAL_DARK + "22" }, line: { color: TEAL_DARK }, lineSize: 1 });
s2.addText(
"A common form of autonomic dysregulation characterized by excessive tachycardia upon standing — in the absence of orthostatic hypotension — accompanied by debilitating symptoms of orthostatic intolerance.",
{
x: 0.5, y: 1.55, w: 9.0, h: 0.9,
fontSize: 13, color: DARK_TEXT, align: "left", valign: "middle", fontFace: "Calibri"
}
);
// Key Fact callout
s2.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 2.65, w: 4.3, h: 0.7, fill: { color: NAVY }, line: { color: NAVY }, rectRadius: 0.07 });
s2.addText([
{ text: "1–3 million", options: { bold: true, fontSize: 18, color: GOLD } },
{ text: "\n people affected in the US", options: { fontSize: 12, color: WHITE } }
], { x: 0.5, y: 2.67, w: 4.1, h: 0.65, align: "center", valign: "middle" });
s2.addShape(pres.ShapeType.roundRect, { x: 5.0, y: 2.65, w: 4.5, h: 0.7, fill: { color: NAVY }, line: { color: NAVY }, rectRadius: 0.07 });
s2.addText([
{ text: "5:1", options: { bold: true, fontSize: 18, color: GOLD } },
{ text: "\n Female-to-male ratio", options: { fontSize: 12, color: WHITE } }
], { x: 5.1, y: 2.67, w: 4.3, h: 0.65, align: "center", valign: "middle" });
// Historical note
s2.addText("Historically called: Soldier's Heart · Neurocirculatory Asthenia · Da Costa Syndrome · Mitral Valve Prolapse Syndrome", {
x: 0.4, y: 3.5, w: 9.2, h: 0.5,
fontSize: 11, italic: true, color: TEAL_DARK, align: "left", fontFace: "Calibri"
});
s2.addText("Most common in premenopausal females aged 15–50 years", {
x: 0.4, y: 4.05, w: 9.2, h: 0.4,
fontSize: 12, color: DARK_TEXT, align: "left", fontFace: "Calibri"
});
// ──────────────────────────────────────────────────────
// SLIDE 3: Diagnostic Criteria
// ──────────────────────────────────────────────────────
const s3 = pres.addSlide();
lightBg(s3);
accentBar(s3);
sectionBox(s3, "Diagnostic Criteria");
// 4 criteria boxes
const criteria = [
{ icon: "↑ HR", label: "Heart Rate Criterion", detail: "≥ 30 bpm increase within 10 min of standing (≥ 40 bpm in ages 12–19)\nMeasured by standing test or head-up tilt (HUT)" },
{ icon: "✗ BP↓", label: "No Orthostatic Hypotension", detail: "Absence of significant BP drop\n(< 20/10 mmHg drop required to exclude OH)" },
{ icon: "⏱ 3 mo", label: "Duration ≥ 3 Months", detail: "Chronic, persistent symptoms\nnot explained by dehydration or acute illness" },
{ icon: "⚠", label: "Exclude Other Causes", detail: "Rule out: anemia, hyperthyroidism, pheo,\nmedications, dehydration, prolonged bed rest" },
];
criteria.forEach((c, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.3 + col * 4.85;
const y = 1.0 + row * 2.1;
s3.addShape(pres.ShapeType.roundRect, { x, y, w: 4.4, h: 1.85, fill: { color: NAVY }, line: { color: TEAL }, lineSize: 1.5, rectRadius: 0.1 });
s3.addShape(pres.ShapeType.rect, { x, y, w: 4.4, h: 0.5, fill: { color: TEAL_DARK }, line: { color: TEAL_DARK } });
s3.addText(c.icon, { x: x + 0.1, y: y + 0.05, w: 0.7, h: 0.4, fontSize: 16, bold: true, color: GOLD, align: "center" });
s3.addText(c.label, { x: x + 0.8, y: y + 0.08, w: 3.5, h: 0.35, fontSize: 12, bold: true, color: WHITE, align: "left", valign: "middle" });
s3.addText(c.detail, { x: x + 0.15, y: y + 0.55, w: 4.1, h: 1.2, fontSize: 11, color: LIGHT_GRAY, align: "left", valign: "top", fontFace: "Calibri" });
});
// ──────────────────────────────────────────────────────
// SLIDE 4: Signs & Symptoms
// ──────────────────────────────────────────────────────
const s4 = pres.addSlide();
lightBg(s4);
accentBar(s4);
sectionBox(s4, "Signs & Symptoms");
// Left column: Cardinal symptoms
s4.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.9, w: 4.3, h: 0.4, fill: { color: TEAL_DARK }, line: { color: TEAL_DARK } });
s4.addText("Cardinal Symptoms", { x: 0.3, y: 0.9, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const cardinalSymptoms = [
"Palpitations / racing heart",
"Lightheadedness / dizziness",
"Fatigue and exercise intolerance",
"Brain fog (cognitive impairment)",
"Headache",
"Nausea",
"Near-syncope or syncope",
];
s4.addText(
cardinalSymptoms.map(s => ({ text: s, options: { bullet: { type: "bullet", characterCode: "25CF" }, breakLine: true } })),
{ x: 0.3, y: 1.35, w: 4.3, h: 3.5, fontSize: 12, color: DARK_TEXT, fontFace: "Calibri", valign: "top" }
);
// Right column: Other features
s4.addShape(pres.ShapeType.rect, { x: 5.0, y: 0.9, w: 4.7, h: 0.4, fill: { color: CORAL }, line: { color: CORAL } });
s4.addText("Additional Features", { x: 5.0, y: 0.9, w: 4.7, h: 0.4, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const additionalSymptoms = [
"Tremulousness / shakiness",
"Blurred / tunnel vision",
"Chest discomfort / breathlessness",
"Peripheral acrocyanosis (bluish legs on standing)",
"Anxiety / panic-like episodes",
"GI symptoms: bloating, constipation, diarrhea",
"Sleep disturbances",
"Worsened symptoms pre-menstrually",
];
s4.addText(
additionalSymptoms.map(s => ({ text: s, options: { bullet: { type: "bullet", characterCode: "25CB" }, breakLine: true } })),
{ x: 5.0, y: 1.35, w: 4.7, h: 3.5, fontSize: 11.5, color: DARK_TEXT, fontFace: "Calibri", valign: "top" }
);
// Key note at bottom
s4.addText("Symptoms worsen on standing and rapidly improve on lying supine. Brain fog is often the most disabling symptom.", {
x: 0.3, y: 5.0, w: 9.4, h: 0.45,
fontSize: 10.5, italic: true, color: TEAL_DARK, align: "center"
});
// ──────────────────────────────────────────────────────
// SLIDE 5: Pathophysiology
// ──────────────────────────────────────────────────────
const s5 = pres.addSlide();
darkBg(s5);
accentBar(s5, TEAL);
s5.addText("Pathophysiology", {
x: 0, y: 0.15, w: 10, h: 0.65,
fontSize: 20, bold: true, color: WHITE, align: "center", valign: "middle"
});
// Central concept
s5.addShape(pres.ShapeType.roundRect, { x: 3.5, y: 1.0, w: 3.0, h: 0.75, fill: { color: TEAL }, line: { color: TEAL }, rectRadius: 0.1 });
s5.addText("POTS: Final Common Pathway", { x: 3.5, y: 1.0, w: 3.0, h: 0.75, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle" });
// Pathways as boxes with arrows
const paths = [
{ label: "Neuropathic", detail: "Partial sympathetic denervation → venous pooling in legs/splanchnic bed", x: 0.2, y: 1.9 },
{ label: "Hyperadrenergic", detail: "Excess sympathetic tone → elevated norepinephrine on standing", x: 3.5, y: 1.9 },
{ label: "Hypovolemic", detail: "Reduced plasma volume / RBC mass → reflex tachycardia on standing", x: 6.8, y: 1.9 },
{ label: "Autoimmune", detail: "Autoantibodies vs. adrenergic/muscarinic receptors; post-viral trigger (incl. COVID-19)", x: 0.2, y: 3.35 },
{ label: "Deconditioning", detail: "Cardiovascular deconditioning → impaired cardiac reserve & stroke volume", x: 3.5, y: 3.35 },
{ label: "Genetic", detail: "Norepinephrine transporter deficiency (A453P mutation); Ehlers-Danlos connective tissue laxity", x: 6.8, y: 3.35 },
];
paths.forEach(p => {
s5.addShape(pres.ShapeType.roundRect, { x: p.x, y: p.y, w: 3.0, h: 1.3, fill: { color: "0D2B5E" }, line: { color: TEAL }, lineSize: 1, rectRadius: 0.08 });
s5.addShape(pres.ShapeType.rect, { x: p.x, y: p.y, w: 3.0, h: 0.38, fill: { color: TEAL_DARK }, line: { color: TEAL_DARK } });
s5.addText(p.label, { x: p.x + 0.05, y: p.y, w: 2.9, h: 0.38, fontSize: 12, bold: true, color: WHITE, align: "center", valign: "middle" });
s5.addText(p.detail, { x: p.x + 0.1, y: p.y + 0.42, w: 2.8, h: 0.85, fontSize: 10, color: LIGHT_GRAY, align: "left", valign: "top", fontFace: "Calibri" });
});
// Note at bottom
s5.addText("Pathophysiologic mechanisms overlap and are not mutually exclusive — POTS is a syndrome, not a single disease", {
x: 0.3, y: 4.8, w: 9.4, h: 0.4,
fontSize: 10, italic: true, color: TEAL, align: "center"
});
// ──────────────────────────────────────────────────────
// SLIDE 6: Associated Conditions
// ──────────────────────────────────────────────────────
const s6 = pres.addSlide();
lightBg(s6);
accentBar(s6);
sectionBox(s6, "Associated Conditions & Comorbidities");
const assoc = [
{ name: "Ehlers-Danlos\nSyndrome (hEDS)", pct: "20–30%", color: TEAL_DARK },
{ name: "Migraine", pct: "~40%", color: CORAL },
{ name: "Autoimmune\nDisease", pct: "~15%", color: GOLD },
{ name: "ME/CFS\n(Chronic Fatigue)", pct: "Common", color: "7B5EA7" },
{ name: "Mast Cell\nActivation Syndrome", pct: "Subset", color: "2E8B57" },
{ name: "Long COVID /\nPost-Viral Onset", pct: "Emerging", color: "C05000" },
];
assoc.forEach((a, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.25 + col * 3.25;
const y = 1.0 + row * 2.05;
s6.addShape(pres.ShapeType.roundRect, { x, y, w: 3.0, h: 1.8, fill: { color: WHITE }, line: { color: a.color }, lineSize: 2, rectRadius: 0.12 });
s6.addShape(pres.ShapeType.roundRect, { x, y, w: 3.0, h: 0.5, fill: { color: a.color }, line: { color: a.color }, rectRadius: 0.12 });
s6.addShape(pres.ShapeType.rect, { x, y: y + 0.3, w: 3.0, h: 0.2, fill: { color: a.color }, line: { color: a.color } });
s6.addText(a.name, { x: x + 0.1, y: y + 0.02, w: 2.8, h: 0.5, fontSize: 12, bold: true, color: WHITE, align: "center", valign: "middle" });
s6.addText(a.pct, { x: x + 0.1, y: y + 0.6, w: 2.8, h: 0.9, fontSize: 24, bold: true, color: a.color, align: "center", valign: "middle" });
s6.addText("of POTS patients", { x: x + 0.1, y: y + 1.4, w: 2.8, h: 0.3, fontSize: 10, color: DARK_TEXT, align: "center" });
});
// ──────────────────────────────────────────────────────
// SLIDE 7: Diagnosis & Workup
// ──────────────────────────────────────────────────────
const s7 = pres.addSlide();
lightBg(s7);
accentBar(s7);
sectionBox(s7, "Diagnosis & Workup");
// Left: Diagnostic tests
s7.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.92, w: 4.3, h: 0.4, fill: { color: TEAL_DARK }, line: { color: TEAL_DARK } });
s7.addText("Diagnostic Tests", { x: 0.3, y: 0.92, w: 4.3, h: 0.4, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const diagTests = [
["Standing Test (NASA Lean Test)", "HR ≥ 30 bpm rise within 10 min of standing"],
["Tilt Table Test (HUT)", "Head-up tilt for formal autonomic assessment"],
["24-Hour Holter Monitor", "Documents persistent sinus tachycardia patterns"],
["Plasma Catecholamines", "Elevated standing NE in hyperadrenergic subtype"],
["Blood Volume Studies", "Detect hypovolemia / low RBC mass"],
];
diagTests.forEach(([name, detail], i) => {
const y = 1.42 + i * 0.6;
s7.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 0.05, h: 0.45, fill: { color: TEAL }, line: { color: TEAL } });
s7.addText(name, { x: 0.45, y, w: 4.1, h: 0.25, fontSize: 11.5, bold: true, color: DARK_TEXT, fontFace: "Calibri" });
s7.addText(detail, { x: 0.45, y: y + 0.22, w: 4.1, h: 0.2, fontSize: 10, color: TEAL_DARK, fontFace: "Calibri" });
});
// Right: Labs to exclude
s7.addShape(pres.ShapeType.rect, { x: 5.0, y: 0.92, w: 4.7, h: 0.4, fill: { color: CORAL }, line: { color: CORAL } });
s7.addText("Rule Out Differentials", { x: 5.0, y: 0.92, w: 4.7, h: 0.4, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const ruleOut = [
"CBC: Anemia",
"TSH: Hyperthyroidism",
"BMP: Electrolyte imbalance / dehydration",
"24hr urine catecholamines: Pheochromocytoma",
"Medication review (CCBs, ACE inhibitors, diuretics)",
"ANA, TTG-IgA: Autoimmune / celiac screening",
"ECG: Rule out primary arrhythmias",
];
s7.addText(
ruleOut.map(s => ({ text: s, options: { bullet: true, breakLine: true } })),
{ x: 5.0, y: 1.38, w: 4.7, h: 3.5, fontSize: 11.5, color: DARK_TEXT, fontFace: "Calibri", valign: "top" }
);
// ──────────────────────────────────────────────────────
// SLIDE 8: Treatment — Non-Pharmacological
// ──────────────────────────────────────────────────────
const s8 = pres.addSlide();
lightBg(s8);
accentBar(s8);
sectionBox(s8, "Management — Non-Pharmacological (First Line)");
const nonPharm = [
{
title: "Increased Salt & Fluid Intake",
body: "6–10 g salt/day + 2–3 L fluids/day\nIncreases plasma volume and venous return",
color: TEAL_DARK
},
{
title: "Compression Garments",
body: "Waist-high compression stockings (30–40 mmHg)\nReduces lower-limb venous pooling",
color: CORAL
},
{
title: "Exercise & Reconditioning",
body: "Recumbent / rowing exercise (avoids upright posture initially)\nGradual progression toward upright aerobic activity",
color: GOLD
},
{
title: "Head-of-Bed Elevation",
body: "Elevate bed head 4–6 inches\nActivates renin-angiotensin-aldosterone axis → fluid retention",
color: "7B5EA7"
},
{
title: "Avoid Triggers",
body: "Heat, prolonged standing, large carb-heavy meals, alcohol\nCounter-maneuvers: leg crossing, squatting on symptoms",
color: "2E8B57"
},
{
title: "Patient Education & MDT",
body: "Cardiology, neurology, physiotherapy, psychology\nLifestyle pacing; psychological support for chronic illness",
color: TEAL
},
];
nonPharm.forEach((item, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.2 + col * 3.28;
const y = 1.0 + row * 2.1;
s8.addShape(pres.ShapeType.roundRect, { x, y, w: 3.1, h: 1.9, fill: { color: WHITE }, line: { color: item.color }, lineSize: 1.5, rectRadius: 0.1 });
s8.addShape(pres.ShapeType.roundRect, { x, y, w: 3.1, h: 0.48, fill: { color: item.color }, line: { color: item.color }, rectRadius: 0.1 });
s8.addShape(pres.ShapeType.rect, { x, y: y + 0.3, w: 3.1, h: 0.18, fill: { color: item.color }, line: { color: item.color } });
s8.addText(item.title, { x: x + 0.08, y: y + 0.02, w: 2.95, h: 0.46, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle" });
s8.addText(item.body, { x: x + 0.1, y: y + 0.55, w: 2.9, h: 1.25, fontSize: 10.5, color: DARK_TEXT, align: "left", valign: "top", fontFace: "Calibri" });
});
// ──────────────────────────────────────────────────────
// SLIDE 9: Treatment — Pharmacological
// ──────────────────────────────────────────────────────
const s9 = pres.addSlide();
darkBg(s9);
accentBar(s9, TEAL);
sectionBox(s9, "Management — Pharmacological", 0, 0.15, 10, 0.65, TEAL_DARK, WHITE);
const drugs = [
{
drug: "Fludrocortisone", class: "Mineralocorticoid", mech: "Increases renal sodium & water retention → expands plasma volume", note: "First-line for hypovolemic POTS", color: TEAL
},
{
drug: "Propranolol (low dose)", class: "β-Blocker", mech: "Blunts excessive sympathetic tachycardia; 10–20 mg before activity", note: "Effective for hyperadrenergic subtype", color: CORAL
},
{
drug: "Midodrine", class: "α1-Agonist", mech: "Peripheral vasoconstriction → reduces venous pooling", note: "Avoid at bedtime (supine hypertension risk)", color: GOLD
},
{
drug: "Ivabradine", class: "If-channel Blocker", mech: "Selectively reduces HR without affecting BP or contractility", note: "Useful when β-blockers poorly tolerated", color: "A082D0"
},
{
drug: "Pyridostigmine", class: "AChE Inhibitor", mech: "Enhances cholinergic tone; improves ganglionic neurotransmission", note: "Mild benefit; well tolerated; off-label use", color: "2E8B57"
},
{
drug: "SSRI / SNRIs", class: "Serotonin modulator", mech: "Central sympathetic modulation; also addresses comorbid anxiety/depression", note: "Particularly in post-viral or mixed POTS", color: TEAL_DARK
},
];
drugs.forEach((d, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.18 + col * 3.28;
const y = 1.0 + row * 2.15;
s9.addShape(pres.ShapeType.roundRect, { x, y, w: 3.1, h: 1.95, fill: { color: "0D2B5E" }, line: { color: d.color }, lineSize: 1.5, rectRadius: 0.1 });
s9.addShape(pres.ShapeType.roundRect, { x, y, w: 3.1, h: 0.48, fill: { color: d.color }, line: { color: d.color }, rectRadius: 0.1 });
s9.addShape(pres.ShapeType.rect, { x, y: y + 0.3, w: 3.1, h: 0.18, fill: { color: d.color }, line: { color: d.color } });
s9.addText(`${d.drug}`, { x: x + 0.08, y: y + 0.02, w: 2.94, h: 0.28, fontSize: 12, bold: true, color: WHITE, align: "center", valign: "middle" });
s9.addText(d.class, { x: x + 0.08, y: y + 0.28, w: 2.94, h: 0.2, fontSize: 9.5, color: WHITE, align: "center", valign: "middle", italic: true });
s9.addText(d.mech, { x: x + 0.1, y: y + 0.52, w: 2.9, h: 0.95, fontSize: 10, color: LIGHT_GRAY, align: "left", valign: "top", fontFace: "Calibri" });
s9.addText(`★ ${d.note}`, { x: x + 0.1, y: y + 1.5, w: 2.9, h: 0.38, fontSize: 9.5, bold: true, color: d.color, align: "left", valign: "middle" });
});
// ──────────────────────────────────────────────────────
// SLIDE 10: Prognosis & Special Populations
// ──────────────────────────────────────────────────────
const s10 = pres.addSlide();
lightBg(s10);
accentBar(s10);
sectionBox(s10, "Prognosis & Special Populations");
// Left: Prognosis
s10.addShape(pres.ShapeType.rect, { x: 0.3, y: 0.92, w: 4.5, h: 0.38, fill: { color: TEAL_DARK }, line: { color: TEAL_DARK } });
s10.addText("Prognosis", { x: 0.3, y: 0.92, w: 4.5, h: 0.38, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const prognosisPoints = [
"Most adolescents improve significantly within 1–5 years",
"Adults with post-viral POTS may have prolonged course",
"Early exercise therapy associated with better outcomes",
"No cure — focus on symptom management & quality of life",
"Significant physical, psychological & functional burden",
"Remission possible but relapse during illness / stress is common",
];
s10.addText(
prognosisPoints.map(s => ({ text: s, options: { bullet: true, breakLine: true } })),
{ x: 0.3, y: 1.38, w: 4.5, h: 3.0, fontSize: 11.5, color: DARK_TEXT, fontFace: "Calibri", valign: "top" }
);
// Right: Special populations
s10.addShape(pres.ShapeType.rect, { x: 5.1, y: 0.92, w: 4.6, h: 0.38, fill: { color: CORAL }, line: { color: CORAL } });
s10.addText("Special Populations", { x: 5.1, y: 0.92, w: 4.6, h: 0.38, fontSize: 13, bold: true, color: WHITE, align: "center", valign: "middle" });
const specialPop = [
["Adolescents (12–19)", "HR criterion ≥ 40 bpm; most improve spontaneously"],
["Pregnancy", "Symptoms may worsen; safe options: fluids, salt, compression"],
["Post-COVID POTS", "Rapid rise in incidence since 2020; immune dysregulation suspected"],
["Ehlers-Danlos", "hEDS + POTS: connective tissue laxity impairs venous return"],
["Athletes", "Consider deconditioning-related POTS; exercise is therapeutic"],
];
specialPop.forEach(([title, detail], i) => {
const y = 1.42 + i * 0.6;
s10.addShape(pres.ShapeType.roundRect, { x: 5.1, y, w: 4.6, h: 0.52, fill: { color: WHITE }, line: { color: CORAL }, lineSize: 1, rectRadius: 0.06 });
s10.addText(title, { x: 5.2, y, w: 2.0, h: 0.52, fontSize: 11, bold: true, color: CORAL, align: "left", valign: "middle", fontFace: "Calibri" });
s10.addText(detail, { x: 7.2, y, w: 2.4, h: 0.52, fontSize: 10, color: DARK_TEXT, align: "left", valign: "middle", fontFace: "Calibri" });
});
// ──────────────────────────────────────────────────────
// SLIDE 11: Key Takeaways (Closing Slide)
// ──────────────────────────────────────────────────────
const s11 = pres.addSlide();
darkBg(s11);
s11.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.12, fill: { color: TEAL }, line: { color: TEAL } });
s11.addShape(pres.ShapeType.rect, { x: 0, y: 5.5, w: 10, h: 0.125, fill: { color: TEAL }, line: { color: TEAL } });
s11.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.25, h: 5.625, fill: { color: TEAL }, line: { color: TEAL } });
s11.addText("Key Takeaways", {
x: 0.5, y: 0.18, w: 9.3, h: 0.6,
fontSize: 22, bold: true, color: WHITE, align: "left", fontFace: "Calibri", charSpacing: 3
});
s11.addShape(pres.ShapeType.rect, { x: 0.5, y: 0.82, w: 7, h: 0.04, fill: { color: TEAL }, line: { color: TEAL } });
const takeaways = [
{ num: "1", text: "POTS is defined by ≥ 30 bpm HR rise on standing without orthostatic hypotension, lasting ≥ 3 months." },
{ num: "2", text: "It predominantly affects young women and significantly impairs quality of life." },
{ num: "3", text: "Pathophysiology is heterogeneous — neuropathic, hyperadrenergic, hypovolemic, autoimmune, and deconditioning subtypes overlap." },
{ num: "4", text: "Non-pharmacological first-line: salt/fluid loading, compression, recumbent exercise, avoid triggers." },
{ num: "5", text: "Pharmacological options include fludrocortisone, propranolol, midodrine, and ivabradine tailored to subtype." },
{ num: "6", text: "An interprofessional approach (cardiology, neurology, PT, psychology) gives the best outcomes." },
];
takeaways.forEach((t, i) => {
const y = 1.0 + i * 0.67;
s11.addShape(pres.ShapeType.roundRect, { x: 0.5, y, w: 0.42, h: 0.42, fill: { color: TEAL }, line: { color: TEAL }, rectRadius: 0.05 });
s11.addText(t.num, { x: 0.5, y, w: 0.42, h: 0.42, fontSize: 14, bold: true, color: WHITE, align: "center", valign: "middle" });
s11.addText(t.text, { x: 1.1, y: y + 0.02, w: 8.5, h: 0.4, fontSize: 12, color: LIGHT_GRAY, align: "left", valign: "middle", fontFace: "Calibri" });
});
// Save
pres.writeFile({ fileName: "/home/daytona/workspace/pots-syndrome-ppt/POTS_Syndrome.pptx" })
.then(() => console.log("DONE: /home/daytona/workspace/pots-syndrome-ppt/POTS_Syndrome.pptx"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/pots-syndrome-ppt && node pots_ppt.js
~/pots-syndrome-ppt/pots_ppt.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/pots-syndrome-ppt/pots_ppt.js'
cd /home/daytona/workspace/pots-syndrome-ppt && node pots_ppt.js 2>&1
POTS Syndrome
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title Slide - Bold "POTS" title with full name and tagline |
| 2 | What is POTS? - Definition, 1-3M US patients, 5:1 F:M ratio, historical names |
| 3 | Diagnostic Criteria - 4 criteria boxes: HR rise ≥ 30 bpm, no OH, ≥ 3 months, rule out other causes |
| 4 | Signs & Symptoms - Cardinal symptoms + additional features in two columns |
| 5 | Pathophysiology - 6 mechanism boxes: neuropathic, hyperadrenergic, hypovolemic, autoimmune, deconditioning, genetic |
| 6 | Associated Conditions - hEDS (20-30%), Migraine (40%), Autoimmune (15%), ME/CFS, MCAS, Long COVID |
| 7 | Diagnosis & Workup - Diagnostic tests vs. differentials to exclude |
| 8 | Non-Pharmacological Treatment - 6 first-line strategies |
| 9 | Pharmacological Treatment - 6 drug classes with mechanisms and clinical notes |
| 10 | Prognosis & Special Populations - Adolescents, pregnancy, post-COVID, EDS, athletes |
| 11 | Key Takeaways - 6 numbered summary points |