Make ppt out of this. Include indian road accident data

Reading File
Reading File
Searching the Web

India road accident statistics 2023 2024 NCRB MoRTH deaths injuries data

Reading File
Running Command

cd /home/daytona/workspace && python3 -c " import pdfplumber pdfs = [ '/homโ€ฆ

Running Command

mkdir -p /home/daytona/workspace/trauma-ppt && ls /home/daytona/workspace/traumaโ€ฆ

Writing File

~/trauma-ppt/create_ppt.js

const pptxgen = require("pptxgenjs");

let pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.title = 'Trauma Management & Indian Road Accident Data';

// โ”€โ”€โ”€ THEME COLORS โ”€โ”€โ”€
const DARK_BG   = "1A2340";   // deep navy
const MID_BG    = "243058";   // slightly lighter navy
const ACCENT    = "E84B3C";   // emergency red
const ACCENT2   = "F5A623";   // amber
const WHITE     = "FFFFFF";
const LIGHT     = "D8E0F0";
const GRAY      = "8A97B0";

// โ”€โ”€โ”€ HELPER: slide background โ”€โ”€โ”€
function darkSlide(pres) {
  let s = pres.addSlide();
  s.background = { color: DARK_BG };
  return s;
}
function midSlide(pres) {
  let s = pres.addSlide();
  s.background = { color: MID_BG };
  return s;
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 1 โ€“ TITLE
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  // Red accent bar left
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT } });

  // Red accent bar top
  s.addShape(pres.ShapeType.rect, { x: 0.18, y: 0, w: 9.82, h: 0.08, fill: { color: ACCENT } });

  // Main title
  s.addText("TRAUMA MANAGEMENT", {
    x: 0.5, y: 0.8, w: 9, h: 0.85,
    fontSize: 44, bold: true, color: WHITE, fontFace: "Calibri",
    charSpacing: 4
  });
  s.addText("& Indian Road Accident Statistics", {
    x: 0.5, y: 1.65, w: 9, h: 0.55,
    fontSize: 26, color: ACCENT2, fontFace: "Calibri", italic: false
  });

  // Divider
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 2.3, w: 4.5, h: 0.05, fill: { color: ACCENT } });

  // Subtitle description
  s.addText("Initial Assessment ยท Hemorrhage Control ยท Resuscitation\nIndia Road Crash Epidemiology ยท Prevention", {
    x: 0.5, y: 2.55, w: 9, h: 0.9,
    fontSize: 17, color: LIGHT, fontFace: "Calibri", lineSpacingMultiple: 1.4
  });

  // Source tag
  s.addText("Sources: UpToDate (Jun 2026) ยท MoRTH 2024 ยท WHO Global Status Report", {
    x: 0.5, y: 5.1, w: 9.3, h: 0.4,
    fontSize: 11, color: GRAY, fontFace: "Calibri", italic: true
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 2 โ€“ INDIAN ROAD ACCIDENT OVERVIEW (2024)
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("๐Ÿ‡ฎ๐Ÿ‡ณ  INDIA ROAD ACCIDENT CRISIS  โ€”  2024 DATA", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  // STAT BOXES  row 1
  const stats1 = [
    { val: "4.80 L", lbl: "Road Accidents\n(2024)", bg: "8B1A1A" },
    { val: "1.77 L", lbl: "Deaths\n(MoRTH 2024)", bg: "9B2A10" },
    { val: "485", lbl: "Deaths per Day", bg: "7A1E1E" },
    { val: "+2.3%", lbl: "Rise vs 2023", bg: "5A3010" },
  ];
  stats1.forEach((st, i) => {
    let x = 0.25 + i * 2.42;
    s.addShape(pres.ShapeType.roundRect, { x, y: 0.8, w: 2.2, h: 1.35,
      fill: { color: st.bg }, line: { color: ACCENT, width: 1.5 }, rectRadius: 0.08 });
    s.addText(st.val, { x, y: 0.88, w: 2.2, h: 0.7,
      fontSize: 30, bold: true, color: WHITE, align: "center", fontFace: "Calibri" });
    s.addText(st.lbl, { x, y: 1.6, w: 2.2, h: 0.45,
      fontSize: 12, color: ACCENT2, align: "center", fontFace: "Calibri" });
  });

  // Row 2 bullet points
  const bullets = [
    "India ranks #1 worldwide in road deaths โ€” ahead of China and the US (World Road Statistics, IRF)",
    "India accounts for 11% of global road deaths despite having only 1% of the global vehicle population",
    "18-45 age group โ€” 66.1% of all road accident deaths (prime productive age group)",
    "Two-wheelers โ€” 46.2% of deaths  |  Pedestrians โ€” 20.6% of deaths",
    "National Highways (only 2.1% of road network) โ€” 36.6% share in total deaths",
    "Over-speeding responsible for 70.3% of all road crash fatalities",
    "WHO target: 50% reduction in road deaths by 2030 (SDG 3.6) โ€” India far off-track",
  ];

  s.addText(bullets.map((b, i) => ({
    text: b,
    options: { bullet: { type: "bullet", code: "25A0", color: ACCENT },
               color: i === 0 || i === 1 ? ACCENT2 : LIGHT,
               fontSize: 12.5, bold: i < 2, breakLine: true, paraSpaceAfter: 3 }
  })), { x: 0.3, y: 2.28, w: 9.4, h: 3.0, fontFace: "Calibri" });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 3 โ€“ STATE-WISE & SEVERITY DATA
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = midSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("STATE-WISE ROAD ACCIDENT DATA  (2024)", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  // LEFT COLUMN โ€“ top states table
  s.addText("Top States by Accidents (2024)", {
    x: 0.3, y: 0.8, w: 4.5, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const tableRows = [
    [{ text: "State", options: { bold: true, color: ACCENT2 } },
     { text: "Accidents", options: { bold: true, color: ACCENT2 } },
     { text: "Deaths", options: { bold: true, color: ACCENT2 } }],
    ["Uttar Pradesh", "~47,000", "~24,600"],
    ["Tamil Nadu", "~63,000", "~17,000"],
    ["Madhya Pradesh", "~52,000", "~14,800"],
    ["Rajasthan", "~30,000", "~14,200"],
    ["Maharashtra", "~32,000", "~13,500"],
  ];

  s.addTable(tableRows, {
    x: 0.3, y: 1.2, w: 4.5, h: 2.8,
    colW: [2.1, 1.2, 1.2],
    fill: { color: "1E2D50" },
    border: { type: "solid", color: "2D4080", pt: 0.8 },
    fontFace: "Calibri", fontSize: 12.5, color: WHITE,
    align: "center"
  });

  // RIGHT COLUMN โ€“ severity
  s.addText("Accident Severity Index", {
    x: 5.1, y: 0.8, w: 4.6, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const severityData = [
    { state: "Uttar Pradesh", val: "52.4%", note: "Highest โ€” 1 death / 2 accidents", color: ACCENT },
    { state: "Rajasthan", val: "47.5%", note: "Very high severity", color: "D04020" },
    { state: "Gujarat", val: "49.5%", note: "Slight rise from 48%", color: "C04020" },
    { state: "Telangana", val: "30.6%", note: "Best improvement (-2.8%)", color: "4A9040" },
    { state: "Kerala", val: "~7.6%", note: "Lowest โ€” best post-crash care", color: "2A7060" },
  ];

  severityData.forEach((d, i) => {
    let y = 1.2 + i * 0.56;
    s.addShape(pres.ShapeType.roundRect, { x: 5.1, y, w: 4.6, h: 0.5,
      fill: { color: "1A2840" }, line: { color: d.color, width: 1.5 }, rectRadius: 0.06 });
    s.addText(d.state, { x: 5.2, y: y + 0.04, w: 1.6, h: 0.25,
      fontSize: 11.5, bold: true, color: WHITE, fontFace: "Calibri" });
    s.addText(d.val, { x: 6.8, y: y + 0.02, w: 0.9, h: 0.3,
      fontSize: 16, bold: true, color: d.color, fontFace: "Calibri", align: "center" });
    s.addText(d.note, { x: 7.7, y: y + 0.08, w: 1.9, h: 0.3,
      fontSize: 9.5, color: GRAY, fontFace: "Calibri", italic: true });
  });

  // Bottom note
  s.addText("Golden Hour loss: 30-40% of deaths occur within 1 hour of crash (delayed trauma care)  |  Urban-rural enforcement gap persists", {
    x: 0.3, y: 5.1, w: 9.4, h: 0.38,
    fontSize: 10.5, color: GRAY, fontFace: "Calibri", italic: true
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 4 โ€“ TRAUMA EPIDEMIOLOGY
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "4A2010" } });
  s.addText("TRAUMA EPIDEMIOLOGY  โ€”  GLOBAL CONTEXT", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  const items = [
    { icon: "๐ŸŒ", bold: "Leading cause of mortality globally.", rest: " Worldwide road traffic injuries are the #1 cause of death in ages 18-29." },
    { icon: "๐Ÿ‡บ๐Ÿ‡ธ", bold: "United States:", rest: " Trauma is the leading cause of death in young adults, accounting for 10% of all deaths among men and women." },
    { icon: "๐Ÿฅ", bold: ">50 million patients/year", rest: " receive trauma-related care in the US alone; ~30% of all ICU admissions are trauma-related." },
    { icon: "โšก", bold: "Hemorrhage is the #1 preventable cause of trauma death.", rest: " ~1/3 of traumatic deaths result from exsanguination; half result from CNS injury." },
    { icon: "โฑ๏ธ", bold: "Trauma center care:", rest: " Associated with significantly lower morbidity & mortality (10.4% vs 13.8%; RR 0.75)." },
    { icon: "๐Ÿง ", bold: "Traumatic Brain Injury (TBI)", rest: " is the leading cause of trauma death; hemorrhage is second." },
    { icon: "๐Ÿ“‰", bold: "WHO 2030 SDG 3.6:", rest: " Halve global road deaths. India needs a 50% reduction โ€” current trajectory is far off-track." },
  ];

  items.forEach((item, i) => {
    let y = 0.8 + i * 0.63;
    s.addText(item.icon, { x: 0.2, y, w: 0.5, h: 0.5, fontSize: 20, align: "center" });
    s.addText([
      { text: item.bold, options: { bold: true, color: ACCENT2 } },
      { text: item.rest, options: { bold: false, color: LIGHT } }
    ], { x: 0.75, y: y + 0.06, w: 9, h: 0.48, fontSize: 13, fontFace: "Calibri" });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 5 โ€“ CLASSIFICATION OF HEMORRHAGE
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("ATLS CLASSIFICATION OF HEMORRHAGE  (11th Ed, 2025)", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  const classes = [
    { cls: "CLASS I", pct: "Up to 15%", hr: "Normal / minimally โ†‘", sbp: "Normal", other: "No change in pulse pressure or RR", bg: "1E4A1E", border: "2A8A2A" },
    { cls: "CLASS II", pct: "15-30%", hr: "100-120 bpm โ†‘", sbp: "Minimal change", other: "โ†“ Pulse pressure, tachypnea (RR 20-24), cool/clammy skin", bg: "4A3A0A", border: "C8941A" },
    { cls: "CLASS III", pct: "30-40%", hr: "โ‰ฅ120 bpm (thready)", sbp: "< 90 mmHg", other: "Mental status changes, โ†“ urine output, delayed capillary refill", bg: "4A1A0A", border: ACCENT },
    { cls: "CLASS IV", pct: "> 40%", hr: "> 120 bpm (marked)", sbp: "< 90 mmHg (hypotensive)", other: "Minimal/absent urine, cold/pale skin, narrow pulse pressure (โ‰ค25 mmHg)", bg: "6A1A1A", border: "FF2020" },
  ];

  const colLabels = ["", "Blood Loss", "Heart Rate", "Blood Pressure", "Key Signs"];
  const colX = [0.18, 1.3, 2.6, 4.0, 5.6];
  const colW = [1.1, 1.28, 1.38, 1.58, 4.2];

  // Header row
  colLabels.forEach((label, ci) => {
    s.addText(label, { x: colX[ci], y: 0.72, w: colW[ci], h: 0.32,
      fontSize: 11, bold: true, color: ACCENT2, fontFace: "Calibri", align: "center" });
  });

  classes.forEach((c, i) => {
    let y = 1.1 + i * 1.05;
    // Row background
    s.addShape(pres.ShapeType.roundRect, { x: 0.18, y, w: 9.64, h: 0.98,
      fill: { color: c.bg }, line: { color: c.border, width: 1.5 }, rectRadius: 0.06 });
    // Class label
    s.addText(c.cls, { x: 0.22, y: y + 0.12, w: 1.0, h: 0.5,
      fontSize: 14, bold: true, color: c.border, fontFace: "Calibri", align: "center" });
    // Data cells
    const cells = [c.pct, c.hr, c.sbp, c.other];
    cells.forEach((cell, ci) => {
      s.addText(cell, { x: colX[ci + 1], y: y + 0.1, w: colW[ci + 1], h: 0.75,
        fontSize: 11.5, color: WHITE, fontFace: "Calibri", align: "center", valign: "middle", wrap: true });
    });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 6 โ€“ INITIAL ASSESSMENT (ABCDE)
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = midSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "1A3A6A" } });
  s.addText("PRIMARY SURVEY โ€” ATLS ABCDE APPROACH", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  const steps = [
    { letter: "A", word: "AIRWAY", color: "E84B3C", desc: "Assess & protect airway โ€” C-spine stabilization. Video laryngoscopy preferred (90% vs 79% first-pass success). Cricothyrotomy kit at bedside for failed airway." },
    { letter: "B", word: "BREATHING", color: "F5A623", desc: "SpOโ‚‚ >93%. Rule out tension pneumothorax (immediate needle decompression), massive hemothorax, cardiac tamponade. E-FAST is more sensitive than CXR for pneumothorax." },
    { letter: "C", word: "CIRCULATION", color: "4CAF50", desc: "2 large-bore (โ‰ฅ16G) IVs antecubital fossa. IO access if IV fails (93% success). Control external hemorrhage. FAST exam. Transfuse type O blood for severe shock." },
    { letter: "D", word: "DISABILITY", color: "2196F3", desc: "Glasgow Coma Scale (GCS), pupillary response, gross motor & sensory function. Spinal immobilization if C-spine injury possible. Avoid hypotension with TBI." },
    { letter: "E", word: "EXPOSURE", color: "9C27B0", desc: "Completely undress patient. Examine entire body including scalp, axillae, perineum, back. Prevent hypothermia โ€” heat room, warm fluids, warm blankets." },
  ];

  steps.forEach((step, i) => {
    let y = 0.75 + i * 0.96;
    // Circle for letter
    s.addShape(pres.ShapeType.ellipse, { x: 0.2, y: y + 0.12, w: 0.65, h: 0.65,
      fill: { color: step.color }, line: { color: WHITE, width: 0.5 } });
    s.addText(step.letter, { x: 0.2, y: y + 0.14, w: 0.65, h: 0.55,
      fontSize: 22, bold: true, color: WHITE, align: "center", fontFace: "Calibri" });

    // Word
    s.addText(step.word, { x: 1.0, y: y + 0.08, w: 1.6, h: 0.35,
      fontSize: 13, bold: true, color: step.color, fontFace: "Calibri" });
    // Description
    s.addText(step.desc, { x: 1.0, y: y + 0.4, w: 8.75, h: 0.48,
      fontSize: 11.5, color: LIGHT, fontFace: "Calibri", wrap: true });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 7 โ€“ HEMORRHAGE CONTROL
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("HEMORRHAGE CONTROL", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  // Two columns
  // LEFT
  s.addText("External Hemorrhage", { x: 0.3, y: 0.75, w: 4.5, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri" });

  const extBullets = [
    "Direct pressure โ€” primary & preferred method",
    "Hemostatic-impregnated dressing + 3 min pressure",
    "Tourniquet for amputations/severe extremity injury; record time",
    "Junctional tourniquet for shoulder/groin wounds",
    "Scalp: lidocaine+epinephrine injection, Raney clips, or running sutures",
    "Wound packing with gauze or hemostatic agent",
  ];

  s.addText(extBullets.map((b, i) => ({
    text: b,
    options: { bullet: { type: "bullet", code: "25CF", color: ACCENT }, color: LIGHT,
               fontSize: 12, breakLine: true, paraSpaceAfter: 3 }
  })), { x: 0.3, y: 1.15, w: 4.5, h: 3.0, fontFace: "Calibri" });

  // RIGHT
  s.addText("Non-Compressible Hemorrhage", { x: 5.2, y: 0.75, w: 4.5, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri" });

  const intBullets = [
    "Sites: chest, abdomen, retroperitoneum, pelvis, thigh (up to 1L)",
    "FAST / E-FAST: identifies intraperitoneal & pericardial blood",
    "Unstable pelvis: circumferential pelvic binder (open-book fractures)",
    "REBOA (Resuscitative Endovascular Balloon Occlusion of Aorta): for massive pelvic/abdominal trauma",
    "Haemodynamically stable โ†’ CT scan for further workup",
    "Unstable โ†’ immediate OR or interventional radiology",
    "Early trauma surgery consult is mandatory",
  ];

  s.addText(intBullets.map((b, i) => ({
    text: b,
    options: { bullet: { type: "bullet", code: "25CF", color: "F5A623" }, color: LIGHT,
               fontSize: 12, breakLine: true, paraSpaceAfter: 3 }
  })), { x: 5.2, y: 1.15, w: 4.55, h: 3.0, fontFace: "Calibri" });

  // Divider
  s.addShape(pres.ShapeType.rect, { x: 4.97, y: 0.75, w: 0.06, h: 4.3, fill: { color: ACCENT } });

  // Bottom bar
  s.addShape(pres.ShapeType.rect, { x: 0, y: 4.95, w: 10, h: 0.65, fill: { color: "2A1A0A" } });
  s.addText("โš   Hypotension generally does not manifest until โ‰ฅ30% of blood volume is lost โ€” high index of suspicion required", {
    x: 0.3, y: 5.0, w: 9.4, h: 0.5,
    fontSize: 12, color: ACCENT2, bold: true, fontFace: "Calibri"
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 8 โ€“ DAMAGE CONTROL RESUSCITATION
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = midSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "1A3A6A" } });
  s.addText("DAMAGE CONTROL RESUSCITATION (DCR)", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  const principles = [
    {
      num: "1", title: "Minimize IV Crystalloid",
      desc: "Give only for hypotension (MAP <60-65 mmHg). Max 500 mL boluses. Limit to <1L total. Crystalloid >1.5L associated with 2ร— increased mortality.",
      color: "C04020"
    },
    {
      num: "2", title: "Transfuse Early โ€” Balanced Ratio",
      desc: "Whole blood or 1:1:1 ratio of PRBCs : FFP : Platelets. Activate Massive Transfusion Protocol (MTP) early. Type O blood available immediately.",
      color: "C08020"
    },
    {
      num: "3", title: "Tranexamic Acid (TXA) โ€” Within 3 Hours",
      desc: "1g IV over 10 min โ†’ 1g over 8 hours (or 2g single bolus). CRASH-2: โ†“ all-cause mortality (14.5โ†’16%) and bleeding mortality. Benefit ONLY within 3 hours.",
      color: "2060A0"
    },
    {
      num: "4", title: "Permissive Hypotension",
      desc: "Target SBP 70-90 mmHg (MAP 50-65) for penetrating trauma WITHOUT brain injury. For TBI/SCI: maintain MAP โ‰ฅ85 mmHg. European guidelines: SBP 80-90 mmHg.",
      color: "206A30"
    },
    {
      num: "5", title: "TEG / ROTEM Guided Treatment",
      desc: "Thromboelastography provides faster & more accurate coagulopathy assessment. Guides clotting factor replacement. Reduces unnecessary transfusion.",
      color: "602080"
    },
  ];

  principles.forEach((p, i) => {
    let y = 0.8 + i * 0.94;
    s.addShape(pres.ShapeType.ellipse, { x: 0.2, y: y + 0.1, w: 0.6, h: 0.6,
      fill: { color: p.color }, line: { color: WHITE, width: 0.5 } });
    s.addText(p.num, { x: 0.2, y: y + 0.1, w: 0.6, h: 0.6,
      fontSize: 18, bold: true, color: WHITE, align: "center", valign: "middle", fontFace: "Calibri" });
    s.addText(p.title, { x: 0.95, y: y + 0.06, w: 3.2, h: 0.35,
      fontSize: 13.5, bold: true, color: ACCENT2, fontFace: "Calibri" });
    s.addText(p.desc, { x: 0.95, y: y + 0.4, w: 8.8, h: 0.48,
      fontSize: 11.5, color: LIGHT, fontFace: "Calibri", wrap: true });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 9 โ€“ MASSIVE TRANSFUSION PROTOCOL (ABC SCORE)
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("MASSIVE TRANSFUSION PROTOCOL  &  ABC SCORE", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  // ABC Score box LEFT
  s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: 0.8, w: 4.6, h: 3.0,
    fill: { color: "1E1A2E" }, line: { color: ACCENT2, width: 2 }, rectRadius: 0.1 });
  s.addText("ABC SCORE  (Assessment of Blood Consumption)", {
    x: 0.4, y: 0.88, w: 4.2, h: 0.38,
    fontSize: 13, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const abcItems = [
    "Penetrating mechanism of injury",
    "Positive FAST exam (evidence of hemorrhage)",
    "SBP โ‰ค 90 mmHg",
    "Heart rate โ‰ฅ 120 bpm",
  ];
  abcItems.forEach((item, i) => {
    let y = 1.35 + i * 0.5;
    s.addShape(pres.ShapeType.rect, { x: 0.4, y: y - 0.02, w: 0.36, h: 0.36,
      fill: { color: ACCENT }, line: { color: ACCENT } });
    s.addText(`+1`, { x: 0.4, y: y - 0.02, w: 0.36, h: 0.36,
      fontSize: 12, bold: true, color: WHITE, align: "center", valign: "middle", fontFace: "Calibri" });
    s.addText(item, { x: 0.82, y, w: 3.8, h: 0.35,
      fontSize: 12.5, color: LIGHT, fontFace: "Calibri" });
  });

  s.addText("Score โ‰ฅ 2 โ†’ Activate MTP\n(Sensitivity 75%, Specificity 86%)", {
    x: 0.4, y: 3.5, w: 4.2, h: 0.6,
    fontSize: 12.5, bold: true, color: "40FF80", fontFace: "Calibri"
  });

  // RIGHT โ€” Transfusion guide
  s.addShape(pres.ShapeType.roundRect, { x: 5.2, y: 0.8, w: 4.6, h: 3.0,
    fill: { color: "1E1A2E" }, line: { color: "4080C0", width: 2 }, rectRadius: 0.1 });
  s.addText("TRANSFUSION GUIDE", {
    x: 5.4, y: 0.88, w: 4.2, h: 0.38,
    fontSize: 13, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const transfItems = [
    { label: "Severe hemorrhage:", val: "Activate MTP immediately\n6 units PRBCs + 6 FFP + 6 plt (or 1 apheresis plt)" },
    { label: "Moderate hemorrhage:", val: "Same 1:1:1 ratio; transfuse as soon as need recognized" },
    { label: "Hb threshold (non-severe):", val: "< 7 g/dL (or <10 g/dL if ACS risk)" },
    { label: "Platelets:", val: "Transfuse if <50,000/ยตL" },
    { label: "FFP:", val: "If INR > 2" },
    { label: "Cryoprecipitate:", val: "If fibrinogen <150 mg/dL" },
  ];

  transfItems.forEach((item, i) => {
    let y = 1.3 + i * 0.52;
    s.addText([
      { text: item.label + " ", options: { bold: true, color: ACCENT2 } },
      { text: item.val, options: { color: LIGHT } }
    ], { x: 5.4, y, w: 4.2, h: 0.5, fontSize: 11.5, fontFace: "Calibri", wrap: true });
  });

  // Bottom note
  s.addText("Massive transfusion traditionally: โ‰ฅ10 units PRBCs/24 hrs  |  Modern definition: โ‰ฅ10 units/6 hrs", {
    x: 0.3, y: 4.95, w: 9.4, h: 0.48,
    fontSize: 11, color: GRAY, italic: true, fontFace: "Calibri"
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 10 โ€“ SPECIAL SCENARIOS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = midSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "1A3A6A" } });
  s.addText("SPECIAL CLINICAL SCENARIOS", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  const scenarios = [
    {
      title: "๐Ÿง  Spinal Cord Injury + Hemorrhage",
      content: "Highest priority: control blood loss first. Target MAP โ‰ฅ85-90 mmHg (vs 60-65 for other trauma). Add norepinephrine if MAP not achieved after transfusion. Transfer with both blood products and norepinephrine.",
      color: "4A1A7A"
    },
    {
      title: "๐Ÿ‘ด Older Adult Trauma",
      content: "Beta-blockers may mask tachycardia. Baseline hypertension means 'normal' BP may actually be hypotensive. Many on oral anticoagulants โ€” reverse as appropriate. Decompensate more easily from excess IV fluid or blood loss.",
      color: "1A3A5A"
    },
    {
      title: "๐Ÿคฐ Pregnant Patient",
      content: "Displace uterus to left (>20 wks) to improve cardiac output. Up to 20% blood volume loss before vital sign changes. Obtain obstetrics consult immediately. Continuous fetal heart rate monitoring. Give anti-D immunoglobulin if RhD-negative.",
      color: "1A5A3A"
    },
    {
      title: "๐Ÿ’Š Anticoagulated Patient",
      content: "Warfarin: Vitamin K + PCC (4-factor). Dabigatran: Idarucizumab. Factor Xa inhibitors (rivaroxaban/apixaban): Andexanet alfa or 4F-PCC. LMWH: Protamine sulfate. Avoid 4F-PCC empirically in MTP โ€” PROCOAG trial showed no mortality benefit, higher thromboembolism (35% vs 24%).",
      color: "4A2A0A"
    },
  ];

  scenarios.forEach((sc, i) => {
    let row = Math.floor(i / 2);
    let col = i % 2;
    let x = 0.2 + col * 4.9;
    let y = 0.75 + row * 2.35;
    s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.6, h: 2.2,
      fill: { color: sc.color }, line: { color: "AABBCC", width: 0.8 }, rectRadius: 0.1 });
    s.addText(sc.title, { x: x + 0.15, y: y + 0.12, w: 4.3, h: 0.42,
      fontSize: 13.5, bold: true, color: ACCENT2, fontFace: "Calibri" });
    s.addText(sc.content, { x: x + 0.15, y: y + 0.56, w: 4.3, h: 1.58,
      fontSize: 11, color: LIGHT, fontFace: "Calibri", wrap: true, lineSpacingMultiple: 1.2 });
  });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 11 โ€“ INDIA: CAUSES & PREVENTION
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: "183060" } });
  s.addText("INDIA ROAD ACCIDENTS โ€” CAUSES & WAY FORWARD", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 20, bold: true, color: WHITE, fontFace: "Calibri", margin: 0
  });

  // Left column: Causes
  s.addText("Key Causes (MoRTH 2024)", {
    x: 0.3, y: 0.75, w: 4.5, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const causes = [
    { cause: "Over-speeding", pct: "70.3%" },
    { cause: "Drunk driving", pct: "~4%" },
    { cause: "Red light jumping", pct: "~2%" },
    { cause: "Wrong side driving", pct: "~3%" },
    { cause: "Distracted driving", pct: "~5%" },
    { cause: "Potholes / road defects", pct: "~1.6%" },
    { cause: "Night driving hazards", pct: "Significant" },
  ];

  causes.forEach((c, i) => {
    let y = 1.18 + i * 0.5;
    // Bar
    let barW = Math.min(3.5, (parseFloat(c.pct) / 70) * 3.5 || 0.6);
    s.addShape(pres.ShapeType.rect, { x: 0.3, y: y + 0.1, w: barW, h: 0.25,
      fill: { color: ACCENT }, line: { color: ACCENT } });
    s.addText(`${c.cause}  (${c.pct})`, { x: 0.3, y, w: 4.4, h: 0.42,
      fontSize: 12, color: LIGHT, fontFace: "Calibri" });
  });

  // Divider
  s.addShape(pres.ShapeType.rect, { x: 4.97, y: 0.75, w: 0.06, h: 4.7, fill: { color: "3060A0" } });

  // Right column: Way forward
  s.addText("Way Forward โ€” Key Interventions", {
    x: 5.2, y: 0.75, w: 4.5, h: 0.38,
    fontSize: 15, bold: true, color: ACCENT2, fontFace: "Calibri"
  });

  const interventions = [
    "๐Ÿšจ Enforce speed limits โ€” camera-based, automated penalties",
    "๐Ÿฅ Strengthen Golden Hour care: expand trauma centers on NH corridors",
    "๐Ÿš‘ Good Samaritan Law awareness to encourage bystander first aid",
    "๐Ÿ›ก๏ธ Mandatory helmets, seatbelts โ€” increase conviction rate",
    "๐ŸŒ Crash data integration: close MoRTHโ€“NCRB 14,600 deaths data gap",
    "๐Ÿ›ฃ๏ธ Black-spot elimination on National Highways",
    "๐Ÿ“ฑ Intelligent Traffic Management Systems in cities",
    "๐ŸŽ“ Road safety education in schools & for new drivers",
  ];

  s.addText(interventions.map((b) => ({
    text: b,
    options: { bullet: false, color: LIGHT, fontSize: 12, breakLine: true, paraSpaceAfter: 4 }
  })), { x: 5.2, y: 1.15, w: 4.55, h: 4.2, fontFace: "Calibri" });
}

// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
// SLIDE 12 โ€“ KEY TAKEAWAYS
// โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
{
  let s = darkSlide(pres);
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.65, fill: { color: ACCENT } });
  s.addText("KEY TAKEAWAYS", {
    x: 0.3, y: 0.1, w: 9.4, h: 0.45,
    fontSize: 22, bold: true, color: WHITE, fontFace: "Calibri", margin: 0, charSpacing: 3
  });

  const takeaways = [
    { emoji: "๐Ÿฉธ", text: "Hemorrhage is the #1 preventable cause of trauma death โ€” rapid control and early transfusion save lives." },
    { emoji: "โฑ๏ธ", text: "TXA must be given within 3 hours of injury (1g IV + 1g over 8h). After 3 hours, NO benefit." },
    { emoji: "๐Ÿ’‰", text: "Whole blood or 1:1:1 (PRBCs:FFP:Platelets) is the standard for massive hemorrhage resuscitation." },
    { emoji: "๐Ÿšซ", text: "Minimize crystalloid โ€” >1.5L crystalloid is associated with doubled mortality in trauma patients." },
    { emoji: "๐Ÿ‡ฎ๐Ÿ‡ณ", text: "India: 1.77 lakh deaths/year (2024), 485/day. #1 globally. 18-45 age group = 66% of all deaths." },
    { emoji: "๐ŸŽ๏ธ", text: "Over-speeding (70.3%) and two-wheelers (46.2%) dominate India's road death causes." },
    { emoji: "๐Ÿฅ", text: "Only 2.1% of India's roads are National Highways, yet they account for 36.6% of road deaths." },
    { emoji: "๐ŸŽฏ", text: "India is far off-track for the WHO SDG 3.6 target of 50% reduction in road deaths by 2030." },
  ];

  takeaways.forEach((t, i) => {
    let y = 0.75 + i * 0.6;
    s.addText(t.emoji, { x: 0.25, y, w: 0.5, h: 0.5, fontSize: 20, align: "center" });
    s.addText(t.text, { x: 0.85, y: y + 0.06, w: 9.0, h: 0.48,
      fontSize: 12.5, color: i < 4 ? LIGHT : ACCENT2, fontFace: "Calibri", wrap: true });
  });
}

// โ”€โ”€โ”€ WRITE FILE โ”€โ”€โ”€
const outputPath = "/home/daytona/workspace/trauma-ppt/Trauma_Management_India_Road_Accidents.pptx";
pres.writeFile({ fileName: outputPath })
  .then(() => console.log(`โœ… Saved: ${outputPath}`))
  .catch(err => { console.error("Error:", err); process.exit(1); });
Running Command

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

Running Command

ls -lh /home/daytona/workspace/trauma-ppt/Trauma_Management_India_Road_Accidentsโ€ฆ

Your presentation is ready!

Trauma Management India Road Accidents

Presentation ยท PPTX


12 slides covering everything from both PDFs + latest Indian road accident data (MoRTH 2024):
SlideContent
1Title slide
2๐Ÿ‡ฎ๐Ÿ‡ณ India Road Accident Crisis 2024 โ€” 4 stat boxes + 7 key bullets
3State-wise data table + Severity Index (UP worst, Kerala best)
4Global Trauma Epidemiology
5ATLS Hemorrhage Classification โ€” Classes Iโ€“IV (color-coded)
6Primary Survey โ€” ABCDE approach
7Hemorrhage Control (external + non-compressible)
8Damage Control Resuscitation โ€” 5 key principles
9Massive Transfusion Protocol + ABC Score
10Special Scenarios (SCI, elderly, pregnant, anticoagulated patients)
11India Causes + Way Forward / Prevention
12Key Takeaways
Design: Deep navy background, emergency red headers, amber highlights โ€” suited for a clinical/emergency medicine audience. All Indian data sourced from MoRTH 2024 report (1.77 lakh deaths, 485/day, India #1 globally).

Create 40-45 slides with international level

Create 40-45 slides in international level

With pictures and themes

Reading File
Running Command

node /home/daytona/skills/shared/scripts/fetch_images.js \ "https://images.unsโ€ฆ

Running Command

# Try fetching images with curl and save locally mkdir -p /home/daytona/workspacโ€ฆ

Running Command

# Generate rich SVG-based images locally using Python (no network needed) mkdir โ€ฆ

Running Command

python3 << 'PYEOF' from PIL import Image, ImageDraw, ImageFont import os, math โ€ฆ

Running Command

python3 << 'PYEOF' from PIL import Image, ImageDraw, ImageFont import os OUT = โ€ฆ

This is a shared conversation. Sign in to Orris to start your own chat.