Gravida 1 Para 1(1001) Mild Anemia Secondary To Acute Blood Loss - Corrected Abnormal Uterine Bleeding Secondary To Endometrial Polyp Pelvic Endometriosis Stage IV Ovarian Abscess by Frozen Section Biopsy I have a case presentation from this Gyne case i have no idea how to proceed please guide me to include what as the main diagnosis why was the surgery done how did they come up with the diagnosis differential and management
endometriosis stage IV total abdominal hysterectomy bilateral salpingo-oophorectomy
Gravida 1 Para 1(1001) Mild Anemia Secondary To Acute Blood Loss - Corrected Abnormal Uterine Bleeding Secondary To Endometrial Polyp Pelvic Endometriosis Stage IV Ovarian Abscess by Frozen Section Biopsy I have a case presentation from this Gyne case i have no idea how to proceed please guide me to include what as the main diagnosis why was the surgery done how did they come up with the diagnosis differential and management
Pelvic Endometriosis Stage IV with Bilateral Ovarian Endometriomas complicated by Ovarian Abscess
| Reason | Explanation |
|---|---|
| Stage IV endometriosis, bilateral massive ovarian masses (10-11cm) | Too large and too adherent to manage medically; suspected malignancy preoperatively |
| Completed family at age 43 | TAH-BSO is the definitive curative treatment for Stage IV endo in this situation |
| Bilateral ovarian abscess + AUB with enlarged uterus | Active infection + structural bleeding source requiring surgical removal |
| Differential | Clues For | Clues Against |
|---|---|---|
| Bilateral Endometriomas | Dense adhesions, thickened capsule, Stage IV findings | Grayish-green fluid (not chocolate) |
| Ovarian Abscess (final Dx) | Foul green fluid on rupture, dense bowel adhesions | Bilateral abscesses less common |
| Ovarian Malignancy | Bilateral, large, preop concern, thickened walls | Frozen section ruled it out |
| Mucinous Cystadenoma | Large, cystic, bilateral possible | No dense adhesions, no infected fluid |
| Tubo-ovarian Abscess | Pelvic inflammatory end-stage | No classic PID history mentioned |
| Code | Cause | Status in This Patient |
|---|---|---|
| P - Polyp | Endometrial polyp | CONFIRMED - 1cm polyp found |
| A - Adenomyosis | Enlarged uterus (12wks) | Possible concurrent finding |
| L - Leiomyoma | Fibroids | Not reported |
| M - Malignancy | Endometrial cancer | Ruled out (thin 0.2cm endometrium) |
| C - Coagulopathy | Bleeding disorder | Unlikely |
| O - Ovulatory | Perimenopausal at 43 | Possible contributing factor |
| Procedure | Why |
|---|---|
| Exploratory Laparotomy | Bilateral large masses + suspected malignancy; extent of adhesions required open approach |
| Extensive Adhesiolysis + Enterolysis | Right ovary adherent to pelvic sidewall, omentum, rectosigmoid - bowel had to be separated |
| Total Abdominal Hysterectomy | AUB + endometrial polyp, enlarged uterus, Stage IV endometriosis, completed family |
| Bilateral Salpingo-Oophorectomy | Bilateral ovarian abscess, eliminates estrogen source fueling endometriosis, curative intent |
| Appendectomy | Intraoperative General Surgery referral - proximity to infected field, possible involvement |
| Frozen Section Biopsy | Rule out malignancy intraoperatively before committing to BSO |
| Peritoneal Washing | Irrigation of infected/endometriotic pelvis, standard hemostasis |
Create a presentation slide deck on this case
mkdir -p /home/daytona/workspace/gyne-case-ppt && ls /home/daytona/workspace/gyne-case-ppt/
~/gyne-case-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Gynecologic Case Presentation";
pres.author = "Brokenshire Medical Center";
// ─── COLOR PALETTE ───────────────────────────────────────────────
// Deep medical teal/navy dominant, warm rose accent, clean white text
const C = {
navy: "0D2B45", // dominant dark bg
teal: "1A5276", // section header bg
tealLight: "1F618D", // card / panel
rose: "C0392B", // accent / highlight
roseLight: "E74C3C", // secondary accent
gold: "F0B27A", // warm highlight
white: "FFFFFF",
offWhite: "F2F3F4",
lightBlue: "D6EAF8",
textDark: "1B2631",
gray: "BDC3C7",
lightGray: "ECF0F1",
};
// ─── HELPER FUNCTIONS ────────────────────────────────────────────
function darkSlide(slide) {
slide.background = { color: C.navy };
}
function addSectionBadge(slide, text) {
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 0.12,
fill: { color: C.rose }, line: { type: "none" }
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 5.5, w: 10, h: 0.12,
fill: { color: C.rose }, line: { type: "none" }
});
}
function addSlideNumber(slide, num) {
slide.addText(`${num}`, {
x: 9.5, y: 5.2, w: 0.4, h: 0.3,
fontSize: 9, color: C.gray, align: "right"
});
}
function sectionDivider(slide, label) {
darkSlide(slide);
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: C.navy }, line: { type: "none" }
});
// Large accent bar
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 2.4, w: 0.18, h: 1.2,
fill: { color: C.rose }, line: { type: "none" }
});
slide.addText(label, {
x: 0.4, y: 2.3, w: 9, h: 1.2,
fontSize: 36, bold: true, color: C.white,
valign: "middle"
});
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y: 3.5, w: 2, h: 0.04,
fill: { color: C.rose }, line: { type: "none" }
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
darkSlide(s);
// Left accent strip
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.3, h: 5.625,
fill: { color: C.rose }, line: { type: "none" }
});
// Top label
s.addText("GYNECOLOGIC CASE PRESENTATION", {
x: 0.5, y: 0.4, w: 9, h: 0.4,
fontSize: 10, bold: true, color: C.rose,
charSpacing: 3
});
// Main title
s.addText("Pelvic Endometriosis\nStage IV", {
x: 0.5, y: 0.9, w: 8.8, h: 1.8,
fontSize: 38, bold: true, color: C.white,
lineSpacingMultiple: 1.2
});
// Subtitle
s.addText("with Bilateral Ovarian Abscess, Abnormal Uterine Bleeding\nSecondary to Endometrial Polyp & Acute Anemia", {
x: 0.5, y: 2.75, w: 8.8, h: 0.9,
fontSize: 14, color: C.lightBlue,
lineSpacingMultiple: 1.4
});
// Divider
s.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 3.75, w: 8.5, h: 0.03,
fill: { color: C.tealLight }, line: { type: "none" }
});
// Patient info row
s.addText([
{ text: "Patient: ", options: { bold: true, color: C.gold } },
{ text: "43F | G1P1 (1001) | Married ", options: { color: C.gray } },
{ text: " Institution: ", options: { bold: true, color: C.gold } },
{ text: "Brokenshire Medical Center, Davao City", options: { color: C.gray } },
], { x: 0.5, y: 3.9, w: 9, h: 0.4, fontSize: 12 });
s.addText([
{ text: "Date of Operation: ", options: { bold: true, color: C.gold } },
{ text: "June 24, 2026 ", options: { color: C.gray } },
{ text: " Case No: ", options: { bold: true, color: C.gold } },
{ text: "149595", options: { color: C.gray } },
], { x: 0.5, y: 4.35, w: 9, h: 0.4, fontSize: 12 });
s.addText("Surgeon: Dr. Ana Liza Magno | Anesthesiologist: Dr. Lizette Dela Victoria", {
x: 0.5, y: 4.85, w: 9, h: 0.3,
fontSize: 10, color: C.gray, italic: true
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 2 — PATIENT PROFILE & OBSTETRIC HISTORY
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("PATIENT PROFILE", {
x: 0.4, y: 0.22, w: 9, h: 0.45,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Who is this patient?", {
x: 0.4, y: 0.65, w: 9, h: 0.5,
fontSize: 22, bold: true, color: C.navy
});
// Left info cards
const cards = [
{ label: "Age / Civil Status", value: "43 years old / Married" },
{ label: "Obstetric Code", value: "G1 P1 (1-0-0-1)" },
{ label: "Chief Complaint", value: "Intermenstrual Spotting" },
{ label: "Preop Condition", value: "Stable" },
];
cards.forEach((c, i) => {
const y = 1.3 + i * 0.9;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y, w: 4.2, h: 0.75,
fill: { color: C.white },
line: { color: C.lightBlue, pt: 1.5 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.4, y, w: 0.08, h: 0.75,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText(c.label.toUpperCase(), {
x: 0.6, y: y + 0.06, w: 4, h: 0.25,
fontSize: 8, bold: true, color: C.teal, charSpacing: 1
});
s.addText(c.value, {
x: 0.6, y: y + 0.3, w: 4, h: 0.35,
fontSize: 13, bold: true, color: C.textDark
});
});
// Right — obstetric code explainer
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 1.25, w: 4.5, h: 3.8,
fill: { color: C.navy },
line: { type: "none" },
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.2 }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y: 1.25, w: 4.5, h: 0.35,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("OBSTETRIC CODE EXPLAINED", {
x: 5.15, y: 1.28, w: 4.4, h: 0.3,
fontSize: 9, bold: true, color: C.white, charSpacing: 1
});
const ocRows = [
{ code: "G1", meaning: "1 total pregnancy" },
{ code: "P1", meaning: "1 delivery" },
{ code: "1", meaning: "Term birth — 1" },
{ code: "0", meaning: "Preterm birth — 0" },
{ code: "0", meaning: "Abortus / miscarriage — 0" },
{ code: "1", meaning: "Living children — 1" },
];
ocRows.forEach((r, i) => {
const y = 1.72 + i * 0.52;
s.addShape(pres.shapes.RECTANGLE, {
x: 5.2, y, w: 0.6, h: 0.38,
fill: { color: C.rose }, line: { type: "none" }
});
s.addText(r.code, {
x: 5.2, y, w: 0.6, h: 0.38,
fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle"
});
s.addText(r.meaning, {
x: 5.9, y: y + 0.04, w: 3.5, h: 0.3,
fontSize: 12, color: C.lightBlue
});
});
addSlideNumber(s, 2);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 3 — ADMITTING vs POST-OP DIAGNOSES
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIAGNOSES", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Admitting vs Post-Operative", {
x: 0.4, y: 0.55, w: 9, h: 0.45,
fontSize: 22, bold: true, color: C.navy
});
// Admitting panel
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.15, w: 4.4, h: 3.9,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("ADMITTING DIAGNOSIS", {
x: 0.4, y: 1.22, w: 4.2, h: 0.35,
fontSize: 9.5, bold: true, color: C.gold, charSpacing: 1.5
});
const admDx = [
"G1 P1 (1001)",
"Mild Anemia Secondary to Acute Blood Loss",
"AUB Secondary to Endometrial Polyps vs Endometrial Pathology",
"Ovarian New Growth Bilateral — Probably Malignant",
];
admDx.forEach((d, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.45, y: 1.72 + i * 0.82, w: 0.07, h: 0.45,
fill: { color: C.gold }, line: { type: "none" }
});
s.addText(d, {
x: 0.62, y: 1.72 + i * 0.82, w: 3.9, h: 0.55,
fontSize: 11.5, color: C.white, lineSpacingMultiple: 1.2
});
});
// Arrow
s.addShape(pres.shapes.RIGHT_ARROW, {
x: 4.75, y: 2.4, w: 0.5, h: 0.6,
fill: { color: C.rose }, line: { type: "none" }
});
// Post-op panel
s.addShape(pres.shapes.RECTANGLE, {
x: 5.3, y: 1.15, w: 4.4, h: 3.9,
fill: { color: C.navy }, line: { type: "none" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.3, y: 1.15, w: 4.4, h: 0.06,
fill: { color: C.rose }, line: { type: "none" }
});
s.addText("POST-OPERATIVE DIAGNOSIS", {
x: 5.4, y: 1.24, w: 4.2, h: 0.35,
fontSize: 9.5, bold: true, color: C.rose, charSpacing: 1.5
});
const postDx = [
"G1 P1 (1001)",
"Mild Anemia Secondary to Acute Blood Loss — Corrected",
"AUB Secondary to Endometrial Polyp",
"Pelvic Endometriosis Stage IV",
"Ovarian Abscess by Frozen Section Biopsy",
];
postDx.forEach((d, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 5.45, y: 1.72 + i * 0.66, w: 0.07, h: 0.38,
fill: { color: C.roseLight }, line: { type: "none" }
});
s.addText(d, {
x: 5.62, y: 1.72 + i * 0.66, w: 3.9, h: 0.5,
fontSize: 11, color: C.white, lineSpacingMultiple: 1.2
});
});
addSlideNumber(s, 3);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 4 — SECTION DIVIDER: Clinical Workup
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionDivider(s, "How Was the Diagnosis Made?");
s.addText("Clinical Workup & Diagnostic Pathway", {
x: 0.4, y: 3.7, w: 9, h: 0.5,
fontSize: 14, color: C.lightBlue
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 5 — CHIEF COMPLAINT & SYMPTOM ANALYSIS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("CLINICAL PRESENTATION", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText('Chief Complaint: "Intermenstrual Spotting"', {
x: 0.4, y: 0.6, w: 9, h: 0.5,
fontSize: 20, bold: true, color: C.navy
});
// Symptom box
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.25, w: 9.4, h: 0.55,
fill: { color: C.lightBlue }, line: { type: "none" }
});
s.addText("Intermenstrual spotting = bleeding BETWEEN normal menstrual periods — a classic structural AUB symptom", {
x: 0.45, y: 1.32, w: 9, h: 0.4,
fontSize: 12, italic: true, color: C.navy
});
// 3 symptom columns
const symGroups = [
{
title: "From Endometrial Polyp",
color: C.teal,
items: ["Intermenstrual spotting", "Heavy menstrual bleeding", "Postcoital bleeding", "Dysmenorrhea (can occur)", "Mostly asymptomatic in many"]
},
{
title: "From Endometriosis",
color: C.navy,
items: ["Dysmenorrhea (cyclical pain)", "Deep dyspareunia", "Dyschezia / dysuria", "Chronic pelvic pain", "Infertility"]
},
{
title: "From Ovarian Abscess",
color: C.rose,
items: ["Pelvic / adnexal pain", "Fever / malaise", "Nausea / vomiting", "Palpable adnexal mass", "Peritoneal signs if ruptured"]
}
];
symGroups.forEach((g, i) => {
const x = 0.3 + i * 3.2;
s.addShape(pres.shapes.RECTANGLE, {
x, y: 1.95, w: 3.0, h: 0.42,
fill: { color: g.color }, line: { type: "none" }
});
s.addText(g.title, {
x: x + 0.1, y: 1.98, w: 2.85, h: 0.35,
fontSize: 10.5, bold: true, color: C.white, valign: "middle"
});
s.addShape(pres.shapes.RECTANGLE, {
x, y: 2.37, w: 3.0, h: 2.8,
fill: { color: C.white },
line: { color: g.color, pt: 1.2 }
});
g.items.forEach((item, j) => {
s.addText([
{ text: "• ", options: { bold: true, color: g.color } },
{ text: item, options: { color: C.textDark } }
], {
x: x + 0.12, y: 2.45 + j * 0.5, w: 2.75, h: 0.4,
fontSize: 11
});
});
});
addSlideNumber(s, 5);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 6 — DIAGNOSTIC WORKUP PATHWAY
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIAGNOSTIC WORKUP", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Step-by-Step Pathway to Diagnosis", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 20, bold: true, color: C.navy
});
const steps = [
{ step: "01", title: "History & Physical Exam", detail: "Bimanual exam → enlarged uterus (12-wk size), bilateral adnexal masses, tenderness; fixed retroverted uterus suggests endometriosis" },
{ step: "02", title: "CBC & Labs", detail: "Revealed mild anemia (Hgb low) from acute blood loss; CA-125 likely elevated (supports endo + raises malignancy concern)" },
{ step: "03", title: "Transvaginal Ultrasound (TVUS)", detail: "First-line imaging → bilateral ovarian cysts with thickened capsule; endometrial thickening/polyp noted; uterus enlarged" },
{ step: "04", title: "Endometrial Sampling / Biopsy", detail: "Indicated in 43-year-old with AUB → rules out endometrial hyperplasia and malignancy; polyp suspected on imaging" },
{ step: "05", title: "Intraoperative Frozen Section", detail: "Rapid intraoperative pathology → confirmed Ovarian Abscess (benign) → guided surgical decision to proceed with BSO" },
];
steps.forEach((step, i) => {
const y = 1.2 + i * 0.84;
// Number badge
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 0.55, h: 0.65,
fill: { color: i < 4 ? C.teal : C.rose }, line: { type: "none" }
});
s.addText(step.step, {
x: 0.3, y, w: 0.55, h: 0.65,
fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle"
});
// Title
s.addText(step.title, {
x: 0.98, y: y + 0.04, w: 2.5, h: 0.28,
fontSize: 11, bold: true, color: C.navy
});
// Detail
s.addText(step.detail, {
x: 0.98, y: y + 0.32, w: 8.7, h: 0.38,
fontSize: 10, color: C.textDark, lineSpacingMultiple: 1.15
});
// Separator line
if (i < steps.length - 1) {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: y + 0.7, w: 9.3, h: 0.01,
fill: { color: C.gray }, line: { type: "none" }
});
}
});
addSlideNumber(s, 6);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 7 — SECTION DIVIDER: Diagnoses in Detail
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionDivider(s, "Diagnoses in Detail");
s.addText("Endometriosis • Endometrial Polyp • Ovarian Abscess", {
x: 0.4, y: 3.7, w: 9, h: 0.5,
fontSize: 14, color: C.lightBlue
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 8 — ENDOMETRIOSIS STAGE IV
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIAGNOSIS 1", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Pelvic Endometriosis — Stage IV", {
x: 0.4, y: 0.58, w: 9, h: 0.48,
fontSize: 22, bold: true, color: C.navy
});
// Definition box
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.15, w: 9.4, h: 0.55,
fill: { color: C.navy }, line: { type: "none" }
});
s.addText("Endometriosis = endometrial glands & stroma in extrauterine locations; affects 5-10% of reproductive-age women (Robbins Pathology)", {
x: 0.45, y: 1.22, w: 9, h: 0.4,
fontSize: 10.5, color: C.lightBlue, italic: true
});
// rASRM Staging table
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.82, w: 4.4, h: 0.38,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("rASRM STAGING SYSTEM", {
x: 0.4, y: 1.86, w: 4.2, h: 0.28,
fontSize: 9.5, bold: true, color: C.white, charSpacing: 1
});
const stages = [
{ stage: "I — Minimal", score: "1–5", desc: "Isolated peritoneal implants, no adhesions" },
{ stage: "II — Mild", score: "6–15", desc: "Small implants, small adhesions" },
{ stage: "III — Moderate", score: "16–40", desc: "Multiple implants, peritubal/periovarian adhesions" },
{ stage: "IV — Severe", score: "> 40", desc: "Large endometriomas, dense adhesions, obliterated cul-de-sac", highlight: true },
];
stages.forEach((st, i) => {
const y = 2.3 + i * 0.58;
const bg = st.highlight ? C.rose : (i % 2 === 0 ? C.white : C.lightGray);
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 4.4, h: 0.52,
fill: { color: bg }, line: { type: "none" }
});
s.addText(st.stage, {
x: 0.38, y: y + 0.1, w: 1.6, h: 0.3,
fontSize: 10.5, bold: st.highlight, color: st.highlight ? C.white : C.navy
});
s.addText(`Score: ${st.score}`, {
x: 1.9, y: y + 0.1, w: 0.85, h: 0.3,
fontSize: 9, color: st.highlight ? C.white : C.gray
});
s.addText(st.desc, {
x: 2.75, y: y + 0.1, w: 1.85, h: 0.3,
fontSize: 9, color: st.highlight ? C.white : C.textDark
});
});
// Why Stage IV — right panel
s.addShape(pres.shapes.RECTANGLE, {
x: 4.85, y: 1.82, w: 4.85, h: 3.3,
fill: { color: C.navy }, line: { type: "none" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 4.85, y: 1.82, w: 4.85, h: 0.08,
fill: { color: C.rose }, line: { type: "none" }
});
s.addText("WHY STAGE IV IN THIS PATIENT", {
x: 4.95, y: 1.92, w: 4.6, h: 0.35,
fontSize: 9.5, bold: true, color: C.rose, charSpacing: 1
});
const findings = [
"Bilateral ovarian endometriomas (R: 11cm, L: 10cm)",
"Dense adhesions to pelvic sidewall, omentum, rectosigmoid",
"Uterus adherent to posterior corpus",
"Required extensive adhesiolysis + enterolysis",
"Cut section: red-brown internal capsule, rough inner walls",
"Uterus enlarged to 12 weeks size",
];
findings.forEach((f, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 5.0, y: 2.35 + i * 0.44, w: 0.22, h: 0.22,
fill: { color: C.roseLight }, line: { type: "none" }
});
s.addText(f, {
x: 5.3, y: 2.32 + i * 0.44, w: 4.25, h: 0.35,
fontSize: 10.5, color: C.white
});
});
addSlideNumber(s, 8);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 9 — ENDOMETRIAL POLYP & AUB
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIAGNOSIS 2", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("AUB Secondary to Endometrial Polyp (AUB-P)", {
x: 0.4, y: 0.58, w: 9, h: 0.48,
fontSize: 20, bold: true, color: C.navy
});
// PALM-COEIN header
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.15, w: 9.4, h: 0.42,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("PALM-COEIN Classification of AUB (FIGO 2011) — Structural causes underlined", {
x: 0.45, y: 1.2, w: 9, h: 0.3,
fontSize: 10.5, bold: true, color: C.white
});
// PALM-COEIN table
const palmCoein = [
{ code: "P", name: "Polyp", note: "CONFIRMED in this patient — 1cm × 0.5cm polyp on cut section", highlight: true },
{ code: "A", name: "Adenomyosis", note: "Possible — uterus enlarged to 12-week size" },
{ code: "L", name: "Leiomyoma", note: "Not reported intraoperatively" },
{ code: "M", name: "Malignancy / Hyperplasia", note: "Ruled out — endometrium thin (0.2cm), smooth" },
{ code: "C", name: "Coagulopathy", note: "Unlikely — no clinical evidence" },
{ code: "O", name: "Ovulatory Dysfunction", note: "Possible contributing factor at age 43 (perimenopausal)" },
{ code: "E", name: "Endometrial", note: "Endometritis possible concurrent finding" },
{ code: "I/N", name: "Iatrogenic / Not classified", note: "Not applicable" },
];
palmCoein.forEach((row, i) => {
const y = 1.68 + i * 0.46;
const bg = row.highlight ? C.rose : (i % 2 === 0 ? C.white : C.lightGray);
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 9.4, h: 0.42,
fill: { color: bg }, line: { type: "none" }
});
s.addText(row.code, {
x: 0.38, y: y + 0.07, w: 0.5, h: 0.28,
fontSize: 13, bold: true, color: row.highlight ? C.white : C.teal, align: "center"
});
s.addText(row.name, {
x: 0.95, y: y + 0.08, w: 2.5, h: 0.28,
fontSize: 11, bold: row.highlight, color: row.highlight ? C.white : C.textDark
});
s.addText(row.note, {
x: 3.6, y: y + 0.08, w: 6, h: 0.28,
fontSize: 10.5, italic: !row.highlight, color: row.highlight ? C.white : C.textDark
});
});
addSlideNumber(s, 9);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 10 — OVARIAN ABSCESS & FROZEN SECTION
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIAGNOSIS 3", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Ovarian Abscess — Confirmed by Frozen Section Biopsy", {
x: 0.4, y: 0.58, w: 9, h: 0.48,
fontSize: 20, bold: true, color: C.navy
});
// Pathogenesis chain
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.18, w: 9.4, h: 0.42,
fill: { color: C.navy }, line: { type: "none" }
});
s.addText("Pathogenesis: Endometrioma (Stage IV) → Superimposed Bacterial Infection → Ovarian Abscess", {
x: 0.45, y: 1.24, w: 9, h: 0.3,
fontSize: 11, color: C.gold, bold: true
});
// Left: Clinical features
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.73, w: 4.3, h: 0.38,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("INTRAOPERATIVE CLUES", {
x: 0.4, y: 1.78, w: 4.1, h: 0.28,
fontSize: 9.5, bold: true, color: C.white, charSpacing: 1
});
const clues = [
"Right ovarian mass ruptured during adhesiolysis",
"Grayish-green FOUL fluid egressed (not brown 'chocolate' fluid)",
"Dense adhesions to pelvic sidewall, omentum, rectosigmoid",
"Cut section: rough inner walls, red-brown capsule",
"Bilateral involvement (both ovaries 10-11cm)",
];
clues.forEach((c, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 2.2 + i * 0.56, w: 0.1, h: 0.38,
fill: { color: C.roseLight }, line: { type: "none" }
});
s.addText(c, {
x: 0.5, y: 2.22 + i * 0.56, w: 3.95, h: 0.4,
fontSize: 10.5, color: C.textDark, lineSpacingMultiple: 1.1
});
});
// Right: Frozen section explainer
s.addShape(pres.shapes.RECTANGLE, {
x: 4.85, y: 1.73, w: 4.85, h: 3.45,
fill: { color: C.navy }, line: { type: "none" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 4.85, y: 1.73, w: 4.85, h: 0.08,
fill: { color: C.gold }, line: { type: "none" }
});
s.addText("WHAT IS A FROZEN SECTION?", {
x: 4.95, y: 1.84, w: 4.6, h: 0.35,
fontSize: 10, bold: true, color: C.gold, charSpacing: 1
});
s.addText([
{ text: "Rapid intraoperative pathology technique:\n", options: { bold: true, breakLine: false } },
{ text: "\n• Tissue snap-frozen during surgery\n• Sectioned & examined in 15–30 min\n• Result communicated WHILE patient is still on table\n• Guides the extent of surgery\n\n", options: {} },
{ text: "In this case:\n", options: { bold: true } },
{ text: "Confirmed Ovarian Abscess (benign)\n→ Ruled out malignancy\n→ Allowed proceeding with TAH-BSO\n→ No further staging needed", options: { color: C.gold } }
], {
x: 4.95, y: 2.25, w: 4.65, h: 2.8,
fontSize: 11, color: C.white, lineSpacingMultiple: 1.35
});
addSlideNumber(s, 10);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 11 — SECTION: DIFFERENTIALS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionDivider(s, "Differential Diagnoses");
s.addText("Bilateral Adnexal Mass • Abnormal Uterine Bleeding", {
x: 0.4, y: 3.7, w: 9, h: 0.5,
fontSize: 14, color: C.lightBlue
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 12 — DIFFERENTIALS FOR BILATERAL ADNEXAL MASS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("DIFFERENTIAL DIAGNOSIS", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Bilateral Adnexal / Ovarian Masses", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 20, bold: true, color: C.navy
});
// Header
const headers = ["Diagnosis", "Features Supporting", "Features Against", "Status"];
const headerWidths = [2.0, 3.2, 3.0, 1.4];
let xOff = 0.3;
headers.forEach((h, i) => {
s.addShape(pres.shapes.RECTANGLE, {
x: xOff, y: 1.18, w: headerWidths[i], h: 0.38,
fill: { color: C.navy }, line: { type: "none" }
});
s.addText(h, {
x: xOff + 0.05, y: 1.22, w: headerWidths[i] - 0.1, h: 0.28,
fontSize: 9.5, bold: true, color: C.white
});
xOff += headerWidths[i];
});
const rows = [
{
dx: "Bilateral Endometriomas",
for_: "Dense adhesions, thickened capsule, Stage IV pattern, endo history",
against: "Grayish-green fluid (not expected chocolate fluid)",
status: "Partial", statusColor: C.gold
},
{
dx: "Ovarian Abscess (CONFIRMED)",
for_: "Foul grayish-green fluid on rupture, infected field, bilateral",
against: "Bilateral abscesses less common than unilateral",
status: "CONFIRMED", statusColor: C.teal
},
{
dx: "Ovarian Malignancy",
for_: "Bilateral, large, thick-walled, preop 'probably malignant'",
against: "Frozen section showed NO malignancy",
status: "Ruled Out", statusColor: C.gray
},
{
dx: "Mucinous Cystadenoma",
for_: "Large, bilateral possible, cystic",
against: "No dense adhesions, no infectious fluid expected",
status: "Ruled Out", statusColor: C.gray
},
{
dx: "Tubo-Ovarian Abscess",
for_: "PID end-stage, pelvic infection",
against: "No classic acute PID history documented",
status: "Possible", statusColor: C.gold
},
];
rows.forEach((r, i) => {
const y = 1.67 + i * 0.72;
const bg = i % 2 === 0 ? C.white : C.lightGray;
let xo = 0.3;
const vals = [r.dx, r.for_, r.against];
const widths = [2.0, 3.2, 3.0];
vals.forEach((v, j) => {
s.addShape(pres.shapes.RECTANGLE, {
x: xo, y, w: widths[j], h: 0.66,
fill: { color: bg }, line: { color: C.lightBlue, pt: 0.5 }
});
s.addText(v, {
x: xo + 0.06, y: y + 0.08, w: widths[j] - 0.12, h: 0.5,
fontSize: 9.5, color: C.textDark, lineSpacingMultiple: 1.1,
bold: j === 0
});
xo += widths[j];
});
// Status badge
s.addShape(pres.shapes.RECTANGLE, {
x: xo, y, w: 1.4, h: 0.66,
fill: { color: r.statusColor }, line: { type: "none" }
});
s.addText(r.status, {
x: xo, y, w: 1.4, h: 0.66,
fontSize: 9.5, bold: true, color: C.white, align: "center", valign: "middle"
});
});
addSlideNumber(s, 12);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 13 — SECTION DIVIDER: SURGICAL MANAGEMENT
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
sectionDivider(s, "Surgical Management");
s.addText("Why Surgery? What Was Done? Step by Step.", {
x: 0.4, y: 3.7, w: 9, h: 0.5,
fontSize: 14, color: C.lightBlue
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 14 — INDICATIONS FOR SURGERY
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("SURGICAL MANAGEMENT", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Indications for Surgery", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 22, bold: true, color: C.navy
});
const indications = [
{ icon: "1", title: "Stage IV Endometriosis — Completed Family", detail: "TAH-BSO is definitive treatment for Stage IV endo in a woman who has completed childbearing. Bailey & Love: 'hysterectomy + BSO offers a good chance of cure.'" },
{ icon: "2", title: "Bilateral Ovarian Masses — Suspected Malignancy", detail: "Preop listed as 'probably malignant.' Bilateral, large (10-11cm), thickened-wall cysts required surgical exploration and histologic diagnosis." },
{ icon: "3", title: "Ovarian Abscess (Confirmed Intraop)", detail: "Foul fluid on rupture confirmed active infection. Surgical removal required for source control — medical antibiotics alone insufficient for confirmed abscess." },
{ icon: "4", title: "AUB with Structural Cause + Uterine Enlargement", detail: "Endometrial polyp (structural AUB-P) + uterus 12 weeks. Definitive management in this context = hysterectomy." },
{ icon: "5", title: "Anemia Secondary to Chronic Blood Loss", detail: "Corrected preoperatively; AUB source needed to be eliminated surgically." },
];
indications.forEach((ind, i) => {
const y = 1.15 + i * 0.84;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 0.55, h: 0.7,
fill: { color: i === 0 ? C.rose : C.teal }, line: { type: "none" }
});
s.addText(ind.icon, {
x: 0.3, y, w: 0.55, h: 0.7,
fontSize: 18, bold: true, color: C.white, align: "center", valign: "middle"
});
s.addText(ind.title, {
x: 0.98, y: y + 0.04, w: 8.7, h: 0.28,
fontSize: 11.5, bold: true, color: C.navy
});
s.addText(ind.detail, {
x: 0.98, y: y + 0.32, w: 8.7, h: 0.32,
fontSize: 9.5, color: C.textDark, lineSpacingMultiple: 1.1
});
if (i < indications.length - 1) {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: y + 0.74, w: 9.3, h: 0.01,
fill: { color: C.gray }, line: { type: "none" }
});
}
});
addSlideNumber(s, 14);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 15 — OPERATIVE PROCEDURES
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("OPERATIVE PROCEDURES", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("What Was Done & Why", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 22, bold: true, color: C.navy
});
// Procedure list — 2 columns
const procs = [
{ proc: "Exploratory Laparotomy", why: "Bilateral large masses + suspected malignancy; extent of adhesions required open approach" },
{ proc: "Extensive Adhesiolysis", why: "Right ovary adherent to pelvic wall, omentum, rectosigmoid — adhesions freed" },
{ proc: "Enterolysis", why: "Bowel loops adherent to ovarian masses and pelvic organs — required intestinal separation" },
{ proc: "Total Abdominal Hysterectomy", why: "AUB-P + enlarged uterus + Stage IV endo + completed family → definitive treatment" },
{ proc: "Bilateral Salpingo-Oophorectomy", why: "Bilateral ovarian abscess; removes estrogen source driving endometriosis; curative" },
{ proc: "Appendectomy", why: "General Surgery referral intraop — proximity to infected field/possible involvement" },
];
procs.forEach((p, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = col === 0 ? 0.3 : 5.15;
const y = 1.2 + row * 1.3;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 4.65, h: 1.15,
fill: { color: C.white },
line: { color: C.lightBlue, pt: 1 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.08 }
});
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 4.65, h: 0.32,
fill: { color: i < 4 ? C.teal : C.rose }, line: { type: "none" }
});
s.addText(p.proc, {
x: x + 0.1, y: y + 0.03, w: 4.45, h: 0.25,
fontSize: 11, bold: true, color: C.white
});
s.addText(p.why, {
x: x + 0.1, y: y + 0.38, w: 4.45, h: 0.65,
fontSize: 10, color: C.textDark, lineSpacingMultiple: 1.2
});
});
// Anesthesia footer
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 5.05, w: 9.4, h: 0.38,
fill: { color: C.navy }, line: { type: "none" }
});
s.addText("Anesthesia: Combined Spinal-Epidural (CSE) | Blood Loss: 900cc | Duration: 8:23AM – 1:00PM", {
x: 0.45, y: 5.1, w: 9, h: 0.28,
fontSize: 10.5, color: C.gold, bold: true
});
addSlideNumber(s, 15);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 16 — INTRAOPERATIVE & PATHOLOGIC FINDINGS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("INTRAOPERATIVE & PATHOLOGIC FINDINGS", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Gross & Histologic Correlation", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 20, bold: true, color: C.navy
});
// Specimen measurements table
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y: 1.15, w: 4.5, h: 0.38,
fill: { color: C.teal }, line: { type: "none" }
});
s.addText("SPECIMEN MEASUREMENTS", {
x: 0.4, y: 1.2, w: 4.3, h: 0.28,
fontSize: 9.5, bold: true, color: C.white, charSpacing: 1
});
const specimens = [
{ organ: "Cervix", size: "4.5cm × 4cm × 3cm" },
{ organ: "Uterus", size: "5cm × 5cm × 4.5cm" },
{ organ: "Right Fallopian Tube", size: "11cm × 1cm × 0.8cm" },
{ organ: "Left Fallopian Tube", size: "8cm × 1.5cm × 1.5cm" },
{ organ: "Right Ovary", size: "11cm × 9cm × 2.5cm" },
{ organ: "Left Ovary", size: "10cm × 6cm × 2.5cm" },
];
specimens.forEach((sp, i) => {
const y = 1.62 + i * 0.46;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 4.5, h: 0.42,
fill: { color: i % 2 === 0 ? C.white : C.lightGray }, line: { type: "none" }
});
s.addText(sp.organ, {
x: 0.4, y: y + 0.08, w: 2.2, h: 0.28,
fontSize: 10.5, bold: true, color: C.navy
});
s.addText(sp.size, {
x: 2.6, y: y + 0.08, w: 2.1, h: 0.28,
fontSize: 10.5, color: C.textDark
});
});
// Right: Cut section findings
s.addShape(pres.shapes.RECTANGLE, {
x: 5.0, y: 1.15, w: 4.65, h: 3.75,
fill: { color: C.navy }, line: { type: "none" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 5.0, y: 1.15, w: 4.65, h: 0.08,
fill: { color: C.gold }, line: { type: "none" }
});
s.addText("CUT SECTION FINDINGS", {
x: 5.1, y: 1.26, w: 4.4, h: 0.32,
fontSize: 9.5, bold: true, color: C.gold, charSpacing: 1
});
const cutFindings = [
{ item: "Cervix", find: "Tan-white, smooth, no visible lesions" },
{ item: "Endometrium", find: "Smooth and THIN — 0.2cm (rules out hyperplasia/malignancy)" },
{ item: "Endometrial Polyp", find: "1cm × 0.5cm confirmed — source of AUB-P" },
{ item: "Ovaries (both)", find: "Red-brown internal capsule, rough inner walls — classic endometrioma pattern" },
{ item: "Ovarian Fluid", find: "Grayish-green foul fluid on rupture — confirmed abscess, not simple chocolate cyst" },
];
cutFindings.forEach((cf, i) => {
const y = 1.65 + i * 0.65;
s.addShape(pres.shapes.RECTANGLE, {
x: 5.1, y, w: 1.0, h: 0.52,
fill: { color: C.roseLight }, line: { type: "none" }
});
s.addText(cf.item, {
x: 5.1, y, w: 1.0, h: 0.52,
fontSize: 8.5, bold: true, color: C.white, align: "center", valign: "middle"
});
s.addText(cf.find, {
x: 6.2, y: y + 0.06, w: 3.35, h: 0.4,
fontSize: 10, color: C.white, lineSpacingMultiple: 1.1
});
});
addSlideNumber(s, 16);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 17 — POST-OPERATIVE MANAGEMENT
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("POST-OPERATIVE MANAGEMENT", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Post-Op Care & Follow-Up Plan", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 22, bold: true, color: C.navy
});
const postOpItems = [
{
title: "Antibiotics",
detail: "IV antibiotics for confirmed ovarian abscess; step-down to oral on clinical improvement (Regimen: Cefoxitin/Cefotetan + Doxycycline OR Clindamycin + Gentamicin per PID guidelines)",
color: C.teal
},
{
title: "Histopathology",
detail: "All specimens sent: Uterus, Cervix, Bilateral Fallopian Tubes and Ovaries — final pathology will definitively confirm or revise all diagnoses and rule out malignancy",
color: C.teal
},
{
title: "Hemoglobin Monitoring",
detail: "Blood loss 900cc intraoperatively — CBC monitoring post-op; transfusion if Hgb drops below threshold",
color: C.tealLight
},
{
title: "Surgical Menopause Counseling",
detail: "BSO at age 43 = immediate surgical menopause; discuss hot flashes, bone density, cardiovascular risk; consider hormone replacement therapy (HRT) if no contraindications",
color: C.rose
},
{
title: "Wound Care & Routine Post-Op",
detail: "DVT prophylaxis, early ambulation, wound care; vaginal cuff healing monitoring; folley catheter care",
color: C.tealLight
},
{
title: "Outpatient Follow-Up",
detail: "Review final histopathology results; reassess for recurrence; HRT management; pelvic floor rehabilitation if needed",
color: C.tealLight
},
];
postOpItems.forEach((item, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = col === 0 ? 0.3 : 5.15;
const y = 1.18 + row * 1.35;
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 4.65, h: 1.2,
fill: { color: C.white },
line: { color: C.lightBlue, pt: 1 },
shadow: { type: "outer", color: "000000", blur: 4, offset: 2, angle: 135, opacity: 0.07 }
});
s.addShape(pres.shapes.RECTANGLE, {
x, y, w: 0.1, h: 1.2,
fill: { color: item.color }, line: { type: "none" }
});
s.addText(item.title, {
x: x + 0.2, y: y + 0.08, w: 4.35, h: 0.28,
fontSize: 11, bold: true, color: C.navy
});
s.addText(item.detail, {
x: x + 0.2, y: y + 0.38, w: 4.35, h: 0.72,
fontSize: 9.5, color: C.textDark, lineSpacingMultiple: 1.2
});
});
addSlideNumber(s, 17);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 18 — KEY LEARNING POINTS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
s.background = { color: C.offWhite };
addSectionBadge(s);
s.addText("KEY LEARNING POINTS", {
x: 0.4, y: 0.22, w: 9, h: 0.35,
fontSize: 11, bold: true, color: C.rose, charSpacing: 2
});
s.addText("Clinical Takeaways from this Case", {
x: 0.4, y: 0.58, w: 9, h: 0.45,
fontSize: 22, bold: true, color: C.navy
});
const points = [
{
num: "01",
title: "Stage IV Endo = Surgical Disease (Completed Family)",
detail: "TAH-BSO with complete excision of endometriotic tissue is the definitive treatment. Medical options (GnRH agonists, progestogens) are palliative."
},
{
num: "02",
title: "Intermenstrual Spotting → Always Evaluate Structurally",
detail: "Use PALM-COEIN. Endometrial polyps (AUB-P) are a major structural cause. TVUS + sonohysterography/hysteroscopy + sampling are the workup."
},
{
num: "03",
title: "Endometriomas Can Become Superinfected",
detail: "A 'chocolate cyst' that produces grayish-green foul fluid is no longer just an endometrioma — suspect superimposed abscess. Appearance changes."
},
{
num: "04",
title: "Frozen Section Guides Intraoperative Decision-Making",
detail: "When malignancy cannot be excluded preoperatively, frozen section gives pathologic diagnosis in real-time. In this case it justified BSO."
},
{
num: "05",
title: "Bilateral Adnexal Mass in 43-Year-Old = Malignancy Rule-Out First",
detail: "CA-125, imaging, and ultimately histology (frozen section) are required. Bilateral involvement increases malignancy concern."
},
];
points.forEach((p, i) => {
const y = 1.18 + i * 0.84;
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 9.4, h: 0.76,
fill: { color: i % 2 === 0 ? C.white : C.lightGray },
line: { type: "none" }
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.3, y, w: 0.7, h: 0.76,
fill: { color: i < 3 ? C.teal : C.rose }, line: { type: "none" }
});
s.addText(p.num, {
x: 0.3, y, w: 0.7, h: 0.76,
fontSize: 17, bold: true, color: C.white, align: "center", valign: "middle"
});
s.addText(p.title, {
x: 1.1, y: y + 0.07, w: 8.5, h: 0.28,
fontSize: 11.5, bold: true, color: C.navy
});
s.addText(p.detail, {
x: 1.1, y: y + 0.38, w: 8.4, h: 0.28,
fontSize: 10, color: C.textDark
});
});
addSlideNumber(s, 18);
}
// ════════════════════════════════════════════════════════════════
// SLIDE 19 — SUMMARY / CLOSING
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
darkSlide(s);
s.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 0.3, h: 5.625,
fill: { color: C.rose }, line: { type: "none" }
});
s.addText("CASE SUMMARY", {
x: 0.5, y: 0.35, w: 9, h: 0.38,
fontSize: 11, bold: true, color: C.rose, charSpacing: 3
});
s.addText("Pelvic Endometriosis Stage IV\nwith Bilateral Ovarian Abscess & AUB-P", {
x: 0.5, y: 0.78, w: 9, h: 1.0,
fontSize: 28, bold: true, color: C.white, lineSpacingMultiple: 1.25
});
s.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 1.85, w: 9, h: 0.03,
fill: { color: C.tealLight }, line: { type: "none" }
});
const summaryRows = [
{ label: "Patient", val: "43F, G1P1, Married — Chief Complaint: Intermenstrual Spotting" },
{ label: "Diagnoses", val: "Stage IV Endo + Bilateral Ovarian Abscess + AUB-P + Anemia (corrected)" },
{ label: "Workup", val: "Hx/PE → CBC → TVUS → Endometrial Sampling → Intraop Frozen Section" },
{ label: "Surgery", val: "Exploratory Lap + Adhesiolysis + Enterolysis + TAH + BSO + Appendectomy" },
{ label: "Outcome", val: "Post-op stable; specimens for histopathology; antibiotics; HRT counseling" },
];
summaryRows.forEach((r, i) => {
s.addText(r.label.toUpperCase() + ":", {
x: 0.5, y: 1.98 + i * 0.65, w: 1.5, h: 0.4,
fontSize: 9.5, bold: true, color: C.rose, valign: "middle"
});
s.addText(r.val, {
x: 2.05, y: 1.98 + i * 0.65, w: 7.5, h: 0.4,
fontSize: 12, color: C.lightBlue, valign: "middle"
});
if (i < summaryRows.length - 1) {
s.addShape(pres.shapes.RECTANGLE, {
x: 0.5, y: 2.38 + i * 0.65, w: 9, h: 0.01,
fill: { color: C.tealLight }, line: { type: "none" }
});
}
});
s.addText("References: Bailey & Love's Surgery 28e | Berek & Novak's Gynecology | Robbins Pathology | Sabiston Surgery", {
x: 0.5, y: 5.2, w: 9, h: 0.3,
fontSize: 8.5, color: C.gray, italic: true
});
}
// ═══════════════ WRITE FILE ═════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/gyne-case-ppt/GyneCasePresentation.pptx" })
.then(() => console.log("DONE: GyneCasePresentation.pptx created"))
.catch(e => { console.error("ERROR:", e); process.exit(1); });
cd /home/daytona/workspace/gyne-case-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/gyne-case-ppt/GyneCasePresentation.pptx
GyneCasePresentation
Presentation · PPTX
| # | Slide |
|---|---|
| 1 | Title Slide - Dark navy with rose accent, patient info |
| 2 | Patient Profile - G1P1 obstetric code explained |
| 3 | Admitting vs Post-Op Diagnoses - Side-by-side comparison |
| 4 | Section divider: How Was the Diagnosis Made? |
| 5 | Chief Complaint & Symptoms - 3-column (polyp / endo / abscess) |
| 6 | Diagnostic Workup Pathway - 5 numbered steps |
| 7 | Section divider: Diagnoses in Detail |
| 8 | Endometriosis Stage IV - rASRM staging table + why Stage IV |
| 9 | AUB-P (Endometrial Polyp) - Full PALM-COEIN classification |
| 10 | Ovarian Abscess + Frozen Section - What frozen section is & why done |
| 11 | Section divider: Differential Diagnoses |
| 12 | Differentials for Bilateral Adnexal Mass - Color-coded status table |
| 13 | Section divider: Surgical Management |
| 14 | Indications for Surgery - 5 clinical reasons |
| 15 | Operative Procedures - 6 procedures + justification for each |
| 16 | Intraoperative & Pathologic Findings - Specimen sizes + cut section |
| 17 | Post-Operative Management - Antibiotics, histopath, HRT, follow-up |
| 18 | Key Learning Points - 5 clinical takeaways |
| 19 | Summary Slide - Dark closing slide with full case recap |