help me generate a presentation for Endometrial carcinoma Investigations staging and management/treatment 15-20 slides, in detail with tables and flowcharts wherever necessary

Reading File
Reading File
Reading File
Reading File
Finding Sources
Searching PubMed

"endometrial neoplasms"[MeSH Terms] AND "molecular classification"

Searching the Web

FIGO 2023 endometrial cancer staging molecular classification ESGO ESTRO ESP 2025 guidelines adjuvant treatment

Reading File
Reading File
Reading Web Page

https://www.bgcs.org.uk/wp-content/uploads/2025/08/ESGO-guid…

Finding Sources
Reading Web Page

https://www.bgcs.org.uk/wp-content/uploads/2025/08/ESGO-guid…

Reading Web Page

https://www.bgcs.org.uk/wp-content/uploads/2025/08/ESGO-guid…

Reading File
Reading File
Searching Images

MRI sagittal T2 endometrial carcinoma myometrial invasion

This diagnostic image panel displays multiple MRI sequences (T2-weighted imaging, Diffusion-Weighted Imaging [DWI], and Contrast-Enhanced T1-weighted imaging [CE-T1WI]) in sagittal, coronal, and axial planes. The images demonstrate two clinical cases of Endometrial Carcinoma (EC) in female patients aged 45 (Images 1-4) and 43 (Images 5-8). White stars indicate Regions of Interest (ROI) where radiologists initially suspected deep myometrial invasion (DMI). In Case 1 (1-4), the T2WI sagittal and coronal views show a heterogeneous intermediate signal intensity lesion in the uterine cavity. Case 2 (5-8) highlights similar findings with high signal on DWI, indicating restricted diffusion typical of malignancy. Although radiologists misjudged these as DMI, the lesions were confirmed via pathology and radiomics as superficial myometrial invasion (SMI). The imaging provides educational value for differentiating the depth of myometrial invasion in endometrial cancer using multi-parametric MRI sequences to guide surgical staging and treatment planning.

This diagnostic image panel displays multiple MRI sequences (T2-weighted imaging, Diffusion-Weighted Imaging [DWI], and Contrast-Enhanced T1-weighted imaging [CE-T1WI]) in sagittal, coronal, and axial planes. The images demonstrate two clinical cases of Endometrial Carcinoma (EC) in female patients aged 45 (Images 1-4) and 43 (Images 5-8). White stars indicate Regions of Interest (ROI) where radiologists initially suspected deep myometrial invasion (DMI). In Case 1 (1-4), the T2WI sagittal and coronal views show a heterogeneous intermediate signal intensity lesion in the uterine cavity. Case 2 (5-8) highlights similar findings with high signal on DWI, indicating restricted diffusion typical of malignancy. Although radiologists misjudged these as DMI, the lesions were confirmed via pathology and radiomics as superficial myometrial invasion (SMI). The imaging provides educational value for differentiating the depth of myometrial invasion in endometrial cancer using multi-parametric MRI sequences to guide surgical staging and treatment planning.

This diagnostic image is a T2-weighted sagittal MRI of the female pelvis focusing on the uterus. The scan demonstrates a markedly thickened endometrial stripe with heterogeneous signal intensity. A white arrow points to a region where the normal hypointense junctional zone is obscured, indicating myometrial invasion. The uterus appears enlarged with irregular anatomical boundaries between the endometrium and myometrium. Surrounding structures, including the bladder anteriorly and bowel loops posteriorly, are visible with varying signal intensities characteristic of T2-weighted imaging. The image is a classic representation of endometrial pathology, likely endometrial carcinoma, highlighting the use of MRI in staging and assessing deep myometrial involvement. It serves as an educational resource for identifying pelvic anatomy, endometrial thickening, and the loss of the junctional zone in the context of gynecologic oncology.

This diagnostic image is a T2-weighted sagittal MRI of the female pelvis focusing on the uterus. The scan demonstrates a markedly thickened endometrial stripe with heterogeneous signal intensity. A white arrow points to a region where the normal hypointense junctional zone is obscured, indicating myometrial invasion. The uterus appears enlarged with irregular anatomical boundaries between the endometrium and myometrium. Surrounding structures, including the bladder anteriorly and bowel loops posteriorly, are visible with varying signal intensities characteristic of T2-weighted imaging. The image is a classic representation of endometrial pathology, likely endometrial carcinoma, highlighting the use of MRI in staging and assessing deep myometrial involvement. It serves as an educational resource for identifying pelvic anatomy, endometrial thickening, and the loss of the junctional zone in the context of gynecologic oncology.

Multiparametric MRI series of the female pelvis in the sagittal plane, demonstrating an endometrial lesion in a 56-year-old patient. (A) Sagittal T2-weighted image (T2WI) provides anatomical detail, showing a lesion with intermediate signal intensity confined to the endometrial cavity. (B, C) FOCUS Diffusion-Weighted Imaging (DWI) with b=1000 s/mm2, showing the lesion with high signal intensity, characteristic of restricted diffusion. These images provide higher spatial resolution and clearer border definition with reduced artifacts compared to standard DWI. (D) Perfusion map overlaid on a T2WI sagittal plane, utilizing a color-coded heat map to visualize vascularity and perfusion levels within the tumor. The lesion is visualized as confined to the endometrial cavity with no evident deep myometrial invasion. This multiparametric approach is used in oncological staging to differentiate between stage IA (limited to endometrium or <50% myometrial invasion) and more advanced stages of endometrial carcinoma.

Multiparametric MRI series of the female pelvis in the sagittal plane, demonstrating an endometrial lesion in a 56-year-old patient. (A) Sagittal T2-weighted image (T2WI) provides anatomical detail, showing a lesion with intermediate signal intensity confined to the endometrial cavity. (B, C) FOCUS Diffusion-Weighted Imaging (DWI) with b=1000 s/mm2, showing the lesion with high signal intensity, characteristic of restricted diffusion. These images provide higher spatial resolution and clearer border definition with reduced artifacts compared to standard DWI. (D) Perfusion map overlaid on a T2WI sagittal plane, utilizing a color-coded heat map to visualize vascularity and perfusion levels within the tumor. The lesion is visualized as confined to the endometrial cavity with no evident deep myometrial invasion. This multiparametric approach is used in oncological staging to differentiate between stage IA (limited to endometrium or <50% myometrial invasion) and more advanced stages of endometrial carcinoma.

This composite diagnostic image displays a multi-parametric MRI study of a patient with endometrial serous carcinoma, FIGO stage IIIC1. (A, B) Sagittal and axial oblique T2-weighted images (T2-WI) show a large endometrial mass with heterogeneous intermediate signal intensity. There is visible loss of the hypointense junctional zone, indicating deep myometrial invasion (MI), and interruption of the cervical stroma, indicating cervical stromal invasion (CSI). A globular right internal iliac lymph node is also present. (C, D) Axial oblique and sagittal contrast-enhanced T1-weighted images (T1-WI) demonstrate heterogeneous enhancement of the primary mass and the necrotic internal iliac lymph node. (E, F) Axial diffusion-weighted imaging (DWI, b=1000) and the corresponding Apparent Diffusion Coefficient (ADC) map show marked diffusion restriction within the mass and lymph node, with a measured ADCmean of 0.77 x 10^-3 mm²/sec. The study highlights radiological markers for assessing the depth of myometrial invasion, cervical involvement, and nodal metastasis in high-grade endometrial cancer.

This composite diagnostic image displays a multi-parametric MRI study of a patient with endometrial serous carcinoma, FIGO stage IIIC1. (A, B) Sagittal and axial oblique T2-weighted images (T2-WI) show a large endometrial mass with heterogeneous intermediate signal intensity. There is visible loss of the hypointense junctional zone, indicating deep myometrial invasion (MI), and interruption of the cervical stroma, indicating cervical stromal invasion (CSI). A globular right internal iliac lymph node is also present. (C, D) Axial oblique and sagittal contrast-enhanced T1-weighted images (T1-WI) demonstrate heterogeneous enhancement of the primary mass and the necrotic internal iliac lymph node. (E, F) Axial diffusion-weighted imaging (DWI, b=1000) and the corresponding Apparent Diffusion Coefficient (ADC) map show marked diffusion restriction within the mass and lymph node, with a measured ADCmean of 0.77 x 10^-3 mm²/sec. The study highlights radiological markers for assessing the depth of myometrial invasion, cervical involvement, and nodal metastasis in high-grade endometrial cancer.

Running Command

mkdir -p /tmp/workspace/endometrial-ppt/assets && cd /tmp/workspace/endometrial-ppt && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_54c4aee0d3693b615e92ee04e555bff50f0e6f8195359b9de2fa9a5a437f6522.jpg" "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_271d08510edada903ca38b58ce12ff4b08f7753e7aa2a4fd880d101da899268e.jpg" > assets/imgs.json; python - <<'E' import json,base64 from PIL import Image from io import BytesIO d=json.load(open('/tmp/workspace/endometrial-ppt/assets/imgs.json')) for i,x in enumerate(d): print(x['error'], x['base64'][:30] if x['base64'] else None) if x['base64']: raw=base64.b64decode(x['base64'].split(',',1)[1]); open(f'/tmp/workspace/endometrial-ppt/assets/mri{i}.jpg','wb').write(raw) print(Image.open(BytesIO(raw)).size) E

Writing File

~/endometrial-ppt/build.py

import math
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE, MSO_CONNECTOR
from pptx.oxml.ns import qn
from lxml import etree

def C(h): return RGBColor.from_string(h)
NAVY, MAG, TEAL, LIGHT = C("1B2A41"), C("9D2A5B"), C("2A7F8E"), C("F6EFF3")
DARK, GREY, WHITE, PALE = C("222B38"), C("5A6270"), C("FFFFFF"), C("E8F1F3")
GREEN, YELLOW, ORANGE, RED, SLATE = C("2E8B57"), C("D9A404"), C("E67E22"), C("C0392B"), C("8A8F98")
FONT = "Calibri"

prs = Presentation()
prs.slide_width, prs.slide_height = Inches(13.333), Inches(7.5)
BLANK = prs.slide_layouts[6]
state = {"n": 0}

def tb(slide, x, y, w, h, text, size=14, bold=False, color=DARK, align=PP_ALIGN.LEFT,
       anchor=MSO_ANCHOR.TOP, italic=False):
    s = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = s.text_frame; tf.word_wrap = True; tf.vertical_anchor = anchor
    tf.margin_left = tf.margin_right = Inches(0.05); tf.margin_top = tf.margin_bottom = Inches(0.03)
    lines = text.split("\n")
    for i, ln in enumerate(lines):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = align
        r = p.add_run(); r.text = ln
        r.font.size = Pt(size); r.font.bold = bold; r.font.italic = italic
        r.font.color.rgb = color; r.font.name = FONT
    return s

def bullets(slide, x, y, w, h, items, size=14, color=DARK, space=5):
    s = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h))
    tf = s.text_frame; tf.word_wrap = True
    tf.margin_left = tf.margin_right = Inches(0.05); tf.margin_top = Inches(0.03)
    for i, it in enumerate(items):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.space_after = Pt(space)
        pPr = p._p.get_or_add_pPr()
        pPr.set("marL", str(int(Inches(0.22)))); pPr.set("indent", str(-int(Inches(0.22))))
        bu = etree.SubElement(pPr, qn("a:buChar")); bu.set("char", "\u2022")
        lead, rest = (it if isinstance(it, tuple) else (None, it))
        if lead:
            r = p.add_run(); r.text = lead + " "; r.font.bold = True
            r.font.size = Pt(size); r.font.color.rgb = MAG; r.font.name = FONT
        r = p.add_run(); r.text = rest
        r.font.size = Pt(size); r.font.color.rgb = color; r.font.name = FONT
    return s

def new_slide(title, source=None, subtitle=None):
    state["n"] += 1
    s = prs.slides.add_slide(BLANK)
    bar = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(0), Inches(0.32), Inches(0.18), Inches(0.62))
    bar.fill.solid(); bar.fill.fore_color.rgb = MAG; bar.line.fill.background()
    tb(s, 0.4, 0.25, 12.5, 0.75, title, size=28, bold=True, color=NAVY, anchor=MSO_ANCHOR.MIDDLE)
    if subtitle:
        tb(s, 0.4, 0.92, 12.5, 0.35, subtitle, size=13, color=GREY, italic=True)
    ln = s.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(0.4), Inches(7.05), Inches(12.93), Inches(7.05))
    ln.line.color.rgb = C("D5D8DE"); ln.line.width = Pt(0.75)
    if source:
        tb(s, 0.4, 7.07, 11.6, 0.35, "Source: " + source, size=9, color=GREY)
    tb(s, 12.2, 7.07, 0.75, 0.35, str(state["n"]), size=10, color=GREY, align=PP_ALIGN.RIGHT)
    return s

def box(slide, x, y, w, h, text, fill=NAVY, color=WHITE, size=12, bold=False,
        shape=MSO_SHAPE.ROUNDED_RECTANGLE, align=PP_ALIGN.CENTER, line=None):
    s = slide.shapes.add_shape(shape, Inches(x), Inches(y), Inches(w), Inches(h))
    s.fill.solid(); s.fill.fore_color.rgb = fill
    if line: s.line.color.rgb = line; s.line.width = Pt(1.25)
    else: s.line.fill.background()
    s.shadow.inherit = False
    if shape == MSO_SHAPE.ROUNDED_RECTANGLE:
        s.adjustments[0] = 0.12
    tf = s.text_frame; tf.word_wrap = True; tf.vertical_anchor = MSO_ANCHOR.MIDDLE
    tf.margin_left = tf.margin_right = Inches(0.08); tf.margin_top = tf.margin_bottom = Inches(0.04)
    for i, ln in enumerate(text.split("\n")):
        p = tf.paragraphs[0] if i == 0 else tf.add_paragraph()
        p.alignment = align
        r = p.add_run(); r.text = ln; r.font.size = Pt(size); r.font.name = FONT
        r.font.color.rgb = color; r.font.bold = bold if i else (True if bold is None else bold)
    return s

def arrow(slide, x1, y1, x2, y2, color=GREY, width=1.75):
    c = slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(x1), Inches(y1), Inches(x2), Inches(y2))
    c.line.color.rgb = color; c.line.width = Pt(width)
    ln = c.line._get_or_add_ln()
    t = etree.SubElement(ln, qn("a:tailEnd")); t.set("type", "triangle"); t.set("w", "med"); t.set("len", "med")
    return c

def table(slide, x, y, widths, rows, size=11, first_bold=True, first_fills=None, hdr_fill=NAVY, zebra=True):
    nr, nc = len(rows), len(widths)
    heights = []
    for ri, row in enumerate(rows):
        mx = 1
        for ci, cell in enumerate(row):
            cpl = max(4, (widths[ci] - 0.2) / (0.49 * size / 72))
            lines = sum(max(1, math.ceil(len(seg) / cpl)) for seg in cell.split("\n"))
            mx = max(mx, lines)
        heights.append(mx * size * 1.2 / 72 + 0.13)
    gs = slide.shapes.add_table(nr, nc, Inches(x), Inches(y), Inches(sum(widths)), Inches(sum(heights)))
    t = gs.table
    tblPr = t._tbl.tblPr
    for a in ("bandRow", "firstRow"): tblPr.set(a, "0")
    sid = tblPr.find(qn("a:tableStyleId"))
    if sid is not None: sid.text = "{5940675A-B579-460E-94D1-54222C63F5DA}"  # no style, table grid
    for ci, w in enumerate(widths): t.columns[ci].width = Inches(w)
    for ri, row in enumerate(rows):
        t.rows[ri].height = Inches(heights[ri])
        for ci, txt in enumerate(row):
            cell = t.cell(ri, ci)
            cell.margin_left = cell.margin_right = Inches(0.07)
            cell.margin_top = cell.margin_bottom = Inches(0.04)
            cell.vertical_anchor = MSO_ANCHOR.MIDDLE
            tf = cell.text_frame; tf.word_wrap = True
            for li, ln in enumerate(txt.split("\n")):
                p = tf.paragraphs[0] if li == 0 else tf.add_paragraph()
                r = p.add_run(); r.text = ln; r.font.size = Pt(size); r.font.name = FONT
                if ri == 0:
                    r.font.bold = True; r.font.color.rgb = WHITE
                else:
                    r.font.color.rgb = DARK
                    if ci == 0 and first_bold: r.font.bold = True
            cell.fill.solid()
            if ri == 0: cell.fill.fore_color.rgb = hdr_fill
            elif ci == 0 and first_fills and first_fills.get(ri):
                cell.fill.fore_color.rgb = first_fills[ri]
                for p in tf.paragraphs:
                    for r in p.runs: r.font.color.rgb = WHITE
            else:
                cell.fill.fore_color.rgb = LIGHT if (zebra and ri % 2 == 0) else WHITE
    bottom = y + sum(heights)
    print(f"slide {state['n']}: table bottom {bottom:.2f}")
    return bottom

# ------------------------------------------------------------------ 1 TITLE
state["n"] += 1
s = prs.slides.add_slide(BLANK)
bg = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height)
bg.fill.solid(); bg.fill.fore_color.rgb = NAVY; bg.line.fill.background()
st = s.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(0.8), Inches(2.3), Inches(0.14), Inches(2.1))
st.fill.solid(); st.fill.fore_color.rgb = MAG; st.line.fill.background()
tb(s, 1.2, 2.2, 11, 1.1, "Endometrial Carcinoma", size=48, bold=True, color=WHITE)
tb(s, 1.2, 3.3, 11, 0.7, "Investigations, Staging and Management", size=28, color=C("F0C6D8"))
tb(s, 1.2, 4.0, 11, 0.5, "Updated to FIGO 2023 staging and ESGO-ESTRO-ESP 2025 guidelines", size=16, color=C("C9D3E0"))
tb(s, 1.2, 6.3, 11.5, 0.8, "References: ESGO-ESTRO-ESP 2025 guideline (Lancet Oncol); FIGO 2023 staging; Berek & Novak's Gynecology; "
   "Goldman-Cecil Medicine; Robbins Pathologic Basis of Disease; Grainger & Allison's Diagnostic Radiology", size=11, color=C("9FB0C6"))

# ------------------------------------------------------------------ 2 EPI / RISK
s = new_slide("Epidemiology and Risk Factors",
              "Goldman-Cecil Medicine (Ch. 184); Harrison's Principles of Internal Medicine 22E; ESGO-ESTRO-ESP 2025")
bullets(s, 0.4, 1.25, 5.6, 5.6, [
    ("Burden:", "6th most common cancer in women worldwide: about 417,000 new cases and 97,000 deaths in 2020."),
    ("Presentation stage:", "about 75% are stage I at diagnosis, because postmenopausal bleeding leads to early detection."),
    ("Trend:", "incidence rising with obesity, diabetes, lower parity and longer life expectancy."),
    ("Precursor:", "complex atypical hyperplasia carries about a 30-fold risk of later cancer."),
    ("Hereditary (3-5%):", "Lynch syndrome (MLH1, MSH2, MSH6, PMS2, EPCAM) gives up to 60% lifetime risk; Cowden syndrome (PTEN) 13-20%."),
    ("Protective:", "combined oral contraceptives, multiparity, LNG-IUS, physical activity."),
], size=14)
rows = [["Feature", "Type 1 (about 80%)", "Type 2 (10-20%)"],
        ["Driver", "Unopposed estrogen", "Estrogen independent"],
        ["Histology", "Endometrioid, low grade", "Serous, clear cell, carcinosarcoma"],
        ["Background", "Hyperplasia; obese, peri/postmenopausal", "Atrophic endometrium; older women"],
        ["Molecular", "PTEN loss, MSI, KRAS, CTNNB1; wild-type p53", "TP53 mutation, aneuploidy, HER2 amplification"],
        ["Receptors", "ER/PR positive", "ER/PR usually low or negative"],
        ["Behaviour", "Uterine-confined, good prognosis", "Early dissemination, poor prognosis"]]
b = table(s, 6.3, 1.3, [1.35, 2.7, 2.55], rows, size=12)
box(s, 6.3, b + 0.2, 6.6, 0.85,
    "The dualistic model is now refined by the four-group molecular classification (slide 4), which drives risk grouping.",
    fill=PALE, color=NAVY, size=12, line=TEAL)
tb(s, 0.4, 5.55, 5.6, 1.3,
   "Risk factor list: obesity, unopposed estrogen, early menarche or late menopause, nulliparity, diabetes, "
   "PCOS or anovulation, tamoxifen, family history.", size=12, color=GREY, italic=True)

# ------------------------------------------------------------------ 3 PATHOLOGY
s = new_slide("Pathology: Histotypes, Grade and Reporting",
              "Robbins Pathologic Basis of Disease; Goldman-Cecil Medicine; FIGO 2023; ESGO-ESTRO-ESP 2025")
rows = [["Histotype", "Features", "Behaviour"],
        ["Endometrioid", "Glandular; FIGO grade 1-2 (low) or 3 (high); most common", "Low grade: favourable; grade 3 behaves aggressively"],
        ["Serous", "Papillary, marked atypia, usually p53 abnormal; arises in atrophic endometrium", "Early peritoneal and nodal spread"],
        ["Clear cell", "Clear or hobnail cells; often p53 wild-type or MMRd", "Aggressive; prognosis varies with molecular class"],
        ["Carcinosarcoma", "Metaplastic carcinoma; epithelial and sarcomatous elements", "Very aggressive; treated as high-grade carcinoma"],
        ["Undifferentiated / dedifferentiated", "Sheets of undifferentiated cells; frequently MMRd", "Aggressive; ICI-responsive when MMRd"]]
b = table(s, 0.4, 1.3, [2.0, 3.3, 2.7], rows, size=12)
tb(s, 0.4, b + 0.12, 8.0, 0.9,
   "Grade: two-tier system (low = FIGO 1-2, high = FIGO 3) for endometrioid cancers. Serous, clear cell, "
   "carcinosarcoma, undifferentiated and mixed types are always high grade.", size=12, color=GREY, italic=True)
box(s, 8.7, 1.3, 4.25, 0.5, "Essential items in the pathology report", fill=MAG, size=14, bold=True)
bullets(s, 8.7, 1.9, 4.25, 4.9, [
    "Histotype and grade",
    "Depth of myometrial invasion (less than or at least 50%)",
    "LVSI: none, focal (under 5 vessels) or substantial (5 or more)",
    "Cervical stromal invasion",
    "Serosa, adnexa, parametrium, vagina",
    "Nodes: ITC, micrometastasis (0.2-2 mm), macrometastasis (over 2 mm)",
    "Molecular class: POLE, MMR IHC, p53 IHC, ER (HER2 in serous or p53abn)",
    "Margins and tumour size",
], size=13, space=4)

# ------------------------------------------------------------------ 4 MOLECULAR
s = new_slide("Molecular Classification (TCGA / ProMisE)",
              "Goldman-Cecil Medicine (Fig. 184-1); ESGO-ESTRO-ESP 2025; WHO 2020")
rows = [["Class", "Frequency", "Genomic features", "Test", "Prognosis"],
        ["POLEmut", "5-10%", "Ultramutated; pathogenic POLE exonuclease-domain variant", "POLE NGS", "Excellent"],
        ["MMRd", "25-30%", "MSI-hypermutated; MLH1 methylation or germline Lynch", "IHC: MLH1, PMS2, MSH2, MSH6", "Intermediate; ICI-sensitive"],
        ["NSMP", "40-50%", "Copy-number low; often ER+, CTNNB1 variants", "Negative for the other three", "Intermediate; heterogeneous"],
        ["p53abn", "10-15%", "Copy-number high; serous-like; TP53 mutation", "p53 IHC (overexpression, null, cytoplasmic)", "Poor; benefits from chemotherapy"]]
fills = {1: GREEN, 2: ORANGE, 3: SLATE, 4: RED}
b = table(s, 0.4, 1.25, [1.4, 1.1, 4.2, 3.4, 2.4], rows, size=12, first_fills=fills)
tb(s, 0.4, b + 0.15, 12.5, 0.4, "Diagnostic algorithm (hierarchical order)", size=15, bold=True, color=NAVY)
y = b + 0.65; h = 0.95; w = 2.55; gap = 0.5
xs = [0.4 + i * (w + gap) for i in range(4)]
box(s, xs[0], y, w, h, "POLE sequencing\n(pathogenic variant?)", fill=NAVY, size=12, bold=None)
box(s, xs[1], y, w, h, "MMR IHC\n(loss of any protein?)", fill=NAVY, size=12, bold=None)
box(s, xs[2], y, w, h, "p53 IHC\n(abnormal pattern?)", fill=NAVY, size=12, bold=None)
box(s, xs[3], y, w, h, "None of the three\n= NSMP", fill=SLATE, size=12, bold=None)
for i in range(3): arrow(s, xs[i] + w, y + h / 2, xs[i + 1], y + h / 2)
labels = [("YES: POLEmut", GREEN), ("YES: MMRd", ORANGE), ("YES: p53abn", RED)]
for i, (t_, c_) in enumerate(labels):
    box(s, xs[i], y + h + 0.45, w, 0.5, t_, fill=c_, size=12, bold=True)
    arrow(s, xs[i] + w / 2, y + h, xs[i] + w / 2, y + h + 0.45)
tb(s, 0.4, y + h + 1.05, 12.5, 0.6,
   "Multiple classifiers: POLEmut + MMRd or p53abn is classified as POLEmut. Report FIGO stage with suffix m and subtype (e.g. IAm POLEmut).",
   size=12, color=GREY, italic=True)

# ------------------------------------------------------------------ 5 DIAGNOSTIC PATHWAY
s = new_slide("Clinical Presentation and Diagnostic Pathway",
              "Grainger & Allison's Diagnostic Radiology; Berek & Novak's Gynecology; ESGO-ESTRO-ESP 2025")
w = 2.15; gap = 0.5; y = 1.3; h = 1.65
texts = [("Presentation", "Postmenopausal bleeding (most cases), abnormal uterine bleeding, pyometra, thickened endometrium on imaging", NAVY),
         ("Transvaginal US", "Double-layer endometrial thickness above 4-5 mm in PMB, or focal lesion, needs sampling", TEAL),
         ("Tissue sampling", "Pipelle or hysteroscopic biopsy; D&C if inadequate sample or cervical stenosis", TEAL),
         ("Histology", "Carcinoma vs atypical hyperplasia / EIN vs benign endometrium", NAVY),
         ("If carcinoma", "Histotype, grade, MMR / p53 / POLE / ER, then staging work-up", MAG)]
xs = [0.3 + i * (w + gap) for i in range(5)]
for i, (hd, tx, col) in enumerate(texts):
    box(s, xs[i], y, w, h, hd + "\n" + tx, fill=col, size=11, bold=None)
    if i: arrow(s, xs[i - 1] + w, y + h / 2, xs[i], y + h / 2)
box(s, 3.2, 3.35, 4.4, 0.75, "Persistent bleeding with negative or inadequate biopsy: hysteroscopy with directed biopsy",
    fill=PALE, color=NAVY, size=11, line=TEAL)
arrow(s, 5.4, 2.95, 5.4, 3.35)
box(s, 0.3, 3.35, 2.6, 0.75, "Endometrial thickness under 4 mm and no bleeding: no sampling", fill=PALE, color=NAVY, size=11, line=TEAL)
arrow(s, 1.6, 2.95, 1.6, 3.35)
box(s, 0.4 + 6.9, 3.35, 5.6, 0.75, "Atypical hyperplasia on biopsy: carries about 30-40% risk of coexisting carcinoma; manage as presumed early cancer pathway",
    fill=PALE, color=NAVY, size=11, line=TEAL)
box(s, 0.4, 4.4, 6.1, 0.45, "Clinical assessment", fill=MAG, size=14, bold=True)
bullets(s, 0.4, 4.9, 6.1, 2.1, [
    "History: bleeding pattern, estrogen exposure, tamoxifen, family history of Lynch cancers",
    "Examination: BMI, abdominal and pelvic exam, speculum view of cervix and vagina",
    "Fitness for surgery: comorbidities, ECOG, anaesthetic review",
], size=12, space=3)
box(s, 6.8, 4.4, 6.1, 0.45, "Pitfalls", fill=MAG, size=14, bold=True)
bullets(s, 6.8, 4.9, 6.1, 2.1, [
    "Cervical cytology is not a diagnostic test for endometrial cancer",
    "Blind biopsy can miss focal lesions (polyp-based cancer)",
    "Premenopausal women with obesity or PCOS and persistent AUB need sampling",
    "Hematometra or pyometra in elderly women can mask the lesion",
], size=12, space=3)

# ------------------------------------------------------------------ 6 INVESTIGATIONS TABLE
s = new_slide("Investigations and Pre-operative Work-up",
              "Grainger & Allison's Diagnostic Radiology (Table 34.1); ESGO-ESTRO-ESP 2025; Berek & Novak's Gynecology")
rows = [["Domain", "Investigation", "Purpose / key point"],
        ["Tissue diagnosis", "Pipelle, hysteroscopic biopsy, D&C", "Histotype and grade; mandatory before definitive surgery"],
        ["Biomarkers", "MMR IHC, p53 IHC, POLE NGS, ER; HER2 if serous or p53abn", "Molecular class, risk group, immunotherapy and HER2-directed options"],
        ["Pelvic imaging", "Expert TVUS or pelvic MRI", "Myometrial and cervical stromal invasion, adnexa, pelvic nodes"],
        ["Distant staging", "CT thorax / abdomen / pelvis (or PET-CT)", "Indicated for high-risk histology (serous, clear cell, carcinosarcoma), suspected stage III-IV or recurrence"],
        ["Laboratory", "CBC, renal and liver function, glucose / HbA1c, group and save", "Fitness for surgery; anaemia from bleeding; diabetes screening"],
        ["Tumour marker", "CA-125 (optional)", "May be raised with extrauterine disease; limited role in routine staging"],
        ["Genetics", "MLH1 methylation, germline testing, counselling", "For dMMR tumours (Lynch syndrome), family history, early onset"],
        ["Fitness", "ECG, chest X-ray, anaesthetic review, BMI", "Choice of surgical approach; unfit women need alternatives"]]
table(s, 0.4, 1.3, [1.9, 4.3, 6.3], rows, size=12)

# ------------------------------------------------------------------ 7 MRI
s = new_slide("Role of MRI in Local Staging",
              "Grainger & Allison's Diagnostic Radiology; images from the Orris medical image library (PMC open access figures)")
s.shapes.add_picture("/tmp/workspace/endometrial-ppt/assets/mri0.jpg", Inches(0.4), Inches(1.3), Inches(3.4), Inches(3.4))
s.shapes.add_picture("/tmp/workspace/endometrial-ppt/assets/mri1.jpg", Inches(3.95), Inches(1.3), Inches(5.1), Inches(3.4))
tb(s, 0.4, 4.72, 3.4, 0.6, "T2 sagittal: thickened endometrium; junctional zone obscured (myometrial invasion)", size=10, color=GREY, italic=True)
tb(s, 3.95, 4.72, 5.1, 0.6, "Serous carcinoma FIGO IIIC1: deep invasion, cervical stromal disruption, enlarged iliac node, diffusion restriction", size=10, color=GREY, italic=True)
box(s, 9.3, 1.3, 3.65, 0.45, "What MRI adds", fill=MAG, size=14, bold=True)
bullets(s, 9.3, 1.8, 3.65, 3.5, [
    "Depth of myometrial invasion (T2, DWI, dynamic contrast)",
    "Cervical stromal invasion",
    "Origin: endometrial vs endocervical primary",
    "Tumour size, parametrial and adnexal extension",
    "Enlarged pelvic nodes",
    "Brachytherapy planning",
], size=12, space=3)
rows = [["Intact junctional zone or under 50% invasion", "50% or more myometrial invasion", "Cervical stroma disrupted", "Serosa, adnexa, vagina, nodes, bladder or bowel"],
        ["Stage IA", "Stage IB", "Stage II", "Stage III-IV"]]
table(s, 0.4, 5.5, [3.1, 3.0, 2.9, 3.5], rows, size=12, first_bold=False)
tb(s, 0.4, 6.6, 12.5, 0.4, "Pre-operative MRI is a surrogate; final stage is surgico-pathological. PET-CT is reserved for equivocal or recurrent disease.", size=11, color=GREY, italic=True)

# ------------------------------------------------------------------ 8 LYNCH FLOW
s = new_slide("Lynch Syndrome Screening Pathway",
              "Goldman-Cecil Medicine (Ch. 184); ESGO-ESTRO-ESP 2025")
box(s, 4.3, 1.25, 4.7, 0.7, "Endometrial carcinoma specimen:\nMMR IHC (MLH1, PMS2, MSH2, MSH6)", fill=NAVY, size=12, bold=None)
box(s, 0.5, 2.45, 3.7, 0.8, "Retained (pMMR): Lynch unlikely;\ntest only if strong family history", fill=GREEN, size=12, bold=None)
box(s, 6.0, 2.45, 3.6, 0.65, "Loss of expression (dMMR)", fill=ORANGE, size=13, bold=True)
arrow(s, 5.5, 1.95, 2.35, 2.45); arrow(s, 7.8, 1.95, 7.8, 2.45)
box(s, 4.6, 3.6, 3.5, 0.7, "MLH1 + PMS2 loss", fill=NAVY, size=12, bold=True)
box(s, 9.0, 3.6, 3.9, 0.7, "MSH2 + MSH6 loss, or isolated MSH6 / PMS2 loss", fill=NAVY, size=12, bold=True)
arrow(s, 7.3, 3.1, 6.35, 3.6); arrow(s, 8.6, 3.1, 10.9, 3.6)
box(s, 4.6, 4.65, 3.5, 0.65, "MLH1 promoter methylation test", fill=TEAL, size=12, bold=True)
arrow(s, 6.35, 4.3, 6.35, 4.65)
box(s, 4.4, 5.8, 2.1, 0.95, "Methylated:\nsporadic, no germline test", fill=SLATE, size=11, bold=None)
box(s, 6.7, 5.8, 2.4, 0.95, "Unmethylated:\ngermline testing and counselling", fill=MAG, size=11, bold=None)
arrow(s, 5.9, 5.3, 5.45, 5.8); arrow(s, 6.9, 5.3, 7.9, 5.8)
box(s, 9.0, 4.65, 3.9, 0.95, "Germline testing for Lynch syndrome\n(MLH1, MSH2, MSH6, PMS2, EPCAM)", fill=MAG, size=12, bold=None)
arrow(s, 10.95, 4.3, 10.95, 4.65)
box(s, 0.5, 3.6, 3.7, 3.15, "If Lynch syndrome is confirmed", fill=PALE, color=NAVY, size=12, bold=True, line=TEAL)
bullets(s, 0.6, 4.05, 3.5, 2.7, [
    "Risk-reducing hysterectomy + BSO by minimally invasive surgery after childbearing",
    "Preferably before age 40 for MLH1, MSH2, MSH6; at menopause for PMS2",
    "Colonoscopy surveillance and cascade testing of relatives",
    "Estrogen replacement can be offered after BSO",
], size=11, space=3)

# ------------------------------------------------------------------ 9 FIGO I-II
s = new_slide("FIGO 2023 Staging: Stages I and II",
              "FIGO 2023 staging of endometrial cancer (Berek et al., Int J Gynaecol Obstet 2023); ESGO-ESTRO-ESP 2025")
rows = [["Stage", "Definition"],
        ["I", "Confined to the uterine corpus and ovary"],
        ["IA", "Non-aggressive histology, limited to endometrium or under 50% myometrial invasion, no or focal LVSI; or good-prognosis disease"],
        ["IA1", "Non-aggressive type limited to an endometrial polyp or confined to endometrium"],
        ["IA2", "Non-aggressive type with under 50% myometrial invasion and no or focal LVSI"],
        ["IA3", "Low-grade endometrioid with synchronous low-grade ovarian tumour (under 10 mm, no other spread)"],
        ["IB", "Non-aggressive type with 50% or more myometrial invasion, no or focal LVSI"],
        ["IC", "Aggressive histology limited to a polyp or confined to endometrium"],
        ["II", "Invasion of cervical stroma without extrauterine extension, or substantial LVSI, or aggressive type with myometrial invasion"],
        ["IIA", "Invasion of cervical stroma, non-aggressive type"],
        ["IIB", "Substantial LVSI, non-aggressive type"],
        ["IIC", "Aggressive histology with any myometrial involvement"]]
fills = {1: NAVY, 8: NAVY}
table(s, 0.4, 1.25, [1.0, 7.0], rows, size=12, first_fills=fills)
box(s, 8.7, 1.25, 4.25, 0.45, "Definitions", fill=MAG, size=14, bold=True)
bullets(s, 8.7, 1.8, 4.25, 3.3, [
    ("Aggressive histology:", "high-grade endometrioid, serous, clear cell, mixed, undifferentiated, carcinosarcoma, mesonephric-like, gastrointestinal-type mucinous."),
    ("Substantial LVSI:", "5 or more vessels involved."),
    ("Non-aggressive:", "low-grade (grade 1-2) endometrioid."),
], size=12, space=4)
box(s, 8.7, 5.1, 4.25, 1.75,
    "Molecular stages\nIAm POLEmut: stage I-II with pathogenic POLE variant\nIICm p53abn: stage I-II, p53abn with myometrial invasion",
    fill=PALE, color=NAVY, size=12, line=TEAL)

# ------------------------------------------------------------------ 10 FIGO III-IV
s = new_slide("FIGO 2023 Staging: Stages III and IV",
              "FIGO 2023 staging of endometrial cancer (Berek et al., Int J Gynaecol Obstet 2023); ESGO-ESTRO-ESP 2025")
rows = [["Stage", "Definition"],
        ["III", "Local and/or regional spread of any histological subtype"],
        ["IIIA1", "Spread to ovary or fallopian tube (except IA3)"],
        ["IIIA2", "Involvement of uterine subserosa or spread through serosa"],
        ["IIIB1", "Spread to vagina and/or parametria"],
        ["IIIB2", "Metastasis to pelvic peritoneum"],
        ["IIIC1", "Pelvic node metastasis: i = micrometastasis, ii = macrometastasis"],
        ["IIIC2", "Para-aortic node metastasis up to renal vessels, with or without pelvic nodes: i = micro, ii = macro"],
        ["IV", "Spread to bladder or bowel mucosa and/or distant metastasis"],
        ["IVA", "Invasion of bladder mucosa and/or intestinal / bowel mucosa"],
        ["IVB", "Abdominal peritoneal metastasis beyond the pelvis"],
        ["IVC", "Distant metastasis: nodes above renal vessels, lung, liver, brain, bone"]]
table(s, 0.4, 1.25, [1.1, 6.9], rows, size=12, first_fills={1: NAVY, 8: NAVY})
box(s, 8.7, 1.25, 4.25, 0.45, "Key changes from FIGO 2009", fill=MAG, size=14, bold=True)
bullets(s, 8.7, 1.8, 4.25, 5.1, [
    "Histotype, LVSI and molecular class now incorporated",
    "New subcategories: IA1-IA3, IC, IIB, IIC",
    "Peritoneal washings no longer part of staging",
    "Nodal disease split into micro (i) and macro (ii) metastasis; isolated tumour cells do not upstage",
    "Peritoneal disease split into pelvic (IIIB2) and abdominal (IVB)",
    "Report stage with molecular annotation (suffix m)",
], size=12, space=4)

# ------------------------------------------------------------------ 11 RISK GROUPS
s = new_slide("ESGO-ESTRO-ESP 2025 Prognostic Risk Groups",
              "ESGO-ESTRO-ESP guidelines for endometrial carcinoma: update 2025 (Lancet Oncol 2025; Fig. 3). Simplified; check the full figure for edge cases")
rows = [["Risk group", "5-year recurrence", "Typical FIGO 2023 + molecular profile", "Adjuvant approach"],
        ["Low", "Under 8%", "IAm POLEmut (stage I-II); IA1-IA3 MMRd or NSMP low-grade ER+", "No adjuvant therapy"],
        ["Intermediate", "8-14%", "IBm MMRd or NSMP low-grade ER+, and selected IA disease", "Vaginal brachytherapy; observation in selected cases"],
        ["High-intermediate", "15-24%", "Deeper or more extensive early disease, e.g. stage II MMRd / NSMP low-grade, substantial LVSI", "EBRT; vaginal brachytherapy if pN0; none if pN0, low grade, no substantial LVSI"],
        ["High", "25% or more", "IA2-IB or II NSMP high-grade / ER-negative or p53abn; stage III-IVA non-POLEmut", "Chemoradiotherapy (chemo plus EBRT), with immunotherapy in advanced disease"],
        ["Uncertain", "Insufficient data", "IA1 / IC with p53abn or NSMP high-grade; stage III-IVA POLEmut", "Individualised, MDT decision"]]
fills = {1: GREEN, 2: YELLOW, 3: ORANGE, 4: RED, 5: SLATE}
b = table(s, 0.4, 1.25, [1.9, 1.6, 4.7, 4.3], rows, size=12, first_fills=fills)
box(s, 0.4, b + 0.25, 12.5, 0.9,
    "Without molecular classification, risk grouping is less accurate, especially in high-grade histologies. "
    "All patients should have molecular profiling and lymph node assessment (sentinel node in uterine-confined disease).",
    fill=PALE, color=NAVY, size=13, line=TEAL)

# ------------------------------------------------------------------ 12 MGMT OVERVIEW FLOW
s = new_slide("Management Overview", "ESGO-ESTRO-ESP 2025; Berek & Novak's Gynecology; Goldman-Cecil Medicine")
box(s, 3.9, 1.2, 5.5, 0.65, "Confirmed endometrial carcinoma:\nhistology + molecular class + imaging", fill=NAVY, size=12, bold=None)
cols = [(0.5, "Presumed uterus-confined (stage I-II)", TEAL,
         "Minimally invasive hysterectomy + BSO\nSentinel node biopsy\nOmentectomy if serous, carcinosarcoma, undifferentiated"),
        (4.7, "Suspected advanced (stage III-IV)", ORANGE,
         "MDT review\nSurgery if complete resection is feasible\nOtherwise systemic therapy +/- RT"),
        (8.9, "Fertility wish or medically unfit", SLATE,
         "Fertility: progestin +/- LNG-IUS with hysteroscopy\nUnfit: vaginal hysterectomy or definitive RT, hormonal therapy")]
for x, hd, col, body in cols:
    box(s, x, 2.3, 3.9, 0.55, hd, fill=col, size=13, bold=True)
    arrow(s, 6.65, 1.85, x + 1.95, 2.3)
    box(s, x, 3.05, 3.9, 1.85, body, fill=LIGHT, color=DARK, size=12, line=col)
    arrow(s, x + 1.95, 2.85, x + 1.95, 3.05)
    arrow(s, x + 1.95, 4.9, 6.65, 5.3)
box(s, 2.2, 5.3, 8.9, 0.65, "Final pathology + molecular class: FIGO 2023 stage and prognostic risk group", fill=MAG, size=13, bold=True)
arrow(s, 6.65, 5.95, 6.65, 6.25)
box(s, 2.2, 6.25, 8.9, 0.65, "Adjuvant therapy by risk group, then structured follow-up", fill=NAVY, size=13, bold=True)

# ------------------------------------------------------------------ 13 SURGERY
s = new_slide("Surgical Management", "ESGO-ESTRO-ESP 2025; Berek & Novak's Gynecology (laparoscopy and robotics in endometrial cancer)")
rows = [["Element", "Recommendation"],
        ["Approach", "Minimally invasive surgery is preferred, including for high-risk disease (level I, A). Robotics may help in morbidly obese patients; laparoscopy gives less blood loss, shorter stay and equal survival vs laparotomy"],
        ["Standard procedure", "Total hysterectomy + bilateral salpingo-oophorectomy + lymph node staging (stage I-II)"],
        ["Tumour handling", "Avoid intraperitoneal spillage, uterine rupture or morcellation (even in a bag); use mini-laparotomy or endobag if vaginal extraction is risky"],
        ["Omentectomy", "Infracolic omentectomy for clinical stage I-II serous, carcinosarcoma and undifferentiated carcinoma; not needed for other types"],
        ["Cervical involvement", "No routine radical hysterectomy; extend only if needed for free margins"],
        ["Ovarian preservation", "May be considered in carefully selected young, low-risk stage I women; discuss Lynch and family history"],
        ["Advanced disease", "Cytoreduction to no residual disease if feasible; palliative surgery for bleeding, fistula or obstruction"],
        ["Medically unfit", "Vaginal hysterectomy + BSO if feasible; otherwise definitive radiotherapy"],
        ["Peritoneal washings", "Not part of staging since FIGO 2009 and not required"]]
table(s, 0.4, 1.25, [2.5, 10.0], rows, size=12)

# ------------------------------------------------------------------ 14 SLN FLOW
s = new_slide("Sentinel Lymph Node Algorithm", "ESGO-ESTRO-ESP 2025; FIRES trial (Berek & Novak's Gynecology)")
box(s, 0.4, 1.3, 3.0, 1.0, "Presumed uterus-confined disease", fill=NAVY, size=13, bold=True)
box(s, 4.0, 1.3, 3.3, 1.0, "Cervical injection of indocyanine green (preferred tracer)", fill=TEAL, size=12, bold=None)
box(s, 7.9, 1.3, 2.4, 1.0, "Pelvic mapping", fill=TEAL, size=13, bold=True)
box(s, 10.9, 1.3, 2.0, 1.0, "Bilateral detection?", fill=MAG, size=13, bold=True)
arrow(s, 3.4, 1.8, 4.0, 1.8); arrow(s, 7.3, 1.8, 7.9, 1.8); arrow(s, 10.3, 1.8, 10.9, 1.8)
box(s, 9.0, 3.0, 3.9, 1.2, "YES: remove sentinel nodes and ultrastage\n(no further lymphadenectomy)", fill=GREEN, size=12, bold=None)
arrow(s, 11.9, 2.3, 11.9, 3.0)
box(s, 4.0, 3.0, 4.4, 1.2, "NO: re-inject tracer; if still failed, side-specific lymphadenectomy in non-low-risk disease (low risk: MDT may omit)", fill=ORANGE, size=11, bold=None)
arrow(s, 11.4, 2.3, 6.2, 3.0)
box(s, 0.4, 3.0, 3.2, 1.2, "Suspicious or bulky nodes: remove regardless of mapping", fill=RED, size=12, bold=None)
arrow(s, 9.1, 2.3, 2.0, 3.0)
box(s, 0.4, 4.6, 12.5, 0.45, "Nodal result and FIGO 2023 category", fill=MAG, size=14, bold=True)
rows = [["Finding", "Size", "Stage / action"],
        ["Isolated tumour cells (ITC)", "Up to 0.2 mm", "pN0(i+); does not upstage; treat according to risk group"],
        ["Micrometastasis", "0.2 to 2 mm", "IIIC1i (pelvic) or IIIC2i (para-aortic)"],
        ["Macrometastasis", "Over 2 mm", "IIIC1ii or IIIC2ii; adjuvant chemotherapy +/- RT"]]
table(s, 0.4, 5.15, [3.6, 2.3, 6.6], rows, size=12)
tb(s, 0.4, 6.75, 12.5, 0.3, "Ultrastaging: serial sections at 2 or more levels with H&E and cytokeratin IHC. Lymphadenectomy after total hysterectomy is considered only if it changes treatment.",
   size=10, color=GREY, italic=True)

# ------------------------------------------------------------------ 15 ADJUVANT
s = new_slide("Adjuvant Therapy by Risk Group", "ESGO-ESTRO-ESP 2025 (Fig. 5 algorithms); PORTEC-2, PORTEC-3, PORTEC-4a")
rows = [["Risk group", "Option", "Details"],
        ["Low", "Observation", "No adjuvant therapy (includes POLEmut stage I-II)"],
        ["Intermediate", "Vaginal brachytherapy (VBT)", "e.g. 21 Gy in 3 fractions of 7 Gy; omission can be considered in selected cases"],
        ["High-intermediate", "EBRT, or VBT if pN0", "EBRT for optimal pelvic control (II, A); VBT alternative after nodal staging pN0; no treatment if pN0, low grade, no substantial LVSI"],
        ["High", "Chemoradiotherapy", "EBRT with chemotherapy (concurrent and/or sequential); p53abn and serous gain most"],
        ["Stage III-IVA", "Chemotherapy +/- EBRT +/- immunotherapy", "Carboplatin-paclitaxel; dostarlimab or other ICI in selected settings; MDT-based"],
        ["Uncertain", "Individualised", "MDT decision, e.g. POLEmut stage III-IVA or p53abn IA1 without invasion"]]
fills = {1: GREEN, 2: YELLOW, 3: ORANGE, 4: RED, 5: RED, 6: SLATE}
b = table(s, 0.4, 1.25, [2.1, 3.1, 7.3], rows, size=12, first_fills=fills)
box(s, 0.4, b + 0.25, 12.5, 0.45, "Reference doses and regimens", fill=MAG, size=14, bold=True)
bullets(s, 0.4, b + 0.78, 12.5, 1.5, [
    ("EBRT:", "45-50.4 Gy in 1.8 Gy fractions to the pelvis (extended field if para-aortic nodes are involved)."),
    ("Chemotherapy:", "carboplatin AUC 5 + paclitaxel 175 mg/m2 every 3 weeks, 4-6 cycles (six cycles is standard in advanced disease)."),
    ("Principle:", "treat on integrated molecular risk, not on stage alone; POLEmut can be de-escalated, p53abn escalated."),
], size=12, space=3)

# ------------------------------------------------------------------ 16 TRIALS ADJUVANT
s = new_slide("Key Adjuvant Trials", "PORTEC-1/2/3/4a, GOG-99, GOG-258 primary publications; ESGO-ESTRO-ESP 2025; Berek & Novak's Gynecology")
rows = [["Trial", "Population", "Comparison", "Main finding"],
        ["PORTEC-1 / GOG-99", "Intermediate-risk stage I", "Pelvic EBRT vs observation", "Fewer locoregional relapses; no overall survival benefit"],
        ["PORTEC-2", "High-intermediate risk", "VBT vs EBRT", "Equivalent vaginal control (about 98%); less GI toxicity with VBT"],
        ["PORTEC-3", "High-risk and stage III", "Chemoradiotherapy vs EBRT alone", "5-year OS 81.4% vs 76.1%; greatest benefit in p53abn, stage III and serous"],
        ["GOG-258", "Stage III-IVA", "Chemoradiotherapy vs chemotherapy alone", "No RFS gain; fewer pelvic and vaginal relapses with RT"],
        ["PORTEC-4a", "High-intermediate risk", "Molecular-profile-based vs standard adjuvant therapy", "Profile-guided treatment safe and effective; 46% spared adjuvant therapy"],
        ["RUBY", "Stage III-IV, recurrent", "Carboplatin-paclitaxel +/- dostarlimab", "PFS benefit, strongest in dMMR (HR about 0.28); OS benefit overall"]]
b = table(s, 0.4, 1.3, [2.2, 2.6, 3.6, 4.1], rows, size=12)
box(s, 0.4, b + 0.3, 12.5, 0.9,
    "Take-home: radiotherapy improves local control without clear survival gain in low-intermediate disease; "
    "chemotherapy adds benefit in p53abn, serous and node-positive disease; molecular profiling allows safe de-escalation.",
    fill=PALE, color=NAVY, size=13, line=TEAL)
tb(s, 0.4, b + 1.35, 12.5, 0.5, "Trial figures are quoted from the primary reports as recalled; verify exact values against the original publications before citing.",
   size=10, color=GREY, italic=True)

# ------------------------------------------------------------------ 17 ADVANCED / RECURRENT
s = new_slide("Advanced and Recurrent Disease: Systemic Therapy", "ESGO-ESTRO-ESP 2025; KEYNOTE-775, RUBY, NRG-GY018, DUO-E")
box(s, 0.4, 1.2, 7.4, 0.7, "Stage III-IV or recurrent EC: MDT review, biopsy relapse, repeat MMR / p53 / POLE / ER / HER2", fill=NAVY, size=12, bold=None)
bx = [(0.4, "Resectable or localised:\nsurgery to no residual disease +/- RT; vaginal relapse: EBRT + brachytherapy", TEAL),
      (2.925, "Unresectable or disseminated:\nMMR-guided chemo-immunotherapy", MAG),
      (5.45, "Low-grade, ER+, low volume or slow:\nendocrine therapy (progestin, letrozole)", SLATE)]
for x, t_, c_ in bx:
    box(s, x, 2.25, 2.35, 1.2, t_, fill=c_, size=11, bold=None)
    arrow(s, x + 1.17, 1.9, x + 1.17, 2.25)
box(s, 0.4, 3.9, 3.6, 1.45, "MMRd: carboplatin-paclitaxel + dostarlimab or durvalumab (or pembrolizumab); ICI alone is an option", fill=ORANGE, size=11, bold=None)
box(s, 4.2, 3.9, 3.6, 1.45, "pMMR / non-MMRd: carboplatin-paclitaxel + ICI (dostarlimab, durvalumab +/- olaparib, pembrolizumab)", fill=NAVY, size=11, bold=None)
arrow(s, 4.1, 3.45, 2.2, 3.9); arrow(s, 4.1, 3.45, 6.0, 3.9)
box(s, 0.4, 5.7, 7.4, 1.2,
    "After progression: MMRd, ICI-naive: dostarlimab or pembrolizumab. Non-MMRd: pembrolizumab + lenvatinib (I, A). "
    "HER2 3+: carboplatin-paclitaxel + trastuzumab. Others: doxorubicin, weekly paclitaxel, platinum, endocrine. Palliative RT and supportive care.",
    fill=LIGHT, color=DARK, size=11, line=NAVY)
arrow(s, 4.1, 5.35, 4.1, 5.7)
rows = [["Trial", "Setting", "Key result"],
        ["KEYNOTE-775", "2L: pembrolizumab + lenvatinib vs chemo", "Better PFS and OS (OS HR about 0.65)"],
        ["RUBY", "1L: + dostarlimab", "PFS HR about 0.28 in dMMR; OS benefit overall"],
        ["NRG-GY018", "1L: + pembrolizumab", "PFS HR about 0.30 dMMR, 0.54 pMMR"],
        ["DUO-E", "1L: + durvalumab +/- olaparib", "PFS gain in dMMR; olaparib adds in pMMR"]]
b = table(s, 8.1, 1.25, [1.4, 1.8, 1.65], rows, size=10)
tb(s, 8.1, b + 0.15, 4.85, 1.2, "Values approximate (primary reports). ICI approvals and reimbursement differ by country and label; confirm locally.",
   size=10, color=GREY, italic=True)

# ------------------------------------------------------------------ 18 SPECIAL SITUATIONS
s = new_slide("Special Situations", "ESGO/ESHRE/ESGE fertility-sparing guideline 2023; Berek & Novak's Gynecology; PMID 39878274 (2025 systematic review)")
cards = [("Fertility-sparing treatment", TEAL, [
            "Selected: young, grade 1 endometrioid, stage IA on MRI (no deep invasion), no extrauterine disease, strong wish for fertility",
            "Counselling on risks; hysteroscopic resection of lesion",
            "Megestrol acetate or MPA and/or LNG-IUS, GnRH analogue +/- ",
            "Biopsy every 3-6 months; if complete response, pursue pregnancy early (ART)",
            "Hysterectomy after childbearing or if no response by about 6-12 months",
            "Molecular profile (POLE, MMR, p53) predicts response (2025 meta-analysis)"]),
         ("Medically unfit", ORANGE, [
            "Vaginal hysterectomy + BSO if feasible",
            "Definitive radiotherapy (EBRT + brachytherapy) when surgery is contraindicated",
            "Progestin or LNG-IUS as palliative or bridging option",
            "Elderly: assess frailty; tailor adjuvant treatment"]),
         ("Incidental finding after hysterectomy", MAG, [
            "Review pathology and complete molecular profile",
            "Imaging (MRI / CT) to exclude residual disease",
            "Low risk: observe",
            "Not low risk: nodal assessment or adjuvant therapy per MDT; re-surgery for serous / carcinosarcoma with omentectomy if it changes treatment"])]
x = 0.4
for hd, col, items in cards:
    box(s, x, 1.25, 4.05, 0.55, hd, fill=col, size=14, bold=True)
    bullets(s, x, 1.9, 4.05, 5.0, items, size=12, space=5)
    x += 4.225

# ------------------------------------------------------------------ 19 FOLLOW-UP
s = new_slide("Follow-up and Recurrence", "ESGO-ESTRO-ESP 2025; Berek & Novak's Gynecology. Schedules vary by centre; follow local protocol")
rows = [["Item", "Recommendation"],
        ["Low / intermediate risk", "Clinical review about every 6 months for 3 years, then yearly to 5 years"],
        ["High-intermediate / high risk", "Review every 3-4 months for the first 2-3 years, then 6-monthly to 5 years"],
        ["Each visit", "Symptom review, pelvic and vaginal examination, toxicity and quality of life"],
        ["Tests", "Imaging only if symptoms or findings suggest relapse; routine CA-125 is not recommended"],
        ["Support", "Weight loss, exercise, diabetes control, vaginal dilators, sexual health; HRT may be considered in low-risk disease"]]
b = table(s, 0.4, 1.25, [2.9, 4.0], rows, size=11)
rows = [["Recurrence", "Management"],
        ["Isolated vaginal", "EBRT + brachytherapy if RT-naive; surgery or brachytherapy if irradiated"],
        ["Isolated pelvic or nodal", "Surgery (exenteration in selected) and/or RT; systemic therapy"],
        ["Distant or multiple", "Systemic therapy per MMR status (slide 17); palliative RT"],
        ["Low-grade ER+ slow", "Endocrine therapy"]]
table(s, 7.6, 1.25, [1.8, 3.5], rows, size=11)
box(s, 0.4, b + 0.25, 12.5, 0.45, "Prognosis (5-year survival by FIGO stage, approximate)", fill=MAG, size=14, bold=True)
rows = [["Stage I", "Stage II", "Stage III", "Stage IV"], ["About 90%", "About 70-80%", "About 50-60%", "About 15-25%"]]
table(s, 0.4, b + 0.8, [3.125, 3.125, 3.125, 3.125], rows, size=14, first_bold=False)

# ------------------------------------------------------------------ 20 SUMMARY
s = new_slide("Key Takeaways and References")
bullets(s, 0.4, 1.2, 7.4, 5.7, [
    "Postmenopausal bleeding mandates endometrial sampling; TVUS above 4-5 mm needs biopsy.",
    "MRI defines myometrial and cervical invasion; CT or PET-CT for high-risk or advanced disease.",
    "FIGO 2023 integrates histotype, LVSI and molecular class; report with suffix m.",
    "All tumours need POLE, MMR, p53 (and ER) testing; MMRd tumours need Lynch triage.",
    "Standard surgery: minimally invasive hysterectomy + BSO + sentinel node; omentectomy for serous-type tumours.",
    "Adjuvant therapy follows integrated risk: observe (low), VBT (intermediate), EBRT (high-intermediate), chemoradiotherapy (high).",
    "Advanced disease: carboplatin-paclitaxel with immunotherapy; pembrolizumab + lenvatinib after chemotherapy; endocrine therapy for slow ER+ disease.",
    "Fertility-sparing hormonal therapy is only for carefully selected grade 1 stage IA disease.",
], size=14, space=6)
box(s, 8.1, 1.2, 4.85, 0.45, "References", fill=MAG, size=14, bold=True)
bullets(s, 8.1, 1.75, 4.85, 5.2, [
    "Concin N et al. ESGO-ESTRO-ESP guidelines for endometrial carcinoma: update 2025. Lancet Oncol 2025 (PMID 40744042).",
    "Berek JS et al. FIGO staging of endometrial cancer 2023. Int J Gynaecol Obstet 2023.",
    "Berek & Novak's Gynecology.",
    "Goldman-Cecil Medicine, Ch. 184.",
    "Robbins Pathologic Basis of Disease.",
    "Grainger & Allison's Diagnostic Radiology, Ch. 34.",
    "Recent reviews: PMIDs 39878274, 39839791, 38578538 (molecular classification).",
], size=11, space=4)

prs.save("/tmp/workspace/endometrial-ppt/Endometrial_Carcinoma.pptx")
print("saved", state["n"], "slides")
Running Command

cd /tmp/workspace/endometrial-ppt && python build.py

Running Command

cd /tmp/workspace/endometrial-ppt && python - <<'E' import re s=open('build.py').read() s=s.replace('"Megestrol acetate or MPA and/or LNG-IUS, GnRH analogue +/- ",','"Megestrol acetate or MPA and/or LNG-IUS",') old='''box(s, 0.5, 3.6, 3.7, 3.15, "If Lynch syndrome is confirmed", fill=PALE, color=NAVY, size=12, bold=True, line=TEAL)''' new='''box(s, 0.5, 3.6, 3.7, 3.15, "", fill=PALE, color=NAVY, size=12, line=TEAL) box(s, 0.5, 3.6, 3.7, 0.45, "If Lynch syndrome is confirmed", fill=TEAL, size=12, bold=True)''' assert old in s s=s.replace(old,new) open('build.py','w').write(s) E python build.py >/dev/null && python - <<'E' import math from pptx import Presentation from pptx.util import Emu p=Presentation('/tmp/workspace/endometrial-ppt/Endometrial_Carcinoma.pptx') for i,sl in enumerate(p.slides,1): for sh in sl.shapes: if sh.has_text_frame and sh.text_frame.text.strip(): w=sh.width/914400-0.2; h=sh.height/914400 tot=0 for para in sh.text_frame.paragraphs: if not para.runs: continue sz=para.runs[0].font.size.pt cpl=max(3,w/(0.49*sz/72)) n=math.ceil(len(para.text)/cpl) sa=(para.space_after.pt if para.space_after else 0) tot+=n*sz*1.2/72+sa/72 if tot>h+0.05: print(i,round(tot,2),'>',round(h,2),sh.text_frame.text[:50].replace('\n',' | ')) E

Running Command

ls -la /tmp/workspace/endometrial-ppt/*.pptx

I've built a 20-slide deck on endometrial carcinoma covering investigations, staging and management. I couldn't render the slides to images here, so I haven't seen them. I only ran an automated check for text overflow, which found none. Please flip through it once in PowerPoint for layout.

Endometrial Carcinoma

Presentation · PPTX

Slide contents
  1. Title
  2. Epidemiology and risk factors, with a table of type 1 versus type 2 cancers
  3. Pathology: a histotype table and the items a pathology report must include
  4. Molecular classification (POLEmut, MMRd, NSMP, p53abn), with a flowchart of the testing order
  5. Presentation and diagnostic pathway (flowchart), plus clinical assessment and pitfalls
  6. Investigations table: tissue, biomarkers, imaging, labs, genetics and fitness
  7. MRI in local staging, with two MRI images and a table linking findings to stage
  8. Lynch syndrome screening (flowchart) and risk-reducing surgery
  9. FIGO 2023 staging, stages I and II (table)
  10. FIGO 2023 staging, stages III and IV (table), plus what changed from 2009
  11. ESGO-ESTRO-ESP 2025 risk groups: low, intermediate, high-intermediate, high and uncertain (colour-coded table)
  12. Management overview (flowchart)
  13. Surgery (table)
  14. Sentinel lymph node algorithm (flowchart) and nodal result categories
  15. Adjuvant therapy by risk group, with radiotherapy and chemotherapy doses
  16. Key adjuvant trials (PORTEC-1, 2, 3 and 4a, GOG-258, RUBY)
  17. Advanced and recurrent disease: systemic therapy flowchart and immunotherapy trial table
  18. Special situations: fertility-sparing treatment, medically unfit patients, incidental finding after hysterectomy
  19. Follow-up, recurrence management and approximate 5-year survival by stage
  20. Key takeaways and references
Sources
  • Staging and risk groups follow the FIGO 2023 system and the ESGO-ESTRO-ESP 2025 guideline.
  • Epidemiology, pathology, the Lynch syndrome material, imaging and surgery draw on the Berek & Novak, Goldman-Cecil, Robbins and Grainger & Allison textbooks.
  • A PubMed check of the last two years found three recent reviews on molecular classification. They support the molecular-first approach and don't contradict it. They are listed on the last slide (PMIDs 39878274, 39839791, 38578538).
Please verify before presenting
  • Risk-group table (slide 11): I simplified it because I could only read part of the guideline's source figure. Check the edge cases against Figure 3 of the 2025 guideline.
  • Trial numbers (slides 16 and 17): the hazard ratios and survival figures are from memory of the primary reports. They are marked as approximate on the slides, so check them against the papers before citing.
  • Follow-up schedules and the 5-year survival figures (slide 19): these are typical values, not taken from the guideline. Replace them with your local protocol.
  • Slide 5: the statement that atypical hyperplasia carries about a 30-40% risk of coexisting carcinoma is from memory, not from a source I retrieved.
  • Immunotherapy (slide 17): approvals and reimbursement differ by country.
I can adjust the design, trim any slide, or add speaker notes if you want.

help me generate a presentation for Endometrial carcinoma Investigations staging and management/treatment 15-20 slides, in detail with tables, images and flowcharts wherever necessary

Reading File
Searching Images

endometrioid adenocarcinoma histology H&E glands

Searching Images

hysterectomy specimen gross endometrial carcinoma opened uterus tumor

Gross pathology image of a hysterectomy specimen from a patient with endometrial carcinoma. The uterus is opened along its longitudinal axis to reveal the endometrial cavity and adjacent myometrium. There are two polypoid masses projecting into the endometrial lumen, consisting of tan-pink, friable tissue with irregular surfaces and areas of hemorrhage. The masses distort the endometrial lining and extend to the myometrial interface in places. The surrounding myometrium shows patchy softness and whitened areas indicating invasion; some regions appear enlarged and edematous. The upper and lower uterine segments display diffuse involvement in this case, supporting a pattern of focal exophytic growth with variable depth of invasion. Notable features include frond-like papillary projections and irregular glandular architecture suggestive of endometrioid adenocarcinoma; however, gross exam cannot confirm histologic subtype. The specimen is consistent with endometrial carcinoma, a malignant tumor of the endometrium, which may present with abnormal uterine bleeding and progressive enlargement. This gross image demonstrates polypoid growth projecting into the cavity and potential myometrial infiltration, both important for staging (FIGO) and prognosis. This photograph is useful for medical education, radiology-pathology correlation, and surgical pathology review to teach recognition of endometrial cancer gross morphology, differential diagnoses (polyp, benign hyperplasia, sarcoma), and the relationship between tumor bulk and uterine enlargement.

Gross pathology image of a hysterectomy specimen from a patient with endometrial carcinoma. The uterus is opened along its longitudinal axis to reveal the endometrial cavity and adjacent myometrium. There are two polypoid masses projecting into the endometrial lumen, consisting of tan-pink, friable tissue with irregular surfaces and areas of hemorrhage. The masses distort the endometrial lining and extend to the myometrial interface in places. The surrounding myometrium shows patchy softness and whitened areas indicating invasion; some regions appear enlarged and edematous. The upper and lower uterine segments display diffuse involvement in this case, supporting a pattern of focal exophytic growth with variable depth of invasion. Notable features include frond-like papillary projections and irregular glandular architecture suggestive of endometrioid adenocarcinoma; however, gross exam cannot confirm histologic subtype. The specimen is consistent with endometrial carcinoma, a malignant tumor of the endometrium, which may present with abnormal uterine bleeding and progressive enlargement. This gross image demonstrates polypoid growth projecting into the cavity and potential myometrial infiltration, both important for staging (FIGO) and prognosis. This photograph is useful for medical education, radiology-pathology correlation, and surgical pathology review to teach recognition of endometrial cancer gross morphology, differential diagnoses (polyp, benign hyperplasia, sarcoma), and the relationship between tumor bulk and uterine enlargement.

Searching Images

serous endometrial carcinoma papillary p53 immunohistochemistry

This is a histopathology image of endometrial tissue demonstrating papillary serous carcinoma, a high‑grade variant of endometrial cancer. The specimen shows endometrial glandular epithelium with papillary fronds and a conspicuous papillary architecture with fibrovascular cores, lined by markedly atypical serous carcinoma cells. Nuclear features include marked pleomorphism, enlarged nuclei, conspicuous nucleoli, increased mitotic activity, and frequent apoptotic bodies. A focal necrotic zone is present within the tumor epithelium, with eosinophilic debris and ghost outlines at the base. The lesion often recapitulates serous histology seen in ovarian or fallopian tube serous carcinomas and may coexists with background atrophic or proliferative endometrium. Psammoma bodies may be present. The image demonstrates high‑grade cytology, with p53‑altered phenotype on immunohistochemistry (not shown here), and aggressive behavior with early invasion into the myometrium. Clinical context links to prior pelvic radiation for cervical cancer, long‑term tamoxifen exposure, BRCA1 mutation, and breast carcinoma. Pathologic diagnosis correlates with history and confirms endometrial serous carcinoma with necrosis focus; prognosis is poorer than endometrioid types, requiring comprehensive surgical staging, adjuvant chemotherapy, radiotherapy, and molecular profiling for targeted therapy considerations. This histology image is educational for gynecologic oncology, pathology residents, and medical students. Useful for differential diagnosis and prognosis discussions.

This is a histopathology image of endometrial tissue demonstrating papillary serous carcinoma, a high‑grade variant of endometrial cancer. The specimen shows endometrial glandular epithelium with papillary fronds and a conspicuous papillary architecture with fibrovascular cores, lined by markedly atypical serous carcinoma cells. Nuclear features include marked pleomorphism, enlarged nuclei, conspicuous nucleoli, increased mitotic activity, and frequent apoptotic bodies. A focal necrotic zone is present within the tumor epithelium, with eosinophilic debris and ghost outlines at the base. The lesion often recapitulates serous histology seen in ovarian or fallopian tube serous carcinomas and may coexists with background atrophic or proliferative endometrium. Psammoma bodies may be present. The image demonstrates high‑grade cytology, with p53‑altered phenotype on immunohistochemistry (not shown here), and aggressive behavior with early invasion into the myometrium. Clinical context links to prior pelvic radiation for cervical cancer, long‑term tamoxifen exposure, BRCA1 mutation, and breast carcinoma. Pathologic diagnosis correlates with history and confirms endometrial serous carcinoma with necrosis focus; prognosis is poorer than endometrioid types, requiring comprehensive surgical staging, adjuvant chemotherapy, radiotherapy, and molecular profiling for targeted therapy considerations. This histology image is educational for gynecologic oncology, pathology residents, and medical students. Useful for differential diagnosis and prognosis discussions.

The image shows a high-power histologic section of endometrial tissue displaying serous carcinoma with complex papillary architecture. Prepared for bright-field light microscopy and stained with hematoxylin and eosin, the slide reveals numerous papillary fronds with fibrovascular cores projecting into gland-like spaces. Neoplastic cells exhibit marked nuclear pleomorphism, enlarged hyperchromatic nuclei with prominent nucleoli, and abundant cytoplasm arranged in cohesive, stratified sheets along the papillary stalks. Mitotic figures are frequent and necrosis may be present at the periphery. Psammoma bodies are variably seen within the papillary cores. Invasion into the surrounding stroma and potential myometrial penetration are suggested in the field. This morphological pattern—high-grade serous carcinoma of the endometrium—is commonly associated with p53 mutations and aggressive behavior; it may rarely coexist with endometrioid carcinoma of the uterus or with serous carcinoma of the ovary. Differential considerations include high-grade endometrioid carcinoma, clear cell carcinoma, and metastatic ovarian serous carcinoma. Immunohistochemistry (e.g., p53 overexpression, WT1 negativity, and ER/PR status) assists confirmation. Clinically, these findings portend a poor prognosis and justify comprehensive surgical staging with adjuvant platinum-based chemotherapy. The image serves educational, diagnostic quality assurance, and research applications in gynecologic oncology. This micrograph aids pathologists in pattern recognition, correlates with gross pathology, and strengthens education in gynecologic cancer pathology.

The image shows a high-power histologic section of endometrial tissue displaying serous carcinoma with complex papillary architecture. Prepared for bright-field light microscopy and stained with hematoxylin and eosin, the slide reveals numerous papillary fronds with fibrovascular cores projecting into gland-like spaces. Neoplastic cells exhibit marked nuclear pleomorphism, enlarged hyperchromatic nuclei with prominent nucleoli, and abundant cytoplasm arranged in cohesive, stratified sheets along the papillary stalks. Mitotic figures are frequent and necrosis may be present at the periphery. Psammoma bodies are variably seen within the papillary cores. Invasion into the surrounding stroma and potential myometrial penetration are suggested in the field. This morphological pattern—high-grade serous carcinoma of the endometrium—is commonly associated with p53 mutations and aggressive behavior; it may rarely coexist with endometrioid carcinoma of the uterus or with serous carcinoma of the ovary. Differential considerations include high-grade endometrioid carcinoma, clear cell carcinoma, and metastatic ovarian serous carcinoma. Immunohistochemistry (e.g., p53 overexpression, WT1 negativity, and ER/PR status) assists confirmation. Clinically, these findings portend a poor prognosis and justify comprehensive surgical staging with adjuvant platinum-based chemotherapy. The image serves educational, diagnostic quality assurance, and research applications in gynecologic oncology. This micrograph aids pathologists in pattern recognition, correlates with gross pathology, and strengthens education in gynecologic cancer pathology.

Searching Images

transvaginal ultrasound thickened endometrium postmenopausal endometrial cancer

Searching Images

FIGO staging endometrial cancer diagram uterus stages

Searching Images

sentinel lymph node indocyanine green near-infrared endometrial cancer

This figure presents two intraoperative laparoscopic photographs (A and B) demonstrating fluorescence-guided sentinel lymph node (SLN) mapping in patients with cervical and endometrial cancer. The images illustrate the use of Indocyanine Green (ICG) under different near-infrared fluorescence imaging systems. Image A, captured using a Karl Storz fluorescence camera, shows a clear, well-illuminated surgical field where a small, discrete sentinel lymph node emits a bright green fluorescence. Fine fluorescent lymphatic channels are visible as linear green traces across the reddish-brown pelvic tissues. Metallic laparoscopic instruments are seen manipulating the tissue. Image B, captured with a Stryker Pinpoint fluorescence imaging system, shows a cluster-like green fluorescent area representing a sentinel node. This image displays a different color profile with a distinct purplish hue and more yellowish-brown tissue tones. These visuals emphasize the role of hybrid tracer technology (combining ICG with radiocolloids) for enhanced visual localization of SLNs during minimally invasive oncological surgery, facilitating precise nodal dissection.

This figure presents two intraoperative laparoscopic photographs (A and B) demonstrating fluorescence-guided sentinel lymph node (SLN) mapping in patients with cervical and endometrial cancer. The images illustrate the use of Indocyanine Green (ICG) under different near-infrared fluorescence imaging systems. Image A, captured using a Karl Storz fluorescence camera, shows a clear, well-illuminated surgical field where a small, discrete sentinel lymph node emits a bright green fluorescence. Fine fluorescent lymphatic channels are visible as linear green traces across the reddish-brown pelvic tissues. Metallic laparoscopic instruments are seen manipulating the tissue. Image B, captured with a Stryker Pinpoint fluorescence imaging system, shows a cluster-like green fluorescent area representing a sentinel node. This image displays a different color profile with a distinct purplish hue and more yellowish-brown tissue tones. These visuals emphasize the role of hybrid tracer technology (combining ICG with radiocolloids) for enhanced visual localization of SLNs during minimally invasive oncological surgery, facilitating precise nodal dissection.

Educational panel illustrating sentinel lymph node (SLN) mapping in gynecological oncology. Figure A shows an intraoperative clinical photograph of a surgical field using Indocyanine Green (ICG) fluorescence. Bright green dye identifies lymphatic vessels and SLNs against yellowish fatty tissue, with inset frames demonstrating the near-infrared fluorescence imaging and standard white light views. Figure B is an anatomical diagram showing the common lymphatic drainage pathways of endometrial cancer. It labels key lymph node regions: para-aortic (along the aorta/vena cava), common iliac, presacral, external iliac, internal iliac, and obturator nodes. Green arrows represent the flow from the uterus towards these pelvic and para-aortic stations. Figure C provides a schematic of cervical injection sites for SLN mapping, demonstrating three patterns: two-point (3 and 9 o'clock) or four-point (quadrant) tracer administration. The content illustrates current surgical protocols for lymphatic staging in endometrial and cervical cancer management.

Educational panel illustrating sentinel lymph node (SLN) mapping in gynecological oncology. Figure A shows an intraoperative clinical photograph of a surgical field using Indocyanine Green (ICG) fluorescence. Bright green dye identifies lymphatic vessels and SLNs against yellowish fatty tissue, with inset frames demonstrating the near-infrared fluorescence imaging and standard white light views. Figure B is an anatomical diagram showing the common lymphatic drainage pathways of endometrial cancer. It labels key lymph node regions: para-aortic (along the aorta/vena cava), common iliac, presacral, external iliac, internal iliac, and obturator nodes. Green arrows represent the flow from the uterus towards these pelvic and para-aortic stations. Figure C provides a schematic of cervical injection sites for SLN mapping, demonstrating three patterns: two-point (3 and 9 o'clock) or four-point (quadrant) tracer administration. The content illustrates current surgical protocols for lymphatic staging in endometrial and cervical cancer management.

Two-panel laparoscopic clinical photograph (A and B) demonstrating sentinel lymph node (SLN) mapping in the pelvic retroperitoneum using indocyanine green (ICG) fluorescence. Panel A shows parametrial lymphatic chains (white arrow) visualized with bright green fluorescent tracer leading toward a right external iliac sentinel lymph node (asterisk). The right ureter (red arrow) is visible in close anatomical proximity. Panel B displays the same surgical field after further dissection of the retroperitoneal space, clearly isolating the fluorescent SLN (asterisk). Key vascular landmarks are identified: the superior vesicle artery (white arrow), the right external iliac vein (red arrow), and the right external iliac artery (blue arrow). This clinical imaging illustrates the use of near-infrared fluorescence for real-time intraoperative lymphatic mapping, essential for staging gynecological malignancies such as endometrial cancer. The high-intensity green signal confirms tracer accumulation in the primary drainage node, distinguishing it from surrounding fatty and vascular tissues.

Two-panel laparoscopic clinical photograph (A and B) demonstrating sentinel lymph node (SLN) mapping in the pelvic retroperitoneum using indocyanine green (ICG) fluorescence. Panel A shows parametrial lymphatic chains (white arrow) visualized with bright green fluorescent tracer leading toward a right external iliac sentinel lymph node (asterisk). The right ureter (red arrow) is visible in close anatomical proximity. Panel B displays the same surgical field after further dissection of the retroperitoneal space, clearly isolating the fluorescent SLN (asterisk). Key vascular landmarks are identified: the superior vesicle artery (white arrow), the right external iliac vein (red arrow), and the right external iliac artery (blue arrow). This clinical imaging illustrates the use of near-infrared fluorescence for real-time intraoperative lymphatic mapping, essential for staging gynecological malignancies such as endometrial cancer. The high-intensity green signal confirms tracer accumulation in the primary drainage node, distinguishing it from surrounding fatty and vascular tissues.

An intraoperative clinical photograph showing a robotic-assisted laparoscopic sentinel lymph node dissection, likely in the context of gynecological oncology (e.g., endometrial cancer). The image displays a high-magnification view of the pelvic surgical field. A sentinel lymph node is visible as an irregular, pale yellowish-tan, lobulated mass being retracted by robotic fenestrated bipolar forceps. The node's surface shows minor areas of hemorrhagic discoloration. Adjacent to the node, the surgical field reveals retroperitoneal connective tissue, adipose tissue, and small blood vessels. A second robotic instrument, identified by the interface as monopolar curved scissors, is positioned near the node to perform sharp dissection. The blue-tinted lighting suggests the potential use of near-infrared fluorescence (FireFly function) for identifying nodes previously injected with indocyanine green (ICG). This visual illustrates the surgical technique for targeted lymphadenectomy aimed at reducing postoperative morbidity such as lymphedema while ensuring accurate oncological staging.

An intraoperative clinical photograph showing a robotic-assisted laparoscopic sentinel lymph node dissection, likely in the context of gynecological oncology (e.g., endometrial cancer). The image displays a high-magnification view of the pelvic surgical field. A sentinel lymph node is visible as an irregular, pale yellowish-tan, lobulated mass being retracted by robotic fenestrated bipolar forceps. The node's surface shows minor areas of hemorrhagic discoloration. Adjacent to the node, the surgical field reveals retroperitoneal connective tissue, adipose tissue, and small blood vessels. A second robotic instrument, identified by the interface as monopolar curved scissors, is positioned near the node to perform sharp dissection. The blue-tinted lighting suggests the potential use of near-infrared fluorescence (FireFly function) for identifying nodes previously injected with indocyanine green (ICG). This visual illustrates the surgical technique for targeted lymphadenectomy aimed at reducing postoperative morbidity such as lymphedema while ensuring accurate oncological staging.

Searching Images

mismatch repair deficiency immunohistochemistry loss MLH1 PMS2 endometrial carcinoma

Immunohistochemistry for mismatch repair proteins performed on a cutaneous sebaceous carcinoma from a patient with Muir-Torre syndrome. The section demonstrates intact nuclear PMS2 expression (brown nuclear staining) with retained MLH1 positivity, while MSH2 and MSH6 show loss of nuclear staining. The lesion originates in the skin, consisting of malignant sebaceous cells with lipid-rich, vacuolated cytoplasm forming lobules within the dermis; nuclei are pleomorphic with mitotic activity. This mismatch repair protein pattern—MSH2/MSH6 deficiency with preserved MLH1/PMS2—is characteristic of Muir-Torre/Lynch syndromes and indicates a germline mismatch repair gene mutation, most commonly MSH2. The immunostaining pattern helps distinguish sporadic sebaceous carcinoma from hereditary cancer syndromes, guiding genetic counseling and testing. Clinically, identifying MMR deficiency informs risk assessment for colorectal, endometrial, and other cancers, and may alter management including surveillance intervals and consideration of immunotherapy in advanced disease. The image emphasizes the value of IHC panels in cutaneous neoplasms for syndrome delineation. In educational contexts, this image supports learning about analytic interpretation of MMR protein expression, correlation with MSH2 genetic status, and the role of Muir-Torre in cutaneous adnexal tumors. Correlative findings with genetic testing affect family risk assessment; the pattern suits MSH2-driven Lynch/Muir-Torre profiles. Such IHC panels guide targeted management, surveillance strategies, and eligibility for novel therapies.

Immunohistochemistry for mismatch repair proteins performed on a cutaneous sebaceous carcinoma from a patient with Muir-Torre syndrome. The section demonstrates intact nuclear PMS2 expression (brown nuclear staining) with retained MLH1 positivity, while MSH2 and MSH6 show loss of nuclear staining. The lesion originates in the skin, consisting of malignant sebaceous cells with lipid-rich, vacuolated cytoplasm forming lobules within the dermis; nuclei are pleomorphic with mitotic activity. This mismatch repair protein pattern—MSH2/MSH6 deficiency with preserved MLH1/PMS2—is characteristic of Muir-Torre/Lynch syndromes and indicates a germline mismatch repair gene mutation, most commonly MSH2. The immunostaining pattern helps distinguish sporadic sebaceous carcinoma from hereditary cancer syndromes, guiding genetic counseling and testing. Clinically, identifying MMR deficiency informs risk assessment for colorectal, endometrial, and other cancers, and may alter management including surveillance intervals and consideration of immunotherapy in advanced disease. The image emphasizes the value of IHC panels in cutaneous neoplasms for syndrome delineation. In educational contexts, this image supports learning about analytic interpretation of MMR protein expression, correlation with MSH2 genetic status, and the role of Muir-Torre in cutaneous adnexal tumors. Correlative findings with genetic testing affect family risk assessment; the pattern suits MSH2-driven Lynch/Muir-Torre profiles. Such IHC panels guide targeted management, surveillance strategies, and eligibility for novel therapies.

Searching Images

endometrioid adenocarcinoma histology back-to-back glands

This is a hematoxylin and eosin stained histopathology slide of a gynecologic tumor, most consistent with an endometrioid-type neoplasm of endometrium, displaying classic glandular architecture embedded in dense fibrous stroma. The malignant-appearing glands are lined by cuboidal to columnar epithelium with orderly to back-to-back contours; some glands show mild to moderate nuclear atypia and stratification. A conspicuous feature is the presence of squamous morules—small, rounded aggregates of squamous-differentiated cells within the tumor epithelium—distributed among the stroma. The surrounding stroma is relatively fibrous, with limited inflammatory infiltrate. The overall pattern supports endometrioid differentiation, and the combination of gland formation with morular squamous differentiation is characteristic of endometrial adenocarcinoma with squamous features or a related endometrioid tumor. Clinically, such histology informs diagnosis, grading, and potential assessment of myometrial invasion, which impacts staging and treatment planning (surgery with possible adjuvant therapy). This image is relevant for education on endometrial carcinomas, pathology rotation modules, and research into tumor morphologies, including morule formation and squamous differentiation in endometrioid cancers. Use cases include pattern recognition training, differential diagnosis exercises, and correlation with radiologic findings. Terminology: endometrioid adenocarcinoma; morule formation; squamous differentiation; fibrous stroma; cuboidal epithelium; columnar epithelium; histologic grading. Images of this pattern support educational objectives in gynecologic pathology.

This is a hematoxylin and eosin stained histopathology slide of a gynecologic tumor, most consistent with an endometrioid-type neoplasm of endometrium, displaying classic glandular architecture embedded in dense fibrous stroma. The malignant-appearing glands are lined by cuboidal to columnar epithelium with orderly to back-to-back contours; some glands show mild to moderate nuclear atypia and stratification. A conspicuous feature is the presence of squamous morules—small, rounded aggregates of squamous-differentiated cells within the tumor epithelium—distributed among the stroma. The surrounding stroma is relatively fibrous, with limited inflammatory infiltrate. The overall pattern supports endometrioid differentiation, and the combination of gland formation with morular squamous differentiation is characteristic of endometrial adenocarcinoma with squamous features or a related endometrioid tumor. Clinically, such histology informs diagnosis, grading, and potential assessment of myometrial invasion, which impacts staging and treatment planning (surgery with possible adjuvant therapy). This image is relevant for education on endometrial carcinomas, pathology rotation modules, and research into tumor morphologies, including morule formation and squamous differentiation in endometrioid cancers. Use cases include pattern recognition training, differential diagnosis exercises, and correlation with radiologic findings. Terminology: endometrioid adenocarcinoma; morule formation; squamous differentiation; fibrous stroma; cuboidal epithelium; columnar epithelium; histologic grading. Images of this pattern support educational objectives in gynecologic pathology.

Imaging Modality: Histopathology of a vaginal tissue specimen stained with Hematoxylin and Eosin (H&E) demonstrating a well-differentiated endometrioid adenocarcinoma. Anatomical context: vagina (genitourinary/reproductive tract), with gland-forming malignant epithelium invading the stromal compartment; background endometriosis characterized by ectopic endometrial glands embedded in fibromuscular stroma. Morphology: tubular to tubulocystic glands with back-to-back arrangement, cribriform clusters, and luminal secretions; mild to moderate nuclear atypia, uniform columnar cells, minimal mitotic activity, and preserved polarity in well-differentiated glands. Growth pattern: infiltrative front with desmoplastic response limited compared to higher-grade lesions. Immunophenotype not shown, but endometrioid histology often expresses ER/PR; p53 typically wild-type in grade 1. Clinical significance: confirms primary vaginal endometrioid adenocarcinoma arising in an endometriotic milieu; indicates low-grade tumor with favorable prognosis relative to higher-grade cancers; important for staging, surgical planning, and adjuvant therapy decisions. Differential considerations include benign endometrial glands in endometriosis, endometrial hyperplasia with invasion, and other vaginal adenocarcinomas (clear cell, serous). Relevance: educative example of low-grade ductal/glandular differentiation, endometriosis-associated carcinogenesis, and the necessity of correlating with uterine pathology to exclude a uterovaginal primary. This image is suitable for teaching histopathology, pathology, gynecologic oncology, and diagnostic training. Clinical integration includes confirming primary source, staging, prognosis estimation, and guiding therapy, and follow-up.

Imaging Modality: Histopathology of a vaginal tissue specimen stained with Hematoxylin and Eosin (H&E) demonstrating a well-differentiated endometrioid adenocarcinoma. Anatomical context: vagina (genitourinary/reproductive tract), with gland-forming malignant epithelium invading the stromal compartment; background endometriosis characterized by ectopic endometrial glands embedded in fibromuscular stroma. Morphology: tubular to tubulocystic glands with back-to-back arrangement, cribriform clusters, and luminal secretions; mild to moderate nuclear atypia, uniform columnar cells, minimal mitotic activity, and preserved polarity in well-differentiated glands. Growth pattern: infiltrative front with desmoplastic response limited compared to higher-grade lesions. Immunophenotype not shown, but endometrioid histology often expresses ER/PR; p53 typically wild-type in grade 1. Clinical significance: confirms primary vaginal endometrioid adenocarcinoma arising in an endometriotic milieu; indicates low-grade tumor with favorable prognosis relative to higher-grade cancers; important for staging, surgical planning, and adjuvant therapy decisions. Differential considerations include benign endometrial glands in endometriosis, endometrial hyperplasia with invasion, and other vaginal adenocarcinomas (clear cell, serous). Relevance: educative example of low-grade ductal/glandular differentiation, endometriosis-associated carcinogenesis, and the necessity of correlating with uterine pathology to exclude a uterovaginal primary. This image is suitable for teaching histopathology, pathology, gynecologic oncology, and diagnostic training. Clinical integration includes confirming primary source, staging, prognosis estimation, and guiding therapy, and follow-up.

This is a histopathology image (hematoxylin and eosin stained) of an ovarian mass demonstrating a well-differentiated endometrioid carcinoma. The tumor displays tightly packed, back-to-back glands with minimal stroma, lined by neat, pseudostratified columnar epithelium. Nuclei are relatively uniform, with mild to moderate hyperchromasia and rare mitotic figures, consistent with low-grade morphology. The glandular lumina are often crescentic or slit-like; there may be cribriform arrangements in places. Surrounding ovarian stroma shows focal desmoplastic reaction and focal infiltration, supporting invasion by malignant epithelial cells. The tumor shows a predominantly tubular architecture resembling endometrial glands; mucin production is limited. Overall, the morphology fits endometrioid carcinoma of ovarian origin, grade 1. Differential considerations include mucinous or serous type ovarian carcinomas, metastatic endometrial adenocarcinoma, and clear cell carcinoma; however, the glandular pattern, cytologic uniformity, and absence of significant hobnail cells or prominent papillary features favor endometrioid histology. Clinically significant because endometrioid ovarian carcinomas are often associated with endometriosis and may present at an early stage; they may be estrogen-responsive; immunohistochemistry can show PAX8 positivity and variable ER/PR expression. This image is useful for educational teaching, histopathology differential diagnosis, and radiologic-pathologic correlation. Correlation with clinical staging and management is recommended.

This is a histopathology image (hematoxylin and eosin stained) of an ovarian mass demonstrating a well-differentiated endometrioid carcinoma. The tumor displays tightly packed, back-to-back glands with minimal stroma, lined by neat, pseudostratified columnar epithelium. Nuclei are relatively uniform, with mild to moderate hyperchromasia and rare mitotic figures, consistent with low-grade morphology. The glandular lumina are often crescentic or slit-like; there may be cribriform arrangements in places. Surrounding ovarian stroma shows focal desmoplastic reaction and focal infiltration, supporting invasion by malignant epithelial cells. The tumor shows a predominantly tubular architecture resembling endometrial glands; mucin production is limited. Overall, the morphology fits endometrioid carcinoma of ovarian origin, grade 1. Differential considerations include mucinous or serous type ovarian carcinomas, metastatic endometrial adenocarcinoma, and clear cell carcinoma; however, the glandular pattern, cytologic uniformity, and absence of significant hobnail cells or prominent papillary features favor endometrioid histology. Clinically significant because endometrioid ovarian carcinomas are often associated with endometriosis and may present at an early stage; they may be estrogen-responsive; immunohistochemistry can show PAX8 positivity and variable ER/PR expression. This image is useful for educational teaching, histopathology differential diagnosis, and radiologic-pathologic correlation. Correlation with clinical staging and management is recommended.

Searching Images

hysteroscopy endometrial cancer polypoid lesion

query_images_db
query_images_db
query_images_db
Running Command

cd /tmp/workspace/endometrial-ppt && python /tmp/skills/shared/scripts/fetch_images.py \ "https://cdn.orris.care/cdss_images/Pathology_1760056804321_cad8a6dd-c3f0-4c80-b54d-190702971460.jpg" \ "https://cdn.orris.care/cdss_images/Pathology_1760057123701_befb09dc-1f1c-4a8a-8619-0c4c97785703.jpg" \ "https://cdn.orris.care/cdss_images/Pathology_1760056822551_9f3f0b9d-c118-430d-a74b-45ee728505bb.jpg" \ "https://cdn.orris.care/cdss_images/Pathology_1760056793734_7543a740-59a5-43eb-95ee-1a279993aded.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_022a4df44f374a3e11fd04b53a30c2891c308e04ffbd7796536fdd61630ff3ef.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_6c22ae4bcc81aecea1086e81494c148db5b9cac3b3fe718166a9d5f16749c624.jpg" \ "https://cdn.orris.care/cdss_images/pmc_clinical_VQA_282ea8f15fedd34e725b98feaa5e5a519791576a049d01db0ced421cfe800d5d.jpg" > assets/imgs2.json python - <<'E' import json,base64 from PIL import Image from io import BytesIO d=json.load(open('/tmp/workspace/endometrial-ppt/assets/imgs2.json')) names=['gross','endometrioid','serous','tvus','sln_panel','sln_a','sln_c'] for n,x in zip(names,d): if x['base64']: raw=base64.b64decode(x['base64'].split(',',1)[1]); open(f'/tmp/workspace/endometrial-ppt/assets/{n}.jpg','wb').write(raw) print(n,Image.open(BytesIO(raw)).size) else: print(n,x['error']) E

Loading Image
Running Command

cd /tmp/workspace/endometrial-ppt && cp build.py build_v1.py && python - <<'E' import re s=open('build.py').read() A='/tmp/workspace/endometrial-ppt/assets/' # helper helper=''' from PIL import Image as _PIL def pic(slide, name, x, y, w, h, mode="fill"): path = "/tmp/workspace/endometrial-ppt/assets/" + name iw, ih = _PIL.open(path).size if mode == "contain": r = min(w / iw, h / ih); pw, ph = iw * r, ih * r return slide.shapes.add_picture(path, Inches(x + (w - pw) / 2), Inches(y + (h - ph) / 2), Inches(pw), Inches(ph)) p = slide.shapes.add_picture(path, Inches(x), Inches(y), Inches(w), Inches(h)) tr, ir = w / h, iw / ih if ir > tr: c = (1 - tr / ir) / 2; p.crop_left = c; p.crop_right = c else: c = (1 - ir / tr) / 2; p.crop_top = c; p.crop_bottom = c p.line.color.rgb = C("C9CED6"); p.line.width = Pt(0.75) return p ''' m="# ------------------------------------------------------------------ 1 TITLE" assert m in s; s=s.replace(m,helper+m,1) # slide 3 a=s.index("b = table(s, 0.4, 1.3, [2.0, 3.3, 2.7], rows, size=12)") bidx=s.index('box(s, 8.7, 1.3, 4.25, 0.5, "Essential items') new3='''b = table(s, 0.4, 1.3, [2.0, 3.3, 2.7], rows, size=11) iy = max(b + 0.15, 4.3); iw_ = 2.6; ih_ = 1.85 caps = ["Gross: polypoid friable tumour in the opened uterus", "Endometrioid: back-to-back glands with squamous morules (H&E)", "Serous: papillary fronds, marked atypia (H&E)"] for i, (nm, cp) in enumerate(zip(["gross.jpg", "endometrioid.jpg", "serous.jpg"], caps)): pic(s, nm, 0.4 + i * (iw_ + 0.1), iy, iw_, ih_) tb(s, 0.4 + i * (iw_ + 0.1), iy + ih_ + 0.02, iw_, 0.5, cp, size=9, color=GREY, italic=True) print("slide 3 image top", iy) ''' s=s[:a]+new3+s[bidx:] s=s.replace(''' "Margins and tumour size", ], size=13, space=4)''',''' "Margins and tumour size", "Grade: low (FIGO 1-2) vs high (FIGO 3); serous, clear cell, carcinosarcoma, undifferentiated and mixed types are high grade", ], size=12, space=4)''') # slide 7 a=s.index("# ------------------------------------------------------------------ 7 MRI") bidx=s.index("# ------------------------------------------------------------------ 8 LYNCH FLOW") new7='''# ------------------------------------------------------------------ 7 IMAGING s = new_slide("Imaging: Ultrasound and MRI", "Grainger & Allison's Diagnostic Radiology (Table 34.1); images from the Orris medical image library") pic(s, "tvus.jpg", 0.4, 1.25, 3.8, 2.9) pic(s, "mri0.jpg", 4.4, 1.25, 2.9, 2.9) pic(s, "mri1.jpg", 7.5, 1.25, 4.35, 2.9) tb(s, 0.4, 4.18, 3.8, 0.7, "TVUS: thickened, heterogeneous endometrium (calliper 1.2 cm) with cystic spaces", size=10, color=GREY, italic=True) tb(s, 4.4, 4.18, 2.9, 0.7, "T2 sagittal MRI: thick endometrium, junctional zone obscured (myometrial invasion)", size=10, color=GREY, italic=True) tb(s, 7.5, 4.18, 4.35, 0.7, "Serous carcinoma FIGO IIIC1: deep invasion, cervical stromal disruption, enlarged iliac node, restricted diffusion", size=10, color=GREY, italic=True) rows = [["Intact junctional zone or under 50% invasion", "50% or more myometrial invasion", "Cervical stroma disrupted", "Serosa, adnexa, vagina, nodes, bladder or bowel"], ["Stage IA", "Stage IB", "Stage II", "Stage III-IV"]] b = table(s, 0.4, 4.95, [3.1, 3.0, 2.9, 3.5], rows, size=12, first_bold=False) bullets(s, 0.4, b + 0.12, 6.1, 1.2, [ ("Ultrasound:", "first-line for bleeding; endometrium above 4-5 mm or a focal lesion needs sampling. Expert TVUS can estimate invasion where MRI is unavailable."), ], size=11, space=2) bullets(s, 6.8, b + 0.12, 6.1, 1.2, [ ("MRI:", "myometrial depth, cervical stroma, tumour size, parametrium, pelvic nodes and brachytherapy planning. It is a surrogate; final stage is surgico-pathological. PET-CT for equivocal or recurrent disease."), ], size=11, space=2) ''' s=s[:a]+new7+s[bidx:] # slide 14 a=s.index("# ------------------------------------------------------------------ 14 SLN FLOW") bidx=s.index("# ------------------------------------------------------------------ 15 ADJUVANT") new14='''# ------------------------------------------------------------------ 14 SLN FLOW s = new_slide("Sentinel Lymph Node Algorithm", "ESGO-ESTRO-ESP 2025; FIRES trial (Berek & Novak's Gynecology); image from the Orris medical image library") box(s, 0.4, 1.3, 2.2, 0.9, "Presumed uterus-confined disease", fill=NAVY, size=12, bold=True) box(s, 2.9, 1.3, 2.7, 0.9, "Cervical injection of indocyanine green (preferred) and pelvic mapping", fill=TEAL, size=11, bold=None) box(s, 5.9, 1.3, 2.4, 0.9, "Bilateral detection?", fill=MAG, size=13, bold=True) arrow(s, 2.6, 1.75, 2.9, 1.75); arrow(s, 5.6, 1.75, 5.9, 1.75) box(s, 0.4, 2.75, 2.4, 1.3, "Suspicious or bulky nodes: remove regardless of mapping", fill=RED, size=11, bold=None) box(s, 2.95, 2.75, 2.7, 1.3, "NO: re-inject tracer; if still failed, side-specific lymphadenectomy in non-low-risk disease (low risk: MDT may omit)", fill=ORANGE, size=10, bold=None) box(s, 5.8, 2.75, 2.5, 1.3, "YES: remove sentinel nodes and ultrastage (no further lymphadenectomy)", fill=GREEN, size=11, bold=None) arrow(s, 1.5, 2.2, 1.6, 2.75); arrow(s, 6.6, 2.2, 4.3, 2.75); arrow(s, 7.1, 2.2, 7.05, 2.75) pic(s, "sln_panel.jpg", 8.6, 1.3, 4.35, 2.23, mode="contain") tb(s, 8.6, 3.55, 4.35, 0.9, "ICG fluorescence in the pelvis; lymphatic drainage of the uterus (pelvic and para-aortic stations); cervical injection at 3 and 9 o'clock or four quadrants", size=9, color=GREY, italic=True) box(s, 0.4, 4.6, 12.5, 0.45, "Nodal result and FIGO 2023 category", fill=MAG, size=14, bold=True) rows = [["Finding", "Size", "Stage / action"], ["Isolated tumour cells (ITC)", "Up to 0.2 mm", "pN0(i+); does not upstage; treat according to risk group"], ["Micrometastasis", "0.2 to 2 mm", "IIIC1i (pelvic) or IIIC2i (para-aortic)"], ["Macrometastasis", "Over 2 mm", "IIIC1ii or IIIC2ii; adjuvant chemotherapy +/- RT"]] table(s, 0.4, 5.15, [3.6, 2.3, 6.6], rows, size=12) tb(s, 0.4, 6.75, 12.5, 0.3, "Ultrastaging: serial sections at 2 or more levels with H&E and cytokeratin IHC. Lymphadenectomy after total hysterectomy is considered only if it changes treatment.", size=10, color=GREY, italic=True) ''' s=s[:a]+new14+s[bidx:] # slide 13 old="table(s, 0.4, 1.25, [2.5, 10.0], rows, size=12)" assert old in s new13='''b = table(s, 0.4, 1.25, [2.5, 10.0], rows, size=11) y0 = max(b + 0.2, 5.3) pic(s, "sln_c.jpg", 0.4, y0, 2.3, 1.55, mode="contain") pic(s, "sln_a.jpg", 2.85, y0, 3.2, 1.55, mode="contain") tb(s, 6.3, y0, 6.6, 1.55, "Minimally invasive surgery with ICG sentinel node mapping. Left: fluorescent lymphatic channel leading to a right external iliac sentinel node, ureter nearby. Right: fluorescence imaging of a sentinel node with two camera systems.", size=11, color=GREY, italic=True, anchor=MSO_ANCHOR.MIDDLE) print("slide 13 image top", y0) ''' s=s.replace(old,new13) s=s.replace('"ESGO-ESTRO-ESP 2025; Berek & Novak\'s Gynecology (laparoscopy and robotics in endometrial cancer)")','"ESGO-ESTRO-ESP 2025; Berek & Novak\'s Gynecology; images from the Orris medical image library")') open('build.py','w').write(s) E python build.py

Some of the downloaded images are WEBP files saved with a .jpg extension, which python-pptx rejects. I'll convert them all to real PNG files and rebuild.
Running Command

cd /tmp/workspace/endometrial-ppt/assets && python - <<'E' from PIL import Image import glob,os for f in glob.glob('*.jpg'): im=Image.open(f); print(f, im.format, im.size) im.convert('RGB').save(f[:-4]+'.png') E cd .. && sed -i 's/\.jpg"/.png"/g' build.py && grep -n 'assets/' build.py | head -3; python build.py

Running Command

cd /tmp/workspace/endometrial-ppt && python - <<'E' import math from pptx import Presentation p=Presentation('Endometrial_Carcinoma.pptx') npic=0 for i,sl in enumerate(p.slides,1): for sh in sl.shapes: if sh.shape_type==13: npic+=1 b=(sh.top+sh.height)/914400 if b>7.06 and sh.top/914400<7.0: print('bottom overflow',i,round(b,2),sh.name) if sh.has_text_frame and sh.text_frame.text.strip(): w=sh.width/914400-0.2; h=sh.height/914400; tot=0 for para in sh.text_frame.paragraphs: if not para.runs: continue sz=para.runs[0].font.size.pt n=math.ceil(len(para.text)/max(3,w/(0.49*sz/72))) tot+=n*sz*1.2/72+((para.space_after.pt if para.space_after else 0)/72) if tot>h+0.05: print('text',i,round(tot,2),'>',round(h,2),sh.text_frame.text[:40]) print('pictures',npic,'slides',len(p.slides)) E

Running Command

cd /tmp/workspace/endometrial-ppt && sed -i 's/bullets(s, 0.4, b + 0.12, 6.1, 1.2,/bullets(s, 0.4, b + 0.12, 6.1, 1.05,/; s/bullets(s, 6.8, b + 0.12, 6.1, 1.2,/bullets(s, 6.8, b + 0.12, 6.1, 1.05,/' build.py && python build.py | tail -1 && ls -la Endometrial_Carcinoma.pptx

I've rebuilt the 20-slide deck with real images added on top of the tables and flowcharts. I couldn't render the slides to check how they look, so please flip through it in PowerPoint. My only check was an automated one for text running off the slide.

Endometrial Carcinoma

Presentation · PPTX

What was added since the last version
  • Slide 3, pathology: a gross photo of a polypoid tumour in an opened uterus, a low-power endometrioid section (back-to-back glands, squamous morules), and a serous carcinoma section (papillary fronds, marked atypia). Each has a caption.
  • Slide 7, imaging: now covers ultrasound and MRI. It shows a transvaginal ultrasound with a thickened, heterogeneous endometrium (1.2 cm) and two MRIs: a T2 sagittal scan with the junctional zone obscured, and a serous carcinoma at FIGO IIIC1. A table links MRI findings to stage.
  • Slide 13, surgery: two intraoperative laparoscopic photos of fluorescent (ICG) sentinel node mapping.
  • Slide 14, sentinel node algorithm: the flowchart now sits beside a panel showing ICG fluorescence, uterine lymphatic drainage and cervical injection sites.
Slide order
  1. Title
  2. Epidemiology and risk factors (table)
  3. Pathology (table and images)
  4. Molecular classification (table and flowchart)
  5. Diagnostic pathway (flowchart)
  6. Investigations (table)
  7. Ultrasound and MRI (images and table)
  8. Lynch syndrome screening (flowchart)
  9. FIGO 2023 stages I and II (table)
  10. FIGO 2023 stages III and IV (table)
  11. Risk groups, ESGO-ESTRO-ESP 2025 (colour-coded table)
  12. Management overview (flowchart)
  13. Surgery (table and images)
  14. Sentinel node algorithm (flowchart, image and table)
  15. Adjuvant therapy by risk group (table)
  16. Key adjuvant trials (table)
  17. Advanced and recurrent disease (flowchart and trial table)
  18. Special situations: fertility sparing, unfit patients, incidental finding
  19. Follow-up, recurrence and prognosis (tables)
  20. Takeaways and references
Limits
  • No FIGO diagram: the image library had no schematic of the FIGO stages, so staging is shown as tables only. No p53 or mismatch-repair images of endometrial tumours turned up either. The only mismatch-repair images found were from skin tumours, so I left them out.
  • Needs checking: the trial numbers, follow-up schedules and 5-year survival figures are from memory. The risk-group table is simplified and should be checked against Figure 3 of the 2025 guideline. The atypical hyperplasia figure on slide 5 (30-40% coexisting carcinoma) is also from memory. All are marked as approximate on the slides.
I can add speaker notes, change the colour scheme, or split any dense slide in two if you want.
This is a shared conversation. Sign in to Orris to start your own chat.