Make. Eppt
mkdir -p /home/daytona/workspace/paralytic-ileus-ppt
~/paralytic-ileus-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Paralytic Ileus";
pres.author = "A Concise Textbook of Surgery";
// Color palette
const BG_DARK = "0D2B45"; // deep navy
const BG_MID = "1A4068"; // mid navy
const ACCENT = "E8A020"; // amber
const ACCENT2 = "3FB8AF"; // teal
const WHITE = "FFFFFF";
const LIGHT_BG = "F0F4F8";
const TEXT_DARK = "0D2B45";
const GRAY = "6B7F95";
// ─────────────────────────────────────────────
// SLIDE 1 — TITLE
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
// full-bleed dark bg
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
// amber accent bar left
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT } });
// teal decorative block bottom right
s.addShape(pres.ShapeType.rect, { x: 7.5, y: 3.8, w: 2.5, h: 1.825, fill: { color: BG_MID } });
s.addText("PARALYTIC ILEUS", {
x: 0.4, y: 1.2, w: 9.2, h: 1.2,
fontSize: 48, bold: true, color: WHITE, fontFace: "Calibri",
charSpacing: 4
});
s.addText("Adynamic Bowel Obstruction", {
x: 0.4, y: 2.55, w: 7, h: 0.6,
fontSize: 22, color: ACCENT, fontFace: "Calibri", italic: true
});
s.addText("A Concise Textbook of Surgery | p. 976", {
x: 0.4, y: 5.0, w: 6, h: 0.4,
fontSize: 12, color: GRAY, fontFace: "Calibri"
});
// icon-like circle
s.addShape(pres.ShapeType.ellipse, { x: 7.7, y: 3.9, w: 1.0, h: 1.0, fill: { color: ACCENT }, line: { color: ACCENT } });
s.addText("🫀", { x: 7.7, y: 3.9, w: 1.0, h: 1.0, fontSize: 26, align: "center", valign: "middle" });
}
// ─────────────────────────────────────────────
// SLIDE 2 — DEFINITION
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
// header strip
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addText("DEFINITION", {
x: 0.4, y: 0.1, w: 9, h: 0.8,
fontSize: 28, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
// big quote box
s.addShape(pres.ShapeType.roundRect, {
x: 0.5, y: 1.3, w: 9, h: 2.2,
fill: { color: BG_MID }, line: { color: ACCENT, pt: 2 }, rectRadius: 0.1
});
s.addText(
"Failure of transmission of peristaltic waves due to neuromuscular failure.",
{
x: 0.6, y: 1.35, w: 8.8, h: 2.1,
fontSize: 20, color: WHITE, fontFace: "Calibri",
italic: true, valign: "middle", align: "center"
}
);
// two fact boxes
const facts = [
{ label: "Nerve Plexuses Involved", val: "Myenteric (Auerbach's) between longitudinal & circular muscle layers\nSubmucous (Meissner's) in submucous coat" },
{ label: "Net Result", val: "Accumulation of intestinal fluid & gas → abdominal distension" }
];
facts.forEach((f, i) => {
const xPos = 0.3 + i * 4.85;
s.addShape(pres.ShapeType.rect, { x: xPos, y: 3.7, w: 4.5, h: 1.6, fill: { color: WHITE }, line: { color: ACCENT2, pt: 1.5 } });
s.addText(f.label, { x: xPos + 0.1, y: 3.72, w: 4.3, h: 0.35, fontSize: 11, bold: true, color: ACCENT2, fontFace: "Calibri" });
s.addText(f.val, { x: xPos + 0.1, y: 4.08, w: 4.3, h: 1.1, fontSize: 11, color: TEXT_DARK, fontFace: "Calibri" });
});
}
// ─────────────────────────────────────────────
// SLIDE 3 — TYPES OF PARALYTIC ILEUS
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addText("TYPES OF PARALYTIC ILEUS", {
x: 0.4, y: 0.1, w: 9, h: 0.8,
fontSize: 26, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
s.addText("4 Types Found in Clinical Practice", {
x: 0.4, y: 1.1, w: 9, h: 0.45,
fontSize: 14, color: GRAY, fontFace: "Calibri", italic: true
});
const types = [
{
num: "01",
title: "Postoperative",
sub: "Most common",
body: "Almost always seen after abdominal surgery. Lasts a limited period of 24-72 hours. Bowel sounds return gradually."
},
{
num: "02",
title: "Peritonitis",
sub: "Intra-abdominal sepsis",
body: "Intra-abdominal sepsis may produce localized or generalized paralytic ileus. Initially neurogenic; later mechanical obstruction may develop due to adhesions."
},
{
num: "03",
title: "Metabolic",
sub: "Electrolyte disturbance",
body: "Occurs in uraemia, hypoproteinaemia and hypocalcaemia. Paralytic ileus may be precipitated."
},
{
num: "04",
title: "Reflex",
sub: "Retroperitoneal cause",
body: "May occur following retroperitoneal haemorrhage, fractures of spine or ribs, or application of a plaster jacket."
}
];
types.forEach((t, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = 0.3 + col * 4.85;
const y = 1.65 + row * 1.85;
s.addShape(pres.ShapeType.rect, { x, y, w: 4.5, h: 1.7, fill: { color: WHITE }, line: { color: ACCENT, pt: 0 } });
// left accent strip per card
s.addShape(pres.ShapeType.rect, { x, y, w: 0.55, h: 1.7, fill: { color: i < 2 ? BG_MID : ACCENT2 } });
// number
s.addText(t.num, { x: x + 0.02, y: y + 0.55, w: 0.52, h: 0.5, fontSize: 16, bold: true, color: ACCENT, align: "center", fontFace: "Calibri" });
// title
s.addText(t.title, { x: x + 0.62, y: y + 0.05, w: 3.75, h: 0.38, fontSize: 14, bold: true, color: TEXT_DARK, fontFace: "Calibri" });
s.addText(t.sub, { x: x + 0.62, y: y + 0.42, w: 3.75, h: 0.28, fontSize: 10, color: ACCENT2, fontFace: "Calibri", italic: true });
s.addText(t.body, { x: x + 0.62, y: y + 0.72, w: 3.75, h: 0.92, fontSize: 10, color: GRAY, fontFace: "Calibri" });
});
}
// ─────────────────────────────────────────────
// SLIDE 4 — PATHOPHYSIOLOGY
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_MID } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addText("PATHOPHYSIOLOGY", {
x: 0.4, y: 0.1, w: 9, h: 0.8,
fontSize: 28, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
// Flow diagram boxes
const steps = [
{ label: "Neuromuscular\nFailure", color: ACCENT },
{ label: "Failure of\nPeristaltic Wave\nTransmission", color: ACCENT2 },
{ label: "Fluid & Gas\nAccumulation\nin Lumen", color: "E05C5C" },
{ label: "Abdominal\nDistension", color: "9B59B6" },
];
const boxW = 1.8, boxH = 1.4, gap = 0.35;
const totalW = steps.length * boxW + (steps.length - 1) * gap;
const startX = (10 - totalW) / 2;
const boxY = 1.5;
steps.forEach((step, i) => {
const x = startX + i * (boxW + gap);
s.addShape(pres.ShapeType.roundRect, {
x, y: boxY, w: boxW, h: boxH,
fill: { color: step.color }, line: { color: WHITE, pt: 1 },
rectRadius: 0.12
});
s.addText(step.label, {
x, y: boxY, w: boxW, h: boxH,
fontSize: 13, bold: true, color: WHITE, fontFace: "Calibri",
align: "center", valign: "middle"
});
// arrow (except after last)
if (i < steps.length - 1) {
s.addShape(pres.ShapeType.rect, {
x: x + boxW + 0.03, y: boxY + boxH / 2 - 0.04,
w: gap - 0.06, h: 0.08,
fill: { color: WHITE }
});
// arrowhead triangle approx
s.addText("▶", {
x: x + boxW + gap - 0.22, y: boxY + boxH / 2 - 0.18,
w: 0.3, h: 0.36, fontSize: 14, color: WHITE, align: "center"
});
}
});
// key features
const features = [
{ icon: "🔇", text: "Absence of bowel sounds (silent abdomen)" },
{ icon: "🤢", text: "Vomiting & absolute constipation" },
{ icon: "📈", text: "Abdominal distension" },
{ icon: "⚠️", text: "Clinically similar to mechanical obstruction BUT sounds are absent" },
];
s.addText("KEY FEATURES", {
x: 0.4, y: 3.15, w: 9, h: 0.35,
fontSize: 13, bold: true, color: ACCENT, fontFace: "Calibri", charSpacing: 2
});
features.forEach((f, i) => {
const col = i % 2, row = Math.floor(i / 2);
const fx = 0.4 + col * 4.8, fy = 3.55 + row * 0.75;
s.addText(f.icon + " " + f.text, {
x: fx, y: fy, w: 4.6, h: 0.65,
fontSize: 12, color: WHITE, fontFace: "Calibri", valign: "middle"
});
});
}
// ─────────────────────────────────────────────
// SLIDE 5 — CLINICAL FEATURES & DIFFERENTIATING FROM MECHANICAL OBSTRUCTION
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addText("CLINICAL COMPARISON", {
x: 0.4, y: 0.1, w: 9, h: 0.8,
fontSize: 26, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
// Table header
const cols = [2.5, 3.25, 3.25];
const headers = ["Feature", "Paralytic Ileus", "Mechanical Obstruction"];
const hColors = [BG_DARK, ACCENT2, "E05C5C"];
let cx = 0.25;
headers.forEach((h, i) => {
s.addShape(pres.ShapeType.rect, { x: cx, y: 1.2, w: cols[i], h: 0.45, fill: { color: hColors[i] } });
s.addText(h, { x: cx + 0.05, y: 1.2, w: cols[i] - 0.1, h: 0.45, fontSize: 13, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle" });
cx += cols[i];
});
const rows = [
["Bowel Sounds", "Absent (silent abdomen)", "Loud & high pitched (borborygmi)"],
["Vomiting", "Present", "Present"],
["Constipation", "Absolute", "Absolute"],
["Distension", "Present", "Present"],
["Cause", "Neuromuscular failure", "Mechanical block in lumen/wall"],
["Peristalsis", "Absent (paralyzed)", "Exaggerated initially"],
["Treatment", "Conservative / address cause", "Surgical relief of obstruction"],
];
rows.forEach((row, ri) => {
let cx2 = 0.25;
const bg = ri % 2 === 0 ? WHITE : "E8F0F7";
row.forEach((cell, ci) => {
s.addShape(pres.ShapeType.rect, { x: cx2, y: 1.65 + ri * 0.52, w: cols[ci], h: 0.52, fill: { color: ci === 0 ? "D6E4F0" : bg }, line: { color: "CCCCCC", pt: 0.5 } });
s.addText(cell, {
x: cx2 + 0.05, y: 1.65 + ri * 0.52, w: cols[ci] - 0.1, h: 0.52,
fontSize: ci === 0 ? 12 : 11, bold: ci === 0, color: TEXT_DARK, fontFace: "Calibri", valign: "middle"
});
cx2 += cols[ci];
});
});
}
// ─────────────────────────────────────────────
// SLIDE 6 — MANAGEMENT
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: LIGHT_BG } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 10, h: 0.07, fill: { color: ACCENT } });
s.addText("MANAGEMENT", {
x: 0.4, y: 0.1, w: 9, h: 0.8,
fontSize: 28, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
const mgmt = [
{
icon: "💉",
title: "Treat Underlying Cause",
points: ["Correct electrolyte abnormalities (K⁺, Ca²⁺)", "Treat peritonitis / sepsis", "Manage uraemia & metabolic causes"]
},
{
icon: "🚫",
title: "Conservative (NPO & NG Tube)",
points: ["Nil by mouth (NPO)", "Nasogastric (NG) tube decompression", "IV fluids & electrolyte replacement"]
},
{
icon: "💊",
title: "Pharmacological Support",
points: ["Prokinetic agents (e.g. neostigmine in selected cases)", "Avoid opioids where possible", "Early enteral nutrition when feasible"]
},
{
icon: "🏥",
title: "Surgical (if no resolution)",
points: ["Baker tube via proximal jejunostomy for gross distension", "Re-operation only if conservative management fails", "Resect non-viable bowel if necessary"]
}
];
mgmt.forEach((m, i) => {
const col = i % 2, row = Math.floor(i / 2);
const x = 0.25 + col * 4.88;
const y = 1.2 + row * 2.1;
s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.55, h: 1.95, fill: { color: WHITE }, line: { color: col === 0 ? ACCENT2 : ACCENT, pt: 1.5 }, rectRadius: 0.08 });
// top colored header
s.addShape(pres.ShapeType.roundRect, { x, y, w: 4.55, h: 0.5, fill: { color: col === row ? BG_MID : ACCENT2 }, line: { color: "FFFFFF", pt: 0 }, rectRadius: 0.08 });
s.addText(m.icon + " " + m.title, {
x: x + 0.1, y, w: 4.35, h: 0.5,
fontSize: 12, bold: true, color: WHITE, fontFace: "Calibri", valign: "middle"
});
m.points.forEach((pt, pi) => {
s.addText([{ text: "• " + pt }], {
x: x + 0.15, y: y + 0.55 + pi * 0.44, w: 4.3, h: 0.42,
fontSize: 11, color: TEXT_DARK, fontFace: "Calibri"
});
});
});
}
// ─────────────────────────────────────────────
// SLIDE 7 — KEY TAKEAWAYS
// ─────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: BG_DARK } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.18, h: 5.625, fill: { color: ACCENT } });
s.addText("KEY TAKEAWAYS", {
x: 0.4, y: 0.3, w: 9, h: 0.7,
fontSize: 30, bold: true, color: WHITE, fontFace: "Calibri", charSpacing: 3
});
s.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.05, w: 9, h: 0.05, fill: { color: ACCENT } });
const points = [
{ num: "1", text: "Paralytic ileus = failure of peristaltic transmission due to neuromuscular failure — not a mechanical block." },
{ num: "2", text: "4 types: Postoperative (most common), Peritonitis, Metabolic, Reflex." },
{ num: "3", text: "Silent abdomen (absent bowel sounds) + distension + vomiting + constipation = classic picture." },
{ num: "4", text: "Differs from mechanical obstruction mainly by ABSENT bowel sounds vs. loud high-pitched sounds." },
{ num: "5", text: "Treatment is primarily conservative: treat the cause, NPO, NG decompression, IV fluids." },
];
points.forEach((p, i) => {
const y = 1.25 + i * 0.82;
s.addShape(pres.ShapeType.ellipse, { x: 0.4, y: y + 0.05, w: 0.45, h: 0.45, fill: { color: ACCENT } });
s.addText(p.num, { x: 0.4, y: y + 0.05, w: 0.45, h: 0.45, fontSize: 14, bold: true, color: BG_DARK, align: "center", valign: "middle", fontFace: "Calibri" });
s.addText(p.text, {
x: 1.0, y, w: 8.5, h: 0.7,
fontSize: 14, color: WHITE, fontFace: "Calibri", valign: "middle"
});
});
s.addText("Source: A Concise Textbook of Surgery, p. 976", {
x: 0.4, y: 5.2, w: 9, h: 0.3,
fontSize: 10, color: GRAY, fontFace: "Calibri", italic: true
});
}
// ─────────────────────────────────────────────
// WRITE FILE
// ─────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pptx" })
.then(() => console.log("✅ Done: /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pptx"))
.catch(e => console.error("❌ Error:", e));
cd /home/daytona/workspace/paralytic-ileus-ppt && node create_ppt.js
Paralytic Ileus
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide - dark navy + amber theme |
| 2 | Definition - neuromuscular failure, nerve plexuses (myenteric & Meissner's) |
| 3 | 4 Types - Postoperative, Peritonitis, Metabolic, Reflex (card layout) |
| 4 | Pathophysiology - flow diagram + key clinical features |
| 5 | Clinical Comparison table - Paralytic Ileus vs. Mechanical Obstruction |
| 6 | Management - 4-quadrant layout (Cause, NPO/NG, Pharmacological, Surgical) |
| 7 | Key Takeaways - 5 numbered points on dark background |
Download nhi ho rhi
ls -lh /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pptx
Paralytic Ileus
Presentation · PPTX
Convert presentation to PDF format
libreoffice --headless --convert-to pdf /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pptx --outdir /home/daytona/workspace/paralytic-ileus-ppt/
cp /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pptx /tmp/Paralytic_Ileus.pptx && libreoffice --headless --convert-to pdf /tmp/Paralytic_Ileus.pptx --outdir /tmp/ && cp /tmp/Paralytic_Ileus.pdf /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pdf && ls -lh /home/daytona/workspace/paralytic-ileus-ppt/Paralytic_Ileus.pdf
Paralytic Ileus
PDF Document · PDF