Want to create ppt
I already found content
U have to do only Make slide means full ppt
Ok
Topic is Castor poisoning Fmt third year MBBS reference Gautam biswas , narayan Reddy , Rajesh bardale ,
castor bean poisoning ricin forensic medicine Gautam Biswas Narayan Reddy MBBS
mkdir -p /home/daytona/workspace/castor-poisoning-ppt
~/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); });
cd /home/daytona/workspace/castor-poisoning-ppt && node build.js 2>&1
Castor Poisoning MBBS
Presentation Β· PPTX
| # | Slide |
|---|---|
| 1 | Title Slide |
| 2 | Contents at a Glance |
| 3 | Introduction & Synonyms |
| 4 | Botanical Description |
| 5 | Active Toxin β Ricin (Chemistry & Toxicity Data) |
| 6 | Mechanism of Action (Step-by-step flowchart) |
| 7 | Clinical Features β Ingestion (3 Phases) |
| 8 | Clinical Features β Other Routes (Inhalation, Injection, Dermal) |
| 9 | Diagnosis (Clinical + Lab + Confirmatory) |
| 10 | Management & Treatment |
| 11 | Medico-Legal Aspects + IPC Sections |
| 12 | Post-Mortem Findings |
| 13 | Differential Diagnosis (8 conditions) |
| 14 | References (Biswas, Narayan Reddy, Bardale + others) |
| 15 | Thank You |
Not downloadable
ls -lh /home/daytona/workspace/castor-poisoning-ppt/