Want to create ppt

Asking for Preferences
Could you please tell me what topic you'd like the presentation to be about? That's the one thing I need before I can start building it for you.

I already found content

Please share your content and I'll build the presentation from it!

U have to do only Make slide means full ppt

I'm ready to build the full PPT for you! I just need to know:
What is the topic/subject of the presentation?
Once you tell me the topic, I'll research the content and create the complete slide deck for you.

Ok

What is the topic of your presentation? For example:
  • Diabetes Management
  • Climate Change
  • Artificial Intelligence
  • Marketing Strategy
  • etc.
Just tell me the subject and I'll create the full PPT!

Topic is Castor poisoning Fmt third year MBBS reference Gautam biswas , narayan Reddy , Rajesh bardale ,

Reading File
Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Searching the Web

castor bean poisoning ricin forensic medicine Gautam Biswas Narayan Reddy MBBS

Running Command

mkdir -p /home/daytona/workspace/castor-poisoning-ppt

Writing File

~/castor-poisoning-ppt/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Castor Poisoning";
pres.author = "3rd Year MBBS";

// ─── THEME ───────────────────────────────────────────────────────────────────
const C = {
  darkGreen:   "1B4332",  // dominant bg
  midGreen:    "2D6A4F",  // card bg
  accent:      "95D5B2",  // headings / highlights
  accentBright:"52B788",  // accent bars
  white:       "FFFFFF",
  lightGray:   "D8F3DC",
  text:        "FFFFFF",
  subtext:     "B7E4C7",
  warn:        "FF6B6B",
  yellow:      "FFD166",
  darkText:    "1B4332",
};

// ─── HELPERS ──────────────────────────────────────────────────────────────────
function addBg(slide, color) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: "100%",
    fill: { color: color || C.darkGreen }, line: { color: color || C.darkGreen },
  });
}

function addTopBar(slide, title, subtitle) {
  // Accent bar
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: "100%", h: 0.9,
    fill: { color: C.midGreen }, line: { color: C.midGreen },
  });
  // Accent left strip
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 0.12, h: 0.9,
    fill: { color: C.accentBright }, line: { color: C.accentBright },
  });
  slide.addText(title, {
    x: 0.22, y: 0.08, w: 9.3, h: 0.75,
    fontSize: 22, bold: true, color: C.white, fontFace: "Calibri", margin: 0, valign: "middle",
  });
  if (subtitle) {
    slide.addText(subtitle, {
      x: 0.22, y: 0.78, w: 9.5, h: 0.28,
      fontSize: 11, color: C.subtext, fontFace: "Calibri", italic: true, margin: 0,
    });
  }
}

function card(slide, x, y, w, h, color) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w, h,
    fill: { color: color || C.midGreen },
    line: { color: C.accentBright, pt: 1.5 },
    rectRadius: 0.08,
  });
}

function sectionTag(slide, label, x, y) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w: 2.8, h: 0.32,
    fill: { color: C.accentBright },
    line: { color: C.accentBright },
    rectRadius: 0.06,
  });
  slide.addText(label, {
    x, y, w: 2.8, h: 0.32,
    fontSize: 9.5, bold: true, color: C.darkText, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });
}

function divider(slide, y) {
  slide.addShape(pres.ShapeType.line, {
    x: 0.3, y, w: 9.4, h: 0,
    line: { color: C.accentBright, pt: 1 },
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 1 β€” TITLE
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);

  // Large decorative arc shape
  s.addShape(pres.ShapeType.ellipse, {
    x: 6.5, y: -1.5, w: 5, h: 5,
    fill: { color: "2D6A4F" }, line: { color: "2D6A4F" },
  });
  s.addShape(pres.ShapeType.ellipse, {
    x: 7.2, y: -1, w: 4, h: 4,
    fill: { color: "40916C" }, line: { color: "40916C" },
  });

  // Bottom bar
  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.15, w: "100%", h: 0.47,
    fill: { color: C.accentBright }, line: { color: C.accentBright },
  });

  s.addText("CASTOR POISONING", {
    x: 0.5, y: 1.0, w: 8.5, h: 1.2,
    fontSize: 44, bold: true, color: C.white, fontFace: "Calibri",
    charSpacing: 3,
  });
  s.addText("Ricinus communis β€” Forensic Toxicology", {
    x: 0.5, y: 2.1, w: 8, h: 0.5,
    fontSize: 18, color: C.accent, fontFace: "Calibri", italic: true,
  });

  divider(s, 2.7);

  s.addText([
    { text: "Department of Forensic Medicine & Toxicology", options: { breakLine: true } },
    { text: "Third Year MBBS", options: { breakLine: true } },
  ], {
    x: 0.5, y: 2.82, w: 8, h: 0.8,
    fontSize: 13, color: C.subtext, fontFace: "Calibri",
  });

  s.addText("References: Gautam Biswas | Narayan Reddy | Rajesh Bardale", {
    x: 0.5, y: 4.85, w: 9, h: 0.3,
    fontSize: 9, color: C.darkText, fontFace: "Calibri", bold: true,
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 2 β€” OVERVIEW / CONTENTS
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Contents at a Glance");

  const topics = [
    ["01", "Introduction & Synonyms"],
    ["02", "Botanical Description"],
    ["03", "Active Toxin β€” Ricin"],
    ["04", "Mechanism of Action"],
    ["05", "Clinical Features"],
    ["06", "Diagnosis"],
    ["07", "Medico-Legal Aspects"],
    ["08", "Management & Treatment"],
    ["09", "Post-Mortem Findings"],
    ["10", "References"],
  ];

  const cols = [0.3, 5.1];
  topics.forEach((t, i) => {
    const col = i < 5 ? 0 : 1;
    const row = i < 5 ? i : i - 5;
    const x = cols[col];
    const y = 1.08 + row * 0.84;

    card(s, x, y, 4.6, 0.7);
    s.addText(t[0], {
      x: x + 0.1, y: y + 0.12, w: 0.5, h: 0.45,
      fontSize: 18, bold: true, color: C.accentBright, fontFace: "Calibri", margin: 0,
    });
    s.addText(t[1], {
      x: x + 0.65, y: y + 0.12, w: 3.85, h: 0.45,
      fontSize: 12.5, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 3 β€” INTRODUCTION
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Introduction", "Ricinus communis β€” The Castor Oil Plant");
  sectionTag(s, "Forensic Toxicology", 0.3, 1.0);

  const points = [
    { label: "Scientific Name", val: "Ricinus communis (Family: Euphorbiaceae)" },
    { label: "Common Names", val: "Castor bean, Castor oil plant, Arandi (Hindi), Amanakku (Tamil), Diveli (Gujarati)" },
    { label: "Distribution", val: "Tropical and subtropical regions worldwide; commonly found throughout India" },
    { label: "Toxic Part", val: "Seeds (beans) β€” contain the potent toxalbumin RICIN" },
    { label: "Castor Oil", val: "Cold-pressed castor oil is non-toxic (ricin not transferred to oil); used medicinally" },
    { label: "Importance", val: "One of the most toxic naturally occurring substances known; Category B bioterrorism agent (CDC)" },
  ];

  points.forEach((p, i) => {
    const y = 1.42 + i * 0.67;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.3, y, w: 9.4, h: 0.6,
      fill: { color: i % 2 === 0 ? "2D6A4F" : "1F5C41" },
      line: { color: C.accentBright, pt: 0.5 },
      rectRadius: 0.05,
    });
    s.addText(p.label + ":", {
      x: 0.45, y: y + 0.08, w: 2.2, h: 0.42,
      fontSize: 11, bold: true, color: C.accent, fontFace: "Calibri", valign: "middle", margin: 0,
    });
    s.addText(p.val, {
      x: 2.7, y: y + 0.08, w: 6.9, h: 0.42,
      fontSize: 11, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 4 β€” BOTANICAL DESCRIPTION
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Botanical Description", "Ricinus communis");

  // Left column
  card(s, 0.3, 1.0, 4.6, 4.4);
  s.addText("Plant Characteristics", {
    x: 0.4, y: 1.05, w: 4.4, h: 0.4,
    fontSize: 13, bold: true, color: C.accent, fontFace: "Calibri", margin: 4,
  });
  const plantFacts = [
    "Tall shrub/small tree (up to 4–8 m height)",
    "Large, star-shaped (palmate) green leaves",
    "Hollow, reddish-green stem",
    "Flowers: monoecious; female flowers above male",
    "Fruit: spiny green capsule containing 3 seeds",
    "Seeds: oval, shiny, mottled brown/grayish with a caruncle (white protrusion at one end)",
    "Distinct dark brown spots on lighter background",
  ];
  plantFacts.forEach((f, i) => {
    s.addText([{ text: f, options: { bullet: { code: "25B6" }, bulletColor: C.accentBright } }], {
      x: 0.4, y: 1.52 + i * 0.52, w: 4.4, h: 0.46,
      fontSize: 10.5, color: C.white, fontFace: "Calibri", margin: 3,
    });
  });

  // Right column
  card(s, 5.2, 1.0, 4.6, 4.4);
  s.addText("Seed (Bean) Description", {
    x: 5.3, y: 1.05, w: 4.4, h: 0.4,
    fontSize: 13, bold: true, color: C.accent, fontFace: "Calibri", margin: 4,
  });
  const seedFacts = [
    "Size: 1–2 cm long, oval/oblong shape",
    "Shiny, hard outer testa (coat)",
    "Mottled appearance β€” light & dark brown",
    "White caruncle at one end (key ID feature)",
    "Bitter taste when chewed",
    "Hard coat when swallowed whole β†’ toxin not absorbed",
    "Chewing/crushing breaks coat β†’ releases ricin β†’ TOXIC",
  ];
  seedFacts.forEach((f, i) => {
    s.addText([{ text: f, options: { bullet: { code: "25B6" }, bulletColor: C.accentBright } }], {
      x: 5.3, y: 1.52 + i * 0.52, w: 4.4, h: 0.46,
      fontSize: 10.5, color: C.white, fontFace: "Calibri", margin: 3,
    });
  });

  // Bottom note
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.3, y: 5.28, w: 9.4, h: 0.28,
    fill: { color: C.accentBright }, line: { color: C.accentBright }, rectRadius: 0.04,
  });
  s.addText("KEY: Seeds swallowed whole are usually non-fatal; chewing/crushing seeds is DANGEROUS", {
    x: 0.3, y: 5.28, w: 9.4, h: 0.28,
    fontSize: 9.5, bold: true, color: C.darkText, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 5 β€” ACTIVE TOXIN: RICIN
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Active Toxin β€” Ricin", "Properties & Chemical Nature");

  // 3 cards
  const cards = [
    {
      title: "Chemical Nature",
      items: [
        "Toxalbumin (toxic protein / lectin)",
        "Composed of 2 chains: A-chain & B-chain",
        "A-chain: enzymatically active (rRNA N-glycosidase)",
        "B-chain: lectin β€” binds to cell surface galactose residues",
        "MW: ~66 kDa",
        "Water-soluble, heat-sensitive",
        "Destroyed at >80Β°C (hence castor oil is safe)",
      ],
    },
    {
      title: "Other Toxic Constituents",
      items: [
        "Ricinine: alkaloid present in leaves & seeds",
        "CB-1A: toxic allergen (causes allergic reactions)",
        "Ricin D & E: related toxin isoforms",
        "Agglutinin (RCA-120): less toxic haemagglutinin",
        "Ricinine detected in urine β€” useful for diagnosis",
      ],
    },
    {
      title: "Toxicity Data",
      items: [
        "LD50 (rats, injection): ~22 Β΅g/kg body weight",
        "LD50 (oral, human estimate): ~1–20 mg/kg",
        "Lethal dose: 4–8 seeds (chewed) in children",
        "~8–10 seeds may be lethal in adults",
        "Purified ricin: 1 Β΅g/kg may be fatal by injection",
        "Category B Bioterrorism Agent (CDC/FBI)",
      ],
    },
  ];

  cards.forEach((c, i) => {
    const x = 0.3 + i * 3.23;
    card(s, x, 1.05, 3.1, 4.45);
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 3.1, h: 0.4,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText(c.title, {
      x: x + 0.05, y: 1.05, w: 3.0, h: 0.4,
      fontSize: 11, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    c.items.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "2022" }, bulletColor: C.accentBright } }], {
        x: x + 0.08, y: 1.5 + j * 0.52, w: 2.9, h: 0.46,
        fontSize: 9.8, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 6 β€” MECHANISM OF ACTION
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Mechanism of Action", "How Ricin Kills Cells");

  // Step-by-step flowchart style
  const steps = [
    { num: "1", color: "40916C", title: "Cell Entry (B-chain)", body: "B-chain (lectin) binds galactose residues on cell-surface glycoproteins/glycolipids β†’ receptor-mediated endocytosis" },
    { num: "2", color: "2D6A4F", title: "Intracellular Transport", body: "Ricin taken into endosomes β†’ retrograde transport to Golgi apparatus & endoplasmic reticulum (ER)" },
    { num: "3", color: "1B4332", title: "A-chain Release", body: "In ER lumen: disulfide bond between A & B chains reduced β†’ A-chain released into cytosol" },
    { num: "4", color: "0D3321", title: "Ribosome Inactivation", body: "A-chain (rRNA N-glycosidase) depurinates a specific adenine residue (A4324) in 28S rRNA of 60S ribosomal subunit β†’ irreversible ribosome inactivation" },
    { num: "5", color: C.warn, title: "Cell Death", body: "Protein synthesis halted β†’ Apoptosis & necrosis β†’ Multi-organ failure β†’ DEATH" },
  ];

  steps.forEach((step, i) => {
    const y = 1.03 + i * 0.9;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.3, y, w: 9.4, h: 0.82,
      fill: { color: step.color },
      line: { color: C.accentBright, pt: 1 },
      rectRadius: 0.07,
    });
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.35, y: y + 0.16, w: 0.5, h: 0.5,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText(step.num, {
      x: 0.35, y: y + 0.16, w: 0.5, h: 0.5,
      fontSize: 13, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    s.addText(step.title + "  β†’  " + step.body, {
      x: 1.0, y: y + 0.1, w: 8.6, h: 0.62,
      fontSize: 10.5, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
      bold: false,
    });
  });

  // Note
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.3, y: 5.55, w: 9.4, h: 0.28,
    fill: { color: C.accentBright }, line: { color: C.accentBright }, rectRadius: 0.04,
  });
  s.addText("Net Result: 1 ricin molecule can inactivate >1500 ribosomes/minute β€” hence extremely potent even in nanogram quantities", {
    x: 0.3, y: 5.55, w: 9.4, h: 0.28,
    fontSize: 9, bold: true, color: C.darkText, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 7 β€” CLINICAL FEATURES (INGESTION)
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Clinical Features β€” Ingestion", "Most common route; 4–6 hrs onset");

  const phases = [
    {
      label: "Phase 1 (0–6 hrs) β€” GI",
      color: "2D6A4F",
      items: ["Burning sensation in mouth & throat", "Nausea, vomiting (severe)", "Colicky abdominal pain", "Profuse watery / bloody diarrhea", "Salivation, lacrimation"],
    },
    {
      label: "Phase 2 (6–24 hrs) β€” Systemic",
      color: "1F5C41",
      items: ["Dehydration, electrolyte disturbance", "Tachycardia, hypotension", "Haematuria (blood in urine)", "Jaundice (hepatic involvement)", "Oliguria / anuria (renal failure)"],
    },
    {
      label: "Phase 3 (1–5 days) β€” CNS & MOF",
      color: "174D37",
      items: ["Headache, dizziness, confusion", "Seizures, coma, cerebral oedema", "Agitation, visual disturbances", "Multi-organ failure (liver, kidney, heart)", "Death (3–5 days without treatment)"],
    },
  ];

  phases.forEach((ph, i) => {
    const x = 0.28 + i * 3.25;
    card(s, x, 1.05, 3.1, 4.45, ph.color);
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 3.1, h: 0.42,
      fill: { color: i === 2 ? C.warn : C.accentBright },
      line: { color: i === 2 ? C.warn : C.accentBright },
    });
    s.addText(ph.label, {
      x: x + 0.05, y: 1.05, w: 3.0, h: 0.42,
      fontSize: 10, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    ph.items.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "25CF" }, bulletColor: C.accentBright } }], {
        x: x + 0.1, y: 1.52 + j * 0.56, w: 2.9, h: 0.5,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
  });

  s.addText("Note: Whole seeds swallowed intact β†’ usually benign GI symptoms only | Chewed/crushed β†’ severe systemic toxicity", {
    x: 0.3, y: 5.57, w: 9.4, h: 0.25,
    fontSize: 9, color: C.subtext, fontFace: "Calibri", italic: true, align: "center",
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 8 β€” CLINICAL FEATURES (OTHER ROUTES)
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Clinical Features β€” Other Routes of Exposure");

  const routes = [
    {
      route: "Inhalation (Ricin Powder)",
      onset: "4–8 hrs",
      features: ["Rhinorrhoea, eye irritation", "Cough, chest tightness", "Dyspnoea, bronchospasm", "Pulmonary oedema", "Respiratory failure β†’ death"],
      note: "Bioterrorism risk",
      color: C.warn,
    },
    {
      route: "Injection (Parenteral)",
      onset: "6–12 hrs",
      features: ["Local tissue necrosis at injection site", "Swollen regional lymph nodes", "Fever, malaise, body ache", "Nausea, vomiting", "Multi-organ failure (rare, but high fatality)"],
      note: "Georgi Markov case (1978 β€” pellet injection)",
      color: "FF8C42",
    },
    {
      route: "Dermal / Ocular",
      onset: "Variable",
      features: ["Skin: contact dermatitis, erythema", "Eye: conjunctivitis, pain, lacrimation", "Rarely absorbed through intact skin", "Large area exposure β†’ mild systemic effects"],
      note: "Usually local, self-limiting",
      color: C.accentBright,
    },
  ];

  routes.forEach((r, i) => {
    const x = 0.28 + i * 3.25;
    card(s, x, 1.05, 3.1, 4.45);
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.05, w: 3.1, h: 0.42,
      fill: { color: r.color }, line: { color: r.color },
    });
    s.addText(r.route, {
      x: x + 0.05, y: 1.05, w: 3.0, h: 0.42,
      fontSize: 10.5, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    s.addText("Onset: " + r.onset, {
      x: x + 0.1, y: 1.52, w: 2.9, h: 0.3,
      fontSize: 9.5, color: C.yellow, fontFace: "Calibri", italic: true, margin: 2, bold: true,
    });
    r.features.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "25CF" }, bulletColor: C.accentBright } }], {
        x: x + 0.1, y: 1.87 + j * 0.5, w: 2.9, h: 0.44,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
    s.addShape(pres.ShapeType.roundRect, {
      x: x + 0.1, y: 5.1, w: 2.88, h: 0.28,
      fill: { color: "0D3321" }, line: { color: r.color, pt: 1 }, rectRadius: 0.04,
    });
    s.addText("β˜… " + r.note, {
      x: x + 0.1, y: 5.1, w: 2.88, h: 0.28,
      fontSize: 8.5, color: C.yellow, fontFace: "Calibri", align: "center", valign: "middle", margin: 0, bold: true,
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 9 β€” DIAGNOSIS
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Diagnosis of Castor Poisoning");

  const sections = [
    {
      title: "Clinical Diagnosis",
      items: [
        "History of exposure to castor seeds / plant",
        "Characteristic GI symptoms + systemic progression",
        "Identification of seeds in vomitus / stool / stomach contents",
        "Pathognomonic mottled appearance of seeds with caruncle",
      ],
    },
    {
      title: "Laboratory Investigations",
      items: [
        "CBC: leucocytosis, anaemia, thrombocytopenia",
        "LFT: elevated transaminases (AST, ALT), bilirubin",
        "KFT: elevated creatinine & urea (renal failure)",
        "Coagulation profile: PT, aPTT may be prolonged",
        "ABG: metabolic acidosis",
        "Urine: haematuria, proteinuria, myoglobinuria",
      ],
    },
    {
      title: "Specific / Confirmatory Tests",
      items: [
        "Urine ricinine detection: HPLC, LC-MS/MS (most reliable)",
        "ELISA for ricin (serum/lavage fluid)",
        "Radioimmunoassay (RIA) for ricin",
        "Lateral flow immunoassay (rapid field test)",
        "Mass spectrometry β€” gold standard for confirmation",
        "PCR for Ricinus communis DNA in suspicious material",
      ],
    },
  ];

  sections.forEach((sec, i) => {
    const y = 1.05 + i * 1.55;
    s.addShape(pres.ShapeType.rect, {
      x: 0.3, y, w: 0.08, h: 1.4,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText(sec.title, {
      x: 0.5, y: y, w: 9, h: 0.35,
      fontSize: 13, bold: true, color: C.accent, fontFace: "Calibri", margin: 0,
    });
    const half = Math.ceil(sec.items.length / 2);
    sec.items.slice(0, half).forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "2022" }, bulletColor: C.accentBright } }], {
        x: 0.55, y: y + 0.38 + j * 0.34, w: 4.5, h: 0.3,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 1,
      });
    });
    sec.items.slice(half).forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "2022" }, bulletColor: C.accentBright } }], {
        x: 5.2, y: y + 0.38 + j * 0.34, w: 4.5, h: 0.3,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 1,
      });
    });
    if (i < 2) divider(s, y + 1.48);
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 10 β€” MANAGEMENT
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Management & Treatment", "No specific antidote available β€” Supportive care is the mainstay");

  // Warning banner
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.3, y: 1.0, w: 9.4, h: 0.35,
    fill: { color: C.warn }, line: { color: C.warn }, rectRadius: 0.05,
  });
  s.addText("⚠  There is NO specific antidote or approved treatment for ricin poisoning", {
    x: 0.3, y: 1.0, w: 9.4, h: 0.35,
    fontSize: 11.5, bold: true, color: C.white, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });

  const mgmt = [
    {
      title: "Decontamination",
      color: "40916C",
      items: [
        "Gastric lavage (early β€” within 1–2 hrs of ingestion)",
        "Activated charcoal (1 g/kg) β€” adsorbs toxin in GI tract",
        "Cathartics (sodium sulphate) to hasten elimination",
        "Dermal: wash with soap & water",
        "Eye: copious irrigation with normal saline",
      ],
    },
    {
      title: "Supportive Therapy",
      color: "2D6A4F",
      items: [
        "IV fluid resuscitation (correct dehydration & electrolytes)",
        "Vasopressors (dopamine/noradrenaline) for hypotension",
        "Anti-emetics (ondansetron) for vomiting",
        "Oxygen therapy / mechanical ventilation if needed",
        "Seizure management: diazepam / phenobarbitone",
      ],
    },
    {
      title: "Organ-Specific Care",
      color: "1B4332",
      items: [
        "Hepatic failure: N-acetylcysteine, hepatoprotectives",
        "Renal failure: haemodialysis / peritoneal dialysis",
        "Haematological: fresh frozen plasma, platelet transfusion",
        "Oedema: corticosteroids (dexamethasone), frusemide",
        "ICU admission for severe cases",
      ],
    },
  ];

  mgmt.forEach((m, i) => {
    const x = 0.28 + i * 3.25;
    card(s, x, 1.43, 3.1, 4.0, m.color);
    s.addShape(pres.ShapeType.rect, {
      x, y: 1.43, w: 3.1, h: 0.38,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText(m.title, {
      x: x + 0.05, y: 1.43, w: 3.0, h: 0.38,
      fontSize: 11, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    m.items.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "25CF" }, bulletColor: C.accentBright } }], {
        x: x + 0.1, y: 1.87 + j * 0.6, w: 2.88, h: 0.54,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
  });

  s.addShape(pres.ShapeType.roundRect, {
    x: 0.3, y: 5.5, w: 9.4, h: 0.3,
    fill: { color: "0D3321" }, line: { color: C.accentBright, pt: 1 }, rectRadius: 0.04,
  });
  s.addText("Experimental: Anti-ricin antibodies, ricin vaccine (under research) | Antihistamines + steroids for allergic reactions", {
    x: 0.3, y: 5.5, w: 9.4, h: 0.3,
    fontSize: 9, color: C.subtext, fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 11 β€” MEDICO-LEGAL ASPECTS
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Medico-Legal Aspects", "Forensic Significance");

  const ml = [
    {
      title: "Manner of Poisoning",
      items: [
        "Accidental: most common β€” children, unintentional ingestion",
        "Suicidal: chewing multiple seeds; common in India",
        "Homicidal: rare; seeds ground and mixed in food/drink",
        "Bioterrorism: purified ricin as weapon (powder, aerosol, injection)",
      ],
    },
    {
      title: "Notable Historical Cases",
      items: [
        "Georgi Markov (1978): Bulgarian dissident β€” ricin pellet injected via umbrella tip in London",
        "Washington DC postal facility (2001): ricin-laced letters discovered post 9/11",
        "Multiple suicide attempts reported from India using castor seeds",
        "Several alleged homicide cases using castor seeds in food",
      ],
    },
    {
      title: "Forensic Significance",
      items: [
        "Post-mortem: seeds/seed fragments in stomach β†’ collect for chemical analysis",
        "Viscera preservation: preserve stomach contents in glycerine or saturated NaCl",
        "Chemical analysis: ELISA, LC-MS for ricin; HPLC for ricinine in urine",
        "Report must comment on: seed identification, route, intent, and lethality",
        "Category B Bioterrorism agent β†’ notifiable to authorities",
      ],
    },
    {
      title: "Legal Provisions (India)",
      items: [
        "Section 304/302 IPC (if homicidal intent proven)",
        "Section 309 IPC (attempt to suicide β€” now decriminalised)",
        "Poison Act 1919 β€” regulation of scheduled poisons",
        "Disaster Management Act 2005 β€” for bioterrorism events",
      ],
    },
  ];

  ml.forEach((sec, i) => {
    const row = Math.floor(i / 2);
    const col = i % 2;
    const x = 0.3 + col * 4.85;
    const y = 1.05 + row * 2.3;
    card(s, x, y, 4.6, 2.1);
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.6, h: 0.36,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText(sec.title, {
      x: x + 0.05, y, w: 4.5, h: 0.36,
      fontSize: 11, bold: true, color: C.darkText, fontFace: "Calibri",
      valign: "middle", margin: 0,
    });
    sec.items.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "25B6" }, bulletColor: C.accentBright } }], {
        x: x + 0.1, y: y + 0.4 + j * 0.42, w: 4.38, h: 0.38,
        fontSize: 9.5, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 12 β€” POST-MORTEM FINDINGS
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Post-Mortem Findings", "Autopsy features in castor poisoning");

  const findings = [
    {
      organ: "Stomach & Intestines",
      findings: [
        "Castor seed fragments / whole seeds in stomach",
        "Gastric mucosa: congestion, erosions, haemorrhages",
        "Intestinal oedema, haemorrhagic enteritis",
        "Bloody contents throughout GI tract",
      ],
    },
    {
      organ: "Liver",
      findings: [
        "Enlarged, congested liver",
        "Centrilobular necrosis (histology)",
        "Fatty changes / hepatocellular degeneration",
        "Yellowish discolouration (jaundice)",
      ],
    },
    {
      organ: "Kidneys",
      findings: [
        "Congested, swollen kidneys",
        "Cortical pallor with medullary congestion",
        "Tubular necrosis (histology)",
        "Haemorrhagic infarcts in severe cases",
      ],
    },
    {
      organ: "Other Organs",
      findings: [
        "Brain: cerebral oedema, petechial haemorrhages",
        "Lungs: oedema, congestion (esp. inhalation)",
        "Heart: petechial subepicardial haemorrhages",
        "Spleen: congested, haemorrhagic splenitis",
      ],
    },
  ];

  findings.forEach((f, i) => {
    const row = Math.floor(i / 2);
    const col = i % 2;
    const x = 0.3 + col * 4.85;
    const y = 1.05 + row * 2.3;
    card(s, x, y, 4.6, 2.1);
    s.addShape(pres.ShapeType.rect, {
      x, y, w: 4.6, h: 0.36,
      fill: { color: col === 0 ? C.accentBright : "40916C" }, line: { color: col === 0 ? C.accentBright : "40916C" },
    });
    s.addText("πŸ”¬ " + f.organ, {
      x: x + 0.05, y, w: 4.5, h: 0.36,
      fontSize: 11.5, bold: true, color: C.darkText, fontFace: "Calibri",
      valign: "middle", margin: 4,
    });
    f.findings.forEach((item, j) => {
      s.addText([{ text: item, options: { bullet: { code: "25CF" }, bulletColor: C.accentBright } }], {
        x: x + 0.1, y: y + 0.4 + j * 0.42, w: 4.38, h: 0.38,
        fontSize: 10, color: C.white, fontFace: "Calibri", margin: 2,
      });
    });
  });

  s.addShape(pres.ShapeType.roundRect, {
    x: 0.3, y: 5.5, w: 9.4, h: 0.28,
    fill: { color: "0D3321" }, line: { color: C.accentBright, pt: 1 }, rectRadius: 0.04,
  });
  s.addText("Preserve: Stomach contents (in glycerine) β€’ Liver β€’ Kidney β€’ Urine (ricinine) β€’ Blood (ELISA) β€’ Send to FSL", {
    x: 0.3, y: 5.5, w: 9.4, h: 0.28,
    fontSize: 9.5, bold: true, color: C.accent, fontFace: "Calibri",
    align: "center", valign: "middle", margin: 0,
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 13 β€” DIFFERENTIAL DIAGNOSIS
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "Differential Diagnosis", "Conditions mimicking castor poisoning");

  const diffs = [
    { condition: "Abrin (Abrus precatorius) Poisoning", key: "Similar toxalbumin mechanism; seeds are red & black (rosary peas); harder outer coat" },
    { condition: "Arsenic Poisoning", key: "GI symptoms similar; garlic odour; Mees lines; Marsh test positive; no seed fragments" },
    { condition: "Organophosphate Poisoning", key: "Cholinergic syndrome (SLUDGE); miosis; low AChE; responds to atropine" },
    { condition: "Aconite Poisoning", key: "Cardiac arrhythmias, paraesthesia, tingling; no bloody diarrhoea; aconitine on tox screen" },
    { condition: "Mushroom (Amanita) Poisoning", key: "Similar liver/kidney failure; delayed onset; mushroom history; cyclopeptides on analysis" },
    { condition: "Acute Gastroenteritis (Infective)", key: "No systemic toxicity; positive stool culture; responds to antibiotics; no hepatorenal failure" },
    { condition: "Oleander / Digitalis Poisoning", key: "Cardiac arrhythmias prominent; digoxin-like compound on immunoassay" },
    { condition: "Jatropha curcas Poisoning", key: "Similar GI picture; no multi-organ failure usually; seeds ID by botanical features" },
  ];

  diffs.forEach((d, i) => {
    const y = 1.05 + i * 0.57;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.3, y, w: 9.4, h: 0.5,
      fill: { color: i % 2 === 0 ? "2D6A4F" : "243D30" },
      line: { color: C.accentBright, pt: 0.5 },
      rectRadius: 0.04,
    });
    s.addText(d.condition, {
      x: 0.42, y: y + 0.05, w: 3.5, h: 0.4,
      fontSize: 10.5, bold: true, color: C.accent, fontFace: "Calibri", valign: "middle", margin: 0,
    });
    s.addText("vs. Castor: " + d.key, {
      x: 3.95, y: y + 0.05, w: 5.7, h: 0.4,
      fontSize: 10, color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 14 β€” REFERENCES
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);
  addTopBar(s, "References");

  const refs = [
    {
      author: "Gautam Biswas",
      book: "Review of Forensic Medicine and Toxicology",
      detail: "Jaypee Brothers Medical Publishers. Chapter: Plant Poisons β€” Castor Poisoning (Ricin). Latest edition.",
    },
    {
      author: "K.S. Narayan Reddy",
      book: "The Essentials of Forensic Medicine and Toxicology",
      detail: "K. Suguna Devi Publishers. Chapter: Vegetable Poisons β€” Ricinus communis. Latest edition.",
    },
    {
      author: "Rajesh Bardale",
      book: "Principles of Forensic Medicine and Toxicology",
      detail: "Jaypee Brothers Medical Publishers. Chapter: Vegetable / Plant Poisons β€” Castor Bean. Latest edition.",
    },
    {
      author: "Rosen's Emergency Medicine",
      book: "Concepts and Clinical Practice, 9th Edition",
      detail: "Chapter 153 β€” Toxalbumins (Ricinus communis / Ricin). Elsevier. ISBN: 9780323757898.",
    },
    {
      author: "CDC Chemical Emergencies",
      book: "Ricin Fact Sheet",
      detail: "Centers for Disease Control and Prevention. www.cdc.gov/chemical-emergencies. Accessed 2026.",
    },
    {
      author: "Audi J, et al.",
      book: "Ricin Poisoning: A Comprehensive Review",
      detail: "JAMA. 2005;294(18):2342–2351.",
    },
  ];

  refs.forEach((r, i) => {
    const y = 1.1 + i * 0.73;
    card(s, 0.3, y, 9.4, 0.65, i % 2 === 0 ? "2D6A4F" : "243D30");
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.35, y: y + 0.12, w: 0.42, h: 0.42,
      fill: { color: C.accentBright }, line: { color: C.accentBright },
    });
    s.addText("" + (i + 1), {
      x: 0.35, y: y + 0.12, w: 0.42, h: 0.42,
      fontSize: 11, bold: true, color: C.darkText, fontFace: "Calibri",
      align: "center", valign: "middle", margin: 0,
    });
    s.addText(r.author + " β€” " + r.book, {
      x: 0.85, y: y + 0.05, w: 8.7, h: 0.3,
      fontSize: 10.5, bold: true, color: C.accent, fontFace: "Calibri", margin: 0,
    });
    s.addText(r.detail, {
      x: 0.85, y: y + 0.32, w: 8.7, h: 0.28,
      fontSize: 9.5, color: C.subtext, fontFace: "Calibri", italic: true, margin: 0,
    });
  });
}

// ════════════════════════════════════════════════════════════════════════════
// SLIDE 15 β€” THANK YOU
// ════════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  addBg(s);

  s.addShape(pres.ShapeType.ellipse, {
    x: 2, y: -1, w: 7, h: 7,
    fill: { color: "2D6A4F" }, line: { color: "2D6A4F" },
  });
  s.addShape(pres.ShapeType.ellipse, {
    x: 3, y: -0.5, w: 5.5, h: 5.5,
    fill: { color: "40916C" }, line: { color: "40916C" },
  });

  s.addShape(pres.ShapeType.rect, {
    x: 0, y: 5.15, w: "100%", h: 0.47,
    fill: { color: C.accentBright }, line: { color: C.accentBright },
  });

  s.addText("THANK YOU", {
    x: 0.5, y: 1.2, w: 9, h: 1.4,
    fontSize: 52, bold: true, color: C.white, fontFace: "Calibri",
    charSpacing: 6, align: "center",
  });
  s.addText("Castor Poisoning β€” Forensic Toxicology", {
    x: 0.5, y: 2.55, w: 9, h: 0.5,
    fontSize: 16, color: C.accent, fontFace: "Calibri", italic: true, align: "center",
  });
  divider(s, 3.15);
  s.addText("3rd Year MBBS | Department of Forensic Medicine & Toxicology", {
    x: 0.5, y: 3.25, w: 9, h: 0.4,
    fontSize: 13, color: C.subtext, fontFace: "Calibri", align: "center",
  });
  s.addText("References: Gautam Biswas | K.S. Narayan Reddy | Rajesh Bardale", {
    x: 0.5, y: 3.65, w: 9, h: 0.3,
    fontSize: 11, color: C.subtext, fontFace: "Calibri", align: "center",
  });

  s.addText("\"One of the most toxic naturally occurring substances β€” 1 ricin molecule can kill a cell\"", {
    x: 1.2, y: 4.25, w: 7.6, h: 0.6,
    fontSize: 11.5, color: C.yellow, fontFace: "Calibri", italic: true, align: "center",
  });

  s.addText("3rd MBBS  |  Forensic Medicine  |  May 2026", {
    x: 0.5, y: 5.17, w: 9, h: 0.28,
    fontSize: 9, color: C.darkText, bold: true, fontFace: "Calibri", align: "center", valign: "middle", margin: 0,
  });
}

// ─── WRITE FILE ───────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/castor-poisoning-ppt/Castor_Poisoning_MBBS.pptx" })
  .then(() => console.log("PPT saved successfully!"))
  .catch(e => { console.error("Error:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/castor-poisoning-ppt && node build.js 2>&1

Your PPT is ready! πŸŽ‰

Castor Poisoning MBBS

Presentation Β· PPTX


15 slides β€” dark green medical theme β€” structured for 3rd year MBBS Forensic Medicine:
#Slide
1Title Slide
2Contents at a Glance
3Introduction & Synonyms
4Botanical Description
5Active Toxin β€” Ricin (Chemistry & Toxicity Data)
6Mechanism of Action (Step-by-step flowchart)
7Clinical Features β€” Ingestion (3 Phases)
8Clinical Features β€” Other Routes (Inhalation, Injection, Dermal)
9Diagnosis (Clinical + Lab + Confirmatory)
10Management & Treatment
11Medico-Legal Aspects + IPC Sections
12Post-Mortem Findings
13Differential Diagnosis (8 conditions)
14References (Biswas, Narayan Reddy, Bardale + others)
15Thank You

Not downloadable

Running Command

ls -lh /home/daytona/workspace/castor-poisoning-ppt/

You've run out of free credits. Sign up for a free account to continue using Orris.
This is a shared conversation. Sign in to Orris to start your own chat.