Management of first and second stage of labour, PowerPoint presentation.
mkdir -p /home/daytona/workspace/labour-management-pptx && ls /home/daytona/work…
~/labour-management-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Management of First and Second Stage of Labour";
pres.author = "Obstetrics & Gynaecology";
// ─── COLOUR PALETTE ───
const DARK_BG = "0D2B45"; // deep navy (title + section dividers)
const MID_BG = "10415A"; // teal-navy (secondary slides)
const ACCENT = "3CB4E5"; // sky blue (headings / highlights)
const GOLD = "F0A500"; // amber gold (key figures / numbers)
const LIGHT_TXT = "FFFFFF";
const DARK_TXT = "1A1A2E";
const CARD_BG = "F4F9FC"; // very light blue-white
const DIVIDER = "3CB4E5";
const RED_WARN = "D73C3C";
const GREEN_OK = "28A065";
// ─── HELPER: add dark slide with title ───
function darkSlide(title, subtitle) {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
// accent bar left
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.08, h: 5.625, fill: { color: ACCENT } });
sl.addText(title, {
x: 0.35, y: 1.6, w: 9.3, h: 1.2,
fontSize: 36, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center"
});
if (subtitle) {
sl.addText(subtitle, {
x: 0.35, y: 2.95, w: 9.3, h: 0.7,
fontSize: 18, color: ACCENT, fontFace: "Calibri", align: "center", italic: true
});
}
return sl;
}
// ─── HELPER: content slide with title bar ───
function contentSlide(title, accentColor) {
accentColor = accentColor || ACCENT;
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: "FFFFFF" } });
// Header bar
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.72, fill: { color: DARK_BG } });
sl.addText(title, {
x: 0.3, y: 0.08, w: 9.4, h: 0.56,
fontSize: 20, bold: true, color: LIGHT_TXT, fontFace: "Calibri", valign: "middle"
});
// bottom accent line
sl.addShape(pres.ShapeType.rect, { x: 0, y: 5.45, w: 10, h: 0.175, fill: { color: accentColor } });
return sl;
}
// ─── HELPER: two-column card slide ───
function twoColSlide(title, leftTitle, leftItems, rightTitle, rightItems, leftColor, rightColor) {
leftColor = leftColor || ACCENT;
rightColor = rightColor || GOLD;
const sl = contentSlide(title);
// LEFT card
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: 0.9, w: 4.5, h: 4.4, fill: { color: CARD_BG }, line: { color: leftColor, width: 1.5 } });
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: 0.9, w: 4.5, h: 0.42, fill: { color: leftColor } });
sl.addText(leftTitle, { x: 0.3, y: 0.9, w: 4.4, h: 0.42, fontSize: 13, bold: true, color: LIGHT_TXT, fontFace: "Calibri", valign: "middle" });
sl.addText(leftItems.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < leftItems.length - 1, fontSize: 12, color: DARK_TXT, fontFace: "Calibri" } })),
{ x: 0.35, y: 1.38, w: 4.3, h: 3.8 });
// RIGHT card
sl.addShape(pres.ShapeType.rect, { x: 5.25, y: 0.9, w: 4.5, h: 4.4, fill: { color: CARD_BG }, line: { color: rightColor, width: 1.5 } });
sl.addShape(pres.ShapeType.rect, { x: 5.25, y: 0.9, w: 4.5, h: 0.42, fill: { color: rightColor } });
sl.addText(rightTitle, { x: 5.3, y: 0.9, w: 4.4, h: 0.42, fontSize: 13, bold: true, color: LIGHT_TXT, fontFace: "Calibri", valign: "middle" });
sl.addText(rightItems.map((t, i) => ({ text: t, options: { bullet: true, breakLine: i < rightItems.length - 1, fontSize: 12, color: DARK_TXT, fontFace: "Calibri" } })),
{ x: 5.35, y: 1.38, w: 4.3, h: 3.8 });
return sl;
}
// ─── HELPER: bullet slide ───
function bulletSlide(title, sections) {
// sections = [{heading, items}]
const sl = contentSlide(title);
let y = 0.88;
sections.forEach(sec => {
if (sec.heading) {
sl.addText(sec.heading, { x: 0.35, y, w: 9.3, h: 0.35, fontSize: 13, bold: true, color: ACCENT, fontFace: "Calibri", margin: 0 });
y += 0.37;
}
const items = sec.items.map((t, i) => ({
text: t,
options: { bullet: true, breakLine: i < sec.items.length - 1, fontSize: 12, color: DARK_TXT, fontFace: "Calibri", indentLevel: sec.indent || 0 }
}));
sl.addText(items, { x: 0.5, y, w: 9.1, h: sec.items.length * 0.42 });
y += sec.items.length * 0.42 + 0.12;
});
return sl;
}
// ─── HELPER: section divider ───
function sectionDivider(label, subtitle) {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: MID_BG } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 2.5, w: 10, h: 0.06, fill: { color: GOLD } });
sl.addText(label, {
x: 0.5, y: 1.5, w: 9, h: 1.2,
fontSize: 40, bold: true, color: GOLD, fontFace: "Calibri", align: "center"
});
if (subtitle) {
sl.addText(subtitle, {
x: 0.5, y: 2.8, w: 9, h: 0.7,
fontSize: 18, color: LIGHT_TXT, fontFace: "Calibri", align: "center", italic: true
});
}
return sl;
}
// ─── SLIDE 1: TITLE ───
{
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
// decorative circles
sl.addShape(pres.ShapeType.ellipse, { x: 7.5, y: -0.8, w: 3.5, h: 3.5, fill: { color: ACCENT, transparency: 85 } });
sl.addShape(pres.ShapeType.ellipse, { x: -0.8, y: 3.5, w: 2.5, h: 2.5, fill: { color: GOLD, transparency: 80 } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.12, h: 5.625, fill: { color: GOLD } });
sl.addText("Management of First &\nSecond Stage of Labour", {
x: 0.4, y: 0.9, w: 9.2, h: 2.0,
fontSize: 36, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center"
});
sl.addShape(pres.ShapeType.rect, { x: 2.5, y: 3.05, w: 5, h: 0.04, fill: { color: ACCENT } });
sl.addText("A Detailed Clinical Guide for Postgraduate Residents", {
x: 0.4, y: 3.2, w: 9.2, h: 0.5,
fontSize: 16, color: ACCENT, fontFace: "Calibri", align: "center", italic: true
});
sl.addText("Obstetrics & Gynaecology | 2026", {
x: 0.4, y: 5.0, w: 9.2, h: 0.4,
fontSize: 12, color: "7EB8D4", fontFace: "Calibri", align: "center"
});
}
// ─── SLIDE 2: OVERVIEW / TABLE OF CONTENTS ───
{
const sl = contentSlide("Outline");
const topics = [
{ num: "01", text: "Definitions & Stages of Labour" },
{ num: "02", text: "First Stage — Latent Phase: Assessment & Management" },
{ num: "03", text: "First Stage — Active Phase: Progress & Monitoring" },
{ num: "04", text: "Intrapartum Fetal Monitoring (EFM & CTG Interpretation)" },
{ num: "05", text: "Analgesia in Labour" },
{ num: "06", text: "Abnormal First Stage: Diagnosis & Interventions" },
{ num: "07", text: "Second Stage: Definition, Duration & Conduct" },
{ num: "08", text: "Delivery Technique: Cardinal Movements & Episiotomy" },
{ num: "09", text: "Abnormal Second Stage: Management" },
{ num: "10", text: "Key Take-home Points" },
];
topics.forEach((t, i) => {
const yy = 0.85 + i * 0.46;
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: yy, w: 0.45, h: 0.35, fill: { color: ACCENT } });
sl.addText(t.num, { x: 0.3, y: yy, w: 0.45, h: 0.35, fontSize: 11, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addText(t.text, { x: 0.85, y: yy + 0.02, w: 8.8, h: 0.32, fontSize: 13, color: DARK_TXT, fontFace: "Calibri", valign: "middle" });
});
}
// ─── SECTION DIVIDER: FIRST STAGE ───
sectionDivider("FIRST STAGE OF LABOUR", "Cervical Stage — from onset to full dilatation (10 cm)");
// ─── SLIDE 3: DEFINITIONS ───
{
const sl = contentSlide("Definitions & Normal Stages");
// 4 info boxes
const boxes = [
{ label: "FIRST STAGE", color: ACCENT, x: 0.2, y: 0.88, desc: "Onset of labour → Full cervical dilatation (10 cm)\nLatent + Active phases" },
{ label: "SECOND STAGE", color: GOLD, x: 5.1, y: 0.88, desc: "Full dilatation → Delivery of the fetus\nPassive + Active (pushing) phases" },
{ label: "THIRD STAGE", color: GREEN_OK, x: 0.2, y: 3.05, desc: "Delivery of fetus → Delivery of placenta & membranes\nPhysiological or Active management" },
{ label: "FOURTH STAGE", color: RED_WARN, x: 5.1, y: 3.05, desc: "First 1–2 hours postpartum\nMonitoring for PPH, uterine tone, vitals" },
];
boxes.forEach(b => {
sl.addShape(pres.ShapeType.rect, { x: b.x, y: b.y, w: 4.6, h: 0.42, fill: { color: b.color } });
sl.addShape(pres.ShapeType.rect, { x: b.x, y: b.y+0.42, w: 4.6, h: 1.85, fill: { color: CARD_BG }, line: { color: b.color, width: 1 } });
sl.addText(b.label, { x: b.x+0.05, y: b.y, w: 4.5, h: 0.42, fontSize: 13, bold: true, color: LIGHT_TXT, fontFace: "Calibri", valign: "middle", margin: 4 });
sl.addText(b.desc, { x: b.x+0.1, y: b.y+0.5, w: 4.4, h: 1.6, fontSize: 12, color: DARK_TXT, fontFace: "Calibri" });
});
}
// ─── SLIDE 4: PHASES OF FIRST STAGE ───
twoColSlide(
"First Stage of Labour — Phases",
"LATENT PHASE",
[
"Onset of regular contractions → 3–4 cm dilatation",
"Cervical effacement & early dilatation",
"Duration: up to 20 hr (nullipara), 14 hr (multipara)",
"Contractions: irregular, 5–10 min apart",
"Management: Supportive (ambulation, hydration)",
"Therapeutic narcosis if exhausted/prolonged",
"Avoid unnecessary intervention",
"Augmentation only if clinical indication exists"
],
"ACTIVE PHASE",
[
"3–4 cm → 10 cm dilatation",
"Rate: ≥1 cm/hr (nullipara), ≥1.2 cm/hr (multipara)",
"Contractions: 3–5 per 10 min, 45–60 sec duration",
"Regular vaginal examinations every 4 hours",
"Descent of presenting part begins",
"Oxytocin augmentation if progress <1 cm/hr",
"ARM to augment if membranes intact & slow progress",
"Continuous fetal monitoring recommended"
],
ACCENT, GOLD
);
// ─── SLIDE 5: ASSESSMENT ON ADMISSION ───
bulletSlide("Assessment on Admission in Labour", [
{ heading: "History", items: ["Gestational age (EDD), parity, previous obstetric history", "Onset & frequency of contractions, status of membranes (SROM?)", "Fetal movement, antenatal complications, blood group, GBS status"] },
{ heading: "Examination", items: ["Vitals: BP, pulse, temp, RR; urinalysis", "Abdominal: fundal height, lie, presentation, engagement (fifths palpable)", "Leopold maneuvers to confirm fetal lie & position", "FHR auscultation; CTG if any concern"] },
{ heading: "Vaginal Examination (VE)", items: ["Cervical dilatation, effacement, consistency & position (Bishop Score)", "Fetal presenting part: station (ischial spines = 0)", "Membranes: intact / ruptured; colour of liquor if draining", "VE deferred if APH until placenta previa excluded"] },
]);
// ─── SLIDE 6: PARTOGRAPH ───
{
const sl = contentSlide("The Partograph — Monitoring Labour Progress");
// Alert line box
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: 0.88, w: 9.5, h: 0.5, fill: { color: DARK_BG } });
sl.addText("WHO Partograph: Plot cervical dilatation vs time — Alert Line & Action Line", {
x: 0.3, y: 0.88, w: 9.4, h: 0.5, fontSize: 13, bold: true, color: GOLD, fontFace: "Calibri", valign: "middle"
});
const rows = [
["Parameter", "Details"],
["Cervical Dilatation", "Plotted from active phase (≥4 cm). Starts on Alert Line."],
["Alert Line", "Expected minimum progress: 1 cm/hr. Crosses from 4 cm (begins)."],
["Action Line", "4 hours to the right of Alert Line. Crossing = intervention needed."],
["Fetal HR", "Every 30 min in latent; every 15 min in active phase"],
["Contractions", "Frequency, duration, strength per 10 min"],
["Liquor", "C = clear, M = meconium, B = blood, A = absent"],
["Descent", "Fifths of head above pelvic brim (5 = not engaged, 0 = fully engaged)"],
["Moulding", "0, 1+, 2+, 3+"],
["Maternal vitals", "BP, pulse, temp, urine output per hour"],
];
rows.forEach((row, i) => {
const yy = 1.48 + i * 0.39;
const isHeader = i === 0;
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: yy, w: 2.8, h: 0.37, fill: { color: isHeader ? ACCENT : (i % 2 === 0 ? CARD_BG : "EAF4FA") }, line: { color: ACCENT, width: 0.5 } });
sl.addShape(pres.ShapeType.rect, { x: 3.1, y: yy, w: 6.65, h: 0.37, fill: { color: isHeader ? ACCENT : (i % 2 === 0 ? CARD_BG : "EAF4FA") }, line: { color: ACCENT, width: 0.5 } });
sl.addText(row[0], { x: 0.3, y: yy+0.02, w: 2.7, h: 0.33, fontSize: isHeader ? 12 : 11, bold: isHeader, color: isHeader ? LIGHT_TXT : DARK_TXT, fontFace: "Calibri", valign: "middle" });
sl.addText(row[1], { x: 3.15, y: yy+0.02, w: 6.55, h: 0.33, fontSize: isHeader ? 12 : 11, bold: isHeader, color: isHeader ? LIGHT_TXT : DARK_TXT, fontFace: "Calibri", valign: "middle" });
});
}
// ─── SLIDE 7: FETAL MONITORING — CTG ───
{
const sl = contentSlide("Intrapartum Fetal Monitoring — CTG Interpretation");
sl.addText("DR C BRAVADO Systematic Approach", {
x: 0.3, y: 0.82, w: 9.4, h: 0.38, fontSize: 14, bold: true, color: ACCENT, fontFace: "Calibri"
});
const ctgItems = [
{ code: "DR", label: "Define Risk", desc: "Low vs high risk; review obstetric history" },
{ code: "C", label: "Contractions", desc: "Frequency, duration — avoid hyperstimulation" },
{ code: "BRa", label: "Baseline Rate", desc: "Normal: 110–160 bpm; Tachycardia >160; Bradycardia <110" },
{ code: "V", label: "Variability", desc: "Normal: 5–25 bpm. Reduced <5 bpm ≥40 min = concerning" },
{ code: "A", label: "Accelerations", desc: ">15 bpm rise, >15 sec. Reassuring sign of fetal well-being" },
{ code: "D", label: "Decelerations", desc: "Early (head compression) / Late (UPI) / Variable (cord compression)" },
{ code: "O", label: "Overall Assessment", desc: "Normal / Suspicious / Pathological — act accordingly" },
];
ctgItems.forEach((item, i) => {
const yy = 1.3 + i * 0.56;
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: yy, w: 0.7, h: 0.44, fill: { color: ACCENT } });
sl.addText(item.code, { x: 0.25, y: yy, w: 0.7, h: 0.44, fontSize: 12, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addText(item.label, { x: 1.05, y: yy+0.02, w: 2.5, h: 0.4, fontSize: 12, bold: true, color: DARK_TXT, fontFace: "Calibri", valign: "middle" });
sl.addText(item.desc, { x: 3.7, y: yy+0.02, w: 6.1, h: 0.4, fontSize: 12, color: DARK_TXT, fontFace: "Calibri", valign: "middle" });
sl.addShape(pres.ShapeType.line, { x: 0.25, y: yy+0.46, w: 9.5, h: 0, line: { color: "D0E8F2", width: 0.5 } });
});
}
// ─── SLIDE 8: CTG CATEGORIES ───
{
const sl = contentSlide("CTG Classification & Management");
const cats = [
{ cat: "NORMAL", color: GREEN_OK, criteria: ["Baseline 110–160 bpm", "Variability 5–25 bpm", "Accelerations present", "No late/variable decelerations"], action: "Continue routine monitoring. No intervention needed." },
{ cat: "SUSPICIOUS", color: GOLD, criteria: ["1 non-reassuring feature:", "Baseline 100–109 or 161–180 bpm", "Variability <5 bpm for 30–50 min", "Prolonged deceleration >3 min"], action: "Increase vigilance. Correct reversible causes (position, oxytocin). Notify senior." },
{ cat: "PATHOLOGICAL",color: RED_WARN, criteria: ["≥2 non-reassuring features, OR", "≥1 abnormal feature:", "Baseline <100 or >180 bpm", "Sinusoidal pattern ≥10 min", "Variable/late decels with poor variability"], action: "Urgent review. FBS if feasible. Consider immediate delivery. Category 1 CS if needed." },
];
cats.forEach((c, i) => {
const yy = 0.86;
const xx = 0.25 + i * 3.25;
sl.addShape(pres.ShapeType.rect, { x: xx, y: yy, w: 3.1, h: 0.44, fill: { color: c.color } });
sl.addText(c.cat, { x: xx, y: yy, w: 3.1, h: 0.44, fontSize: 14, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, { x: xx, y: yy+0.44, w: 3.1, h: 2.6, fill: { color: CARD_BG }, line: { color: c.color, width: 1 } });
sl.addText(c.criteria.map((t, j) => ({ text: t, options: { bullet: true, breakLine: j < c.criteria.length - 1, fontSize: 11, color: DARK_TXT, fontFace: "Calibri" } })),
{ x: xx+0.1, y: yy+0.52, w: 2.9, h: 2.4 });
sl.addShape(pres.ShapeType.rect, { x: xx, y: yy+3.1, w: 3.1, h: 0.08, fill: { color: c.color } });
sl.addShape(pres.ShapeType.rect, { x: xx, y: yy+3.18, w: 3.1, h: 1.5, fill: { color: CARD_BG }, line: { color: c.color, width: 1 } });
sl.addText("ACTION: " + c.action, { x: xx+0.1, y: yy+3.22, w: 2.9, h: 1.35, fontSize: 11, color: c.color, bold: true, fontFace: "Calibri", wrap: true });
});
}
// ─── SLIDE 9: ANALGESIA IN LABOUR ───
twoColSlide(
"Analgesia in Labour",
"NON-PHARMACOLOGICAL",
[
"Breathing techniques & Lamaze",
"Continuous labour support (doula/midwife)",
"Hydrotherapy (warm water immersion)",
"TENS (Transcutaneous Electrical Nerve Stimulation)",
"Ambulation & position changes",
"Massage & counterpressure",
"Heat/cold application"
],
"PHARMACOLOGICAL",
[
"Entonox (50% N₂O/O₂) — inhalational, quick onset",
"Systemic opioids: Pethidine 50–100 mg IM (may cause neonatal resp. depression — have naloxone ready)",
"Epidural analgesia: GOLD STANDARD\n - Bolus LA (bupivacaine 0.1%) + fentanyl\n - Combined spinal-epidural (CSE)\n - Continuous infusion / PCEA",
"Spinal analgesia for rapid analgesia",
"Pudendal nerve block: 2nd stage / instrumental"
],
ACCENT, GOLD
);
// ─── SLIDE 10: ABNORMAL FIRST STAGE ───
{
const sl = contentSlide("Abnormal First Stage — Dystocia");
sl.addText("3Ps Framework: Powers • Passenger • Passage", {
x: 0.3, y: 0.82, w: 9.4, h: 0.4, fontSize: 14, bold: true, color: ACCENT, fontFace: "Calibri"
});
const items = [
{ cat: "POWERS", color: ACCENT, bg: "EAF7FF", items: ["Uterine hypotonia: inadequate contractions", "Dx: <3 contractions/10 min or <25 mmHg intensity", "Rx: ARM + Oxytocin augmentation (titrate carefully)", "Hyperstimulation (>5 contractions/10 min) → stop oxytocin, tocolysis if fetal distress"] },
{ cat: "PASSENGER", color: GOLD, bg: "FFF8E7", items: ["CPD: head too large for pelvis (X-ray pelvimetry)", "Malposition: OP, OT — trial of rotation (manual / forceps)", "Malpresentation: face, brow, compound — assess individually", "Macrosomia: shoulder dystocia risk — have protocol ready"] },
{ cat: "PASSAGE", color: GREEN_OK, bg: "EAFAF1", items: ["Pelvic contraction (android/platypelloid pelvis)", "Soft tissue obstruction: fibroids, cervical rigidity", "True CPD or borderline → Trial of labour → CS if fails", "Obstructed labour: prolonged + caput/moulding 3+ → immediate CS"] },
];
items.forEach((item, i) => {
const xx = 0.25 + i * 3.25;
sl.addShape(pres.ShapeType.rect, { x: xx, y: 1.32, w: 3.1, h: 0.42, fill: { color: item.color } });
sl.addText(item.cat, { x: xx, y: 1.32, w: 3.1, h: 0.42, fontSize: 13, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, { x: xx, y: 1.74, w: 3.1, h: 3.6, fill: { color: item.bg }, line: { color: item.color, width: 1 } });
sl.addText(item.items.map((t, j) => ({ text: t, options: { bullet: true, breakLine: j < item.items.length - 1, fontSize: 11, color: DARK_TXT, fontFace: "Calibri" } })),
{ x: xx+0.1, y: 1.82, w: 2.9, h: 3.4 });
});
}
// ─── SECTION DIVIDER: SECOND STAGE ───
sectionDivider("SECOND STAGE OF LABOUR", "Expulsive Stage — from full dilatation to delivery of the fetus");
// ─── SLIDE 11: SECOND STAGE DEFINITION ───
twoColSlide(
"Second Stage of Labour — Definition & Duration",
"DEFINITION & PHASES",
[
"Begins: Full cervical dilatation (10 cm)",
"Ends: Complete delivery of the fetus",
"PASSIVE phase: Full dilatation but no urge to push (fetus descending passively)",
"ACTIVE phase: Active maternal pushing with contractions",
"Pushing should begin when urge felt or presenting part ≤+2 station",
],
"NORMAL DURATION",
[
"Nulliparous (no epidural): ≤2 hours",
"Nulliparous (with epidural): ≤3 hours",
"Multiparous (no epidural): ≤1 hour",
"Multiparous (with epidural): ≤2 hours",
"Prolonged 2nd stage increases risk of: PPH, infection, neonatal acidosis, obstetric anal sphincter injury (OASI)",
"Continuous fetal monitoring mandatory"
],
ACCENT, GOLD
);
// ─── SLIDE 12: CARDINAL MOVEMENTS ───
{
const sl = contentSlide("Cardinal Movements of Labour (Vertex Presentation)");
const moves = [
{ n: "1", title: "Engagement", desc: "Biparietal diameter passes through pelvic inlet; head at 0 station" },
{ n: "2", title: "Descent", desc: "Progressive descent through pelvis; occurs throughout labour" },
{ n: "3", title: "Flexion", desc: "Chin on chest — smallest diameter (suboccipitobregmatic 9.5 cm) presents" },
{ n: "4", title: "Internal Rotation", desc: "Occiput rotates anteriorly to OA position as head reaches pelvic floor" },
{ n: "5", title: "Extension", desc: "Head extends at vulva; occiput under symphysis pubis as pivot" },
{ n: "6", title: "Restitution", desc: "Head rotates back to original position (undoes internal rotation)" },
{ n: "7", title: "External Rotation", desc: "Shoulders align with AP diameter of outlet; head rotates to face thigh" },
{ n: "8", title: "Expulsion", desc: "Anterior then posterior shoulder delivered; rest of body follows" },
];
moves.forEach((m, i) => {
const col = i < 4 ? 0 : 1;
const row = i < 4 ? i : i - 4;
const xx = 0.25 + col * 5.0;
const yy = 0.88 + row * 1.14;
sl.addShape(pres.ShapeType.rect, { x: xx, y: yy, w: 0.5, h: 0.5, fill: { color: ACCENT } });
sl.addText(m.n, { x: xx, y: yy, w: 0.5, h: 0.5, fontSize: 13, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addText(m.title, { x: xx+0.6, y: yy+0.02, w: 3.8, h: 0.28, fontSize: 13, bold: true, color: DARK_BG, fontFace: "Calibri", valign: "middle" });
sl.addText(m.desc, { x: xx+0.6, y: yy+0.3, w: 4.1, h: 0.7, fontSize: 11, color: DARK_TXT, fontFace: "Calibri", wrap: true });
sl.addShape(pres.ShapeType.line, { x: xx, y: yy+1.05, w: 4.65, h: 0, line: { color: "DDEEF5", width: 0.5 } });
});
}
// ─── SLIDE 13: CONDUCT OF DELIVERY ───
bulletSlide("Conduct of Normal Delivery — Second Stage", [
{ heading: "Preparation", items: [
"Position: Dorsal lithotomy / left lateral (Sim's) / all-fours / upright — patient's choice",
"Ensure radiant warmer on, neonatal resuscitation equipment ready",
"Sterile draping; scrub perineum with sterile saline",
"Pudendal nerve block or perineal infiltration with lignocaine if needed"
]},
{ heading: "Pushing Technique", items: [
"Directed pushing: Valsalva (closed glottis) with contractions — 3 pushes × 10 sec per contraction",
"Breathing/open glottis (laboring down) — preferred with epidural in passive phase",
"Coach mother between contractions; encourage rest"
]},
{ heading: "Head Delivery", items: [
"Ritgen maneuver: steady pressure on occiput; upward pressure on fetal chin via perineum",
"Control head delivery to reduce perineal trauma",
"Check for nuchal cord — slip over head or double-clamp-cut if tight",
"Suction mouth and nose if meconium-stained liquor"
]},
{ heading: "Shoulder & Body Delivery", items: [
"Gentle downward traction for anterior shoulder, upward for posterior",
"Body delivers by lateral flexion",
"Note time of birth; Apgar at 1 and 5 minutes"
]},
]);
// ─── SLIDE 14: EPISIOTOMY ───
twoColSlide(
"Episiotomy — Indications, Technique & Repair",
"INDICATIONS (Selective — NOT routine)",
[
"Instrumental delivery (forceps/ventouse)",
"Fetal distress requiring expedited delivery",
"Rigid perineum threatening severe tear",
"Shoulder dystocia",
"Preterm delivery (evidence limited)",
"Previous severe perineal trauma",
"Mediolateral preferred over midline — lower risk of 3rd/4th degree tear"
],
"REPAIR (3-LAYER CLOSURE)",
[
"Ensure adequate analgesia (local infiltration / epidural top-up)",
"Layer 1 — Vaginal mucosa: continuous suture (Vicryl 2/0) from apex",
"Layer 2 — Perineal muscles: interrupted or continuous sutures",
"Layer 3 — Skin: continuous subcuticular suture (Vicryl 2/0 or 3/0)",
"Rectal examination post-repair to ensure no suture through rectum",
"Document: extent of tear, repair technique, sutures used, analgesia given"
],
ACCENT, GOLD
);
// ─── SLIDE 15: ABNORMAL SECOND STAGE ───
{
const sl = contentSlide("Abnormal Second Stage — Recognition & Management");
sl.addText("Prolonged Second Stage + Fetal Distress = Urgent Intervention", {
x: 0.3, y: 0.82, w: 9.4, h: 0.38, fontSize: 13, bold: true, color: RED_WARN, fontFace: "Calibri"
});
const cols = [
{ title: "FETAL DISTRESS", color: RED_WARN, bg: "FFF0F0", items: [
"CTG: late decels + ↓variability, prolonged bradycardia",
"Meconium-stained liquor (grade II/III)",
"Scalp pH <7.20 or lactate >4.8 mmol/L",
"Action: Stop oxytocin, left lateral position, O₂, IV hydration",
"If not delivered imminently → instrumental or Category 1 CS"
]},
{ title: "ARREST OF DESCENT", color: GOLD, bg: "FFFBEA", items: [
"No progress in 1 hour (nullipara) despite active pushing",
"Assess: rotation, asynclitism, moulding",
"If head ≤+2 station and no CPD → instrumental delivery",
"Ventouse (vacuum): preferred if OP or asynclitism",
"Forceps: preferred if face presentation or <34 wks",
"If head high / CPD → CS"
]},
{ title: "SHOULDER DYSTOCIA", color: "8B44AC", bg: "FAF0FF", items: [
"Call for help immediately (HELPERR mnemonic)",
"H — Call for Help",
"E — Episiotomy (if needed for maneuvers)",
"L — Legs (McRoberts: hyperflex thighs)",
"P — Suprapubic Pressure (Rubin II)",
"E — Enter (internal rotational maneuvers)",
"R — Remove posterior arm",
"R — Roll to all-fours (Gaskin maneuver)"
]},
];
cols.forEach((c, i) => {
const xx = 0.25 + i * 3.25;
sl.addShape(pres.ShapeType.rect, { x: xx, y: 1.32, w: 3.1, h: 0.42, fill: { color: c.color } });
sl.addText(c.title, { x: xx, y: 1.32, w: 3.1, h: 0.42, fontSize: 12, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, { x: xx, y: 1.74, w: 3.1, h: 3.7, fill: { color: c.bg }, line: { color: c.color, width: 1 } });
sl.addText(c.items.map((t, j) => ({ text: t, options: { bullet: true, breakLine: j < c.items.length - 1, fontSize: 11, color: DARK_TXT, fontFace: "Calibri" } })),
{ x: xx+0.1, y: 1.82, w: 2.9, h: 3.5 });
});
}
// ─── SLIDE 16: KEY TAKEAWAYS ───
{
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color: DARK_BG } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.8, fill: { color: ACCENT } });
sl.addText("Key Take-Home Points", { x: 0.4, y: 0.1, w: 9.2, h: 0.6, fontSize: 22, bold: true, color: LIGHT_TXT, fontFace: "Calibri", align: "center", valign: "middle" });
const points = [
{ icon: "01", text: "Active phase begins at ≥3–4 cm. Expected progress ≥1 cm/hr. Plot on partograph and act at Action Line." },
{ icon: "02", text: "CTG must be interpreted systematically (DR C BRAVADO). Pathological CTG = urgent escalation." },
{ icon: "03", text: "Oxytocin augmentation requires continuous CTG — watch for hyperstimulation (>5 contractions/10 min)." },
{ icon: "04", text: "Epidural does NOT mandate CS. Prolong active 2nd stage allowance (nullipara 3 hr, multipara 2 hr with epidural)." },
{ icon: "05", text: "Shoulder dystocia — HELPERR. Call for help first. McRoberts + suprapubic pressure resolves >50% of cases." },
{ icon: "06", text: "Episiotomy is SELECTIVE, not routine. Document all perineal trauma and repair carefully." },
{ icon: "07", text: "Obstructed labour = emergency. Moulding 3+, absent liquor, maternal ketosis → immediate senior review + CS." },
];
points.forEach((p, i) => {
const yy = 0.96 + i * 0.64;
sl.addShape(pres.ShapeType.rect, { x: 0.35, y: yy, w: 0.48, h: 0.48, fill: { color: GOLD } });
sl.addText(p.icon, { x: 0.35, y: yy, w: 0.48, h: 0.48, fontSize: 12, bold: true, color: DARK_BG, fontFace: "Calibri", align: "center", valign: "middle", margin: 0 });
sl.addText(p.text, { x: 0.95, y: yy+0.04, w: 8.7, h: 0.44, fontSize: 12, color: LIGHT_TXT, fontFace: "Calibri", valign: "middle", wrap: true });
});
}
// ─── SLIDE 17: REFERENCES ───
{
const sl = contentSlide("References");
const refs = [
"Creasy & Resnik's Maternal-Fetal Medicine: Principles and Practice, 8th ed. (Elsevier, 2022) — Chapters on Normal Labor and Labor Abnormalities",
"Rosen's Emergency Medicine: Concepts and Clinical Practice, 9th ed. — Chapter 176: Labor and Delivery",
"ACOG Practice Bulletin No. 49: Dystocia and Augmentation of Labor",
"ACOG Practice Bulletin No. 116: Management of Intrapartum Fetal Heart Rate Tracings",
"NICE Guideline NG235: Intrapartum Care for Healthy Women and Babies (2023 update)",
"WHO: Managing Complications in Pregnancy and Childbirth — Use of the Partograph",
"Park's Textbook of Preventive and Social Medicine, 26th ed. — Care during Labour and Childbirth",
"RCOG Green-top Guideline No. 42: Shoulder Dystocia (2012)",
];
refs.forEach((r, i) => {
sl.addText(`${i + 1}. ${r}`, {
x: 0.35, y: 0.88 + i * 0.58, w: 9.3, h: 0.5,
fontSize: 11.5, color: DARK_TXT, fontFace: "Calibri", wrap: true
});
if (i < refs.length - 1) {
sl.addShape(pres.ShapeType.line, { x: 0.35, y: 1.36 + i * 0.58, w: 9.3, h: 0, line: { color: "D5E8F0", width: 0.5 } });
}
});
}
// ─── FINAL SLIDE ───
darkSlide("Thank You", "Questions & Discussion — Management of First & Second Stage of Labour");
// WRITE FILE
pres.writeFile({ fileName: "/home/daytona/workspace/labour-management-pptx/Labour_Management_First_Second_Stage.pptx" })
.then(() => console.log("SUCCESS: File written."))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/labour-management-pptx && node build.js 2>&1
ls -lh /home/daytona/workspace/labour-management-pptx/
Labour Management First Second Stage
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title slide |
| 2 | Outline (10 topics numbered) |
| — | Section divider: First Stage |
| 3 | Definitions & All 4 Stages (colour-coded boxes) |
| 4 | First Stage Phases — Latent vs Active (two-column cards) |
| 5 | Assessment on Admission (History / Exam / VE) |
| 6 | The Partograph — full parameter table (Alert & Action Line) |
| 7 | CTG Interpretation — DR C BRAVADO mnemonic |
| 8 | CTG Classification: Normal / Suspicious / Pathological + actions |
| 9 | Analgesia in Labour — non-pharmacological vs pharmacological |
| 10 | Dystocia — 3Ps framework (Powers / Passenger / Passage) |
| — | Section divider: Second Stage |
| 11 | Second Stage definition, phases, normal duration limits |
| 12 | Cardinal Movements of Labour (all 8 steps) |
| 13 | Conduct of Normal Delivery — preparation, pushing, head/shoulder delivery |
| 14 | Episiotomy — selective indications + 3-layer repair |
| 15 | Abnormal Second Stage — fetal distress / arrest / shoulder dystocia (HELPERR) |
| 16 | Key Take-Home Points (7 high-yield clinical pearls) |
| 17 | References (ACOG, NICE, Creasy & Resnik, WHO, RCOG) |
| 18 | Thank You / Q&A |
Make a visual infographic on the cardinal movements of labour
Medical infographic titled "Cardinal Movements of Labour" showing all 8 steps in sequence. Clean clinical illustration style with numbered steps in a flowing diagram layout. Each step has a small anatomical diagram of the fetal head position in the pelvis viewed from below or side, plus a short label and description. Steps shown in order: 1. Engagement - biparietal diameter at pelvic inlet, 2. Descent - progressive downward movement, 3. Flexion - chin on chest, smallest diameter, 4. Internal Rotation - occiput rotates to OA position, 5. Extension - head extends under symphysis pubis, 6. Restitution - head rotates back to natural position, 7. External Rotation - shoulders align, 8. Expulsion - delivery of body. Use a navy blue and teal color scheme with gold accent numbers. Include small pelvic cross-section diagrams for each step showing head position. Professional obstetrics textbook quality. Clean white background with clear arrows showing progression between steps. Include a small legend showing fetal head orientation symbols.

| # | Movement | Key Point |
|---|---|---|
| 1 | Engagement | Biparietal diameter passes through pelvic inlet (0 station) |
| 2 | Descent | Continuous throughout labour; driven by uterine contractions |
| 3 | Flexion | Chin on chest - suboccipitobregmatic diameter (9.5 cm) presents |
| 4 | Internal Rotation | Occiput rotates from OT/OP to OA at the level of the pelvic floor |
| 5 | Extension | Occiput pivots under symphysis pubis; head extends to deliver |
| 6 | Restitution | Head rotates 45° back, realigning with fetal spine |
| 7 | External Rotation | Further 45° rotation as shoulders align with AP outlet diameter |
| 8 | Expulsion | Anterior shoulder under pubis first, then posterior, then body |