Hey RCI, please give me a PPT for liver mortis with a case scenario and five MCQs.
livor mortis postmortem lividity
ls -la /home/daytona/workspace/ && mkdir -p /home/daytona/workspace/livor-mortis-ppt
~/livor-mortis-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// Fetch images
const imageUrls = [
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_2ea87f66ea424153a3ea4a808a8e450f5c4005ae9b2281cd78b5c5529d71a2cd.jpg",
"https://cdn.orris.care/cdss_images/pmc_clinical_VQA_0b669d4c4ff25127fa0046e55349a4b36ff42d88c044e1fb016b07aca9787ddd.jpg"
];
let images = [];
try {
const result = execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js "${imageUrls[0]}" "${imageUrls[1]}"`,
{ timeout: 30000 }
).toString();
images = JSON.parse(result);
console.log("Images fetched:", images.map(i => i.error ? "ERROR: " + i.error : "OK (" + (i.base64 ? i.base64.length : 0) + " chars)"));
} catch (e) {
console.log("Image fetch error:", e.message);
}
// ─── Color Palette ───
const DEEP_MAROON = "5C0A14"; // dominant background
const DARK_WINE = "7D1128"; // section headers
const MID_RED = "A8263E"; // accents
const LIGHT_PEACH = "F5D0C5"; // body text (on dark)
const CREAM = "FFF3EF"; // light card bg
const WHITE = "FFFFFF";
const GOLDEN = "E8B86D"; // highlight accent
const DARK_CARD = "3A050D"; // card bg
const CHARCOAL = "1A0005"; // slide bg alt
let pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.author = "Forensic Medicine";
pres.title = "Livor Mortis";
// ─── Helper: add decorative header bar ───
function addHeaderBar(slide, title, subtitle) {
// Full-width dark header band
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 1.15,
fill: { color: DARK_WINE },
line: { color: DARK_WINE }
});
// Accent left stripe
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.12, h: 1.15,
fill: { color: GOLDEN },
line: { color: GOLDEN }
});
slide.addText(title, {
x: 0.25, y: 0.05, w: 9.5, h: 0.65,
fontSize: 26, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", margin: 0
});
if (subtitle) {
slide.addText(subtitle, {
x: 0.25, y: 0.72, w: 9.5, h: 0.38,
fontSize: 13, color: LIGHT_PEACH, fontFace: "Calibri", italic: true, valign: "top", margin: 0
});
}
}
// ─── Helper: footer ───
function addFooter(slide, text) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.35, w: 10, h: 0.275,
fill: { color: CHARCOAL }, line: { color: CHARCOAL }
});
slide.addText(text, {
x: 0.2, y: 5.35, w: 9.6, h: 0.275,
fontSize: 9, color: LIGHT_PEACH, italic: true, valign: "middle", margin: 0
});
}
// ─── Slide 1: Title ───
{
let s = pres.addSlide();
// Full background
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DEEP_MAROON }, line: { color: DEEP_MAROON } });
// Decorative diagonal band
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 4.8, w: 10, h: 0.825, fill: { color: DARK_WINE }, line: { color: DARK_WINE } });
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 4.8, w: 0.25, h: 0.825, fill: { color: GOLDEN }, line: { color: GOLDEN } });
s.addText("LIVOR MORTIS", {
x: 0.7, y: 1.1, w: 8.6, h: 1.1,
fontSize: 54, bold: true, color: WHITE, fontFace: "Calibri", charSpacing: 8, align: "center"
});
s.addText("Post-Mortem Hypostasis", {
x: 0.7, y: 2.25, w: 8.6, h: 0.6,
fontSize: 24, color: GOLDEN, fontFace: "Calibri", italic: true, align: "center"
});
s.addShape(pres.shapes.RECTANGLE, { x: 3.5, y: 2.95, w: 3, h: 0.04, fill: { color: MID_RED }, line: { color: MID_RED } });
s.addText("Forensic Medicine | Signs of Death Series", {
x: 0.7, y: 3.1, w: 8.6, h: 0.4,
fontSize: 13, color: LIGHT_PEACH, fontFace: "Calibri", align: "center", italic: true
});
s.addText("Case-Based Learning with MCQs", {
x: 0.7, y: 3.55, w: 8.6, h: 0.35,
fontSize: 12, color: LIGHT_PEACH, fontFace: "Calibri", align: "center"
});
}
// ─── Slide 2: What is Livor Mortis? ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM }, line: { color: CREAM } });
addHeaderBar(s, "What is Livor Mortis?", "Definition & Synonyms");
const bullets = [
{ label: "Definition:", text: "Purplish-red discolouration of the skin due to gravitational pooling of blood in dependent capillaries and venules after circulatory arrest." },
{ label: "Synonyms:", text: "Post-mortem lividity · Post-mortem hypostasis · Suggillation · Vibices" },
{ label: "Cause:", text: "After death, heart stops → blood loses intravascular pressure → settles by gravity into dependent parts → deoxygenates → gives dark red-purple colour." },
{ label: "Absent in:", text: "Areas of pressure contact (Pallor patches) because capillaries are compressed and blood cannot pool." },
];
let yPos = 1.35;
for (const b of bullets) {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: yPos, w: 9.4, h: 0.78,
fill: { color: "FAE8E3" }, line: { color: MID_RED, pt: 1 },
shadow: { type: "outer", color: "000000", blur: 3, offset: 1, angle: 135, opacity: 0.1 }
});
s.addText([
{ text: b.label + " ", options: { bold: true, color: DARK_WINE } },
{ text: b.text, options: { color: "333333" } }
], { x: 0.45, y: yPos + 0.07, w: 9.1, h: 0.65, fontSize: 12.5, fontFace: "Calibri", valign: "middle", margin: 4 });
yPos += 0.92;
}
addFooter(s, "Livor Mortis | Forensic Medicine");
}
// ─── Slide 3: Time Sequence ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CHARCOAL }, line: { color: CHARCOAL } });
addHeaderBar(s, "Time Sequence of Livor Mortis", "Onset · Fixation · Significance");
const timeline = [
{ time: "0 – 1 hr", color: "8E1A33", label: "Onset", desc: "Blood begins settling. Faint pink tinge in dependent areas." },
{ time: "1 – 6 hr", color: "A8263E", label: "Developing", desc: "Lividity deepens; patches become visible. Still blanchable on pressure." },
{ time: "6 – 12 hr", color: "C4384F", label: "Semi-fixed", desc: "Partially fixed. Lividity shifts if body repositioned, but original marks persist faintly." },
{ time: "> 12 hr", color: "E04060", label: "Fixed", desc: "Fully fixed (\"confirmed\"). Will NOT shift with repositioning. RBC haemolysis extravasates Hb into tissues." },
];
let xPos = 0.25;
for (const t of timeline) {
s.addShape(pres.shapes.RECTANGLE, {
x: xPos, y: 1.3, w: 2.25, h: 3.7,
fill: { color: t.color }, line: { color: t.color },
shadow: { type: "outer", color: "000000", blur: 5, offset: 2, angle: 135, opacity: 0.3 }
});
s.addText(t.time, { x: xPos + 0.05, y: 1.38, w: 2.15, h: 0.45, fontSize: 13, bold: true, color: GOLDEN, align: "center", fontFace: "Calibri" });
s.addShape(pres.shapes.RECTANGLE, { x: xPos + 0.3, y: 1.83, w: 1.65, h: 0.03, fill: { color: WHITE }, line: { color: WHITE } });
s.addText(t.label, { x: xPos + 0.05, y: 1.9, w: 2.15, h: 0.45, fontSize: 14, bold: true, color: WHITE, align: "center", fontFace: "Calibri" });
s.addText(t.desc, { x: xPos + 0.12, y: 2.45, w: 2.0, h: 2.4, fontSize: 11, color: LIGHT_PEACH, fontFace: "Calibri", valign: "top", wrap: true });
xPos += 2.38;
}
addFooter(s, "Livor Mortis | Forensic Medicine");
}
// ─── Slide 4: Characteristics & Medicolegal Importance ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM }, line: { color: CREAM } });
addHeaderBar(s, "Characteristics & Colour Significance", "Pattern · Distribution · Special Colours");
const leftItems = [
{ h: "Distribution", t: "Posterior surface (supine body): back, buttocks, back of neck, calves. Anterior surface if prone." },
{ h: "Pallor Patches", t: "Seen over bony prominences (shoulder blades, sacrum) and tight clothing areas — pressure prevents pooling." },
{ h: "Tardieu Spots", t: "Small petechial haemorrhages within livid areas from rupture of congested capillaries; not to be confused with bruising." },
];
const rightItems = [
{ color: "C20000", label: "Cherry-red / Bright Red", text: "Carbon monoxide (CO) poisoning, Cyanide poisoning, Freezing (cold environment)" },
{ color: "B05020", label: "Brown / Chocolate", text: "Methaemoglobinaemia — nitrites, aniline dyes, dapsone" },
{ color: "CC44AA", label: "Pink", text: "Cold exposure, Drowning (dilution)" },
{ color: "550055", label: "Typical Dark Purple", text: "Normal (deoxy-Hb pooling)" },
];
let yL = 1.3;
for (const item of leftItems) {
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.25, y: yL, w: 4.5, h: 1.12,
fill: { color: "F0D8D2" }, line: { color: MID_RED, pt: 1 }, rectRadius: 0.08
});
s.addText([
{ text: item.h + "\n", options: { bold: true, color: DARK_WINE, breakLine: true } },
{ text: item.t, options: { color: "333333" } }
], { x: 0.38, y: yL + 0.06, w: 4.25, h: 1.0, fontSize: 11.5, fontFace: "Calibri", valign: "top", wrap: true, margin: 3 });
yL += 1.22;
}
let yR = 1.3;
for (const item of rightItems) {
s.addShape(pres.shapes.RECTANGLE, {
x: 5.05, y: yR, w: 4.65, h: 0.9,
fill: { color: DARK_CARD }, line: { color: item.color, pt: 2 }
});
s.addShape(pres.shapes.RECTANGLE, { x: 5.05, y: yR, w: 0.15, h: 0.9, fill: { color: item.color }, line: { color: item.color } });
s.addText([
{ text: item.label + "\n", options: { bold: true, color: item.color, breakLine: true } },
{ text: item.text, options: { color: LIGHT_PEACH } }
], { x: 5.28, y: yR + 0.05, w: 4.35, h: 0.8, fontSize: 10.5, fontFace: "Calibri", valign: "top", wrap: true, margin: 2 });
yR += 1.03;
}
addFooter(s, "Livor Mortis | Forensic Medicine");
}
// ─── Slide 5: Medicolegal Importance ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CHARCOAL }, line: { color: CHARCOAL } });
addHeaderBar(s, "Medicolegal Importance", "Why livor mortis matters in forensic investigations");
const points = [
{ icon: "①", head: "Confirms Death", body: "One of the certain signs of death (along with rigor mortis and decomposition)." },
{ icon: "②", head: "Estimates Time of Death (PMI)", body: "Onset ~1–2 hr; fixation ~6–12 hr. Combined with rigor mortis helps narrow post-mortem interval." },
{ icon: "③", head: "Position at Death", body: "Fixed lividity distribution reveals the posture the body was in at time of blood pooling; detects body movement / tampering." },
{ icon: "④", head: "Cause of Death Clue", body: "Colour change (cherry-red, brown) guides toxicological investigations." },
{ icon: "⑤", head: "Distinguishes from Bruising", body: "Lividity blanches (early) or is confined to dependent areas; bruises do not blanch and may be anywhere." },
{ icon: "⑥", head: "Scene Reconstruction", body: "Discordance between lividity distribution and body's found position suggests the body was moved after death." },
];
let col = 0, row = 0;
for (const p of points) {
const x = 0.25 + col * 3.25;
const y = 1.3 + row * 1.42;
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w: 3.1, h: 1.28,
fill: { color: DARK_WINE }, line: { color: GOLDEN, pt: 1 }, rectRadius: 0.08
});
s.addText([
{ text: p.icon + " " + p.head + "\n", options: { bold: true, color: GOLDEN, breakLine: true } },
{ text: p.body, options: { color: WHITE } }
], { x: x + 0.12, y: y + 0.07, w: 2.9, h: 1.12, fontSize: 11, fontFace: "Calibri", valign: "top", wrap: true, margin: 3 });
col++;
if (col > 2) { col = 0; row++; }
}
addFooter(s, "Livor Mortis | Forensic Medicine");
}
// ─── Slide 6: Clinical Image ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CHARCOAL }, line: { color: CHARCOAL } });
addHeaderBar(s, "Visual: Post-Mortem Lividity", "Forensic photographic examples");
if (images[0] && !images[0].error) {
s.addImage({ data: images[0].base64, x: 0.3, y: 1.25, w: 4.4, h: 3.5 });
s.addText("Right lateral decubitus position: scanty reddish-purple patches of hypostasis on dependent flank (arrows). Pallor due to antemortem exsanguination.", {
x: 0.3, y: 4.8, w: 4.4, h: 0.65, fontSize: 9.5, color: LIGHT_PEACH, fontFace: "Calibri", italic: true, wrap: true
});
} else {
s.addText("[Image: Right lateral decubitus lividity — see forensic pathology atlas]", {
x: 0.3, y: 1.5, w: 4.4, h: 3.2, fontSize: 12, color: LIGHT_PEACH, align: "center", valign: "middle"
});
}
if (images[1] && !images[1].error) {
s.addImage({ data: images[1].base64, x: 5.1, y: 1.25, w: 4.5, h: 3.5 });
s.addText("Pink (bright red) lividity in CO/cyanide poisoning; sparing over pressure bony points.", {
x: 5.1, y: 4.8, w: 4.5, h: 0.65, fontSize: 9.5, color: LIGHT_PEACH, fontFace: "Calibri", italic: true, wrap: true
});
} else {
s.addText("[Image: Pink lividity in CO poisoning]", {
x: 5.1, y: 1.5, w: 4.5, h: 3.2, fontSize: 12, color: LIGHT_PEACH, align: "center", valign: "middle"
});
}
addFooter(s, "Images: Forensic Pathology Literature | Livor Mortis | Educational Use");
}
// ─── Slide 7: Case Scenario ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "1E0A00" }, line: { color: "1E0A00" } });
addHeaderBar(s, "Case Scenario", "Apply your knowledge of livor mortis");
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.25, y: 1.2, w: 9.5, h: 4.0,
fill: { color: DARK_CARD }, line: { color: GOLDEN, pt: 1.5 }, rectRadius: 0.12
});
s.addText("📋 Clinical Scenario", {
x: 0.5, y: 1.3, w: 9.0, h: 0.45,
fontSize: 15, bold: true, color: GOLDEN, fontFace: "Calibri"
});
const scenario = [
"A 48-year-old male is found dead in his apartment at 8:00 AM by a neighbour. The body is in a supine position on the floor. Police note dark purple discolouration over the back, buttocks, and back of the calves. When the medical examiner presses firmly on the affected skin, it does not blanch.",
"",
"The right shoulder blade and the sacral region show areas of pallor (absent lividity). There is no lividity on the anterior chest or abdomen. The neighbour reports that the deceased was last seen alive the evening before at approximately 8:00 PM.",
"",
"The examiner also observes petechial haemorrhages within the livid area and notes the lividity is fixed and will not shift when the body is gently turned.",
];
s.addText(scenario.join("\n"), {
x: 0.5, y: 1.85, w: 9.0, h: 3.2,
fontSize: 12, color: WHITE, fontFace: "Calibri", valign: "top", wrap: true, lineSpacingMultiple: 1.25
});
addFooter(s, "Livor Mortis | Forensic Medicine");
}
// ─── Slides 8-12: MCQs ───
const mcqs = [
{
q: "Q1. Based on the case scenario, how long after death has the body most likely been lying in the supine position, given that the lividity is fully fixed?",
opts: [
"A. Less than 2 hours",
"B. 2–6 hours",
"C. More than 12 hours ✓",
"D. 24–36 hours",
],
ans: "C",
exp: "Fixed (non-blanchable, non-shifting) lividity typically develops after 12 hours post-mortem. Given the neighbour last saw him at 8:00 PM and the body was found at 8:00 AM (12-hour gap), fully fixed lividity is consistent. The fixed state confirms at least 12 hrs have elapsed."
},
{
q: "Q2. The pallor patches over the right scapula and sacrum in this case are best explained by:",
opts: [
"A. Bruising from ante-mortem trauma",
"B. Areas of ante-mortem skin necrosis",
"C. Compression of capillaries by bony prominences preventing blood pooling ✓",
"D. Hypostasis shifting to anterior surface",
],
ans: "C",
exp: "Bony prominences (scapulae, sacrum, heels) exert pressure on the underlying skin, compressing the capillaries. This mechanically prevents blood from settling in these areas, creating pale islands ('pallor patches') within the livid field — a classic and diagnostically important sign."
},
{
q: "Q3. The small petechial haemorrhages found within the area of lividity (Tardieu spots) are caused by:",
opts: [
"A. Blunt force trauma during a struggle",
"B. Rupture of engorged capillaries within the post-mortem hypostasis ✓",
"C. Intravenous drug injection marks",
"D. Decomposition-related gas formation",
],
ans: "B",
exp: "Tardieu spots (named after Auguste Ambroise Tardieu) are pinpoint petechial haemorrhages within livid areas caused by the rupture of small, overfilled post-mortem capillaries. They must NOT be confused with ante-mortem bruising or signs of mechanical asphyxia. They are a component of livor mortis, not a separate injury."
},
{
q: "Q4. If the body in this scenario was found with bright cherry-red lividity instead of the typical dark purple, which of the following would be the MOST likely cause of death?",
opts: [
"A. Massive haemorrhage",
"B. Carbon monoxide poisoning ✓",
"C. Methaemoglobinaemia from dapsone",
"D. Death from drowning",
],
ans: "B",
exp: "Cherry-red (bright red) lividity is the hallmark of CO poisoning (COHb is bright red) and cyanide poisoning (tissues cannot utilise O₂, so blood remains oxygenated). Methaemoglobinaemia produces chocolate-brown lividity. Drowning can produce pink (diluted) lividity. Haemorrhage produces very pale or absent lividity."
},
{
q: "Q5. At autopsy, it is noted that the lividity distribution is ANTERIOR (front of body), yet the body was found supine (on its back). What is the correct medicolegal interpretation?",
opts: [
"A. Lividity is unreliable and this is a normal variant",
"B. The body was turned face-down after death and then repositioned before discovery ✓",
"C. Ante-mortem trauma caused frontal haemorrhage",
"D. The body was stored in a refrigerator immediately after death",
],
ans: "B",
exp: "Discordance between the distribution of fixed lividity and the body's found position is a critical medicolegal sign of post-mortem body movement. Fixed lividity on the ANTERIOR surface means the body rested face-down for >12 hrs, then was flipped supine before discovery. This strongly suggests the body was tampered with or moved after death — a key forensic finding."
}
];
mcqs.forEach((mcq, idx) => {
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CREAM }, line: { color: CREAM } });
addHeaderBar(s, `MCQ ${idx + 1} of 5`, "Test Your Knowledge");
// Question box
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.25, y: 1.25, w: 9.5, h: 1.05,
fill: { color: DARK_WINE }, line: { color: DARK_WINE }, rectRadius: 0.08
});
s.addText(mcq.q, {
x: 0.4, y: 1.3, w: 9.2, h: 0.95,
fontSize: 12.5, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle", wrap: true, margin: 4
});
// Options
const optColors = ["E8F5E9", "E3F2FD", "FFF9C4", "FCE4EC"];
const optBorder = ["2E7D32", "1565C0", "F57F17", "880E4F"];
mcq.opts.forEach((opt, i) => {
const isCorrect = opt.includes("✓");
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.25, y: 2.44 + i * 0.66, w: 9.5, h: 0.58,
fill: { color: isCorrect ? "D4EDDA" : optColors[i] },
line: { color: isCorrect ? "28A745" : optBorder[i], pt: isCorrect ? 2 : 0.8 },
rectRadius: 0.05
});
s.addText(opt, {
x: 0.4, y: 2.44 + i * 0.66 + 0.04, w: 9.2, h: 0.5,
fontSize: 12, color: isCorrect ? "155724" : "222222", fontFace: "Calibri",
bold: isCorrect, valign: "middle", margin: 4
});
});
addFooter(s, "Livor Mortis | Forensic Medicine");
});
// ─── Slides 13-17: MCQ Answer explanations ───
mcqs.forEach((mcq, idx) => {
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: CHARCOAL }, line: { color: CHARCOAL } });
addHeaderBar(s, `MCQ ${idx + 1} — Explanation`, `Answer: ${mcq.ans}`);
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 1.25, w: 9.4, h: 1.0,
fill: { color: DARK_WINE }, line: { color: DARK_WINE }, rectRadius: 0.08
});
s.addText(mcq.q, {
x: 0.45, y: 1.3, w: 9.1, h: 0.9,
fontSize: 11.5, color: LIGHT_PEACH, fontFace: "Calibri", valign: "middle", wrap: true, italic: true, margin: 4
});
s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 0.3, y: 2.38, w: 9.4, h: 2.85,
fill: { color: DARK_CARD }, line: { color: GOLDEN, pt: 1.5 }, rectRadius: 0.1
});
s.addText("✅ Correct Answer: " + mcq.ans, {
x: 0.5, y: 2.46, w: 9.0, h: 0.4,
fontSize: 14, bold: true, color: GOLDEN, fontFace: "Calibri"
});
s.addText(mcq.exp, {
x: 0.5, y: 2.92, w: 9.0, h: 2.2,
fontSize: 12, color: WHITE, fontFace: "Calibri", valign: "top", wrap: true, lineSpacingMultiple: 1.3, margin: 4
});
addFooter(s, "Livor Mortis | Forensic Medicine");
});
// ─── Slide 18: Summary ───
{
let s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DEEP_MAROON }, line: { color: DEEP_MAROON } });
addHeaderBar(s, "Key Take-Home Points", "Livor Mortis Summary");
const summary = [
"Livor mortis (post-mortem hypostasis) = dependent pooling of blood → purplish-red skin discolouration.",
"Onset 1–2 hr post-mortem; partially fixed 6–12 hr; fully fixed >12 hr.",
"Pallor patches overlie areas of bony/pressure contact — capillaries are compressed.",
"Cherry-red = CO/cyanide; Chocolate-brown = MetHb; Pink = drowning/cold.",
"Tardieu spots = petechial haemorrhages within livid areas — NOT ante-mortem bruises.",
"Discordance between lividity and body position = body moved after death.",
"Combined with rigor mortis and core temperature → estimates post-mortem interval (PMI).",
];
summary.forEach((pt, i) => {
s.addShape(pres.shapes.RECTANGLE, { x: 0.25, y: 1.3 + i * 0.58, w: 0.1, h: 0.42, fill: { color: GOLDEN }, line: { color: GOLDEN } });
s.addText(pt, {
x: 0.48, y: 1.3 + i * 0.58, w: 9.3, h: 0.42,
fontSize: 11.5, color: WHITE, fontFace: "Calibri", valign: "middle", wrap: true
});
});
s.addShape(pres.shapes.RECTANGLE, { x: 0, y: 5.3, w: 10, h: 0.325, fill: { color: DARK_WINE }, line: { color: DARK_WINE } });
s.addText("Forensic Medicine | Signs of Death Series | Educational Use Only", {
x: 0, y: 5.3, w: 10, h: 0.325,
fontSize: 10, color: LIGHT_PEACH, align: "center", italic: true, valign: "middle"
});
}
// ─── Write File ───
pres.writeFile({ fileName: "/home/daytona/workspace/livor-mortis-ppt/Livor_Mortis.pptx" })
.then(() => console.log("✅ Presentation saved: Livor_Mortis.pptx"))
.catch(e => console.error("❌ Error:", e));
cd /home/daytona/workspace/livor-mortis-ppt && node create_ppt.js 2>&1
ls -lh /home/daytona/workspace/livor-mortis-ppt/
Livor Mortis
Presentation · PPTX
| Slide(s) | Content |
|---|---|
| 1 | Title slide — Livor Mortis / Post-Mortem Hypostasis |
| 2 | Definition, synonyms, mechanism |
| 3 | Time sequence — 4-column timeline (0–1 hr → >12 hr, onset to fixation) |
| 4 | Characteristics: distribution, pallor patches, Tardieu spots + colour significance table (cherry-red, chocolate, pink, purple) |
| 5 | Medicolegal importance — 6-point grid (confirms death, PMI, position, cause, bruising vs lividity, scene reconstruction) |
| 6 | Forensic photographs with captions (real pathology images embedded) |
| 7 | Case scenario — 48-yr-old male found supine with fixed lividity, pallor patches, Tardieu spots |
| 8–12 | 5 MCQs with colour-coded options (correct answer highlighted green) |
| 13–17 | Answer explanations for all 5 MCQs |
| 18 | Summary — 7 key take-home points |