Create a ppt for presentation, the first page should be topic name and also write group 1 on it, below that write member's name, Abu Sufiyan, Ajay Kumar, Ajay Kumar Yadav, Akhil Pudi, Aman Kumar, Anaswara Santhosh Sunitha, Ankush, Bharath Lal, Gretchen Beauty Sumulong. On 2nd page write learning objectives and from 3rd page should be for salient features and complete case detailed explanation with images and diagnosis and after that start the learning objectives, each learning objective should come in at least 4 pages or at max 6 pages, make sure everything is well explained and nothing is left unexplained and add anatomical and clinical correlations also or to wonder why is it added, for the last page just add thank you. Use only medical terms and take reference from the uploaded pdf and books
cd /tmp/workspace && ls -la; python -c " import pdfplumber with pdfplumber.open('/tmp/workspace/attachments/32b594c7-b350-4230-ac57-a5b0ea96b177/WH Tutorial - Gynecologic Cancer.pdf') as pdf: print(len(pdf.pages)) t='' for i,p in enumerate(pdf.pages): t+=f'\n=====PAGE {i+1}=====\n'+(p.extract_text() or '') print(i+1,len(p.images)) open('/tmp/workspace/pdf_text.txt','w').write(t) print(len(t)) "
cd /tmp/workspace && python -c " import pdfplumber with pdfplumber.open('/tmp/workspace/attachments/32b594c7-b350-4230-ac57-a5b0ea96b177/WH Tutorial - Gynecologic Cancer.pdf') as pdf: for i,p in enumerate(pdf.pages): print(p.width,p.height,[ (im['x0'],im['top'],im['x1'],im['bottom']) for im in p.images]) p.to_image(resolution=80).save(f'/tmp/workspace/page{i+1}.png') "; ls
cervical intraepithelial neoplasia CIN III histology full thickness atypia
invasive squamous cell carcinoma of cervix histology invasion through basement membrane
exophytic cervical carcinoma speculum examination cauliflower
FIGO staging cervical cancer diagram

A multi-panel medical illustration and anatomical diagram depicting the FIGO staging of cervical cancer (Stages IA and IB). The central bottom panel displays a 3D-style anatomical diagram representing Stages IA1 and IA2, where the cervix appears macroscopically normal, indicating microinvasive disease that is not visible to the naked eye. The top left panel illustrates Stage IB1, showing a cross-section of the uterus and cervix with a small, localized dark lesion on the cervical canal; it is annotated as a cancer of 4 mm or smaller. The top right panel illustrates Stage IB2, showing a significantly larger, darker, and more prominent exophytic/ulcerative lesion on the cervix, annotated as being larger than 4 cm. All panels show relevant reproductive anatomy including the uterus, fallopian tubes, and ovaries. This educational graphic serves to distinguish clinical stages of cervical carcinoma based on tumor size and macroscopic visibility, relevant for gynecologic oncology and diagnostic pathology training.

This educational image details the radiological assessment and measurement protocols for cervical cancer using MRI.
loop electrosurgical excision procedure LEEP cone biopsy
MRI pelvis cervical cancer T2 sagittal

This diagnostic imaging panel consists of two T2-weighted MRI scans of the female pelvis (sagittal and axial views) demonstrating an advanced-stage cervical neuroendocrine tumor (FIGO Stage IV-A). Image (a), a sagittal T2-weighted MR image, reveals a large, heterogeneous, high-signal cervical mass infiltrating the lower uterine segment. Significant anterior extension is visible with transmural invasion into the urinary bladder and the formation of a fistula (marked by white arrow). Image (b), an axial T2-weighted MR image, shows the primary tumor circumferentially infiltrating the bilateral parametria. Associated metastatic disease is evidenced by enlarged, rounded lymph nodes in the external iliac groups bilaterally (indicated by white arrowheads). These images illustrate the aggressive local invasion and regional lymphatic spread characteristic of high-grade neuroendocrine cervical malignancies. This material is suitable for medical education regarding oncologic imaging, staging of cervical cancer, and identifying complex pelvic organ invasion on MRI.

A side-by-side comparison of diagnostic images in the sagittal plane demonstrating the superior soft-tissue contrast of MRI over CT for cervical cancer staging. Image (A) is a sagittal CT of the pelvis in the venous phase where the cervix appears unremarkable (marked with an asterisk), failing to clearly delineate a primary tumor. Image (B) is a T2-weighted sagittal MRI of the same patient performed three months later. The MRI reveals a distinct, intermediate-to-low signal intensity ovoid mass (indicated by a red arrow) within the cervix, measuring approximately 3.5 cm. The tumor is well-visualized against the high signal intensity of the normal cervical stroma, illustrating FIGO stage IB2 cervical carcinoma. This comparison highlights the clinical importance of T2-weighted MRI in gynecological oncology for accurate tumor localization, measurement of the greatest axis, and locoregional staging, where CT may lack the necessary resolution to detect early or subtle infiltrative lesions.

This diagnostic imaging composite displays three sagittal MRI views of the female pelvis, illustrating the therapeutic response of cervical cancer to chemoradiotherapy. Image (a) is a baseline sagittal T2-weighted image (T2WI) showing a large, exophytic cervical tumor marked with asterisks; the lesion exhibits intermediate signal intensity, contrasting with the hypointense fibrous stroma of the normal cervix. Image (b) presents a post-treatment sagittal T2WI, demonstrating a significant reduction in tumor volume and the reconstitution of the low-signal intensity cervical stroma, characteristic of a favorable treatment response. Image (c) is a post-treatment diffusion-weighted image (DWI) of the same plane, showing no residual areas of restricted diffusion or abnormal high signal intensity in the cervical region. The transition from the bulky baseline tumor in (a) to the resolved appearance in (b) and (c) serves as a clinical example of a complete radiological response to oncological therapy in a patient with locally advanced cervical cancer.

This diagnostic imaging panel consists of two T2-weighted MRI scans of the female pelvis, depicting a stage IB1 cervical adenocarcinoma. The left image is an axial T2-weighted section showing a moderately lobulated mass in the uterine cervix. A white arrow highlights a focal disruption of the low-signal-intensity peripheral fibrous rim, which initially suggested parametrial invasion (MRI stage T2b) but was postoperatively confirmed as pathologic stage T1b1. The right image is a sagittal T2-weighted section used to measure the tumor's maximum longitudinal extent, identified as 3.6 cm. The mass exhibits characteristic intermediate T2 signal intensity compared to the hyperintense cervical mucosa and hypointense stromal ring. This case illustrates the clinical challenge of MRI overstaging in cervical cancer, where stromal disruption can mimic higher-stage disease. The imaging serves as an educational example for gynecologic oncology and radiology in assessing tumor size and local extension during preoperative staging.

Multi-modal diagnostic imaging set demonstrating Stage IVB cervical cancer. (a) Whole-body 18F-FDG PET (Maximum Intensity Projection) displays primary hypermetabolic activity in the pelvis and metastatic uptake in a right inguinal lymph node. (b) Axial T2-weighted MRI shows a low-signal cervical mass disrupting the right cervical stroma with lateral extension into the pelvic sidewall. (c) Axial T2-weighted PET/MR fusion confirms intense FDG uptake corresponding to the invasive cervical tumor. (d) Sagittal PET/MR fusion reveals the large hypermetabolic cervical mass invading the posterior bladder wall. (e) Axial PET/MR fusion highlights the hypermetabolic right inguinal lymph node, indicating distant lymphatic metastasis. The case illustrates the utility of PET/MR in assessing local invasion (bladder, pelvic wall) and distant staging (Stage IVB) of gynecological malignancies.
HPV oncogenesis E6 E7 p53 Rb pathway cervical cancer
2025 cervical cancer screening guideline primary HPV self-collection reflex cytology ASCCP risk-based management 2019 thresholds CIN3 immediate treatment
FIGO 2018 stage IB2 cervical cancer management radical hysterectomy Sedlis criteria Peters criteria adjuvant chemoradiation NCCN
"Uterine Cervical Neoplasms"[MeSH Terms] AND "Hysterectomy"[MeSH Terms]
mkdir -p /tmp/workspace/gyn-ppt/assets && cd /tmp/workspace/gyn-ppt && cat > dl.py <<'EOF' import json, subprocess, base64 B="https://cdn.orris.care/cdss_images/" imgs={ "figo":"pmc_clinical_VQA_0f6bdae723d69486aec56dcf57534eadd94b434749c8714e7cb38ba36ac392d1.jpg", "mri_ct":"pmc_clinical_VQA_68f9f1e7ae119e4762566ee69152447013e9e62da5d7de6525304d1f59a8a871.jpg", "mri39":"pmc_clinical_VQA_50b7334ae7ac5c85cf7c7db29b0075f548932e2337f6497ebaf871efe2ea79af.jpg", "colpo_cin3":"pmc_clinical_VQA_6ac02f829335d5649da55b9be2852f6154e253fb4b40264d3035f992844e56c8.jpg", "colpo_cin1":"pmc_clinical_VQA_43a20286d076de177f5c3130d4f135ef8b3c7c0f9f2bd4d175043697bfbc1b87.jpg", "punch":"pmc_clinical_VQA_2d39f9eaa9c47f52acd51e717b836a56b0b6210eac16cb420f02d57f4c176f77.jpg", "colpo_lesion":"pmc_clinical_VQA_5fe2a6c2f070a1b5a500f8ddc31ba47ac9052b35b6d9e80d4512d8e88f083ed1.jpg", "p16":"Pathology_1760048459294_7a79d994-cbab-407a-9f6a-ffe6f7b06575.jpg", "gross_polyp":"Pathology_1760056738900_cba41905-cd8e-4509-b7b8-469a67b6f5d6.jpg", "gross_bulky":"Pathology_1760048458536_57b629ce-3a5d-4a3a-b0ed-c7c08a44ed66.jpg", "lletz":"pmc_clinical_VQA_19d56aa651ff9608e29300d0f49d71546067dbad4d3b8228061df01562b2ce93.jpg", "cin3_he":"Pathology_1760056741764_8aa01207-d635-4a16-9deb-0875e7666bc6.jpg", "hpv16":"Pathology_1760048437514_421d7047-51a6-4dbe-a297-fae7715d1342.jpg", "parametria":"pmc_clinical_VQA_39a47b5d51f88a127e5f8292215e004fd49067531ce80241f3fe9a97c446f646.jpg", "us_param":"pmc_clinical_VQA_0cb8ad4b8534143e14ce7e52d90a26180ba1462fe8ac7574df64fa29b8ed3a10.jpg", "cin_spectrum":"141b4420c3f3f4f514d1c1252168740f97ddc5d44c9e55c9f9335bb9e7df122d.png", "scj":"730c5e82da75170209049d29c4ab6e2bf8759ae5c7c7e5d6afc78a8aa0f48d00.png", "microinv":"18da91c39073ad381092c2a78fb2939d8c933a7c495f60824af14612158ff3cc.png", "cin2_flow":"GLGCA_41167_1763740946262_50d1767f-6620-4cd5-92a4-25dc07a1549b.png", "mgmt_flow":"GLGCA_41087_1763763838882_cc3e34b4-df3b-45be-9377-c8c4f041e79e.png", "mosaic":"11de74cc4c6154fbd762de8ea58ec9cb69bb22b8006a46e917346b942fa00041.png", "cin3_berek":"06f159ed528a82dff7554e483c98a5cd92b41e632b93c46a8f25e0062626cfda.png", } names=list(imgs) urls=[B+imgs[n] for n in names] res=json.loads(subprocess.check_output(["python","/tmp/skills/shared/scripts/fetch_images.py"]+urls,timeout=110)) from PIL import Image from io import BytesIO for n,r in zip(names,res): if r["base64"]: raw=base64.b64decode(r["base64"].split("base64,")[1] if "base64," in r["base64"] else r["base64"]) im=Image.open(BytesIO(raw)).convert("RGB"); im.save(f"assets/{n}.jpg",quality=90) print(n,im.size) else: print(n,"ERR",r["error"]) EOF python dl.py
cd /tmp/workspace/gyn-ppt && python -c " from PIL import Image, ImageDraw import os names=sorted(f[:-4] for f in os.listdir('assets')) W,H=360,260 cols=4; rows=(len(names)+cols-1)//cols sheet=Image.new('RGB',(cols*W,rows*H),'white') d=ImageDraw.Draw(sheet) for i,n in enumerate(names): im=Image.open(f'assets/{n}.jpg'); im.thumbnail((W-10,H-30)) x=(i%cols)*W; y=(i//cols)*H sheet.paste(im,(x+5,y+25)); d.text((x+5,y+5),n,fill='red') sheet.save('sheet.png') print(names) "
cd /tmp/workspace/gyn-ppt && python -c " from PIL import Image im=Image.open('sheet.png'); im=im.resize((im.width*2//3, im.height*2//3)); im.convert('RGB').save('sheet_s.jpg',quality=70) "; ls -la sheet_s.jpg
Create a quick reference PDF of gynecologic cancer staging
FIGO 2025 revised staging cervical cancer changes; FIGO 2023 endometrial cancer staging molecular classification
FIGO staging vulvar cancer 2021 vaginal cancer 2009 ovarian fallopian tube peritoneal 2014 stage IC1 IIIA1 table
"Neoplasm Staging"[MeSH Terms] AND "Genital Neoplasms, Female"[MeSH Terms] AND "FIGO"
FIGO 2025 cervical cancer staging update published International Journal of Gynecology Obstetrics changes from 2018 IB IIIC
https://obgyn.onlinelibrary.wiley.com/doi/pdf/10.1002/ijgo.7…
https://www.training.seer.cancer.gov/ovarian/abstract-code-s…
https://pmc.ncbi.nlm.nih.gov/articles/PMC9102312
mkdir -p /tmp/workspace/gyn-staging && cd /tmp/workspace/gyn-staging && cat > build.py <<'EOF' import matplotlib, os from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import mm from reportlab.lib.styles import ParagraphStyle from reportlab.platypus import BaseDocTemplate, PageTemplate, Frame, Paragraph, Table, TableStyle, Spacer, PageBreak, KeepTogether from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont fd = os.path.join(matplotlib.get_data_path(), "fonts", "ttf") pdfmetrics.registerFont(TTFont("DV", os.path.join(fd, "DejaVuSans.ttf"))) pdfmetrics.registerFont(TTFont("DVB", os.path.join(fd, "DejaVuSans-Bold.ttf"))) pdfmetrics.registerFont(TTFont("DVI", os.path.join(fd, "DejaVuSans-Oblique.ttf"))) from reportlab.pdfbase.pdfmetrics import registerFontFamily registerFontFamily("DV", normal="DV", bold="DVB", italic="DVI", boldItalic="DVB") NAVY = colors.HexColor("#12343B"); TEAL = colors.HexColor("#2D7F8E"); CORAL = colors.HexColor("#D1495B") LIGHT = colors.HexColor("#EAF3F4"); AMBER = colors.HexColor("#FFF4D6"); GREY = colors.HexColor("#555555") def S(name, **kw): base = dict(fontName="DV", fontSize=7.8, leading=10, textColor=colors.black) base.update(kw); return ParagraphStyle(name, **base) body = S("body"); small = S("small", fontSize=6.8, leading=8.6, textColor=GREY) h1 = S("h1", fontName="DVB", fontSize=15, leading=18, textColor=NAVY, spaceAfter=2) sub = S("sub", fontSize=8, leading=10.5, textColor=GREY, spaceAfter=4) hc = S("hc", fontName="DVB", fontSize=7.8, textColor=colors.white) stg = S("stg", fontName="DVB", fontSize=8, textColor=NAVY) note_s = S("note", fontSize=7.4, leading=9.6) def clean(t): return t.replace("\u2014","-").replace("\u2013","-") def P(t, st=body): return Paragraph(clean(t), st) def table(rows, widths, header=True, hl=None, subrows=()): data = [] for i, r in enumerate(rows): row = [] for j, c in enumerate(r): if i == 0 and header: row.append(P(c, hc)) elif j == 0: row.append(P(c, stg)) else: row.append(P(c)) data.append(row) t = Table(data, colWidths=[w*mm for w in widths], repeatRows=1 if header else 0) st = [("VALIGN",(0,0),(-1,-1),"TOP"),("GRID",(0,0),(-1,-1),0.3,colors.HexColor("#B8C9CC")), ("LEFTPADDING",(0,0),(-1,-1),3),("RIGHTPADDING",(0,0),(-1,-1),3),("TOPPADDING",(0,0),(-1,-1),2),("BOTTOMPADDING",(0,0),(-1,-1),2.5)] if header: st.append(("BACKGROUND",(0,0),(-1,0),NAVY)) for i in range(1, len(rows)): st.append(("BACKGROUND",(0,i),(-1,i), LIGHT if i % 2 == 0 else colors.white)) for i in subrows: st.append(("BACKGROUND",(0,i),(-1,i), colors.HexColor("#CFE3E6"))) if hl: for i in hl: st.append(("BACKGROUND",(0,i),(-1,i), AMBER)) t.setStyle(TableStyle(st)); return t def box(title, lines, color=TEAL, w=180): txt = [P("<b>%s</b>" % title, S("bt", fontName="DVB", fontSize=8, textColor=color, leading=10))] for l in lines: txt.append(P("\u2022 " + l, note_s)) t = Table([[txt]], colWidths=[w*mm]) t.setStyle(TableStyle([("BOX",(0,0),(-1,-1),0.8,color),("LINEBEFORE",(0,0),(0,-1),3,color),("BACKGROUND",(0,0),(-1,-1),colors.HexColor("#F8FBFB")), ("LEFTPADDING",(0,0),(-1,-1),6),("TOPPADDING",(0,0),(-1,-1),4),("BOTTOMPADDING",(0,0),(-1,-1),4)])) return t def head(title, subtitle): return [P(title, h1), P(subtitle, sub)] def onpage(c, d): c.saveState() c.setFillColor(NAVY); c.rect(0, A4[1]-9*mm, A4[0], 9*mm, stroke=0, fill=1) c.setFillColor(colors.white); c.setFont("DVB", 8); c.drawString(15*mm, A4[1]-6*mm, "GYNECOLOGIC CANCER STAGING | QUICK REFERENCE") c.setFont("DV", 7); c.drawRightString(A4[0]-15*mm, A4[1]-6*mm, "FIGO / TNM") c.setFillColor(GREY); c.setFont("DV", 6.5) c.drawString(15*mm, 8*mm, "Educational summary. Confirm against the primary FIGO / AJCC publications before clinical or exam use.") c.drawRightString(A4[0]-15*mm, 8*mm, "Page %d" % d.page) c.restoreState() doc = BaseDocTemplate("Gynecologic_Cancer_Staging_Quick_Reference.pdf", pagesize=A4, leftMargin=15*mm, rightMargin=15*mm, topMargin=16*mm, bottomMargin=14*mm, title="Gynecologic Cancer Staging Quick Reference", author="Orris") doc.addPageTemplates([PageTemplate(id="p", frames=[Frame(15*mm, 14*mm, 180*mm, A4[1]-30*mm, id="f", leftPadding=0, rightPadding=0, topPadding=0, bottomPadding=0)], onPage=onpage)]) E = [] # ---------- PAGE 1 overview E += head("Gynecologic Cancer Staging at a Glance", "Current staging system for each site, how stage is assigned, and the rules that apply across sites.") E.append(table([ ["Site","System in use","Basis of staging","High-yield point"], ["Cervix","FIGO 2018 (FIGO 2025 update published, see page 2 note)","Clinical + imaging + pathology","IB split into IB1/IB2/IB3 by size; any positive pelvic or para-aortic node = IIIC; horizontal spread no longer used for IA"], ["Endometrium (carcinoma)","FIGO 2023","Surgical-pathologic + molecular class","Histologic type, LVSI and POLEmut / p53abn status can change the stage; IC and IIC are new"], ["Ovary, fallopian tube, primary peritoneum","FIGO 2014","Surgical-pathologic","IC split into IC1/2/3; IIIA1 = retroperitoneal nodes only; primary peritoneal cancer starts at stage II"], ["Vulva (all except melanoma)","FIGO 2021","Clinical + imaging + pathology","Stage I by size and depth (2 cm, 1 mm); nodal size (5 mm) and extracapsular spread define IIIA to IIIC"], ["Vagina","FIGO 2009","Clinical examination (imaging informs treatment, does not change stage)","Tumor reaching cervix = cervical cancer; vulva + vagina = vulvar cancer"], ["Gestational trophoblastic neoplasia","FIGO 2000 anatomic stage + modified WHO score","Anatomic stage + risk score","Written as stage:score (e.g. III:6); score 6 or less = low risk, 7 or more = high risk"], ], [34,38,38,70])) E.append(Spacer(1,5)) E.append(box("Rules that apply across sites", [ "When there is doubt about the stage, allocate the earlier stage. Once treatment starts, the stage is not changed for later findings (Berek & Novak's Gynecology).", "A vaginal tumor that reaches the cervix is staged as cervical cancer; a tumor involving both vulva and vagina is staged as vulvar cancer (Berek & Novak's Gynecology).", "FIGO stage is the main prognostic variable, but grade, histology, LVSI, nodal status and molecular class refine prognosis.", "Staging systems differ in method: cervix and vulva allow imaging and pathology; vagina is clinical; ovary and endometrium are surgical-pathologic.", "Stage is a classification for prognosis and treatment planning, not a treatment plan: always combine with histology, performance status and fertility goals."])) E.append(Spacer(1,5)) E.append(box("Quick memory anchors", [ "<b>Nodes</b>: cervix IIIC (pelvic C1, para-aortic C2); endometrium IIIC1 / IIIC2; ovary IIIA1 (retroperitoneal); vulva IIIA to IIIC (size and capsule).", "<b>Bladder or rectal mucosa</b>: stage IVA in cervix, endometrium (bladder or bowel) and vagina.", "<b>Pelvic wall</b>: cervix IIIB, vagina III. <b>Lower third of vagina</b>: cervix IIIA.", "<b>Distant metastasis</b>: IVB in cervix, vagina and vulva; IVC in endometrium; IVB in ovary (parenchymal or extra-abdominal)."], color=CORAL)) E.append(PageBreak()) # ---------- CERVIX E += head("Cervix Uteri: FIGO 2018", "Applies to all histologic types. Clinical examination, imaging (MRI, PET/CT, CT) and pathology may be used; pathology takes precedence when available.") cx = [ ["Stage","Definition","Typical primary approach (guideline-level summary)"], ["I","Carcinoma strictly confined to the cervix (corpus extension disregarded)",""], ["IA","Invasive carcinoma diagnosed only by microscopy; maximum depth of invasion under 5 mm","Excision / conization or simple hysterectomy (IA1 without LVSI); radical surgery for IA2"], ["IA1","Measured stromal invasion under 3 mm",""], ["IA2","Measured stromal invasion 3 mm or more and under 5 mm",""], ["IB","Invasive carcinoma with measured invasion 5 mm or more, limited to the cervix","Radical hysterectomy + pelvic lymph node assessment, or chemoradiation"], ["IB1","5 mm or more depth and under 2 cm in greatest dimension","Fertility-sparing surgery possible in selected cases"], ["IB2","2 cm or more and under 4 cm in greatest dimension","Radical hysterectomy (open approach) or chemoradiation; adjuvant therapy by pathologic risk"], ["IB3","4 cm or more in greatest dimension","Chemoradiation with brachytherapy is preferred in the US"], ["II","Invasion beyond the uterus but not to the lower third of the vagina or the pelvic wall",""], ["IIA","Upper two-thirds of vagina, no parametrial involvement","IIA1: surgery or chemoradiation; IIA2: chemoradiation"], ["IIA1 / IIA2","IIA1: under 4 cm; IIA2: 4 cm or more",""], ["IIB","Parametrial involvement, not to the pelvic wall","Chemoradiation with brachytherapy"], ["III","Lower third of vagina and/or pelvic wall and/or hydronephrosis or non-functioning kidney and/or pelvic or para-aortic nodes",""], ["IIIA","Lower third of vagina, no pelvic wall extension","Chemoradiation"], ["IIIB","Extension to the pelvic wall and/or hydronephrosis or non-functioning kidney (unless another cause is known)","Chemoradiation"], ["IIIC","Pelvic and/or para-aortic node metastasis, irrespective of tumor size and extent. Add <b>r</b> (imaging) or <b>p</b> (pathology)","Chemoradiation; field planned by nodal level"], ["IIIC1 / IIIC2","IIIC1: pelvic nodes only; IIIC2: para-aortic nodes",""], ["IV","Spread beyond the true pelvis or biopsy-proven bladder or rectal mucosal involvement",""], ["IVA","Spread to adjacent pelvic organs (bladder or rectal mucosa); bullous edema alone is not stage IV","Chemoradiation (select cases: exenteration)"], ["IVB","Spread to distant organs","Systemic therapy"], ] E.append(table(cx, [24,96,60], subrows=[1,9,13,19], hl=[7])) E.append(Spacer(1,4)) E.append(box("Notes", [ "Highlighted row: IB2 (2 to under 4 cm), the stage of the group case (Mrs. R.M., 2.4 cm, node-negative on MRI).", "2018 changes: imaging and pathology allowed; horizontal spread removed from IA; IB divided into three; node-positive disease placed in IIIC; LVSI does not alter stage (Berek & Novak's Gynecology).", "5-year survival by FIGO 2018 stage in a US registry cohort (Obstet Gynecol 2019): IB1 91.6%, IB2 83.3%, IB3 76.1%, IIIA 40.7%, IIIB 41.4%, IIIC1 60.8%, IIIC2 37.5%.", "Nodal status is the strongest independent survival predictor: node-negative 5-year survival about 85 to 90% versus 20 to 74% if positive (Berek & Novak's Gynecology).", "<b>FIGO 2025 update</b>: FIGO published \"Cancer of the cervix uteri: 2025 update\" (Int J Gynaecol Obstet). I could not open its full text, so the table above is FIGO 2018 as printed in Berek & Novak's. Check the 2025 document for any revisions."])) E.append(PageBreak()) # ---------- ENDOMETRIUM E += head("Endometrial Carcinoma: FIGO 2023", "Surgical-pathologic staging that now incorporates histologic type, LVSI and molecular classification.") en = [ ["Stage","Definition"], ["I","Confined to the uterine corpus and ovary"], ["IA","Disease limited to the endometrium, OR non-aggressive type with under 50% myometrial invasion and no or focal LVSI, OR good-prognosis disease"], ["IA1","Non-aggressive type limited to an endometrial polyp or confined to the endometrium"], ["IA2","Non-aggressive type involving under 50% of the myometrium, no or focal LVSI"], ["IA3","Low-grade endometrioid carcinoma limited to uterus and ovary (synchronous, meeting low-risk ovarian criteria)"], ["IB","Non-aggressive type with invasion of 50% or more of the myometrium, no or focal LVSI"], ["IC","Aggressive histologic type limited to a polyp or confined to the endometrium"], ["II","Invasion of cervical stromal connective tissue without extrauterine extension, OR substantial LVSI, OR aggressive type with myometrial involvement"], ["IIA","Invasion of cervical stroma, non-aggressive type"], ["IIB","Substantial LVSI, non-aggressive type"], ["IIC","Aggressive histologic type with any myometrial involvement"], ["III","Local and/or regional spread"], ["IIIA","Invasion of uterine serosa, adnexa, or both (direct extension or metastasis)"], ["IIIA1","Spread to ovary or fallopian tube (except when IA3 criteria are met)"], ["IIIA2","Involvement of uterine subserosa or spread through the uterine serosa"], ["IIIB","Metastasis or direct spread to vagina and/or parametria, or to pelvic peritoneum"], ["IIIB1 / IIIB2","IIIB1: vaginal or parametrial spread; IIIB2: pelvic peritoneal metastasis"], ["IIIC","Metastasis to pelvic or para-aortic lymph nodes"], ["IIIC1","Pelvic nodes: IIIC1i micrometastasis; IIIC1ii macrometastasis (over 2 mm)"], ["IIIC2","Para-aortic nodes up to the renal vessels, with or without pelvic nodes: IIIC2i micrometastasis; IIIC2ii macrometastasis"], ["IV","Spread to bladder mucosa, intestinal 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, including lung, liver, brain, bone, and extra-abdominal or supraclavicular nodes"], ] E.append(table(en, [24,156], subrows=[1,8,12,21])) E.append(Spacer(1,4)) E.append(box("Definitions and molecular rules", [ "<b>Non-aggressive</b>: low-grade (G1 and G2) endometrioid carcinoma. <b>Aggressive</b>: high-grade endometrioid, serous, clear cell, undifferentiated, mixed, mesonephric-like, gastrointestinal-type mucinous carcinoma and carcinosarcoma.", "<b>Molecular classes</b>: POLEmut, MMRd, NSMP, p53abn. Testing is encouraged in all endometrial cancers; add \"m\" and a subscript to the stage (e.g. IIICmp53abn).", "In stage I and II disease, <b>POLEmut</b> downstages to <b>IAmPOLEmut</b>; <b>p53abn</b> with myometrial invasion upstages to <b>IICmp53abn</b>.", "<b>Substantial LVSI</b>: 5 or more vessels involved. Focal LVSI (under 5 vessels) does not change stage.", "Comparison with FIGO 2009 (Berek & Novak's): 2009 combined IA and IB (any invasion under or over 50%), eliminated IIA, made peritoneal cytology non-staging, and split IIIC into IIIC1 and IIIC2. 2023 adds the subdivisions above and molecular modifiers.", "Positive peritoneal cytology is reported separately and does not change stage."])) E.append(PageBreak()) # ---------- OVARY E += head("Ovary, Fallopian Tube and Primary Peritoneal Carcinoma: FIGO 2014", "One system for all three sites. Surgical staging (hysterectomy, bilateral salpingo-oophorectomy, omentectomy, peritoneal sampling, nodal assessment) defines the stage.") ov = [ ["Stage","Definition"], ["I","Tumor confined to the ovaries or fallopian tubes"], ["IA","One ovary or tube; capsule intact; no tumor on the surface; negative washings"], ["IB","Both ovaries or tubes; otherwise as IA"], ["IC","Limited to one or both ovaries or tubes with any of the following:"], ["IC1","Surgical spill"], ["IC2","Capsule ruptured before surgery, or tumor on the ovarian or tubal surface"], ["IC3","Malignant cells in ascites or peritoneal washings"], ["II","Tumor involves one or both ovaries or tubes with pelvic extension (below the pelvic brim), or primary peritoneal cancer"], ["IIA","Extension and/or implants on uterus and/or tubes and/or ovaries"], ["IIB","Extension to other pelvic intraperitoneal tissues"], ["III","Cytologically or histologically confirmed spread to the peritoneum outside the pelvis and/or metastasis to retroperitoneal lymph nodes"], ["IIIA1","Positive retroperitoneal nodes only: (i) metastasis 10 mm or less; (ii) metastasis over 10 mm"], ["IIIA2","Microscopic extrapelvic peritoneal involvement, with or without positive retroperitoneal nodes"], ["IIIB","Macroscopic peritoneal metastasis beyond the pelvis, 2 cm or less, with or without positive retroperitoneal nodes (includes extension to the liver or spleen capsule)"], ["IIIC","Macroscopic peritoneal metastasis beyond the pelvis, over 2 cm, with or without positive retroperitoneal nodes (includes liver or spleen capsule)"], ["IV","Distant metastasis excluding peritoneal metastasis"], ["IVA","Pleural effusion with positive cytology"], ["IVB","Parenchymal metastases and metastases to extra-abdominal organs (including inguinal nodes and nodes outside the abdominal cavity)"], ] E.append(table(ov, [24,156], subrows=[1,8,11,16])) E.append(Spacer(1,4)) E.append(box("Notes", [ "Primary peritoneal carcinoma cannot be stage I; it begins at stage II (SEER training module).", "Extension to the capsule of the liver or spleen is stage III; parenchymal liver or splenic metastasis is stage IVB.", "Isolated tumor cells in regional nodes are N0(i+) in AJCC TNM but are not assigned a FIGO stage (SEER).", "Imaging (CT) guides surgical planning and detects peritoneal, nodal and diaphragmatic disease, but the final FIGO stage is surgical-pathologic.", "Report histotype (high-grade serous, endometrioid, clear cell, mucinous, low-grade serous) alongside stage."])) E.append(PageBreak()) # ---------- VULVA + VAGINA E += head("Vulvar Carcinoma: FIGO 2021", "Applies to all vulvar cancers except melanoma. Imaging was added in 2021. Depth is measured from the basement membrane of the adjacent, deepest dysplastic tumor-free rete ridge.") vu = [ ["Stage","Definition"], ["I","Tumor confined to the vulva"], ["IA","Size 2 cm or less AND stromal invasion 1 mm or less"], ["IB","Size over 2 cm OR stromal invasion over 1 mm"], ["II","Any size with extension to lower (distal) third of urethra, vagina or anus, with negative nodes"], ["III","Any size with extension to upper part of adjacent perineal structures, OR any number of non-fixed, non-ulcerated nodes"], ["IIIA","Extension to upper two-thirds of urethra or vagina, bladder mucosa or rectal mucosa, OR regional nodal metastasis 5 mm or less"], ["IIIB","Regional nodal metastasis over 5 mm"], ["IIIC","Regional nodal metastasis with extracapsular spread"], ["IV","Any size with extension to upper (proximal) urethra, vagina, pelvic bone, OR fixed or ulcerated nodes, OR distant metastasis"], ["IVA","Fixed to pelvic bone, OR fixed or ulcerated regional nodes"], ["IVB","Distant metastasis including pelvic lymph nodes"], ] E.append(table(vu, [24,156], subrows=[1,4,5,9])) E.append(Spacer(1,3)) E.append(box("Vulvar notes", [ "In FIGO 2009, spread to upper adjacent structures was stage IVA; in 2021 it is stage IIIA (PMC review of the 2021 revision).", "Pelvic nodal involvement is distant metastasis (IVB). The Cloquet node is the lowest external iliac node, at the femoral canal entrance.", "Inguinofemoral nodal status (sentinel node or lymphadenectomy) is the key prognostic and management step."], w=180)) E.append(Spacer(1,8)) E += head("Vaginal Carcinoma: FIGO 2009", "Clinical staging by examination, cystoscopy, proctoscopy and chest imaging. CT, MRI or PET findings inform treatment planning but cannot change the FIGO stage (Berek & Novak's Gynecology).") va = [ ["Stage","Definition"], ["0","Carcinoma in situ (VaIN 3)"], ["I","Carcinoma limited to the vaginal wall"], ["II","Subvaginal tissue involved, not extended to the pelvic wall"], ["III","Extension to the pelvic wall"], ["IV","Extension beyond the true pelvis, or mucosa of bladder or rectum involved (bullous edema alone does not qualify)"], ["IVA","Invasion of bladder and/or rectal mucosa and/or direct extension beyond the true pelvis"], ["IVB","Spread to distant organs"], ] E.append(table(va, [24,156])) E.append(Spacer(1,3)) E.append(P("Primary vaginal cancer is 2 to 3% of female genital tract cancers; squamous histology about 80%. Most vaginal cancers are metastatic from elsewhere (about 84%). Less than 30% present at stage I (Berek & Novak's Gynecology). FIGO has no microinvasive category for the vagina.", note_s)) E.append(PageBreak()) # ---------- GTN E += head("Gestational Trophoblastic Neoplasia: FIGO Anatomic Stage + WHO Risk Score", "Report as stage:score, for example III:6. Score decides single-agent versus multi-agent chemotherapy.") gt = [ ["Stage","Definition"], ["I","Disease confined to the uterus"], ["II","Extends outside the uterus but limited to genital structures (adnexa, vagina, broad ligament)"], ["III","Extends to the lungs, with or without genital tract involvement"], ["IV","All other metastatic sites (brain, liver, kidney, gastrointestinal tract)"], ] E.append(table(gt, [24,156])) E.append(Spacer(1,5)) E.append(P("<b>Modified WHO prognostic score (FIGO 2000)</b>", S("x", fontName="DVB", fontSize=8.5, textColor=NAVY))) E.append(Spacer(1,2)) sc = [ ["Factor","0","1","2","4"], ["Age (years)","under 40","40 or more","",""], ["Antecedent pregnancy","Hydatidiform mole","Abortion","Term pregnancy",""], ["Interval from index pregnancy (months)","under 4","4 to under 7","7 to 12","over 12"], ["Pretreatment hCG (IU/L)","under 1,000","1,000 to under 10,000","10,000 to 100,000","over 100,000"], ["Largest tumor size (including uterus)","under 3 cm","3 to under 5 cm","5 cm or more",""], ["Site of metastases","Lung","Spleen, kidney","Gastrointestinal tract","Brain, liver"], ["Number of metastases","0","1 to 4","5 to 8","over 8"], ["Previous failed chemotherapy","","","Single drug","Two or more drugs"], ] E.append(table(sc, [58,28,30,34,30])) E.append(Spacer(1,4)) E.append(box("Interpretation", [ "Total score <b>6 or less = low risk</b> (typically single-agent methotrexate or dactinomycin); <b>7 or more = high risk</b> (multi-agent chemotherapy, e.g. EMA-CO).", "This section is written from standard FIGO / WHO criteria. My library search did not return a GTN scoring table, so please confirm the cut-offs against your course text."], color=CORAL)) E.append(Spacer(1,8)) E.append(P("<b>Sources used</b>", S("x2", fontName="DVB", fontSize=8.5, textColor=NAVY))) refs = [ "Berek & Novak's Gynecology: Table 38-1 (cervix FIGO 2018), Table 37-6 (endometrium FIGO 2009 and comparison), Table 38-6 (vagina), staging rules and nodal survival data.", "Berek JS et al. FIGO staging of endometrial cancer: 2023. Int J Gynaecol Obstet 2023 (PMID 37337978); FIGO news release on the 2023 update.", "SEER Training Modules: Ovarian Cancer Staging (FIGO 2014, updated 2018).", "Vulvar Cancer: 2021 Revised FIGO Staging System and the Role of Imaging. Cancers 2022 (PMC9102312).", "Prognostic performance of the 2018 FIGO cervical staging. Obstet Gynecol 2019 (National Cancer Database analysis).", "ASCCP / NCCN guideline excerpts for cervical treatment approach (NCCN Cervical Cancer principles of pathology and treatment)."] for r in refs: E.append(P("\u2022 " + r, small)) doc.build(E) EOF python build.py && python -c " import pdfplumber with pdfplumber.open('Gynecologic_Cancer_Staging_Quick_Reference.pdf') as p: print(len(p.pages)) for i,pg in enumerate(p.pages): pg.to_image(resolution=60).save(f'pg{i+1}.png') "; ls -la
cd /tmp/workspace/gyn-staging && python -c " import pdfplumber from PIL import Image with pdfplumber.open('Gynecologic_Cancer_Staging_Quick_Reference.pdf') as p: ims=[pg.to_image(resolution=75).original.convert('RGB') for pg in p.pages] w,h=ims[0].size sheet=Image.new('RGB',(w*3,h*2),'white') for i,im in enumerate(ims): sheet.paste(im,((i%3)*w,(i//3)*h)) sheet.save('sheet.jpg',quality=75); print(sheet.size) "
cd /tmp/workspace/gyn-staging && python -c " from PIL import Image im=Image.open('sheet.jpg'); im=im.resize((1400,1318)); im.save('sheet_s.jpg',quality=60) "; ls -la sheet_s.jpg
cd /tmp/workspace/gyn-staging && python - <<'EOF' s=open('build.py').read() s=s.replace('["IV","Any size with extension to upper (proximal) urethra, vagina, pelvic bone, OR fixed or ulcerated nodes, OR distant metastasis"]','["IV","Tumor of any size fixed to bone, OR fixed or ulcerated regional nodes, OR distant metastasis"]') s=s.replace('fontSize=7.8, leading=10, textColor=colors.black','fontSize=9, leading=11.5, textColor=colors.black') s=s.replace('hc = S("hc", fontName="DVB", fontSize=7.8','hc = S("hc", fontName="DVB", fontSize=9') s=s.replace('stg = S("stg", fontName="DVB", fontSize=8,','stg = S("stg", fontName="DVB", fontSize=9,') s=s.replace('note_s = S("note", fontSize=7.4, leading=9.6)','note_s = S("note", fontSize=8.3, leading=10.8)') s=s.replace('small = S("small", fontSize=6.8, leading=8.6','small = S("small", fontSize=7.6, leading=9.6') open('build.py','w').write(s) EOF python build.py && python -c " import pdfplumber from PIL import Image with pdfplumber.open('Gynecologic_Cancer_Staging_Quick_Reference.pdf') as p: n=len(p.pages); print(n) for i,pg in enumerate(p.pages): words=pg.extract_words(); print(i+1, round(max(w['bottom'] for w in words if w['bottom']<800)), len(words)) ims=[pg.to_image(resolution=60).original.convert('RGB') for pg in p.pages] w,h=ims[0].size cols=4; rows=(n+cols-1)//cols sheet=Image.new('RGB',(w*cols,h*rows),'white') for i,im in enumerate(ims): sheet.paste(im,((i%cols)*w,(i//cols)*h)) sheet.save('sheet2.jpg',quality=55) "
Gynecologic Cancer Staging Quick Reference
PDF Document · PDF