create a PPT file topic is Respiratory distress , add detailed information and do not forget to put main issue , causes , sign and symptoms, investigation , clinical manifestations , investigating criteria , diagnostic tools , treatment and real life cases make this as a medical intern

Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
I now have enough clinical content. Let me search for relevant medical images and then build the presentation.
Searching Images

acute respiratory distress syndrome ARDS chest X-ray bilateral opacities

Searching Images

respiratory distress clinical signs accessory muscle use tachypnea

I have all the clinical content and images I need. Now let me build the comprehensive PowerPoint presentation.
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace does not exist"

Running Command

mkdir -p /home/daytona/workspace/respiratory-distress-ppt

Writing File

~/respiratory-distress-ppt/build.js

const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");

// --- Fetch images ---
const imageUrls = [
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_12a1cb250fa88ebe2207de940afd3ed9bfb5b0060227d83c8998acc2dd75f76b.jpg",  // ARDS CXR
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_2915910772fd3b3980e9b3b5f936042c1168bcc760892c686e0d41ac327e3be5.jpg",  // ARDS progression
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_abe315d8f08a4df03f9ebbbfec8ea5afc483854ff33ae194bd2ad4b5067056fb.jpg",  // Clinical signs
  "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_4d8986f462f78742b780572d802059ef1270c3a82222fef19debb3c7c2dbf9d9.jpg",  // ARDS Berlin CXR
];

console.log("Fetching images...");
let images = [];
try {
  const raw = execSync(
    `node /home/daytona/skills/shared/scripts/fetch_images.js ${imageUrls.map(u => `"${u}"`).join(" ")}`,
    { timeout: 60000 }
  ).toString();
  images = JSON.parse(raw);
  console.log("Images fetched:", images.map(i => i.error || "OK"));
} catch (e) {
  console.log("Image fetch failed:", e.message);
  images = imageUrls.map(() => ({ base64: null, error: "fetch failed" }));
}

// Color palette  — deep navy + crimson accent + white
const NAVY     = "0D1B2A";
const CRIMSON  = "C0392B";
const TEAL     = "1A7A8A";
const WHITE    = "FFFFFF";
const OFFWHITE = "F2F6FA";
const LTGRAY   = "D0D8E0";
const DARKGRAY = "2C3E50";

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author  = "Medical Intern";
pres.title   = "Respiratory Distress — Comprehensive Clinical Review";

// ──────────────────────────────────────────────────
// Helper: add a standard content slide with header bar
// ──────────────────────────────────────────────────
function contentSlide(title, sectionTag) {
  const sl = pres.addSlide();
  // Full background
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: OFFWHITE } });
  // Left accent stripe
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: CRIMSON } });
  // Header bar
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.95, fill: { color: NAVY } });
  // Section tag chip
  sl.addShape(pres.ShapeType.rect, { x: 8.0, y: 0.18, w: 1.78, h: 0.58, fill: { color: CRIMSON }, line: { color: CRIMSON } });
  sl.addText(sectionTag, { x: 8.0, y: 0.18, w: 1.78, h: 0.58, fontSize: 9, bold: true, color: WHITE, align: "center", valign: "middle" });
  // Slide title
  sl.addText(title, { x: 0.35, y: 0.1, w: 7.5, h: 0.78, fontSize: 22, bold: true, color: WHITE, valign: "middle", margin: 0 });
  return sl;
}

// Helper: bullet items array
function bullets(items, opts = {}) {
  return items.map((item, i) => ({
    text: item,
    options: { bullet: { code: "2022" }, fontSize: opts.fontSize || 13, color: opts.color || DARKGRAY, breakLine: i < items.length - 1, bold: opts.bold || false, paraSpaceAfter: 4 }
  }));
}

// Helper: sub-bullet
function subBullets(items, opts = {}) {
  return items.map((item, i) => ({
    text: "  " + item,
    options: { bullet: { code: "25E6" }, fontSize: opts.fontSize || 11.5, color: opts.color || "4A5568", breakLine: i < items.length - 1, paraSpaceAfter: 2 }
  }));
}

// ══════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  // Full dark background
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });
  // Crimson accent band
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 3.6, w: 10, h: 0.12, fill: { color: CRIMSON } });
  // Decorative circle
  sl.addShape(pres.ShapeType.ellipse, { x: 7.0, y: -1.2, w: 4.5, h: 4.5, fill: { color: TEAL }, line: { color: TEAL }, transparency: 75 });

  sl.addText("RESPIRATORY DISTRESS", {
    x: 0.5, y: 0.9, w: 9, h: 1.2,
    fontSize: 40, bold: true, color: WHITE, align: "center", charSpacing: 3
  });
  sl.addText("A Comprehensive Clinical Review", {
    x: 0.5, y: 2.0, w: 9, h: 0.6,
    fontSize: 20, italic: true, color: LTGRAY, align: "center"
  });
  sl.addText("Causes · Signs & Symptoms · Investigations · Diagnosis · Treatment · Real-Life Cases", {
    x: 0.5, y: 2.62, w: 9, h: 0.45,
    fontSize: 12, color: "8BAACC", align: "center"
  });
  sl.addShape(pres.ShapeType.rect, { x: 3.5, y: 3.25, w: 3, h: 0.03, fill: { color: CRIMSON } });
  sl.addText("Presented by: Medical Intern  |  Department of Medicine", {
    x: 0.5, y: 3.85, w: 9, h: 0.4,
    fontSize: 11, color: LTGRAY, align: "center"
  });
  sl.addText("May 2026", {
    x: 0.5, y: 4.25, w: 9, h: 0.35,
    fontSize: 10, color: "8BAACC", align: "center"
  });
}

// ══════════════════════════════════════════════════
// SLIDE 2 — TABLE OF CONTENTS
// ══════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: OFFWHITE } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.95, fill: { color: NAVY } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: TEAL } });
  sl.addText("TABLE OF CONTENTS", { x: 0.35, y: 0.1, w: 9.4, h: 0.78, fontSize: 22, bold: true, color: WHITE, valign: "middle", margin: 0 });

  const sections = [
    ["01", "Overview & Main Issue", "What is Respiratory Distress?"],
    ["02", "Causes & Pathophysiology", "Pulmonary, Cardiac, Neuromuscular & More"],
    ["03", "Signs & Symptoms", "Clinical Presentation & Red Flags"],
    ["04", "Clinical Manifestations", "ARDS, Acute Respiratory Failure & Subtypes"],
    ["05", "Investigations", "Labs, Imaging, ABG & Bedside Tests"],
    ["06", "Diagnostic Criteria", "Berlin Definition · ARDS Severity Grading"],
    ["07", "Diagnostic Tools", "CXR, CT, Echocardiography, Spirometry"],
    ["08", "Treatment", "Oxygen, Ventilation, Pharmacology & ECMO"],
    ["09", "Real-Life Cases", "Three Clinical Scenarios"],
    ["10", "Summary & Key Takeaways", ""],
  ];

  const cols = 2, rows = 5;
  const cw = 4.6, rh = 0.84, sx = 0.35, sy = 1.05;

  sections.forEach(([num, title, sub], idx) => {
    const col = idx % cols;
    const row = Math.floor(idx / cols);
    const bx = sx + col * (cw + 0.2);
    const by = sy + row * rh;

    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: 0.72, fill: { color: WHITE }, line: { color: LTGRAY, pt: 1 }, shadow: { type: "outer", blur: 3, offset: 1, angle: 45, color: "AAAAAA", opacity: 0.2 } });
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: 0.42, h: 0.72, fill: { color: CRIMSON } });
    sl.addText(num, { x: bx, y: by, w: 0.42, h: 0.72, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
    sl.addText(title, { x: bx + 0.48, y: by + 0.05, w: cw - 0.54, h: 0.35, fontSize: 11.5, bold: true, color: NAVY, margin: 0, valign: "top" });
    if (sub) sl.addText(sub, { x: bx + 0.48, y: by + 0.38, w: cw - 0.54, h: 0.28, fontSize: 9, color: "667788", margin: 0, valign: "top" });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 3 — OVERVIEW & MAIN ISSUE
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Overview & Main Issue", "OVERVIEW");

  // Definition box
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.05, w: 9.3, h: 1.05, fill: { color: "EBF4FA" }, line: { color: TEAL, pt: 1.5 } });
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.05, w: 0.08, h: 1.05, fill: { color: TEAL } });
  sl.addText([
    { text: "DEFINITION  ", options: { bold: true, color: TEAL, fontSize: 12 } },
    { text: "Respiratory distress is the physician-recognized combination of a patient's subjective sensation of dyspnea with objective signs of difficulty breathing — including tachypnea, accessory muscle use, nasal flaring, and hypoxemia. It represents a spectrum from mild breathlessness to life-threatening ventilatory failure.", options: { color: DARKGRAY, fontSize: 12 } }
  ], { x: 0.52, y: 1.08, w: 9.05, h: 1.0, valign: "middle", margin: 4 });

  // Main Issue stats
  sl.addText("WHY IT MATTERS", { x: 0.35, y: 2.2, w: 4.4, h: 0.3, fontSize: 11, bold: true, color: CRIMSON, margin: 0 });
  sl.addText([
    { text: "Respiratory distress is the #1 reason for emergency department presentation.\n", options: { bold: true, color: DARKGRAY, fontSize: 12, breakLine: true } },
    ...bullets([
      "Affects ~10% of all ICU admissions worldwide",
      "ARDS alone carries a 35–46% mortality (mild to severe)",
      "Delays in recognition of cause lead to preventable deaths",
      "Requires rapid systematic assessment — every minute counts",
      "Etiology spans pulmonary, cardiac, neuromuscular, metabolic & toxicological origins",
    ])
  ], { x: 0.35, y: 2.5, w: 5.5, h: 2.85, valign: "top", margin: 4 });

  // Spectrum diagram
  sl.addShape(pres.ShapeType.rect, { x: 6.1, y: 2.2, w: 3.55, h: 3.15, fill: { color: WHITE }, line: { color: LTGRAY, pt: 1 } });
  sl.addText("SEVERITY SPECTRUM", { x: 6.1, y: 2.2, w: 3.55, h: 0.35, fontSize: 10, bold: true, color: NAVY, align: "center", valign: "middle" });
  const levels = [
    ["Mild Dyspnea", "E8F4FD", "SpO₂ 94–98%"],
    ["Moderate Distress", "FFF3CD", "SpO₂ 88–93%"],
    ["Severe Distress", "FCE4E4", "SpO₂ < 88%"],
    ["Respiratory Failure", CRIMSON, "Intubation needed"],
  ];
  levels.forEach(([label, color, detail], i) => {
    sl.addShape(pres.ShapeType.rect, { x: 6.2, y: 2.62 + i * 0.63, w: 3.35, h: 0.52, fill: { color }, line: { color: LTGRAY, pt: 0.5 } });
    sl.addText(label, { x: 6.22, y: 2.64 + i * 0.63, w: 1.9, h: 0.48, fontSize: 10.5, bold: true, color: color === CRIMSON ? WHITE : NAVY, valign: "middle", margin: 2 });
    sl.addText(detail, { x: 8.14, y: 2.64 + i * 0.63, w: 1.35, h: 0.48, fontSize: 9.5, color: color === CRIMSON ? WHITE : "556677", valign: "middle", align: "right", margin: 2 });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 4 — CAUSES & PATHOPHYSIOLOGY
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Causes & Pathophysiology", "ETIOLOGY");

  const categories = [
    { title: "PULMONARY", color: TEAL, items: ["Pneumonia (bacterial/viral/fungal)", "Acute Respiratory Distress Syndrome (ARDS)", "Asthma / COPD exacerbation", "Pulmonary embolism", "Pneumothorax", "Pleural effusion"] },
    { title: "CARDIAC", color: "1A6B3A", items: ["Acute decompensated heart failure", "Cardiogenic pulmonary edema", "Myocardial infarction", "Cardiac tamponade", "Arrhythmias"] },
    { title: "UPPER AIRWAY", color: CRIMSON, items: ["Foreign body obstruction", "Angioedema / anaphylaxis", "Epiglottitis", "Croup", "Tracheal compression (goiter/mass)"] },
    { title: "NEUROMUSCULAR", color: "7B3FA0", items: ["Guillain-Barré syndrome", "Myasthenia gravis", "Diaphragmatic paralysis", "Botulism / spinal cord injury"] },
    { title: "METABOLIC / TOXIC", color: "C07A00", items: ["Severe metabolic acidosis (Kussmaul)", "Drug overdose (opioids, benzodiazepines)", "Sepsis-induced ARDS", "Carbon monoxide poisoning"] },
    { title: "NEONATAL / PEDIATRIC", color: "1A5B8A", items: ["Neonatal RDS (surfactant deficiency)", "Transient tachypnea of newborn", "Bronchiolitis (RSV)", "Meconium aspiration"] },
  ];

  const cw = 2.95, rh = 1.9, sx = 0.35, sy = 1.06;
  categories.forEach(({ title, color, items }, idx) => {
    const col = idx % 3, row = Math.floor(idx / 3);
    const bx = sx + col * (cw + 0.18);
    const by = sy + row * rh;

    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: rh - 0.1, fill: { color: WHITE }, line: { color: LTGRAY, pt: 1 } });
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: 0.34, fill: { color } });
    sl.addText(title, { x: bx, y: by, w: cw, h: 0.34, fontSize: 10, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
    sl.addText(bullets(items, { fontSize: 10.5 }), { x: bx + 0.08, y: by + 0.38, w: cw - 0.12, h: rh - 0.52, valign: "top", margin: 2 });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 5 — SIGNS & SYMPTOMS
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Signs & Symptoms", "CLINICAL FEATURES");

  // Left column: Signs
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.05, w: 4.4, h: 0.36, fill: { color: NAVY } });
  sl.addText("⚠  OBJECTIVE SIGNS", { x: 0.35, y: 1.05, w: 4.4, h: 0.36, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });

  const signGroups = [
    { label: "Respiratory", color: TEAL, items: ["Tachypnea (RR > 20 breaths/min)", "Use of accessory muscles (SCM, intercostals)", "Nasal flaring", "Paradoxical abdominal movement (diaphragmatic fatigue)", "Pursed-lip breathing", "Grunting (neonates)", "Stridor or wheeze"] },
    { label: "Cardiovascular", color: "1A6B3A", items: ["Tachycardia", "Hypotension (late sign)", "Pulsus paradoxus (tamponade/asthma)", "Jugular venous distension"] },
    { label: "Neurological / Systemic", color: CRIMSON, items: ["Agitation or confusion (hypoxemia)", "Decreased consciousness (hypercapnia)", "Diaphoresis", "Cyanosis (central/peripheral)", "Inability to speak in full sentences"] },
  ];

  let curY = 1.47;
  signGroups.forEach(({ label, color, items }) => {
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: curY, w: 0.12, h: items.length * 0.26 + 0.12, fill: { color } });
    sl.addText(label.toUpperCase(), { x: 0.52, y: curY + 0.02, w: 4.1, h: 0.24, fontSize: 10, bold: true, color, margin: 0 });
    curY += 0.28;
    items.forEach(item => {
      sl.addText([{ text: item, options: { bullet: { code: "2022" }, fontSize: 11, color: DARKGRAY } }], { x: 0.55, y: curY, w: 4.1, h: 0.25, margin: 0, valign: "middle" });
      curY += 0.26;
    });
    curY += 0.06;
  });

  // Right column: Symptoms (subjective) + image
  sl.addShape(pres.ShapeType.rect, { x: 4.9, y: 1.05, w: 4.75, h: 0.36, fill: { color: NAVY } });
  sl.addText("💬  SUBJECTIVE SYMPTOMS", { x: 4.9, y: 1.05, w: 4.75, h: 0.36, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  sl.addText(bullets([
    "Dyspnea — 'can't get enough air'",
    "Chest tightness or pressure",
    "Breathlessness worse on exertion (or at rest)",
    "Orthopnea (heart failure)",
    "Paroxysmal nocturnal dyspnea",
    "Cough — dry or productive",
    "Pleuritic chest pain (PE, pneumonia)",
    "Hemoptysis (TB, PE, lung Ca)",
    "Wheezing (asthma, COPD, cardiac)",
    "Fatigue & decreased exercise tolerance",
  ], { fontSize: 11.5 }), { x: 4.9, y: 1.47, w: 4.75, h: 2.4, valign: "top", margin: 4 });

  // Image of clinical signs
  if (images[2] && !images[2].error) {
    sl.addImage({ data: images[2].base64, x: 4.9, y: 3.95, w: 2.4, h: 1.48 });
    sl.addText("Cardinal signs of respiratory distress in a pediatric patient", { x: 7.35, y: 3.98, w: 2.3, h: 1.45, fontSize: 9, color: "667788", italic: true, valign: "middle", margin: 2 });
  }
}

// ══════════════════════════════════════════════════
// SLIDE 6 — CLINICAL MANIFESTATIONS
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Clinical Manifestations", "MANIFESTATIONS");

  const manifests = [
    {
      title: "Acute Respiratory Failure",
      color: CRIMSON,
      body: "Inability to maintain adequate oxygenation (PaO₂ < 60 mmHg on room air) or CO₂ elimination (PaCO₂ > 50 mmHg). Type 1 = hypoxemic; Type 2 = hypercapnic.",
      sub: ["Tachypnea, accessory muscle use, confusion", "ABG: low PaO₂ ± elevated PaCO₂", "Triggers: pneumonia, PE, ARDS, COPD exac."],
    },
    {
      title: "ARDS (Acute Respiratory Distress Syndrome)",
      color: NAVY,
      body: "Diffuse alveolar damage with non-cardiogenic pulmonary edema. Three phases: exudative (0–7d), proliferative (7–21d), fibrotic (>21d).",
      sub: ["Bilateral infiltrates on CXR/CT", "PaO₂/FiO₂ ≤ 300 (Berlin criteria)", "Mortality 35% mild → 46% severe"],
    },
    {
      title: "Cardiogenic Pulmonary Edema",
      color: TEAL,
      body: "Left ventricular failure raises pulmonary capillary wedge pressure > 18 mmHg, forcing fluid into alveoli. Causes hypoxemia and pink frothy sputum.",
      sub: ["S3 gallop, JVD, peripheral edema", "CXR: butterfly pattern, Kerley B lines", "BNP > 500 pg/mL is diagnostic"],
    },
    {
      title: "Obstructive Airway Disease",
      color: "1A6B3A",
      body: "Asthma / COPD exacerbation — bronchospasm, mucus plugging, and hyperinflation limit airflow and increase work of breathing.",
      sub: ["Expiratory wheeze, prolonged I:E ratio", "PEFR < 50% predicted = severe", "ABG: early respiratory alkalosis"],
    },
    {
      title: "Upper Airway Obstruction",
      color: "C07A00",
      body: "Stridor, drooling, muffled voice. Life-threatening: foreign body, angioedema, epiglottitis. Immediate airway management is priority.",
      sub: ["Inspiratory stridor (extrathoracic obstruction)", "Lateral neck X-ray / nasopharyngoscopy", "NEVER perform oral exam if epiglottitis suspected"],
    },
    {
      title: "Tension Pneumothorax",
      color: "7B3FA0",
      body: "Air under pressure in the pleural space collapses the ipsilateral lung and shifts mediastinum, causing obstructive shock. Clinical diagnosis — do not wait for CXR.",
      sub: ["Absent breath sounds, tracheal deviation", "Distended neck veins + hypotension", "Immediate needle decompression (2nd ICS, MCL)"],
    },
  ];

  const cw = 3.0, rh = 1.82, sx = 0.35, sy = 1.05;
  manifests.forEach(({ title, color, body, sub }, idx) => {
    const col = idx % 3, row = Math.floor(idx / 3);
    const bx = sx + col * (cw + 0.18);
    const by = sy + row * rh;
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: rh - 0.1, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: 0.32, fill: { color } });
    sl.addText(title, { x: bx + 0.05, y: by, w: cw - 0.1, h: 0.32, fontSize: 9.5, bold: true, color: WHITE, valign: "middle", margin: 2 });
    sl.addText(body, { x: bx + 0.06, y: by + 0.34, w: cw - 0.1, h: 0.58, fontSize: 9.5, color: DARKGRAY, valign: "top", margin: 2 });
    sl.addText(subBullets(sub, { fontSize: 9.5 }), { x: bx + 0.06, y: by + 0.95, w: cw - 0.1, h: rh - 1.1, valign: "top", margin: 2 });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 7 — INVESTIGATIONS
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Investigations", "WORKUP");

  // Two column layout
  const leftItems = [
    { cat: "ARTERIAL BLOOD GAS (ABG)", color: CRIMSON, items: [
      "PaO₂: oxygenation status (normal 80–100 mmHg)",
      "PaCO₂: ventilatory status (normal 35–45 mmHg)",
      "pH: acid-base balance (7.35–7.45)",
      "HCO₃⁻: metabolic component (22–26 mEq/L)",
      "A-a gradient: alveolar-arterial O₂ difference",
      "P/F ratio: PaO₂/FiO₂ (ARDS severity marker)",
    ]},
    { cat: "PULSE OXIMETRY & SPIROMETRY", color: TEAL, items: [
      "SpO₂ — rapid, non-invasive; insensitive for hypoventilation",
      "Peak expiratory flow (PEFR) — asthma severity",
      "Negative inspiratory force (NIF) — neuromuscular strength",
      "FEV₁/FVC ratio — obstructive vs restrictive pattern",
    ]},
    { cat: "LABORATORY TESTS", color: NAVY, items: [
      "CBC: leukocytosis (infection), anaemia (↓O₂ carrying capacity)",
      "BNP / NT-proBNP: heart failure (>500 pg/mL diagnostic)",
      "D-dimer: PE screening (high sensitivity, low specificity)",
      "CRP / PCT: infection/sepsis markers",
      "Troponin: myocardial ischemia",
      "Lactate: tissue hypoperfusion / sepsis",
      "Blood cultures + sputum culture: infectious aetiology",
    ]},
  ];
  const rightItems = [
    { cat: "IMAGING", color: "1A6B3A", items: [
      "Chest X-ray (CXR): first-line — infiltrates, effusion, PTX, cardiomegaly",
      "HRCT chest: ARDS pattern, interstitial disease, PE",
      "CT pulmonary angiography (CTPA): gold standard for PE",
      "Lung ultrasound (LUS): B-lines (pulmonary edema), A-lines (normal/PTX)",
    ]},
    { cat: "CARDIAC INVESTIGATIONS", color: "7B3FA0", items: [
      "ECG: arrhythmia, myocardial ischemia, right heart strain (PE)",
      "Echocardiography: EF, wall motion, pericardial effusion, PASP",
      "Right heart catheterization: PCWP (cardiogenic vs ARDS)",
    ]},
    { cat: "BEDSIDE PROCEDURES", color: "C07A00", items: [
      "Point-of-care ultrasound (POCUS): RUSH protocol",
      "Thoracentesis: large pleural effusion",
      "Bronchoscopy + BAL: ARDS, diffuse alveolar damage, atypical infection",
      "Nasopharyngoscopy: upper airway obstruction assessment",
    ]},
  ];

  const cw = 4.45;
  [leftItems, rightItems].forEach((col, ci) => {
    let curY = 1.05;
    col.forEach(({ cat, color, items }) => {
      const bh = 0.28 + items.length * 0.27;
      sl.addShape(pres.ShapeType.rect, { x: 0.35 + ci * (cw + 0.35), y: curY, w: cw, h: bh, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
      sl.addShape(pres.ShapeType.rect, { x: 0.35 + ci * (cw + 0.35), y: curY, w: cw, h: 0.28, fill: { color } });
      sl.addText(cat, { x: 0.35 + ci * (cw + 0.35) + 0.06, y: curY, w: cw - 0.1, h: 0.28, fontSize: 10, bold: true, color: WHITE, valign: "middle", margin: 2 });
      sl.addText(bullets(items, { fontSize: 10.2 }), { x: 0.35 + ci * (cw + 0.35) + 0.06, y: curY + 0.3, w: cw - 0.12, h: bh - 0.32, valign: "top", margin: 2 });
      curY += bh + 0.1;
    });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 8 — DIAGNOSTIC CRITERIA (ARDS Berlin + ABG)
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Investigating Criteria & Diagnostic Criteria", "CRITERIA");

  // Berlin definition box
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.06, w: 5.2, h: 0.34, fill: { color: NAVY } });
  sl.addText("BERLIN DEFINITION OF ARDS (2012)", { x: 0.35, y: 1.06, w: 5.2, h: 0.34, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });

  const berlinCriteria = [
    ["Timing", "Onset within 1 week of clinical insult OR new/worsening respiratory symptoms"],
    ["Imaging", "Bilateral opacities — not fully explained by effusions, lobar/lung collapse, or nodules"],
    ["Origin of edema", "Not fully explained by cardiac failure or fluid overload (echo may be needed)"],
    ["P/F Ratio", "Mild: 201–300 mmHg, Moderate: 101–200 mmHg, Severe: ≤100 mmHg (with PEEP ≥5)"],
  ];

  berlinCriteria.forEach(([crit, detail], i) => {
    const by = 1.46 + i * 0.58;
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: by, w: 5.2, h: 0.52, fill: { color: i % 2 === 0 ? "F0F5FF" : WHITE }, line: { color: LTGRAY, pt: 0.5 } });
    sl.addText(crit, { x: 0.38, y: by + 0.04, w: 1.1, h: 0.44, fontSize: 10.5, bold: true, color: NAVY, valign: "middle", margin: 2 });
    sl.addText(detail, { x: 1.52, y: by + 0.04, w: 3.98, h: 0.44, fontSize: 10.5, color: DARKGRAY, valign: "middle", margin: 2 });
  });

  // Severity table
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 3.8, w: 5.2, h: 0.28, fill: { color: CRIMSON } });
  sl.addText("SEVERITY GRADING BY PaO₂/FiO₂", { x: 0.35, y: 3.8, w: 5.2, h: 0.28, fontSize: 10, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  const sevRows = [
    ["Mild", "201–300 mmHg", "CPAP/PEEP > 5 cmH₂O", "~27%"],
    ["Moderate", "101–200 mmHg", "PEEP ≥ 5 cmH₂O", "~32%"],
    ["Severe", "≤ 100 mmHg", "PEEP ≥ 5 cmH₂O", "~45%"],
  ];
  const sevColors = ["E8F4FD", "FFF3CD", "FCE4E4"];
  const hdrs = ["Severity", "PaO₂/FiO₂", "Ventilation", "Mortality"];
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 4.08, w: 5.2, h: 0.28, fill: { color: DARKGRAY } });
  [0, 1, 2, 3].forEach(ci => {
    const cwidths = [0.78, 1.38, 1.88, 1.08];
    const cstarts = [0.37, 1.15, 2.53, 4.41];
    sl.addText(hdrs[ci], { x: cstarts[ci], y: 4.1, w: cwidths[ci], h: 0.24, fontSize: 9.5, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  });
  sevRows.forEach((row, ri) => {
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 4.36 + ri * 0.33, w: 5.2, h: 0.32, fill: { color: sevColors[ri] }, line: { color: LTGRAY, pt: 0.3 } });
    const cstarts = [0.37, 1.15, 2.53, 4.41];
    const cwidths = [0.76, 1.36, 1.86, 1.06];
    row.forEach((cell, ci) => {
      sl.addText(cell, { x: cstarts[ci], y: 4.38 + ri * 0.33, w: cwidths[ci], h: 0.28, fontSize: 9.5, color: DARKGRAY, align: "center", valign: "middle", margin: 0 });
    });
  });

  // Right: ABG interpretation + Resp failure criteria
  sl.addShape(pres.ShapeType.rect, { x: 5.75, y: 1.06, w: 3.9, h: 0.34, fill: { color: TEAL } });
  sl.addText("ABG INTERPRETATION CRITERIA", { x: 5.75, y: 1.06, w: 3.9, h: 0.34, fontSize: 11, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  sl.addText(bullets([
    "pH < 7.35 → Acidosis (respiratory if ↑PaCO₂)",
    "pH > 7.45 → Alkalosis (respiratory if ↓PaCO₂)",
    "PaO₂ < 60 mmHg → Hypoxemic resp. failure",
    "PaCO₂ > 50 mmHg → Hypercapnic resp. failure",
    "A-a gradient > 10–15 mmHg → V/Q mismatch or shunt",
    "Lactate > 2 mmol/L → Tissue hypoperfusion",
  ], { fontSize: 11 }), { x: 5.78, y: 1.45, w: 3.84, h: 1.8, valign: "top", margin: 4 });

  sl.addShape(pres.ShapeType.rect, { x: 5.75, y: 3.35, w: 3.9, h: 0.34, fill: { color: CRIMSON } });
  sl.addText("RESP. FAILURE DIAGNOSTIC CRITERIA", { x: 5.75, y: 3.35, w: 3.9, h: 0.34, fontSize: 10.5, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  sl.addText(bullets([
    "Type 1 (Hypoxemic): PaO₂ < 60 on room air, normal/low PaCO₂",
    "Type 2 (Hypercapnic): PaCO₂ > 45 + respiratory acidosis",
    "Type 3 (Peri-operative): atelectasis-related",
    "Type 4 (Shock-related): ↓perfusion of resp. muscles",
    "Indices: APACHE II, SOFA, Murray Lung Injury Score",
  ], { fontSize: 11 }), { x: 5.78, y: 3.72, w: 3.84, h: 1.68, valign: "top", margin: 4 });
}

// ══════════════════════════════════════════════════
// SLIDE 9 — DIAGNOSTIC TOOLS
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Diagnostic Tools", "DIAGNOSTICS");

  const tools = [
    { name: "Chest X-Ray (CXR)", icon: "🫁", color: NAVY, body: "First-line imaging. Portable AP in ICU. Identifies bilateral infiltrates (ARDS), consolidation (PNA), pleural effusion, cardiomegaly, pneumothorax, Kerley B lines." },
    { name: "CT Chest / CTPA", icon: "🔬", color: TEAL, body: "Gold standard for PE (CTPA). HRCT for interstitial disease. CT detects occult pneumothorax, small effusions, mediastinal pathology, lung parenchymal detail." },
    { name: "Echocardiography", icon: "❤️", color: CRIMSON, body: "Differentiates cardiac from non-cardiac pulmonary edema. Assesses LV/RV function, PASP, pericardial effusion, valvular disease. PCWP > 18 = cardiogenic." },
    { name: "Lung Ultrasound (LUS)", icon: "📡", color: "1A6B3A", body: "B-lines → alveolar-interstitial syndrome (pulmonary edema). A-lines → normal lung or pneumothorax. Lung point sign = PTX. Consolidation with air bronchograms = PNA." },
    { name: "Spirometry / PEFR", icon: "💨", color: "C07A00", body: "FEV₁/FVC < 0.7 → obstructive (asthma, COPD). TLC normal/↑ = obstructive. FVC ↓ with normal ratio = restrictive. PEFR < 50% predicted = severe asthma exacerbation." },
    { name: "Bronchoscopy + BAL", icon: "🔍", color: "7B3FA0", body: "Direct visualisation of airways. BAL for culture, cytology, diffuse alveolar haemorrhage (hemosiderin-laden macrophages). Indicated when non-invasive workup is inconclusive." },
  ];

  tools.forEach(({ name, icon, color, body }, idx) => {
    const col = idx % 3, row = Math.floor(idx / 3);
    const bx = 0.35 + col * 3.18, by = 1.05 + row * 2.22;
    const bw = 3.0, bh = 2.12;
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: bw, h: bh, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: bw, h: 0.36, fill: { color } });
    sl.addText(`${icon}  ${name}`, { x: bx + 0.05, y: by, w: bw - 0.1, h: 0.36, fontSize: 10, bold: true, color: WHITE, valign: "middle", margin: 2 });
    sl.addText(body, { x: bx + 0.08, y: by + 0.4, w: bw - 0.14, h: bh - 0.46, fontSize: 10.5, color: DARKGRAY, valign: "top", margin: 2, wrap: true });
  });

  // ARDS CXR image
  if (images[0] && !images[0].error) {
    // Replace middle of bottom row with image
    sl.addShape(pres.ShapeType.rect, { x: 6.84, y: 3.27, w: 2.8, h: 2.12, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
    sl.addImage({ data: images[0].base64, x: 6.84, y: 3.27, w: 2.8, h: 2.12 });
  }
}

// ══════════════════════════════════════════════════
// SLIDE 10 — TREATMENT
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Treatment", "MANAGEMENT");

  const txBlocks = [
    { title: "IMMEDIATE STABILISATION (ABC)", color: CRIMSON, items: [
      "Airway: position, jaw thrust, suction, adjuncts",
      "Breathing: supplemental O₂ (target SpO₂ 94–98%, or 88–92% in COPD)",
      "Circulation: IV access, fluid resuscitation (cautious in ARDS)",
      "Position: head-of-bed 30–45° to reduce aspiration",
      "Continuous monitoring: SpO₂, RR, HR, BP, GCS",
    ]},
    { title: "OXYGEN THERAPY", color: TEAL, items: [
      "Nasal cannula: 2–6 L/min → SpO₂ 90–95%",
      "Simple face mask: 6–10 L/min → ~40–60% FiO₂",
      "Non-rebreather mask: 10–15 L/min → ~60–90% FiO₂",
      "High-flow nasal cannula (HFNC): up to 60 L/min, heated/humidified",
      "Non-invasive ventilation (NIV/BiPAP): AECOPD, cardiogenic edema",
    ]},
    { title: "MECHANICAL VENTILATION (ARDS)", color: NAVY, items: [
      "Lung-protective strategy: TV 4–8 mL/kg predicted body weight",
      "Plateau pressure ≤ 30 cmH₂O",
      "PEEP titrated to oxygenation (ARDSNet table)",
      "PaO₂ target 55–80 mmHg; SpO₂ 88–95%",
      "Permissive hypercapnia: pH 7.30–7.45 tolerated",
      "Prone positioning (>16 h/day) → ↓mortality in severe ARDS (P/F < 150)",
    ]},
    { title: "PHARMACOLOGICAL THERAPY", color: "1A6B3A", items: [
      "Bronchospasm: β₂-agonist (salbutamol), ipratropium, IV Mg²⁺",
      "Cardiac edema: IV furosemide, vasodilators (GTN), inotropes",
      "Infection: empiric antibiotics (CURB-65 guided)",
      "PE: anticoagulation (LMWH/UFH); thrombolytics if haemodynamically unstable",
      "Corticosteroids (ARDS): dexamethasone 6 mg/day improves outcomes",
      "Sepsis: early antibiotics + source control within 1 hour",
    ]},
    { title: "ADVANCED / RESCUE THERAPIES", color: "7B3FA0", items: [
      "Neuromuscular blockade (cisatracurium): moderate-severe ARDS, 48h",
      "Inhaled NO / inhaled prostacyclin: pulmonary vasodilation",
      "Recruitment manoeuvres: sustained inflation to re-open collapsed alveoli",
      "ECMO (veno-venous): refractory ARDS failing all conventional measures",
      "Tracheostomy: prolonged ventilation > 7–10 days anticipated",
    ]},
    { title: "AETIOLOGY-SPECIFIC TREATMENT", color: "C07A00", items: [
      "Foreign body: Heimlich manoeuvre / bronchoscopic retrieval",
      "Anaphylaxis: IM adrenaline 0.5 mg (1:1000) + antihistamine + steroids",
      "Tension PTX: immediate needle decompression → chest tube",
      "Cardiac tamponade: pericardiocentesis",
      "Neuromuscular (MG/GBS): IVIG, plasmapheresis",
      "Neonatal RDS: exogenous surfactant replacement therapy",
    ]},
  ];

  const cw = 3.0, rh = 1.85, sx = 0.35, sy = 1.05;
  txBlocks.forEach(({ title, color, items }, idx) => {
    const col = idx % 3, row = Math.floor(idx / 3);
    const bx = sx + col * (cw + 0.18);
    const by = sy + row * rh;
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: rh - 0.1, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
    sl.addShape(pres.ShapeType.rect, { x: bx, y: by, w: cw, h: 0.3, fill: { color } });
    sl.addText(title, { x: bx + 0.05, y: by, w: cw - 0.08, h: 0.3, fontSize: 9, bold: true, color: WHITE, valign: "middle", margin: 2 });
    sl.addText(bullets(items, { fontSize: 10 }), { x: bx + 0.05, y: by + 0.32, w: cw - 0.1, h: rh - 0.44, valign: "top", margin: 2 });
  });
}

// ══════════════════════════════════════════════════
// SLIDE 11 — REAL-LIFE CASES
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Real-Life Clinical Cases", "CASE STUDIES");

  const cases = [
    {
      num: "01",
      color: CRIMSON,
      title: "Case 1: 68 y/o with ARDS post-Sepsis",
      hx: "68M, DM, HTN. Admitted with 5-day fever, productive cough, confusion. BP 85/50, RR 32, SpO₂ 82% on room air, T 39.1°C.",
      invest: "ABG: pH 7.28, PaO₂ 52, PaCO₂ 38, PaO₂/FiO₂ = 120. CXR: bilateral alveolar infiltrates. Cultures: Klebsiella pneumoniae sepsis.",
      dx: "Sepsis-induced ARDS (moderate — Berlin PaO₂/FiO₂ 120)",
      tx: "ICU admission. Intubation. Lung-protective ventilation (TV 6 mL/kg PBW, PEEP 12, Pplat ≤30). Prone positioning 18 h/day. Piperacillin-tazobactam. Dexamethasone 6 mg/d. Noradrenaline vasopressor. Survived after 12-day ICU course.",
    },
    {
      num: "02",
      color: TEAL,
      title: "Case 2: 45 y/o with Acute Severe Asthma",
      hx: "45F, known asthma, ran out of preventer inhaler. Sudden onset SOB, unable to complete sentences, expiratory wheeze bilaterally, SpO₂ 89%, PEFR 35% predicted.",
      invest: "ABG early: pH 7.48, PaCO₂ 30 (respiratory alkalosis = early). ECG: sinus tachycardia. CXR: hyperinflation, no consolidation.",
      dx: "Acute severe asthma exacerbation (near-fatal features: PEFR < 33%, silent chest = imminent arrest)",
      tx: "Continuous nebulised salbutamol 5 mg. Ipratropium 0.5 mg. IV MgSO₄ 2 g over 20 min. IV hydrocortisone 200 mg. HFNC oxygen. Admitted to HDU; avoided intubation. Stepped down to ward in 48 h with step-up preventer therapy.",
    },
    {
      num: "03",
      color: NAVY,
      title: "Case 3: 72 y/o with Cardiogenic Pulmonary Edema",
      hx: "72M, IHD, non-compliant with diuretics. Orthopnea, PND, bilateral crackles to mid-zones, S3 gallop, JVD, peripheral oedema, SpO₂ 86% on air, HR 110, BP 160/95.",
      invest: "BNP: 2,400 pg/mL. Echo: LVEF 25%, dilated LV, MR. CXR: bilateral pleural effusions, Kerley B lines, cardiomegaly, bat-wing infiltrates. ABG: PaO₂ 58, PaCO₂ 36.",
      dx: "Acute decompensated heart failure / cardiogenic pulmonary edema",
      tx: "IV furosemide 80 mg bolus → 10 mg/h infusion. GTN infusion 0.5–2 mcg/kg/min. BiPAP CPAP 10 cmH₂O (averted intubation). Fluid restriction. Fluid balance -2.5 L by day 2. Initiated sacubitril/valsartan on discharge. SpO₂ 97% on day 3.",
    },
  ];

  const rh = 1.48, sy = 1.05, sw = 9.28;
  cases.forEach(({ num, color, title, hx, invest, dx, tx }, idx) => {
    const by = sy + idx * (rh + 0.06);
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: by, w: sw, h: rh, fill: { color: WHITE }, line: { color: LTGRAY, pt: 0.8 } });
    // Left badge
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: by, w: 0.55, h: rh, fill: { color } });
    sl.addText(`CASE\n${num}`, { x: 0.35, y: by, w: 0.55, h: rh, fontSize: 9.5, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
    // Title
    sl.addShape(pres.ShapeType.rect, { x: 0.9, y: by, w: sw - 0.55, h: 0.28, fill: { color: color === CRIMSON ? "FEF0EF" : color === TEAL ? "EBF8FA" : "EEF2F8" } });
    sl.addText(title, { x: 0.95, y: by, w: sw - 0.6, h: 0.28, fontSize: 10.5, bold: true, color, valign: "middle", margin: 2 });
    // Content columns
    const cols = [
      { label: "HX & EXAM", val: hx },
      { label: "INVESTIGATIONS", val: invest },
      { label: "Dx / Tx", val: `Dx: ${dx}\n\nTx: ${tx}` },
    ];
    cols.forEach(({ label, val }, ci) => {
      const cw = (sw - 0.58) / 3;
      const cx = 0.9 + ci * (cw + 0.04);
      sl.addText(label, { x: cx, y: by + 0.3, w: cw, h: 0.22, fontSize: 8.5, bold: true, color, valign: "top", margin: 2 });
      sl.addText(val, { x: cx, y: by + 0.52, w: cw, h: rh - 0.55, fontSize: 9, color: DARKGRAY, valign: "top", margin: 2, wrap: true });
    });
  });

  // ARDS CXR image beside cases (bottom right)
  if (images[1] && !images[1].error) {
    // Just add a visual note since space is tight
  }
}

// ══════════════════════════════════════════════════
// SLIDE 12 — CXR IMAGING SLIDE
// ══════════════════════════════════════════════════
{
  const sl = contentSlide("Radiological Evidence — ARDS on CXR", "IMAGING");

  sl.addText("Classic ARDS Chest X-Ray Appearances", { x: 0.35, y: 1.08, w: 9.3, h: 0.3, fontSize: 13, bold: true, color: NAVY, margin: 0 });

  const imgSlots = [images[0], images[1], images[3]];
  const captions = [
    "Bilateral diffuse opacities — ARDS in ICU patient on mechanical ventilation (endotracheal tube visible)",
    "ARDS before/after CENPV treatment — progressive bilateral alveolar infiltrates and resolution",
    "Classic ARDS pattern: bilateral patchy alveolar opacities, Berlin definition — non-cardiogenic pulmonary edema",
  ];

  imgSlots.forEach((img, i) => {
    const bx = 0.35 + i * 3.2;
    if (img && !img.error) {
      sl.addImage({ data: img.base64, x: bx, y: 1.45, w: 3.05, h: 2.2 });
    } else {
      sl.addShape(pres.ShapeType.rect, { x: bx, y: 1.45, w: 3.05, h: 2.2, fill: { color: LTGRAY } });
      sl.addText("Image unavailable", { x: bx, y: 1.45, w: 3.05, h: 2.2, fontSize: 10, color: DARKGRAY, align: "center", valign: "middle" });
    }
    sl.addShape(pres.ShapeType.rect, { x: bx, y: 3.68, w: 3.05, h: 0.54, fill: { color: "F0F5FF" }, line: { color: LTGRAY, pt: 0.5 } });
    sl.addText(captions[i], { x: bx + 0.04, y: 3.7, w: 2.97, h: 0.5, fontSize: 8.5, italic: true, color: "556677", valign: "middle", margin: 2 });
  });

  // Key radiological findings
  sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 4.3, w: 9.28, h: 0.28, fill: { color: NAVY } });
  sl.addText("KEY RADIOLOGICAL FINDINGS IN ARDS", { x: 0.35, y: 4.3, w: 9.28, h: 0.28, fontSize: 10.5, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
  sl.addText([
    { text: "Bilateral opacities  ", options: { bold: true, color: CRIMSON } },
    { text: "not fully explained by effusions or collapse  |  ", options: { color: DARKGRAY } },
    { text: "Normal cardiac size  ", options: { bold: true, color: TEAL } },
    { text: "(unlike cardiogenic edema)  |  ", options: { color: DARKGRAY } },
    { text: "Air bronchograms  ", options: { bold: true, color: NAVY } },
    { text: "visible in consolidation  |  ", options: { color: DARKGRAY } },
    { text: "Ground-glass opacities  ", options: { bold: true, color: "7B3FA0" } },
    { text: "= early diffuse alveolar damage", options: { color: DARKGRAY } },
  ], { x: 0.38, y: 4.6, w: 9.22, h: 0.75, fontSize: 10, valign: "middle", margin: 4 });
}

// ══════════════════════════════════════════════════
// SLIDE 13 — KEY TAKEAWAYS / SUMMARY
// ══════════════════════════════════════════════════
{
  const sl = pres.addSlide();
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: NAVY } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: CRIMSON } });
  sl.addShape(pres.ShapeType.rect, { x: 0, y: 3.5, w: 10, h: 0.08, fill: { color: CRIMSON } });

  sl.addText("KEY TAKEAWAYS", { x: 0.35, y: 0.15, w: 9.3, h: 0.58, fontSize: 26, bold: true, color: WHITE, charSpacing: 2 });
  sl.addText("What every medical intern must remember about Respiratory Distress", { x: 0.35, y: 0.72, w: 9.3, h: 0.3, fontSize: 13, italic: true, color: LTGRAY });

  const takeaways = [
    ["01", "Respiratory distress is a CLINICAL diagnosis — act on clinical signs, don't wait for labs.", CRIMSON],
    ["02", "The 5-second ARDS Berlin criteria: <1 week onset | bilateral opacities | non-cardiogenic | P/F ≤300.", TEAL],
    ["03", "Lung-protective ventilation (4–8 mL/kg PBW, Pplat ≤30) saves lives in ARDS.", "1A6B3A"],
    ["04", "Prone positioning >16 h/day reduces ARDS mortality in severe disease (P/F <150).", "C07A00"],
    ["05", "Always differentiate cardiac from non-cardiac pulmonary edema — treatment is opposite!", "7B3FA0"],
    ["06", "Tension pneumothorax → clinical diagnosis → immediate needle decompression — never wait for CXR.", CRIMSON],
    ["07", "In sepsis-induced ARDS: early antibiotics + source control within 1 hour of recognition.", TEAL],
  ];

  takeaways.forEach(([num, text, color], i) => {
    const by = 1.12 + i * 0.33;
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: by, w: 9.28, h: 0.28, fill: { color: "0A2035" }, line: { color: color, pt: 0.8 } });
    sl.addShape(pres.ShapeType.rect, { x: 0.35, y: by, w: 0.38, h: 0.28, fill: { color } });
    sl.addText(num, { x: 0.35, y: by, w: 0.38, h: 0.28, fontSize: 9.5, bold: true, color: WHITE, align: "center", valign: "middle", margin: 0 });
    sl.addText(text, { x: 0.78, y: by, w: 8.8, h: 0.28, fontSize: 11, color: WHITE, valign: "middle", margin: 4 });
  });

  sl.addText("Sources: Tintinalli's Emergency Medicine · Current Surgical Therapy 14e · Murray & Nadel's Textbook of Respiratory Medicine", {
    x: 0.35, y: 5.1, w: 9.28, h: 0.3,
    fontSize: 8, color: "8BAACC", italic: true
  });
}

// ══════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════
const outPath = "/home/daytona/workspace/respiratory-distress-ppt/Respiratory_Distress_Medical_Intern.pptx";
pres.writeFile({ fileName: outPath }).then(() => {
  console.log("✅ Presentation saved to:", outPath);
}).catch(err => {
  console.error("❌ Error saving:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/respiratory-distress-ppt && node build.js 2>&1

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.
This is a shared conversation. Sign in to Orris to start your own chat.