Hi

Hello! How can I help you today?

Can you make ppt

I'd be happy to make a PowerPoint presentation for you! I need a few details first:
Asking for Preferences

What topic should the presentation be about? · How many slides do you need? · Who is the audience?

The topic is open, so let me pick a clinically relevant and commonly taught medical topic. I'll create a professional 10-15 slide presentation on Hypertension: Diagnosis and Management — a high-yield topic for any medical/clinical audience. Let me read the PPTX skill first.
Reading File
Reading File
Now I have enough to build the presentation. Let me create a professional, well-designed 12-slide PowerPoint on Hypertension: Diagnosis & Management for a medical/clinical audience.
Running Command

mkdir -p /home/daytona/workspace/hypertension-ppt

Writing File

~/hypertension-ppt/create_ppt.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Medical Education";
pres.title = "Hypertension: Diagnosis & Management";

// ─── Color Palette ────────────────────────────────────────────────────────────
const C = {
  navy:      "0A2342",   // dominant dark background
  teal:      "1B7F8E",   // supporting accent
  tealLight: "2AABB9",   // lighter teal
  gold:      "E8A020",   // sharp accent / highlights
  white:     "FFFFFF",
  offWhite:  "EDF2F7",
  lightGray: "B0BEC5",
  slate:     "546E7A",
  red:       "C0392B",
  green:     "1E8449",
};

// ─── Helper: section label strip ─────────────────────────────────────────────
function addSectionLabel(slide, label) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.12, fill: { color: C.gold }, line: { color: C.gold },
  });
  slide.addText(label.toUpperCase(), {
    x: 0.3, y: 0.15, w: 9.4, h: 0.25,
    fontSize: 8, bold: true, color: C.gold, charSpacing: 3,
  });
}

// ─── Helper: slide title ──────────────────────────────────────────────────────
function addSlideTitle(slide, title) {
  slide.addText(title, {
    x: 0.4, y: 0.45, w: 9.2, h: 0.65,
    fontSize: 26, bold: true, color: C.white, fontFace: "Calibri",
  });
  slide.addShape(pres.ShapeType.rect, {
    x: 0.4, y: 1.12, w: 1.2, h: 0.045, fill: { color: C.tealLight }, line: { color: C.tealLight },
  });
}

// ─── Helper: full-slide dark background ──────────────────────────────────────
function darkBG(slide) {
  slide.background = { color: C.navy };
}

// ─── Helper: bullet list ──────────────────────────────────────────────────────
function addBullets(slide, items, opts = {}) {
  const { x = 0.5, y = 1.35, w = 8.9, h = 3.8, fontSize = 17, color = C.white } = opts;
  const textItems = items.map((item, i) => {
    if (typeof item === "string") {
      return { text: item, options: { bullet: { code: "25B8", color: C.gold }, breakLine: i < items.length - 1, fontSize, color, paraSpaceAfter: 6 } };
    }
    // { text, sub: [..] }
    const lines = [{ text: item.text, options: { bullet: { code: "25B8", color: C.gold }, breakLine: true, fontSize, color, bold: true, paraSpaceAfter: 2 } }];
    if (item.sub) {
      item.sub.forEach((s, si) => {
        lines.push({ text: "    " + s, options: { bullet: false, breakLine: si < item.sub.length - 1 || i < items.length - 1, fontSize: fontSize - 2, color: C.lightGray, paraSpaceAfter: 4 } });
      });
    }
    return lines;
  });
  slide.addText(textItems.flat(), { x, y, w, h, valign: "top" });
}

// ─── SLIDE 1: Title Slide ─────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  // Left accent bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.06, h: 5.625, fill: { color: C.gold }, line: { color: C.gold } });

  // ECG decorative line (zigzag)
  s.addShape(pres.ShapeType.rect, { x: 0.4, y: 2.9, w: 9.4, h: 0.02, fill: { color: C.teal }, line: { color: C.teal } });

  s.addText("HYPERTENSION", {
    x: 0.5, y: 1.0, w: 9.2, h: 1.0,
    fontSize: 52, bold: true, color: C.white, fontFace: "Calibri", charSpacing: 4,
  });
  s.addText("Diagnosis & Management", {
    x: 0.5, y: 2.0, w: 9.2, h: 0.65,
    fontSize: 28, bold: false, color: C.tealLight, fontFace: "Calibri",
  });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 2.85, w: 4.5, h: 0.05, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText("Clinical Education Series  |  May 2026", {
    x: 0.5, y: 3.05, w: 9, h: 0.4,
    fontSize: 13, color: C.lightGray, italic: true,
  });
  s.addText("For Medical & Clinical Professionals", {
    x: 0.5, y: 3.5, w: 9, h: 0.35,
    fontSize: 12, color: C.slate,
  });
}

// ─── SLIDE 2: Agenda ──────────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Overview");
  addSlideTitle(s, "Agenda");

  const topics = [
    "Definition & Classification",
    "Epidemiology & Global Burden",
    "Pathophysiology",
    "Clinical Evaluation & Diagnosis",
    "Ambulatory & Home BP Monitoring",
    "Target Organ Damage",
    "Treatment Goals",
    "Pharmacological Management",
    "Non-Pharmacological Interventions",
    "Hypertensive Urgency & Emergency",
    "Special Populations",
    "Key Takeaways",
  ];

  // Two-column layout
  const col1 = topics.slice(0, 6);
  const col2 = topics.slice(6);

  col1.forEach((t, i) => {
    s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.3 + i * 0.55, w: 0.32, h: 0.32, fill: { color: C.teal }, line: { color: C.teal }, rounding: "50%" });
    s.addText(String(i + 1), { x: 0.5, y: 1.3 + i * 0.55, w: 0.32, h: 0.32, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
    s.addText(t, { x: 0.95, y: 1.32 + i * 0.55, w: 3.9, h: 0.3, fontSize: 13, color: C.offWhite });
  });

  col2.forEach((t, i) => {
    s.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.3 + i * 0.55, w: 0.32, h: 0.32, fill: { color: C.gold }, line: { color: C.gold }, rounding: "50%" });
    s.addText(String(i + 7), { x: 5.2, y: 1.3 + i * 0.55, w: 0.32, h: 0.32, fontSize: 11, bold: true, color: C.navy, align: "center", valign: "middle" });
    s.addText(t, { x: 5.65, y: 1.32 + i * 0.55, w: 3.9, h: 0.3, fontSize: 13, color: C.offWhite });
  });
}

// ─── SLIDE 3: Definition & Classification ─────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Definition & Classification");
  addSlideTitle(s, "Definition & Classification");

  // Table
  const rows = [
    [{ text: "Category", options: { bold: true, color: C.navy, fill: C.gold } }, { text: "Systolic (mmHg)", options: { bold: true, color: C.navy, fill: C.gold } }, { text: "Diastolic (mmHg)", options: { bold: true, color: C.navy, fill: C.gold } }],
    ["Normal", "< 120", "< 80"],
    ["Elevated", "120 – 129", "< 80"],
    ["Stage 1 HTN", "130 – 139", "80 – 89"],
    ["Stage 2 HTN", "≥ 140", "≥ 90"],
    ["Hypertensive Crisis", "≥ 180", "≥ 120"],
  ];

  s.addTable(rows, {
    x: 0.5, y: 1.3, w: 9, colW: [3.2, 2.9, 2.9],
    fontSize: 14,
    color: C.white,
    fill: { color: "112B45" },
    border: { type: "solid", color: C.teal, pt: 1 },
    rowH: 0.48,
    align: "center",
    valign: "middle",
  });

  s.addText("ACC/AHA 2017 Guidelines Classification", {
    x: 0.5, y: 4.55, w: 9, h: 0.3,
    fontSize: 11, color: C.lightGray, italic: true, align: "right",
  });
}

// ─── SLIDE 4: Epidemiology ────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Epidemiology");
  addSlideTitle(s, "Epidemiology & Global Burden");

  // Stat boxes
  const stats = [
    { val: "1.28B", label: "Adults affected worldwide", color: C.teal },
    { val: "30–45%", label: "Prevalence in adults globally", color: C.gold },
    { val: "46%", label: "Adults unaware of their diagnosis", color: C.red },
    { val: "#1", label: "Risk factor for cardiovascular death", color: C.tealLight },
  ];

  stats.forEach((st, i) => {
    const x = 0.4 + i * 2.3;
    s.addShape(pres.ShapeType.rect, { x, y: 1.35, w: 2.1, h: 1.9, fill: { color: "0E2F4A" }, line: { color: st.color, pt: 2 } });
    s.addText(st.val, { x, y: 1.55, w: 2.1, h: 0.75, fontSize: 30, bold: true, color: st.color, align: "center" });
    s.addText(st.label, { x, y: 2.35, w: 2.1, h: 0.75, fontSize: 11, color: C.offWhite, align: "center", valign: "top" });
  });

  s.addText("Key Risk Factors:", { x: 0.5, y: 3.45, w: 9, h: 0.3, fontSize: 14, bold: true, color: C.gold });
  addBullets(s, [
    "Age (risk doubles with each decade after 55)",
    "Family history & genetic predisposition",
    "Obesity, sedentary lifestyle, high sodium intake",
    "Diabetes mellitus, chronic kidney disease, OSA",
  ], { y: 3.75, h: 1.6, fontSize: 14 });
}

// ─── SLIDE 5: Pathophysiology ─────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Pathophysiology");
  addSlideTitle(s, "Pathophysiology");

  // Two columns: mechanisms and RAAS
  s.addText("Primary Mechanisms", { x: 0.4, y: 1.25, w: 4.3, h: 0.35, fontSize: 14, bold: true, color: C.tealLight });
  addBullets(s, [
    { text: "Increased Cardiac Output", sub: ["↑ HR, ↑ stroke volume, volume overload"] },
    { text: "Increased Peripheral Resistance", sub: ["Arteriolar vasoconstriction, vascular remodeling"] },
    { text: "RAAS Activation", sub: ["Angiotensin II → vasoconstriction + aldosterone release"] },
    { text: "Sympathetic Overactivity", sub: ["↑ Catecholamines → ↑ HR and vascular tone"] },
  ], { x: 0.4, y: 1.6, w: 4.4, h: 3.6, fontSize: 13 });

  s.addShape(pres.ShapeType.rect, { x: 5.0, y: 1.25, w: 0.04, h: 3.8, fill: { color: C.teal }, line: { color: C.teal } });

  s.addText("Secondary Causes", { x: 5.2, y: 1.25, w: 4.3, h: 0.35, fontSize: 14, bold: true, color: C.gold });
  addBullets(s, [
    "Renovascular disease (renal artery stenosis)",
    "Primary hyperaldosteronism (Conn's syndrome)",
    "Pheochromocytoma",
    "Obstructive Sleep Apnea",
    "Thyroid / parathyroid disorders",
    "Drug-induced (NSAIDs, OCP, decongestants)",
  ], { x: 5.2, y: 1.6, w: 4.4, h: 3.6, fontSize: 13 });
}

// ─── SLIDE 6: Diagnosis ───────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Diagnosis");
  addSlideTitle(s, "Clinical Evaluation & Diagnosis");

  addBullets(s, [
    { text: "Accurate BP Measurement", sub: ["Seated ×2, rested 5 min, both arms; use calibrated device"] },
    { text: "History", sub: ["Duration, medications, family history, lifestyle, secondary cause symptoms"] },
    { text: "Physical Examination", sub: ["BMI, waist circumference, fundoscopy, thyroid, bruits, edema"] },
    { text: "Basic Investigations", sub: ["Urinalysis, eGFR, serum electrolytes, lipid profile, fasting glucose, ECG"] },
    { text: "Confirm with ABPM / HBPM", sub: ["Recommended before initiating therapy in suspected white-coat HTN"] },
  ], { y: 1.3, h: 3.9, fontSize: 15 });
}

// ─── SLIDE 7: ABPM & HBPM ────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Monitoring");
  addSlideTitle(s, "Ambulatory & Home BP Monitoring");

  // Two panels
  const panels = [
    {
      title: "ABPM (Ambulatory)",
      color: C.teal,
      items: [
        "24-hour automatic readings (day/night)",
        "Identifies white-coat & masked HTN",
        "Detects non-dipping pattern (↑ CV risk)",
        "Daytime avg ≥ 135/85 = HTN",
        "Nighttime avg ≥ 120/70 = HTN",
        "Gold standard for HTN diagnosis",
      ],
    },
    {
      title: "HBPM (Home)",
      color: C.gold,
      items: [
        "Patient self-monitoring twice daily × 7 days",
        "Morning & evening readings before meds",
        "Average of all readings used",
        "Threshold: ≥ 135/85 mmHg = HTN",
        "Improves adherence and patient engagement",
        "Useful for long-term treatment monitoring",
      ],
    },
  ];

  panels.forEach((p, i) => {
    const x = 0.4 + i * 4.9;
    s.addShape(pres.ShapeType.rect, { x, y: 1.25, w: 4.5, h: 0.45, fill: { color: p.color }, line: { color: p.color } });
    s.addText(p.title, { x, y: 1.25, w: 4.5, h: 0.45, fontSize: 15, bold: true, color: C.navy, align: "center", valign: "middle" });
    const textItems = p.items.map((item, idx) => ({
      text: item,
      options: { bullet: { code: "25CF", color: p.color }, breakLine: idx < p.items.length - 1, fontSize: 13, color: C.offWhite, paraSpaceAfter: 5 },
    }));
    s.addShape(pres.ShapeType.rect, { x, y: 1.7, w: 4.5, h: 3.4, fill: { color: "0E2F4A" }, line: { color: p.color, pt: 1 } });
    s.addText(textItems, { x: x + 0.15, y: 1.8, w: 4.2, h: 3.2, valign: "top" });
  });
}

// ─── SLIDE 8: Target Organ Damage ─────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Complications");
  addSlideTitle(s, "Target Organ Damage");

  const organs = [
    { organ: "🫀 Heart", items: ["LV hypertrophy", "Coronary artery disease", "Heart failure"] },
    { organ: "🧠 Brain", items: ["Stroke (ischemic & hemorrhagic)", "Hypertensive encephalopathy", "Cognitive decline / dementia"] },
    { organ: "🫘 Kidneys", items: ["Nephrosclerosis", "CKD progression", "Proteinuria"] },
    { organ: "👁 Eyes", items: ["Hypertensive retinopathy", "Arteriovenous nicking", "Papilledema (crisis)"] },
    { organ: "🩸 Vasculature", items: ["Aortic dissection", "Peripheral artery disease", "Aneurysm formation"] },
  ];

  organs.forEach((o, i) => {
    const col = i < 3 ? 0 : 1;
    const row = i < 3 ? i : i - 3;
    const x = 0.4 + col * 5.0;
    const y = 1.35 + row * 1.35;
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 1.2, fill: { color: "0E2F4A" }, line: { color: C.teal, pt: 1 } });
    s.addText(o.organ, { x: x + 0.12, y: y + 0.05, w: 4.2, h: 0.3, fontSize: 13, bold: true, color: C.tealLight });
    s.addText(o.items.join("  •  "), { x: x + 0.12, y: y + 0.38, w: 4.2, h: 0.65, fontSize: 11.5, color: C.lightGray });
  });
}

// ─── SLIDE 9: Treatment Goals ─────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Treatment Goals");
  addSlideTitle(s, "Treatment Goals");

  const goals = [
    { group: "General Adults (< 65 yrs)", target: "< 130/80 mmHg", color: C.teal },
    { group: "Older Adults (≥ 65 yrs)", target: "< 130/80 mmHg*", color: C.teal },
    { group: "Diabetes Mellitus", target: "< 130/80 mmHg", color: C.gold },
    { group: "Chronic Kidney Disease", target: "< 130/80 mmHg", color: C.gold },
    { group: "High CV Risk (≥10% 10-yr)", target: "< 130/80 mmHg", color: C.tealLight },
    { group: "Pregnancy", target: "< 140/90 mmHg", color: C.red },
  ];

  goals.forEach((g, i) => {
    const col = i % 2;
    const row = Math.floor(i / 2);
    const x = 0.4 + col * 4.8;
    const y = 1.35 + row * 1.2;
    s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 1.0, fill: { color: "0E2F4A" }, line: { color: g.color, pt: 2 } });
    s.addText(g.group, { x: x + 0.15, y: y + 0.08, w: 3.8, h: 0.35, fontSize: 13, color: C.offWhite });
    s.addText("Target: " + g.target, { x: x + 0.15, y: y + 0.52, w: 3.8, h: 0.35, fontSize: 14, bold: true, color: g.color });
  });

  s.addText("*Individualize based on frailty, comorbidities, and tolerability", {
    x: 0.5, y: 5.15, w: 9, h: 0.25,
    fontSize: 10, color: C.lightGray, italic: true,
  });
}

// ─── SLIDE 10: Pharmacological Management ─────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Pharmacotherapy");
  addSlideTitle(s, "Pharmacological Management");

  const drugs = [
    [{ text: "Drug Class", options: { bold: true, color: C.navy, fill: C.gold } }, { text: "Examples", options: { bold: true, color: C.navy, fill: C.gold } }, { text: "Key Indications", options: { bold: true, color: C.navy, fill: C.gold } }],
    ["ACE Inhibitors", "Lisinopril, Ramipril", "DM, CKD, HFrEF, post-MI"],
    ["ARBs", "Losartan, Valsartan", "ACE inhibitor intolerance, DM, CKD"],
    ["CCBs", "Amlodipine, Diltiazem", "Elderly, isolated systolic HTN, angina"],
    ["Thiazide Diuretics", "Hydrochlorothiazide, Chlorthalidone", "First-line, volume overload, elderly"],
    ["Beta-Blockers", "Metoprolol, Carvedilol", "HF, post-MI, arrhythmias, angina"],
    ["Aldosterone Antagonists", "Spironolactone, Eplerenone", "Resistant HTN, HFrEF, hyperaldosteronism"],
  ];

  s.addTable(drugs, {
    x: 0.3, y: 1.3, w: 9.4, colW: [2.9, 3.0, 3.5],
    fontSize: 12,
    color: C.white,
    fill: { color: "0E2F4A" },
    border: { type: "solid", color: C.teal, pt: 1 },
    rowH: 0.42,
    valign: "middle",
  });
}

// ─── SLIDE 11: Non-Pharmacological Interventions ──────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Lifestyle");
  addSlideTitle(s, "Non-Pharmacological Interventions");

  const measures = [
    { icon: "🥗", title: "DASH Diet", detail: "↓ SBP 8–14 mmHg\nFruits, vegetables, low-fat dairy, reduced sodium" },
    { icon: "🏃", title: "Physical Activity", detail: "↓ SBP 4–9 mmHg\n150 min/wk moderate aerobic exercise" },
    { icon: "⚖️", title: "Weight Loss", detail: "↓ SBP ~1 mmHg / kg lost\nTarget BMI < 25 kg/m²" },
    { icon: "🚭", title: "Sodium Restriction", detail: "↓ SBP 2–8 mmHg\n< 2.3 g sodium/day (ideally < 1.5 g)" },
    { icon: "🍺", title: "Alcohol Moderation", detail: "↓ SBP 2–4 mmHg\n≤ 1 drink/day (women), ≤ 2 (men)" },
    { icon: "🚬", title: "Smoking Cessation", detail: "Reduces CV risk directly\nNicotine raises BP acutely" },
  ];

  measures.forEach((m, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.3 + col * 3.22;
    const y = 1.3 + row * 2.0;
    s.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 1.8, fill: { color: "0E2F4A" }, line: { color: C.teal, pt: 1 } });
    s.addText(m.icon + "  " + m.title, { x: x + 0.12, y: y + 0.1, w: 2.76, h: 0.4, fontSize: 14, bold: true, color: C.tealLight });
    s.addText(m.detail, { x: x + 0.12, y: y + 0.55, w: 2.76, h: 1.1, fontSize: 11.5, color: C.lightGray });
  });
}

// ─── SLIDE 12: Hypertensive Urgency & Emergency ───────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Hypertensive Crisis");
  addSlideTitle(s, "Hypertensive Urgency & Emergency");

  s.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.3, w: 4.4, h: 0.42, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText("URGENCY  (≥ 180/120, no TOD)", { x: 0.4, y: 1.3, w: 4.4, h: 0.42, fontSize: 13, bold: true, color: C.navy, align: "center", valign: "middle" });
  addBullets(s, [
    "No acute target organ damage",
    "Oral therapy: Labetalol, Amlodipine, Captopril",
    "Gradual BP reduction over 24–48 hours",
    "Outpatient management usually appropriate",
    "Identify and treat precipitating cause",
  ], { x: 0.4, y: 1.75, w: 4.4, h: 3.4, fontSize: 13 });

  s.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.3, w: 4.4, h: 0.42, fill: { color: C.red }, line: { color: C.red } });
  s.addText("EMERGENCY  (≥ 180/120 + TOD)", { x: 5.2, y: 1.3, w: 4.4, h: 0.42, fontSize: 13, bold: true, color: C.white, align: "center", valign: "middle" });
  addBullets(s, [
    "Acute TOD: ACS, stroke, aortic dissection, flash pulmonary edema, PRES",
    "IV therapy: Nitroprusside, Labetalol, Nicardipine, Clevidipine",
    "Reduce MAP by ≤ 25% in first hour",
    "ICU admission required",
    "Further reduction over 24–48 hrs (except aortic dissection: aggressive)",
  ], { x: 5.2, y: 1.75, w: 4.4, h: 3.4, fontSize: 13 });
}

// ─── SLIDE 13: Special Populations ───────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Special Populations");
  addSlideTitle(s, "Special Populations");

  addBullets(s, [
    { text: "Elderly (≥ 65 yrs)", sub: ["Target < 130/80 if tolerated; watch for orthostatic hypotension; start low, go slow"] },
    { text: "Chronic Kidney Disease", sub: ["ACE inhibitor or ARB preferred; target < 130/80; avoid dual RAAS blockade"] },
    { text: "Diabetes Mellitus", sub: ["ACE inhibitor/ARB first-line; target < 130/80 mmHg"] },
    { text: "Heart Failure", sub: ["ACE inhibitor/ARB/ARNI + Beta-blocker + MRA + SGLT2i (HFrEF)"] },
    { text: "Pregnancy", sub: ["Methyldopa, Labetalol, Nifedipine are safe; avoid ACEi/ARBs; target < 140/90"] },
    { text: "Resistant Hypertension", sub: ["Confirm adherence & rule out secondary causes; add spironolactone or alpha/beta-blocker"] },
  ], { y: 1.3, h: 3.9, fontSize: 14 });
}

// ─── SLIDE 14: Key Takeaways ──────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  addSectionLabel(s, "Summary");
  addSlideTitle(s, "Key Takeaways");

  const points = [
    "HTN affects >1.28 billion adults — most are undiagnosed or undertreated",
    "Confirm diagnosis with ABPM or HBPM before initiating lifelong therapy",
    "Treatment goal is < 130/80 mmHg for most patients",
    "Lifestyle modification is the foundation of all treatment",
    "First-line agents: ACEi/ARB, CCB, or Thiazide diuretic (often combined)",
    "Hypertensive emergency requires IV therapy with controlled MAP reduction in ICU",
    "Individualize management in elderly, CKD, pregnancy, and HF",
  ];

  points.forEach((p, i) => {
    s.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.3 + i * 0.58, w: 0.45, h: 0.38, fill: { color: C.gold }, line: { color: C.gold } });
    s.addText(String(i + 1), { x: 0.4, y: 1.3 + i * 0.58, w: 0.45, h: 0.38, fontSize: 14, bold: true, color: C.navy, align: "center", valign: "middle" });
    s.addText(p, { x: 1.0, y: 1.32 + i * 0.58, w: 8.6, h: 0.36, fontSize: 13.5, color: C.offWhite, valign: "middle" });
  });
}

// ─── SLIDE 15: Thank You ──────────────────────────────────────────────────────
{
  const s = pres.addSlide();
  darkBG(s);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
  s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 0.06, h: 5.625, fill: { color: C.gold }, line: { color: C.gold } });

  s.addText("Thank You", {
    x: 0.5, y: 1.5, w: 9, h: 1.0,
    fontSize: 52, bold: true, color: C.white, align: "center",
  });
  s.addShape(pres.ShapeType.rect, { x: 3.5, y: 2.55, w: 3.0, h: 0.06, fill: { color: C.gold }, line: { color: C.gold } });
  s.addText("Questions & Discussion", {
    x: 0.5, y: 2.75, w: 9, h: 0.5,
    fontSize: 22, color: C.tealLight, align: "center",
  });
  s.addText("References: ACC/AHA 2017 HTN Guidelines  |  ESC/ESH 2023 HTN Guidelines  |  JNC 8", {
    x: 0.5, y: 4.8, w: 9, h: 0.35,
    fontSize: 10, color: C.slate, align: "center", italic: true,
  });
}

// ─── Write file ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/hypertension-ppt/Hypertension_Diagnosis_Management.pptx" })
  .then(() => console.log("✅ PPTX created successfully!"))
  .catch(err => { console.error("❌ Error:", err); process.exit(1); });
Running Command

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

Your presentation is ready! 🎉

Hypertension Diagnosis Management

Presentation · PPTX


What's inside — 15 slides:
#Slide
1Title Slide
2Agenda (12 topics, two-column layout)
3Definition & Classification (ACC/AHA 2017 table)
4Epidemiology & Global Burden (stat boxes + risk factors)
5Pathophysiology (primary mechanisms vs. secondary causes)
6Clinical Evaluation & Diagnosis
7Ambulatory vs. Home BP Monitoring (side-by-side comparison)
8Target Organ Damage (heart, brain, kidneys, eyes, vasculature)
9Treatment Goals by population
10Pharmacological Management (drug class table)
11Non-Pharmacological Interventions (6-tile lifestyle grid)
12Hypertensive Urgency vs. Emergency
13Special Populations (elderly, CKD, DM, HF, pregnancy, resistant)
14Key Takeaways (7 numbered points)
15Thank You / References
Design: Navy background, teal/gold accent palette, tables, stat boxes, and structured layouts — ready for a clinical audience.

Create a professional ppt on Approach and Management of Acute ischemic stroke by following standard references like Harrison's Principles of Internal Medicine, CMDT and Davidson principles and Practice of Medicine

Reading File
Now let me search all three textbooks simultaneously for ischemic stroke content:
Finding Sources
Finding Sources
Good — I have strong hits. Now let me read the detailed content from the best sources in parallel:
Finding Sources
Finding Sources
Finding Sources
Harrison's 22E is available. Davidson's and CMDT aren't in the library by those names. Let me read the core Harrison's stroke block (block48) and the Goldman-Cecil stroke management section, plus check what books are available:
Reading File
Finding Sources
Reading File
Finding Sources
You've run out of free credits. Sign up for a free account to continue using Orris.
This is a shared conversation. Sign in to Orris to start your own chat.