Can u make ppt of wound classification and wound healing using Bailey and love
mkdir -p /home/daytona/workspace/wound-ppt && ls /home/daytona/workspace/wound-p…
~/wound-ppt/create_ppt.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = 'LAYOUT_WIDE';
pres.author = 'Bailey & Love';
pres.title = 'Wound Classification and Wound Healing';
// ─── COLOUR PALETTE ───────────────────────────────────────────
const C = {
navyDark: "0D1B2A",
navy: "1B2A4A",
teal: "1A7A6E",
tealLight: "25A99A",
gold: "E8A020",
white: "FFFFFF",
offWhite: "F0F4F8",
grey: "7A8A9A",
lightGrey: "D0D8E4",
red: "C0392B",
green: "1E8449",
};
// ─── HELPER: SECTION DIVIDER SLIDE ───────────────────────────
function addDividerSlide(title, subtitle) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navyDark } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 3.1, w: 13.3, h: 0.08, fill: { color: C.tealLight } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 3.22, w: 13.3, h: 0.04, fill: { color: C.gold } });
s.addText(title, {
x: 1, y: 1.8, w: 11.3, h: 1.1, fontSize: 44, bold: true,
color: C.white, fontFace: "Calibri", align: "center", valign: "middle",
});
if (subtitle) {
s.addText(subtitle, {
x: 1, y: 3.5, w: 11.3, h: 0.7, fontSize: 22,
color: C.tealLight, fontFace: "Calibri", align: "center",
});
}
// Bailey & Love watermark bottom-right
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.0, w: 6, h: 0.4, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
return s;
}
// ─── HELPER: CONTENT SLIDE ────────────────────────────────────
function addContentSlide(title, bullets, opts = {}) {
let s = pres.addSlide();
// Background
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
// Left accent bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
// Title bar
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
// Title text
s.addText(title, {
x: 0.3, y: 0.0, w: 12.7, h: 1.0,
fontSize: 26, bold: true, color: C.white, fontFace: "Calibri",
valign: "middle", margin: 0,
});
// Bullets
const textArr = bullets.map((b, i) => {
const isLast = i === bullets.length - 1;
if (typeof b === "string") {
return { text: b, options: { bullet: true, breakLine: !isLast, fontSize: 18, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 4 } };
}
// Sub-bullet: { text, sub: true }
return { text: b.text, options: { bullet: { indent: 40 }, breakLine: !isLast, fontSize: 16, color: C.navy, fontFace: "Calibri", italic: b.italic || false, paraSpaceBefore: 2 } };
});
s.addText(textArr, {
x: 0.4, y: 1.15, w: opts.w || 12.5, h: opts.h || 6.0,
valign: "top",
});
// Footer
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
return s;
}
// ─── HELPER: TWO-COLUMN SLIDE ────────────────────────────────
function addTwoColSlide(title, leftBullets, rightBullets, leftTitle, rightTitle) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText(title, {
x: 0.3, y: 0.0, w: 12.7, h: 1.0,
fontSize: 26, bold: true, color: C.white, fontFace: "Calibri",
valign: "middle", margin: 0,
});
// Left column
s.addShape(pres.ShapeType.rect, { x: 0.4, y: 1.2, w: 6.0, h: 0.45, fill: { color: C.teal }, line: { color: C.teal } });
s.addText(leftTitle, { x: 0.4, y: 1.2, w: 6.0, h: 0.45, fontSize: 16, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
const lArr = leftBullets.map((b, i) => ({ text: b, options: { bullet: true, breakLine: i < leftBullets.length - 1, fontSize: 16, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 4 } }));
s.addText(lArr, { x: 0.4, y: 1.75, w: 6.0, h: 5.4, valign: "top" });
// Divider
s.addShape(pres.ShapeType.line, { x: 6.65, y: 1.2, w: 0, h: 6.0, line: { color: C.lightGrey, width: 1.5, dashType: "dash" } });
// Right column
s.addShape(pres.ShapeType.rect, { x: 6.9, y: 1.2, w: 6.0, h: 0.45, fill: { color: C.gold }, line: { color: C.gold } });
s.addText(rightTitle, { x: 6.9, y: 1.2, w: 6.0, h: 0.45, fontSize: 16, bold: true, color: C.navyDark, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
const rArr = rightBullets.map((b, i) => ({ text: b, options: { bullet: true, breakLine: i < rightBullets.length - 1, fontSize: 16, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 4 } }));
s.addText(rArr, { x: 6.9, y: 1.75, w: 6.0, h: 5.4, valign: "top" });
// Footer
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
return s;
}
// ─── HELPER: PHASE CARD SLIDE ────────────────────────────────
function addPhaseSlide(phaseNum, phaseName, color, timeframe, cells) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: color } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navyDark } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: color } });
s.addText(`Phase ${phaseNum}: ${phaseName}`, {
x: 0.3, y: 0, w: 9, h: 1.0, fontSize: 28, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
s.addText(timeframe, {
x: 9.3, y: 0.1, w: 3.8, h: 0.8,
fontSize: 18, bold: true, color: color, fontFace: "Calibri",
align: "right", valign: "middle",
});
// Card-style boxes for each point
const colW = 5.9;
const startX = [0.3, 6.65, 0.3, 6.65];
const startY = [1.2, 1.2, 4.0, 4.0];
cells.forEach((cell, i) => {
if (!cell) return;
s.addShape(pres.ShapeType.rect, {
x: startX[i], y: startY[i], w: colW, h: 2.5,
fill: { color: C.white },
line: { color: color, width: 1.5 },
shadow: { type: "outer", blur: 4, offset: 2, angle: 45, color: "AAAAAA", opacity: 0.25 },
});
s.addText(cell.heading, {
x: startX[i] + 0.1, y: startY[i], w: colW - 0.2, h: 0.55,
fontSize: 15, bold: true, color: C.white, fontFace: "Calibri",
align: "center", valign: "middle", margin: 0,
fill: { color: color },
});
const bArr = cell.points.map((p, j) => ({
text: p, options: { bullet: true, breakLine: j < cell.points.length - 1, fontSize: 14, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 3 },
}));
s.addText(bArr, { x: startX[i] + 0.1, y: startY[i] + 0.6, w: colW - 0.2, h: 1.85, valign: "top" });
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
return s;
}
// ─── HELPER: TABLE SLIDE ─────────────────────────────────────
function addTableSlide(title, rows) {
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText(title, {
x: 0.3, y: 0, w: 12.7, h: 1.0, fontSize: 26, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
s.addTable(rows, {
x: 0.4, y: 1.15, w: 12.5, h: 6.1,
fontFace: "Calibri",
border: { type: "solid", pt: 0.5, color: C.lightGrey },
colW: [1.8, 10.7],
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
return s;
}
// ══════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navyDark } });
// Bottom decorative strip
s.addShape(pres.ShapeType.rect, { x: 0, y: 6.8, w: 13.3, h: 0.7, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 6.7, w: 13.3, h: 0.12, fill: { color: C.gold } });
// Top accent
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.12, fill: { color: C.tealLight } });
// Geometric accent rectangles
s.addShape(pres.ShapeType.rect, { x: 10.5, y: 0.12, w: 2.8, h: 6.5, fill: { color: C.navy }, line: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 11.0, y: 0.12, w: 0.08, h: 6.5, fill: { color: C.tealLight } });
s.addText("WOUND CLASSIFICATION", {
x: 0.7, y: 1.2, w: 9.6, h: 1.0, fontSize: 38, bold: true,
color: C.tealLight, fontFace: "Calibri", charSpacing: 3,
});
s.addText("& WOUND HEALING", {
x: 0.7, y: 2.15, w: 9.6, h: 0.9, fontSize: 38, bold: true,
color: C.white, fontFace: "Calibri", charSpacing: 3,
});
s.addShape(pres.ShapeType.rect, { x: 0.7, y: 3.2, w: 4.0, h: 0.07, fill: { color: C.gold } });
s.addText("Based on Bailey & Love's Short Practice of Surgery", {
x: 0.7, y: 3.4, w: 9.6, h: 0.55, fontSize: 20, italic: true,
color: C.lightGrey, fontFace: "Calibri",
});
s.addText("Chapter 3 — Wounds, Wound Healing and Scarring", {
x: 0.7, y: 3.95, w: 9.6, h: 0.5, fontSize: 18,
color: C.grey, fontFace: "Calibri",
});
s.addText("27th Edition", {
x: 0.7, y: 6.85, w: 4, h: 0.5, fontSize: 14, bold: true,
color: C.white, fontFace: "Calibri",
});
}
// ══════════════════════════════════════════════════════════════
// SLIDE 2 — OVERVIEW / TABLE OF CONTENTS
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.1, fill: { color: C.tealLight } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 7.4, w: 13.3, h: 0.1, fill: { color: C.gold } });
s.addText("OVERVIEW", {
x: 0.5, y: 0.25, w: 12, h: 0.8, fontSize: 32, bold: true,
color: C.white, fontFace: "Calibri", charSpacing: 4,
});
s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.05, w: 3.0, h: 0.06, fill: { color: C.gold } });
const sections = [
{ num: "01", label: "Normal Wound Healing in Skin", sub: "Phases: Haemostasis · Inflammation · Proliferation · Remodelling" },
{ num: "02", label: "Abnormal Wound Healing", sub: "Hypertrophic scars · Keloid scars · Factors affecting healing" },
{ num: "03", label: "Types of Wound Healing", sub: "Primary · Secondary · Tertiary (Delayed Primary)" },
{ num: "04", label: "Classification of Wounds", sub: "CDC Surgical Wound Classification · Aetiology · Depth · Complexity" },
{ num: "05", label: "Wound Management", sub: "Assessment · Treatment principles" },
];
sections.forEach((sec, i) => {
const y = 1.2 + i * 1.15;
s.addShape(pres.ShapeType.rect, { x: 0.5, y, w: 1.0, h: 0.9, fill: { color: C.teal } });
s.addText(sec.num, { x: 0.5, y, w: 1.0, h: 0.9, fontSize: 24, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 1.6, y, w: 11.1, h: 0.9, fill: { color: "1E3A5F" } });
s.addText(sec.label, { x: 1.75, y: y + 0.05, w: 10.8, h: 0.45, fontSize: 18, bold: true, color: C.white, fontFace: "Calibri", valign: "bottom" });
s.addText(sec.sub, { x: 1.75, y: y + 0.48, w: 10.8, h: 0.38, fontSize: 13, color: C.tealLight, fontFace: "Calibri", italic: true });
});
}
// ══════════════════════════════════════════════════════════════
// SECTION DIVIDER — WOUND HEALING
// ══════════════════════════════════════════════════════════════
addDividerSlide("WOUND HEALING", "Normal Physiology of Wound Repair");
// ══════════════════════════════════════════════════════════════
// SLIDE 3 — PHASES OVERVIEW (Timeline graphic)
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText("PHASES OF NORMAL WOUND HEALING", {
x: 0.3, y: 0, w: 12.7, h: 1.0, fontSize: 26, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
// Intro text
s.addText("Wound healing proceeds through 3 overlapping, distinct phases. An additional phase — Haemostasis — occurs immediately before Inflammation.", {
x: 0.4, y: 1.15, w: 12.5, h: 0.7, fontSize: 17, color: C.navy, fontFace: "Calibri", italic: true,
});
// Phase boxes
const phases = [
{ label: "Haemostasis", time: "Minutes–Hours", color: C.red, x: 0.4, w: 2.7 },
{ label: "Inflammation", time: "Days 1–3", color: "E86A10", x: 3.3, w: 2.7 },
{ label: "Proliferation", time: "Day 3 – 4 Weeks", color: C.teal, x: 6.2, w: 3.5 },
{ label: "Remodelling", time: "Months–2 Years", color: C.navy, x: 9.9, w: 3.0 },
];
phases.forEach(p => {
s.addShape(pres.ShapeType.rect, { x: p.x, y: 2.0, w: p.w, h: 1.3, fill: { color: p.color } });
s.addText(p.label, { x: p.x, y: 2.0, w: p.w, h: 0.75, fontSize: 18, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "bottom" });
s.addText(p.time, { x: p.x, y: 2.75, w: p.w, h: 0.55, fontSize: 13, color: C.white, fontFace: "Calibri", align: "center", valign: "middle", italic: true });
// Down arrow
s.addShape(pres.ShapeType.rect, { x: p.x + p.w / 2 - 0.05, y: 3.3, w: 0.1, h: 0.35, fill: { color: p.color } });
});
// Key points for each phase
const keyPoints = [
{ x: 0.4, color: C.red, pts: ["Vasoconstriction", "Platelet plug forms", "Coagulation cascade → Fibrin clot"] },
{ x: 3.3, color: "E86A10", pts: ["Neutrophils (days 1–2)", "Macrophages (days 2–3)", "Rubor, tumor, calor, dolor"] },
{ x: 6.2, color: C.teal, pts: ["Fibroblast activity (day 3+)", "Collagen synthesis", "Angiogenesis + epithelialisation", "Granulation tissue formation"] },
{ x: 9.9, color: C.navy, pts: ["Collagen remodelling (type III→I)", "Tensile strength increases", "Myofibroblast contraction", "Scar matures: pale, flat"] },
];
const colWs = [2.7, 2.7, 3.5, 3.0];
keyPoints.forEach((kp, i) => {
const arr = kp.pts.map((p, j) => ({ text: p, options: { bullet: true, breakLine: j < kp.pts.length - 1, fontSize: 14, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 4 } }));
s.addShape(pres.ShapeType.rect, { x: kp.x, y: 3.65, w: colWs[i], h: 3.45, fill: { color: C.white }, line: { color: kp.color, width: 1.5 } });
s.addText(arr, { x: kp.x + 0.1, y: 3.7, w: colWs[i] - 0.2, h: 3.35, valign: "top" });
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true, color: C.grey, fontFace: "Calibri", align: "right",
});
}
// ══════════════════════════════════════════════════════════════
// SLIDE 4 — HAEMOSTASIS (detailed)
// ══════════════════════════════════════════════════════════════
addPhaseSlide(1, "Haemostasis", C.red, "Minutes – Hours", [
{
heading: "Vascular Response",
points: ["Disruption of vascular endothelium → vasoconstriction", "Exposure of subendothelial extracellular matrix", "Limits initial blood loss"],
},
{
heading: "Platelet Activation & Aggregation",
points: ["Platelets adhere, activate, aggregate → platelet plug", "Alpha granules release growth factors: TGF-β, PDGF, FGF, EGF, VEGF", "Growth factors drive ECM deposition, chemotaxis, angiogenesis"],
},
{
heading: "Coagulation Cascade",
points: ["Tissue factor → initiates cascade", "Thrombin formed → converts fibrinogen → fibrin", "Fibrin stabilises platelet plug, forms scaffold for cells"],
},
{
heading: "Key Outcome",
points: ["Stable fibrin clot formed", "Scaffold ready for inflammatory cell infiltration", "Transition to inflammatory phase begins"],
},
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 5 — INFLAMMATION (detailed)
// ══════════════════════════════════════════════════════════════
addPhaseSlide(2, "Inflammation", "E86A10", "Days 1–3", [
{
heading: "Early Phase (Days 1–2)",
points: ["Platelet activation → influx of PMNs, especially neutrophils", "Neutrophils: minimise bacterial contamination", "Vasoactive amines (histamine, serotonin) increase vascular permeability"],
},
{
heading: "Late Phase (Days 2–3)",
points: ["Monocytes appear → differentiate into macrophages", "Macrophages: phagocytosis + proteolytic debridement", "Primary producers of cytokines & growth factors"],
},
{
heading: "Cardinal Signs of Inflammation",
points: ["Rubor (redness)", "Tumor (swelling)", "Calor (heat)", "Dolor (pain)"],
},
{
heading: "Transition to Proliferation",
points: ["Macrophages release PDGF, TGF-β promoting fibroblast proliferation", "Angiogenesis stimulated", "Phase overlaps with proliferation from ~day 3"],
},
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 6 — PROLIFERATION (detailed)
// ══════════════════════════════════════════════════════════════
addPhaseSlide(3, "Proliferation", C.teal, "Day 3 – 2–4 Weeks", [
{
heading: "Fibroblast Activity",
points: ["Start ~day 3; lasts 2–4 weeks", "Produce ground substance: glycosaminoglycans + proteoglycans", "Collagen synthesis — initially type III, later type I"],
},
{
heading: "Granulation Tissue",
points: ["Pink, granular appearance (early)", "Consists of new capillaries, fibroblasts, and ECM", "Fills wound defect from base upwards"],
},
{
heading: "Re-epithelialisation",
points: ["Epithelial cells migrate from wound edges & skin appendages", "Keratinocyte proliferation covers wound surface", "Dependent on moist wound environment"],
},
{
heading: "Angiogenesis",
points: ["VEGF & FGF drive new vessel formation", "Essential for oxygen/nutrient delivery", "New vessels visible as red, granular tissue"],
},
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 7 — REMODELLING (detailed)
// ══════════════════════════════════════════════════════════════
addPhaseSlide(4, "Remodelling", C.navy, "Months – Up to 2 Years", [
{
heading: "Collagen Remodelling",
points: ["Type III collagen replaced by type I (stronger)", "Net collagen content decreases but organisation improves", "Collagen crosslinking increases tensile strength"],
},
{
heading: "Tensile Strength",
points: ["50% of original strength at 6 weeks", "80% by 3 months", "Never exceeds ~80% of original skin strength"],
},
{
heading: "Wound Contraction",
points: ["Myofibroblasts responsible for wound contraction", "Actin-containing cells contract wound edges", "Important mechanism in healing by secondary intention"],
},
{
heading: "Scar Maturation",
points: ["Initially red and raised", "Progressively becomes pale, flat, soft", "Vascularity decreases over months"],
},
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 8 — ABNORMAL WOUND HEALING
// ══════════════════════════════════════════════════════════════
addTwoColSlide(
"ABNORMAL WOUND HEALING",
[
"Confined within original wound boundary",
"Eventually spontaneously regress",
"Areas of increased tension",
"Wounds crossing tension lines",
"Deep dermal burns",
"Wounds healing by secondary intention (> 3 weeks)",
"Treatment: silicone, intralesional steroids, compression",
],
[
"Extend BEYOND original wound borders",
"Do NOT spontaneously regress",
"Can be locally destructive / debilitating",
"More common in darker skin types",
"Collagen arranged in disorganised pattern",
"Common sites: face, earlobes, deltoid, presternal",
"Treatment: excision + adjuvant radiotherapy; more resistant",
],
"HYPERTROPHIC SCARS",
"KELOID SCARS"
);
// ══════════════════════════════════════════════════════════════
// SLIDE 9 — FACTORS AFFECTING WOUND HEALING
// ══════════════════════════════════════════════════════════════
addTwoColSlide(
"FACTORS AFFECTING WOUND HEALING (Bailey & Love Summary Box 3.1)",
[
"Skin tension",
"Hypoxia and ischaemia",
"Vascular insufficiency",
"Lymphoedema",
"Contamination",
"Infection",
"Presence of foreign bodies",
"Radiotherapy",
],
[
"Advancing age",
"Obesity",
"Malnutrition",
"Smoking",
"Diabetes mellitus",
"Connective tissue diseases",
"Immunocompromised states (e.g. AIDS)",
"Medications: steroids, immunosuppressants, chemotherapy",
],
"LOCAL FACTORS",
"SYSTEMIC FACTORS"
);
// ══════════════════════════════════════════════════════════════
// SECTION DIVIDER — TYPES OF WOUND HEALING
// ══════════════════════════════════════════════════════════════
addDividerSlide("TYPES OF WOUND HEALING", "Intentions of Healing — Summary Box 3.2");
// ══════════════════════════════════════════════════════════════
// SLIDE 10 — TYPES OF HEALING
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText("TYPES OF WOUND HEALING", {
x: 0.3, y: 0, w: 12.7, h: 1.0, fontSize: 26, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
const types = [
{
title: "1st INTENTION (Primary)",
color: C.green,
x: 0.35,
pts: ["Wound edges directly approximated", "Aim of surgical treatment", "No adverse influences → best scar", "Methods: sutures, staples, glue, tape"],
},
{
title: "2nd INTENTION (Secondary)",
color: "E86A10",
x: 4.65,
pts: ["Wound left OPEN", "Heals by granulation, contraction, re-epithelialisation", "Increased inflammation and proliferation", "Results in a poorer scar"],
},
{
title: "3rd INTENTION (Tertiary / Delayed Primary)",
color: C.navy,
x: 8.95,
pts: ["Wound initially left open (contaminated or untidy wounds)", "Edges apposed surgically after debridement", "Wound must be clean first", "Better outcome than secondary intention"],
},
];
types.forEach(t => {
s.addShape(pres.ShapeType.rect, {
x: t.x, y: 1.15, w: 4.1, h: 5.7,
fill: { color: C.white },
line: { color: t.color, width: 2 },
shadow: { type: "outer", blur: 5, offset: 2, angle: 45, color: "AAAAAA", opacity: 0.3 },
});
s.addShape(pres.ShapeType.rect, { x: t.x, y: 1.15, w: 4.1, h: 0.7, fill: { color: t.color } });
s.addText(t.title, {
x: t.x + 0.05, y: 1.15, w: 4.0, h: 0.7,
fontSize: 15, bold: true, color: C.white, fontFace: "Calibri",
align: "center", valign: "middle",
});
const arr = t.pts.map((p, j) => ({ text: p, options: { bullet: true, breakLine: j < t.pts.length - 1, fontSize: 16, color: C.navyDark, fontFace: "Calibri", paraSpaceBefore: 6 } }));
s.addText(arr, { x: t.x + 0.15, y: 1.95, w: 3.8, h: 4.7, valign: "top" });
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
}
// ══════════════════════════════════════════════════════════════
// SECTION DIVIDER — WOUND CLASSIFICATION
// ══════════════════════════════════════════════════════════════
addDividerSlide("WOUND CLASSIFICATION", "Synopsis of Classification Systems — Summary Box 3.3");
// ══════════════════════════════════════════════════════════════
// SLIDE 11 — CDC SURGICAL WOUND CLASSIFICATION (Table)
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.1, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText("CDC SURGICAL WOUND CLASSIFICATION (Table 3.1)", {
x: 0.3, y: 0, w: 12.7, h: 1.1, fontSize: 24, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
s.addText("US Centers for Disease Prevention and Control — originally introduced by US National Research Council (1964)", {
x: 0.4, y: 1.2, w: 12.5, h: 0.45, fontSize: 14, italic: true, color: C.navy, fontFace: "Calibri",
});
const classColors = [C.green, "1A7A2E", "E86A10", C.red];
const classes = [
{ cls: "Class I\nCLEAN", color: classColors[0], desc: "Uninfected operative wounds\n• No inflammation encountered\n• Respiratory, alimentary, genital, or urinary tracts NOT entered\n• Primarily closed ± closed drainage" },
{ cls: "Class II\nCLEAN-CONTAMINATED", color: classColors[1], desc: "Respiratory, alimentary, genital or urinary tracts entered under controlled conditions\n• No unusual contamination\n• No evidence of infection or major break in technique" },
{ cls: "Class III\nCONTAMINATED", color: classColors[2], desc: "Open, fresh, accidental wounds\n• Major breaks in sterile technique (e.g. open cardiac massage)\n• Gross spillage from GI tract\n• Incisions with acute, non-purulent inflammation" },
{ cls: "Class IV\nDIRTY", color: classColors[3], desc: "Old traumatic wounds with retained devitalised tissue\n• Existing clinical infection\n• Perforated viscera\n• Organisms present in surgical field BEFORE operation" },
];
classes.forEach((c, i) => {
const y = 1.75 + i * 1.38;
s.addShape(pres.ShapeType.rect, { x: 0.4, y, w: 2.8, h: 1.25, fill: { color: c.color } });
s.addText(c.cls, { x: 0.4, y, w: 2.8, h: 1.25, fontSize: 15, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addShape(pres.ShapeType.rect, { x: 3.3, y, w: 9.6, h: 1.25, fill: { color: C.white }, line: { color: c.color, width: 1 } });
s.addText(c.desc, { x: 3.4, y: y + 0.05, w: 9.4, h: 1.15, fontSize: 14, color: C.navyDark, fontFace: "Calibri", valign: "top" });
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
}
// ══════════════════════════════════════════════════════════════
// SLIDE 12 — WOUND CLASSIFICATION: SYNOPSIS
// ══════════════════════════════════════════════════════════════
addContentSlide("WOUND CLASSIFICATION — SYNOPSIS (Summary Box 3.3)", [
"AETIOLOGY:",
{ text: "Clean surgical, shearing/degloving, crush, blast, burn (thermal/electrical/chemical/radiation), cold injury, avulsion/traction, low/high energy, bite", sub: true },
"DEPTH:",
{ text: "Epidermal, Dermal (superficial or deep), Full thickness", sub: true },
"CONTAMINATION:",
{ text: "Clean, Clean–contaminated, Contaminated, Dirty | With or without implant", sub: true },
"COMPLEXITY:",
{ text: "Simple, Complex, Significant soft-tissue loss, Open fracture/joint, Visceral involvement", sub: true },
"COMPLICATED:",
{ text: "Infection, Necrosis, Haematoma, Gas gangrene, Compartment syndrome", sub: true },
"CHRONIC:",
{ text: "Vascular ulcers (venous or arterial), Pressure ulcers, Diabetic ulcers", sub: true },
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 13 — NNIS RISK SCORE
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.offWhite } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 7.5, fill: { color: C.teal } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.0, fill: { color: C.navy } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 1.0, w: 13.3, h: 0.06, fill: { color: C.gold } });
s.addText("NNIS RISK INDEX SCORE — Surgical Site Infection Risk", {
x: 0.3, y: 0, w: 12.7, h: 1.0, fontSize: 24, bold: true,
color: C.white, fontFace: "Calibri", valign: "middle", margin: 0,
});
s.addText("National Nosocomial Infections Surveillance (NNIS) Score stratifies SSI risk. Score ranges from 0 (lowest) to 3 (highest).", {
x: 0.4, y: 1.15, w: 12.5, h: 0.6, fontSize: 16, italic: true, color: C.navy, fontFace: "Calibri",
});
s.addText("1 point is allocated for the presence of EACH of the following risk factors:", {
x: 0.4, y: 1.7, w: 12.5, h: 0.45, fontSize: 16, bold: true, color: C.navyDark, fontFace: "Calibri",
});
const factors = [
{ num: "+1", label: "Contaminated or Dirty Wound", detail: "Class III or IV wound on CDC classification", color: C.red },
{ num: "+1", label: "ASA Score ≥ 3", detail: "American Society of Anesthesiologists physical status score 3 or higher", color: "E86A10" },
{ num: "+1", label: "Prolonged Operative Time", detail: "Operative time longer than expected for similar procedures (> 75th percentile)", color: C.teal },
];
factors.forEach((f, i) => {
const x = 0.4 + i * 4.25;
s.addShape(pres.ShapeType.rect, { x, y: 2.3, w: 4.0, h: 4.8, fill: { color: C.white }, line: { color: f.color, width: 2 } });
s.addShape(pres.ShapeType.rect, { x, y: 2.3, w: 4.0, h: 1.1, fill: { color: f.color } });
s.addText(f.num, { x, y: 2.3, w: 1.1, h: 1.1, fontSize: 40, bold: true, color: C.white, fontFace: "Calibri", align: "center", valign: "middle" });
s.addText(f.label, { x: x + 1.1, y: 2.3, w: 2.85, h: 1.1, fontSize: 16, bold: true, color: C.white, fontFace: "Calibri", valign: "middle" });
s.addText(f.detail, { x: x + 0.15, y: 3.5, w: 3.7, h: 3.5, fontSize: 16, color: C.navyDark, fontFace: "Calibri", valign: "top" });
});
s.addText("Bailey & Love's Short Practice of Surgery", {
x: 7, y: 7.1, w: 6, h: 0.35, fontSize: 11, italic: true,
color: C.grey, fontFace: "Calibri", align: "right",
});
}
// ══════════════════════════════════════════════════════════════
// SECTION DIVIDER — WOUND MANAGEMENT
// ══════════════════════════════════════════════════════════════
addDividerSlide("WOUND MANAGEMENT", "Assessment & Treatment Principles");
// ══════════════════════════════════════════════════════════════
// SLIDE 14 — WOUND MANAGEMENT
// ══════════════════════════════════════════════════════════════
addContentSlide("WOUND MANAGEMENT — KEY PRINCIPLES", [
"Use ATLS principles: identify life-threatening → limb-threatening conditions first",
"Assess: site, size, geometry, nature of wound; signs of contamination, infection, swelling, pulsatile bleeding",
"Look for: skin loss, degloving, exposed structures, underlying fractures / dislocations",
"Correlate clinical examination with mechanism of injury (e.g. high-pressure injection injuries can track proximally)",
"Ensure adequate analgesia before palpation; test motor and sensory function before local anaesthesia",
"Imaging: to exclude foreign bodies, fractures, dislocations as appropriate",
"Thorough wound irrigation for better visualisation and decontamination",
"Multidisciplinary approach for complex wounds (e.g. open lower limb fractures: orthopaedic + plastic surgery)",
"Wound management guided by timing, mechanism of injury, and patient-specific factors affecting healing",
]);
// ══════════════════════════════════════════════════════════════
// SLIDE 15 — SUMMARY / TAKE-HOME POINTS
// ══════════════════════════════════════════════════════════════
{
let s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.navyDark } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 0.1, fill: { color: C.tealLight } });
s.addShape(pres.ShapeType.rect, { x: 0, y: 7.4, w: 13.3, h: 0.1, fill: { color: C.gold } });
s.addText("KEY TAKE-HOME POINTS", {
x: 0.5, y: 0.2, w: 12, h: 0.85, fontSize: 32, bold: true,
color: C.white, fontFace: "Calibri", charSpacing: 3,
});
s.addShape(pres.ShapeType.rect, { x: 0.5, y: 1.05, w: 4.0, h: 0.06, fill: { color: C.gold } });
const points = [
{ emoji: "🔬", text: "Wound healing has 4 phases: Haemostasis → Inflammation → Proliferation → Remodelling" },
{ emoji: "⏱", text: "Remodelling is the longest phase (months to 2 years); tensile strength never exceeds ~80% of original" },
{ emoji: "📋", text: "CDC classification: Class I (Clean) → Class IV (Dirty) — standard for SSI risk assessment" },
{ emoji: "🩺", text: "NNIS score (0–3): contaminated wound + ASA ≥3 + prolonged operative time each add 1 point" },
{ emoji: "🔄", text: "3 types of healing: Primary (1st), Secondary (2nd — open wound), Tertiary/Delayed Primary (3rd)" },
{ emoji: "⚠️", text: "Hypertrophic scars stay within wound boundary; keloid scars extend beyond and do not regress" },
{ emoji: "🧬", text: "Macrophages are the master regulators of wound healing — phagocytosis, cytokine release, fibroblast stimulation" },
];
points.forEach((p, i) => {
const y = 1.2 + i * 0.82;
s.addShape(pres.ShapeType.rect, { x: 0.5, y, w: 12.2, h: 0.72, fill: { color: "1E3A5F" }, line: { color: C.teal, width: 0.5 } });
s.addText(p.emoji, { x: 0.55, y, w: 0.7, h: 0.72, fontSize: 22, align: "center", valign: "middle" });
s.addText(p.text, { x: 1.3, y, w: 11.2, h: 0.72, fontSize: 16, color: C.white, fontFace: "Calibri", valign: "middle" });
});
}
// ══════════════════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/wound-ppt/Wound_Classification_Healing_BaileyLove.pptx" })
.then(() => console.log("✅ PPT created successfully!"))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/wound-ppt && node create_ppt.js 2>&1
ls -lh /home/daytona/workspace/wound-ppt/
Wound Classification Healing BaileyLove
Presentation · PPTX
| Slide | Content |
|---|---|
| 1 | Title slide |
| 2 | Overview / Table of Contents |
| 3 | Divider — Wound Healing |
| 4 | Phases Overview (timeline graphic with all 4 phases) |
| 5 | Phase 1: Haemostasis (vasoconstriction, platelet plug, coagulation cascade, growth factors) |
| 6 | Phase 2: Inflammation (early neutrophils, late macrophages, cardinal signs) |
| 7 | Phase 3: Proliferation (fibroblasts, granulation tissue, re-epithelialisation, angiogenesis) |
| 8 | Phase 4: Remodelling (collagen remodelling, tensile strength, myofibroblasts, scar maturation) |
| 9 | Abnormal Healing — Hypertrophic vs Keloid scars (2-column comparison) |
| 10 | Factors Affecting Healing — Local vs Systemic (Summary Box 3.1) |
| 11 | Divider — Types of Wound Healing |
| 12 | 1st / 2nd / 3rd Intention healing (3-card layout) |
| 13 | Divider — Wound Classification |
| 14 | CDC Surgical Wound Classification Table (Classes I–IV) |
| 15 | NNIS Risk Index Score |
| 16 | Wound Classification Synopsis (aetiology, depth, contamination, complexity, chronic) |
| 17 | Wound Management principles |
| 18 | Key Take-Home Points |