Hi

Hi! How can I help you today?

Make me a ppt on hypertension

Asking for Preferences
Reading File
Finding Sources
Reading File
Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Running Command

ls -la /home/daytona/workspace/

Running Command

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

Writing File

~/hypertension-ppt/create_ppt.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Hypertension";
pres.author = "Orris Medical";

// ─── COLOR PALETTE ───────────────────────────────────────────────
const C = {
  navy:    "0D2B55",   // dominant dark
  crimson: "C0392B",   // accent (BP red)
  sky:     "2980B9",   // supporting blue
  light:   "EBF5FB",   // pale bg panels
  white:   "FFFFFF",
  offWhite:"F4F6F7",
  text:    "1A2535",
  muted:   "5D6D7E",
};

// ─── HELPER ──────────────────────────────────────────────────────
function addSlideHeader(slide, title, accent) {
  // Full-width top bar
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 0, w: 10, h: 1.1,
    fill: { color: C.navy },
    line: { color: C.navy },
  });
  // Accent stripe
  slide.addShape(pres.shapes.RECTANGLE, {
    x: 0, y: 1.1, w: 10, h: 0.07,
    fill: { color: accent || C.crimson },
    line: { color: accent || C.crimson },
  });
  slide.addText(title, {
    x: 0.4, y: 0.1, w: 9.2, h: 0.9,
    fontSize: 26, bold: true, color: C.white,
    fontFace: "Calibri", valign: "middle", margin: 0,
  });
}

function bullet(text, sub) {
  return sub
    ? { text, options: { bullet: { type: "bullet", indent: 20 }, fontSize: 16, color: C.muted, breakLine: true } }
    : { text, options: { bullet: { type: "bullet" }, fontSize: 18, bold: true, color: C.text, breakLine: true } };
}

// ════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  // Background gradient bands
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:3.5, w:10, h:2.125, fill:{color:"0A2347"}, line:{color:"0A2347"} });

  // Red accent bar
  s.addShape(pres.shapes.RECTANGLE, { x:0.5, y:1.6, w:0.12, h:2.2, fill:{color:C.crimson}, line:{color:C.crimson} });

  // Title
  s.addText("HYPERTENSION", {
    x:0.9, y:1.5, w:8.5, h:1.1,
    fontSize: 52, bold: true, color: C.white, fontFace: "Calibri",
    charSpacing: 4, valign: "middle",
  });
  // Subtitle
  s.addText("A Clinical Overview for Medical Students", {
    x:0.9, y:2.65, w:8, h:0.6,
    fontSize: 20, color: "A9C4E8", fontFace: "Calibri", italic: true,
  });

  // Bottom info strip
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:4.8, w:10, h:0.825, fill:{color:C.crimson}, line:{color:C.crimson} });
  s.addText("Blood Pressure · Cardiovascular Risk · Diagnosis & Management", {
    x:0.4, y:4.85, w:9.2, h:0.7,
    fontSize: 13, color: C.white, fontFace: "Calibri", valign: "middle",
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 2 — DEFINITION & EPIDEMIOLOGY
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Definition & Epidemiology");

  // Left panel
  s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.3, w:4.4, h:3.9, fill:{color:C.white}, line:{color:"D5D8DC"}, shadow:{type:"outer",color:"000000",blur:6,offset:2,angle:135,opacity:0.1} });
  s.addText("DEFINITION", { x:0.5, y:1.4, w:4, h:0.45, fontSize:13, bold:true, color:C.crimson, fontFace:"Calibri", charSpacing:2 });
  s.addText([
    { text: "Sustained elevation of blood pressure", options:{bold:true, breakLine:true} },
    { text: "≥ 130/80 mmHg  (ACC/AHA 2017)\n", options:{breakLine:true} },
    { text: "≥ 140/90 mmHg  (JNC 7 / ESC 2018)\n", options:{breakLine:true} },
    { text: "\nMeasured on ≥ 2 occasions", options:{breakLine:true} },
    { text: "Classified as primary (essential) ~90–95%\nor secondary ~5–10%", options:{} },
  ], { x:0.5, y:1.9, w:4, h:3.1, fontSize:15, color:C.text, fontFace:"Calibri" });

  // Right panel
  s.addShape(pres.shapes.RECTANGLE, { x:5.1, y:1.3, w:4.6, h:3.9, fill:{color:C.white}, line:{color:"D5D8DC"}, shadow:{type:"outer",color:"000000",blur:6,offset:2,angle:135,opacity:0.1} });
  s.addText("GLOBAL BURDEN", { x:5.3, y:1.4, w:4, h:0.45, fontSize:13, bold:true, color:C.sky, fontFace:"Calibri", charSpacing:2 });

  const stats = [
    ["~1.3 billion", "adults affected worldwide"],
    ["30–45%", "of the adult global population"],
    ["#1 modifiable", "risk factor for CV disease"],
    ["< 50%", "patients adequately controlled"],
  ];
  stats.forEach(([val, desc], i) => {
    const y = 1.95 + i * 0.88;
    s.addShape(pres.shapes.RECTANGLE, { x:5.3, y, w:4.1, h:0.72, fill:{color:C.light}, line:{color:"BFD3E6"} });
    s.addText(val, { x:5.45, y:y+0.04, w:1.8, h:0.4, fontSize:18, bold:true, color:C.navy, fontFace:"Calibri", valign:"middle" });
    s.addText(desc, { x:7.2, y:y+0.06, w:2.1, h:0.55, fontSize:13, color:C.muted, fontFace:"Calibri", valign:"middle" });
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 3 — CLASSIFICATION
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Classification of Blood Pressure");

  const rows = [
    ["Category",            "Systolic (mmHg)",  "Diastolic (mmHg)", "Action"],
    ["Normal",              "< 120",             "and  < 80",        "Maintain healthy habits"],
    ["Elevated",            "120–129",           "and  < 80",        "Lifestyle modification"],
    ["Stage 1 HTN",         "130–139",           "or  80–89",        "Lifestyle ± medication"],
    ["Stage 2 HTN",         "≥ 140",             "or  ≥ 90",         "Medication + lifestyle"],
    ["Hypertensive Crisis", "≥ 180",             "and/or  ≥ 120",    "Immediate evaluation"],
  ];

  const colW = [2.6, 2.1, 2.1, 3.2];
  const colX = [0.3, 2.9, 5.0, 7.1];
  const rowColors = ["navy", C.white, "#EBF5FB", "#FDFEFE", "#FDEDEC", "#C0392B"];
  const textColors = [C.white, C.text, C.text, C.text, C.text, C.white];

  rows.forEach((row, ri) => {
    const y = 1.25 + ri * 0.71;
    const bg = ri === 0 ? C.navy : ri === 5 ? C.crimson : (ri % 2 === 0 ? "EBF5FB" : C.white);
    row.forEach((cell, ci) => {
      s.addShape(pres.shapes.RECTANGLE, { x:colX[ci], y, w:colW[ci]-0.05, h:0.68, fill:{color:bg}, line:{color:"D5D8DC"} });
      s.addText(cell, {
        x:colX[ci]+0.08, y:y+0.05, w:colW[ci]-0.18, h:0.58,
        fontSize: ri===0 ? 13 : 14, bold: ri===0, color: textColors[ri],
        fontFace:"Calibri", valign:"middle",
      });
    });
  });

  s.addText("Based on ACC/AHA 2017 Guidelines", {
    x:0.3, y:5.25, w:9, h:0.3, fontSize:11, color:C.muted, italic:true, fontFace:"Calibri",
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 4 — PATHOPHYSIOLOGY
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Pathophysiology");

  const boxes = [
    { x:0.3,  y:1.35, title:"Cardiac Output ↑", body:"Increased heart rate\nIncreased stroke volume\nFluid retention (Na+/H₂O)" },
    { x:3.55, y:1.35, title:"RAAS Activation",  body:"Renin → Angiotensin II\nAldosterone → Na+ retention\nVasoconstriction" },
    { x:6.8,  y:1.35, title:"SNS Activation",   body:"Catecholamines ↑\nVascular tone ↑\nRenal Na+ retention" },
    { x:0.3,  y:3.45, title:"Vascular Remodeling", body:"Endothelial dysfunction\nArterial stiffness ↑\nIncreased SVR" },
    { x:3.55, y:3.45, title:"Secondary Causes", body:"Renal artery stenosis\nPrimary hyperaldosteronism\nPheochromocytoma, OSA" },
    { x:6.8,  y:3.45, title:"Risk Amplifiers",  body:"Obesity, insulin resistance\nHigh salt diet\nAge, genetics, smoking" },
  ];

  boxes.forEach(b => {
    s.addShape(pres.shapes.RECTANGLE, { x:b.x, y:b.y, w:3.1, h:1.85, fill:{color:C.navy}, line:{color:C.sky}, shadow:{type:"outer",color:"000000",blur:8,offset:2,angle:135,opacity:0.15} });
    s.addText(b.title, { x:b.x+0.15, y:b.y+0.12, w:2.8, h:0.4, fontSize:14, bold:true, color:C.crimson, fontFace:"Calibri" });
    s.addText(b.body,  { x:b.x+0.15, y:b.y+0.55, w:2.8, h:1.2, fontSize:13, color:"A9C4E8", fontFace:"Calibri", valign:"top" });
  });

  // Central arrow / label
  s.addShape(pres.shapes.RECTANGLE, { x:3.8, y:2.95, w:2.4, h:0.4, fill:{color:C.crimson}, line:{color:C.crimson} });
  s.addText("↑ BLOOD PRESSURE", { x:3.8, y:2.95, w:2.4, h:0.4, fontSize:13, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 5 — CLINICAL EVALUATION
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Clinical Evaluation & Diagnosis");

  const cols = [
    { x:0.3,  title:"History", color:C.navy, items:["Duration & prior readings","Family history CVD/HTN","Medications (NSAIDs, OCP, steroids)","Symptoms: headache, visual changes","Lifestyle: salt, alcohol, smoking","Review for secondary causes"] },
    { x:3.55, title:"Physical Exam", color:C.sky, items:["BP both arms (use larger reading)","Heart rate, weight, BMI","Fundoscopy: AV nicking, papilloedema","Carotid bruits, renal bruits","Peripheral pulses","Jugular venous pressure"] },
    { x:6.8,  title:"Investigations", color:"1E8449", items:["Urinalysis + urine ACR","Serum creatinine, eGFR, electrolytes","Fasting lipids, glucose, HbA1c","ECG (LVH, arrhythmia)","Renal ultrasound if secondary cause suspected","Aldosterone:renin if resistant HTN"] },
  ];

  cols.forEach(col => {
    s.addShape(pres.shapes.RECTANGLE, { x:col.x, y:1.25, w:3.1, h:4.05, fill:{color:C.white}, line:{color:"D5D8DC"}, shadow:{type:"outer",color:"000000",blur:5,offset:2,angle:135,opacity:0.1} });
    s.addShape(pres.shapes.RECTANGLE, { x:col.x, y:1.25, w:3.1, h:0.42, fill:{color:col.color}, line:{color:col.color} });
    s.addText(col.title, { x:col.x+0.1, y:1.25, w:2.9, h:0.42, fontSize:15, bold:true, color:C.white, fontFace:"Calibri", valign:"middle" });
    const items = col.items.map((t,i) => ({ text: t, options:{ bullet:true, fontSize:13, color:C.text, breakLine: i < col.items.length-1 } }));
    s.addText(items, { x:col.x+0.1, y:1.75, w:2.9, h:3.4, fontFace:"Calibri", valign:"top" });
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 6 — MANAGEMENT
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Management");

  // Lifestyle - left
  s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.25, w:4.5, h:4.05, fill:{color:C.white}, line:{color:"D5D8DC"}, shadow:{type:"outer",color:"000000",blur:5,offset:2,angle:135,opacity:0.1} });
  s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:1.25, w:4.5, h:0.42, fill:{color:C.sky}, line:{color:C.sky} });
  s.addText("Lifestyle Modification", { x:0.45, y:1.25, w:4.2, h:0.42, fontSize:15, bold:true, color:C.white, fontFace:"Calibri", valign:"middle" });
  s.addText([
    { text:"DASH diet (↓ Na+, ↑ K+, fruits, vegetables)", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Sodium restriction: < 2.3 g/day", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Weight loss (−5 mmHg per 5 kg)", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Aerobic exercise ≥ 30 min, 5×/week", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Limit alcohol (≤ 2 drinks/day men, ≤ 1 women)", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Smoking cessation", options:{bullet:true, breakLine:true, fontSize:13} },
    { text:"Stress reduction", options:{bullet:true, fontSize:13} },
  ], { x:0.45, y:1.75, w:4.2, h:3.4, color:C.text, fontFace:"Calibri", valign:"top" });

  // Pharmacology - right
  s.addShape(pres.shapes.RECTANGLE, { x:5.15, y:1.25, w:4.5, h:4.05, fill:{color:C.white}, line:{color:"D5D8DC"}, shadow:{type:"outer",color:"000000",blur:5,offset:2,angle:135,opacity:0.1} });
  s.addShape(pres.shapes.RECTANGLE, { x:5.15, y:1.25, w:4.5, h:0.42, fill:{color:C.crimson}, line:{color:C.crimson} });
  s.addText("Pharmacotherapy", { x:5.3, y:1.25, w:4.2, h:0.42, fontSize:15, bold:true, color:C.white, fontFace:"Calibri", valign:"middle" });

  const drugs = [
    ["Thiazide diuretics", "e.g. chlorthalidone, HCTZ"],
    ["ACE inhibitors", "e.g. ramipril, lisinopril"],
    ["ARBs", "e.g. losartan, valsartan"],
    ["CCBs (dihydropyridine)", "e.g. amlodipine"],
    ["Beta-blockers", "if CAD, HF or tachyarrhythmia"],
  ];
  drugs.forEach(([drug, note], i) => {
    const y = 1.8 + i * 0.66;
    s.addShape(pres.shapes.RECTANGLE, { x:5.25, y, w:4.2, h:0.55, fill:{color: i%2===0 ? C.light : C.white}, line:{color:"D5D8DC"} });
    s.addText(drug,  { x:5.35, y:y+0.04, w:2.1, h:0.47, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri", valign:"middle" });
    s.addText(note,  { x:7.45, y:y+0.04, w:2.0, h:0.47, fontSize:12, color:C.muted, fontFace:"Calibri", valign:"middle" });
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 7 — COMPLICATIONS
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.navy}, line:{color:C.navy} });
  // Lighter lower half
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:2.8, w:10, h:2.825, fill:{color:"0A2347"}, line:{color:"0A2347"} });

  addSlideHeader(s, "Complications of Untreated Hypertension");
  // Override header bg already navy — re-add text in white
  s.addText("COMPLICATIONS OF UNTREATED HYPERTENSION", {
    x:0.4, y:0.1, w:9.2, h:0.9,
    fontSize:22, bold:true, color:C.white, fontFace:"Calibri", valign:"middle", charSpacing:1,
  });

  const complications = [
    { icon:"🧠", label:"Stroke",          detail:"Ischaemic & haemorrhagic\nLeading cause globally" },
    { icon:"❤️",  label:"Coronary Artery\nDisease", detail:"Accelerated atherosclerosis\nMI, angina" },
    { icon:"🫀",  label:"Heart Failure",  detail:"LVH → diastolic dysfunction\n→ systolic failure" },
    { icon:"🫘",  label:"CKD",            detail:"Hypertensive nephrosclerosis\nProteinuria, ESRD" },
    { icon:"👁️",  label:"Retinopathy",   detail:"AV nicking, flame haemorrhages\nPapilloedema in crisis" },
  ];

  complications.forEach((c, i) => {
    const x = 0.3 + i * 1.92;
    s.addShape(pres.shapes.RECTANGLE, { x, y:1.3, w:1.75, h:3.9, fill:{color:"0D2B55"}, line:{color:C.sky}, shadow:{type:"outer",color:"000000",blur:8,offset:3,angle:135,opacity:0.2} });
    s.addShape(pres.shapes.RECTANGLE, { x, y:1.3, w:1.75, h:0.55, fill:{color:C.crimson}, line:{color:C.crimson} });
    s.addText(c.icon, { x:x+0.4, y:1.4, w:0.9, h:0.4, fontSize:20, align:"center" });
    s.addText(c.label, { x:x+0.08, y:1.9, w:1.6, h:0.6, fontSize:13, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" });
    s.addText(c.detail, { x:x+0.08, y:2.6, w:1.6, h:2.4, fontSize:12, color:"A9C4E8", fontFace:"Calibri", align:"center", valign:"top" });
  });
}

// ════════════════════════════════════════════════════════════════
// SLIDE 8 — KEY TAKE-AWAYS
// ════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:10, h:5.625, fill:{color:C.offWhite}, line:{color:C.offWhite} });
  addSlideHeader(s, "Key Take-Aways");

  const points = [
    ["Diagnose accurately", "Confirm on ≥ 2 separate occasions; use validated automated sphygmomanometry or ABPM."],
    ["Lifestyle first",     "Non-pharmacological measures are effective and should accompany any drug therapy."],
    ["Individualise therapy","Choose agents based on comorbidities: ACEi/ARB for DM/CKD, CCB for isolated systolic, β-blocker for HF/CAD."],
    ["Target BP",           "< 130/80 mmHg for most; < 140/90 mmHg minimum. Reassess every 3–6 months."],
    ["Screen for end-organ damage", "ECG, urinalysis, renal function, lipids at baseline and periodically."],
    ["Hypertensive crisis", "SBP ≥ 180 or DBP ≥ 120 requires prompt evaluation; distinguish urgency vs. emergency."],
  ];

  points.forEach(([head, body], i) => {
    const y = 1.3 + i * 0.69;
    const col = i % 2 === 0 ? C.white : C.light;
    s.addShape(pres.shapes.RECTANGLE, { x:0.3, y, w:9.4, h:0.62, fill:{color:col}, line:{color:"D5D8DC"} });
    // Number badge
    s.addShape(pres.shapes.RECTANGLE, { x:0.3, y, w:0.45, h:0.62, fill:{color:C.crimson}, line:{color:C.crimson} });
    s.addText(String(i+1), { x:0.3, y:y+0.07, w:0.45, h:0.48, fontSize:15, bold:true, color:C.white, fontFace:"Calibri", align:"center", valign:"middle" });
    s.addText(head + " — ", { x:0.82, y:y+0.09, w:2.0, h:0.44, fontSize:13, bold:true, color:C.navy, fontFace:"Calibri", valign:"middle" });
    s.addText(body, { x:2.75, y:y+0.09, w:6.8, h:0.44, fontSize:12, color:C.muted, fontFace:"Calibri", valign:"middle" });
  });

  s.addText("Source: Textbook of Family Medicine 9e · ACC/AHA 2017 Hypertension Guidelines", {
    x:0.3, y:5.3, w:9.4, h:0.25, fontSize:10, color:C.muted, italic:true, fontFace:"Calibri",
  });
}

// ─── WRITE ───────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/hypertension-ppt/Hypertension.pptx" })
  .then(() => console.log("Done"))
  .catch(e => { console.error(e); process.exit(1); });
Running Command

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

Running Command

ls -lh /home/daytona/workspace/hypertension-ppt/Hypertension.pptx

Your presentation is ready. Here's what's included:

Hypertension

Presentation · PPTX


8 slides, navy/crimson color scheme designed for medical students:
SlideContent
1Title slide
2Definition & Epidemiology (ACC/AHA 2017, global burden stats)
3BP Classification table (Normal → Hypertensive Crisis)
4Pathophysiology (Cardiac output, RAAS, SNS, vascular remodeling)
5Clinical Evaluation (History, Exam, Investigations — 3 columns)
6Management (Lifestyle modification + Pharmacotherapy side by side)
7Complications (Stroke, CAD, Heart Failure, CKD, Retinopathy)
8Key Take-Aways (6 numbered points with source citation)

Generate me image as well

Generating Image

A detailed medical infographic poster on hypertension showing a human silhouette with highlighted cardiovascular system, blood pressure gauge reading high, classification table from normal to hypertensive crisis, icons representing complications like stroke, heart failure, kidney disease, and retinopathy, with sections on lifestyle modification and drug therapy. Clean clinical style with navy blue and red color scheme.

Here's your hypertension infographic poster:
Hypertension Medical Infographic
The image covers key hypertension concepts — BP classification, cardiovascular complications, and management — in a clean clinical style matching the presentation's navy and red theme. You can use it as a standalone reference or embed it into one of the slides.
This is a shared conversation. Sign in to Orris to start your own chat.