Uterine fibroid
"uterine fibroids" AND "leiomyoma"

| Type | Location | Key Features |
|---|---|---|
| Intramural | Within myometrium | Most common; pressure symptoms, heavy periods if distorting endometrium |
| Submucosal | Beneath endometrium | Most likely to cause bleeding; associated with infertility and recurrent pregnancy loss; pedunculated ones may extrude through the cervix |
| Subserosal | Beneath serosa | Pressure symptoms; pedunculated forms can mimic ovarian tumors |
| Pedunculated | On a stalk (subserosal or submucosal) | Risk of torsion; submucosal pedunculated ones cause labor-like cramping |
| Rare sites | Broad ligament, cervix, uterine ligaments | Uncommon |
| Type | Mechanism | Feature |
|---|---|---|
| Hyaline | Most common; fibrous replacement | Firm, white |
| Cystic | After hyaline; liquefaction | Fluid-filled spaces |
| Red (Carneous) | Hemorrhagic infarction; venous occlusion | Particularly in pregnancy; acute pain |
| Calcific | End-stage degeneration | Calcium deposits |
| Septic/Necrotic | Infection superimposed | Rare |

| Drug | Mechanism | Use |
|---|---|---|
| NSAIDs | Prostaglandin inhibition | Reduce dysmenorrhea |
| Tranexamic acid / antifibrinolytics | Reduce menstrual blood loss | Heavy periods |
| Combined OCP / progestogens | Hormonal control | Bleeding control |
| Levonorgestrel IUD (Mirena) | Local progestogen | Heavy menstrual bleeding; may reduce fibroid volume slightly |
| GnRH agonists (leuprolide, goserelin) | Hypoestrogenic state via pituitary downregulation | Shrink fibroids pre-surgery; short-term use (6 months) due to bone density loss |
| GnRH antagonists (elagolix, relugolix) | Rapid hypoestrogenism | Newer agents; a 2025 meta-analysis confirmed efficacy for fibroid-related bleeding |
| SPRMs (mifepristone, ulipristal acetate) | Selective progesterone receptor modulators | Pre-operative fibroid reduction; hepatotoxicity concerns with ulipristal |
| Procedure | Description |
|---|---|
| Uterine artery embolization (UAE) | Radiological; occludes uterine arteries → fibroid necrosis; preserves uterus; a 2024 meta-analysis vs myomectomy showed comparable outcomes for symptom relief |
| MRI-guided focused ultrasound (MRgFUS) | Non-invasive thermal ablation |
| Endometrial ablation | For submucosal fibroids with AUB; not fertility-preserving |
| Procedure | Indication |
|---|---|
| Hysteroscopic myomectomy | Submucosal / pedunculated fibroids; fertility-preserving |
| Laparoscopic myomectomy | Subserosal/intramural; fertility-preserving; involves morcellation risk |
| Open (abdominal) myomectomy | Large/multiple fibroids; fertility-preserving |
| Hysterectomy | Definitive; for women who have completed childbearing |
| Feature | Detail |
|---|---|
| Type | Benign smooth muscle tumor (monoclonal) |
| Prevalence | Most common gynecologic tumor; >70-80% lifetime prevalence |
| Hormone dependence | Estrogen + progesterone |
| Key mutation | MED12 (~70%), HMGC/HMGIY rearrangements (~40%), FH (HLRCC syndrome) |
| Most symptomatic type | Submucosal |
| Characteristic finding | Whorled gray-white intramural mass; low mitotic rate |
| First-line investigation | Pelvic ultrasound |
| Medical treatment | GnRH agonists/antagonists, LNG-IUD, SPRMs |
| Surgical options | Myomectomy (open/laparoscopic/hysteroscopic) or hysterectomy |
| Sarcomatous change | Extremely rare (<1%) |
Haemorrhage control pre-op, intra-op for myomectomy
"myomectomy" AND "hemorrhage control"
"myomectomy" AND "blood loss" AND "vasopressin"
PMID: 39919888
PMID: 36241144
"myomectomy" AND "blood loss" AND "tranexamic acid"
PMID: 35839714
| Intervention | Mean Blood Loss Reduction |
|---|---|
| Intramyometrial vasopressin | ~246 mL |
| IV tranexamic acid | ~243 mL |
| Foley catheter tourniquet around cervix | ~240 mL |
| Vaginal misoprostol | ~98 mL |
| Polyglactin suture tourniquet (cervix + IP ligaments) | ~1,870 mL |
| Route | Key Haemostatic Strategies |
|---|---|
| Abdominal (open) | Vasopressin injection, tourniquets (Foley/suture), TXA, cell saver, GnRH pre-op |
| Laparoscopic | Vasopressin injection, uterine artery occlusion, misoprostol, epinephrine, oxytocin, barbed suture; AAGL 2025 guideline applies |
| Hysteroscopic | Pre-op GnRH + IV iron; cervical vasopressin injection; pseudocapsule dissection; ball electrode for vessel desiccation; 30 mL Foley balloon tamponade for intractable bleeding |
| Phase | Intervention | Level of Evidence |
|---|---|---|
| Pre-op | GnRH agonist x 3 months | Moderate (AAGL 2025) |
| Pre-op | IV/oral iron therapy | Standard of care |
| Pre-op | Autologous blood donation | Case series |
| Intra-op | Intramyometrial vasopressin | Moderate - meta-analysis |
| Intra-op | IV tranexamic acid | Meta-analysis (224 mL reduction) |
| Intra-op | Misoprostol (vaginal/rectal) | Moderate (AAGL 2025) |
| Intra-op | Tourniquet (Foley/suture) | RCT |
| Intra-op | Uterine artery occlusion | Moderate (AAGL 2025) |
| Intra-op | Cell saver | Case series |
| Intra-op | Pseudocapsule dissection | Expert consensus |
| Intra-op | Barbed suture closure | AAGL 2025 |
FIGO staging of uterine fibroid
FIGO leiomyoma subclassification system types 0-8 PALM-COEIN 2022

| PALM (Structural) | COEIN (Non-structural) |
|---|---|
| Polyp | Coagulopathy |
| Adenomyosis | Ovulatory dysfunction |
| Leiomyoma | Endometrial |
| Malignancy & Hyperplasia | Iatrogenic |
| Not otherwise classified |
| Type | Location | Description |
|---|---|---|
| 0 | Pedunculated intracavitary | Entirely within the uterine cavity, attached by a stalk; no intramural component |
| 1 | Submucosal, <50% intramural | Protrudes into cavity; less than half the fibroid diameter is within the myometrium |
| 2 | Submucosal, ≥50% intramural | Protrudes into cavity; 50% or more of the diameter is within the myometrium |
| Type | Location | Description |
|---|---|---|
| 3 | Intramural, contacts endometrium | 100% intramural; abuts the endometrium without any intracavitary component |
| 4 | Intramural | Entirely within the myometrium; does not contact endometrium or serosa |
| 5 | Subserosal, ≥50% intramural | More in wall than outside; subserosal component <50% |
| 6 | Subserosal, <50% intramural | More outside than inside wall; subserosal component >50% |
| 7 | Subserosal pedunculated | Attached to serosa by a stalk; entirely external |
| 8 | Other (specify) | No myometrial involvement: cervical, broad ligament, parasitic, round ligament |
| Type Group | Symptoms | Surgical Approach |
|---|---|---|
| Type 0 | Heavy bleeding, cramping, infertility | Vaginal or hysteroscopic (easiest) |
| Type 1 | Heavy bleeding, infertility | Hysteroscopic |
| Type 2 | Heavy bleeding, infertility | Hysteroscopic (with limitations) OR open/laparoscopic |
| Type 2-5 (hybrid) | Bleeding + bulk symptoms | Open or laparoscopic - cannot be done hysteroscopically |
| Types 3, 4, 5 | Bulk/pressure symptoms, infertility | Open or laparoscopic myomectomy |
| Types 6, 7 | Pressure symptoms, may be asymptomatic | Open or laparoscopic |
| Type 8 | Variable | Open or laparoscopic |
Endometrial cavity
|
[Type 0] Pedunculated intracavitary (stalk inside cavity)
[Type 1] <50% buried in wall → mostly in cavity
[Type 2] ≥50% buried in wall → partly in cavity
|
[Type 3] Touches endometrium but 100% in wall (no cavity protrusion)
[Type 4] Entirely within myometrium (no contact with either surface)
|
[Type 5] Subserosal, ≥50% still in wall
[Type 6] Subserosal, <50% in wall (mostly external)
[Type 7] Pedunculated subserosal (stalk on outer surface)
|
[Type 8] No myometrial involvement (cervical, parasitic, broad ligament)
What are the causes of heavy bleeding with uterine fibroids
"uterine fibroids" AND "heavy menstrual bleeding" AND mechanism
PMID: 36303616
PMID: 40214304
mechanisms heavy uterine bleeding fibroids leiomyoma endometrial surface area venous ectasia prostaglandin angiogenesis 2023 2024
| Fibroid Type | Dominant Mechanism | Bleeding Pattern |
|---|---|---|
| Type 0-1 (submucosal, intracavitary) | Exposed tumour surface, no overlying endometrium; abnormal surface vasculature | Heavy + unpredictable/intermenstrual |
| Type 2 (submucosal, deeply intramural) | Thin dysfunctional endometrium + venous compression | Heavy + irregular |
| Type 3-5 (intramural) | Increased endometrial surface area + impaired junctional zone contractility + venous ectasia | Heavy but cyclical/predictable |
| Type 6-7 (subserosal) | Minimal direct endometrial effect | Usually not related to bleeding - bulk symptoms instead |
| Mechanism | Key Feature |
|---|---|
| Increased endometrial surface area | Mechanical - more tissue = more bleeding |
| Submucosal endometrial disruption | Absent/thin/ulcerated endometrium over fibroid |
| Aberrant angiogenesis | Fragile, irregular tumour vasculature (IGF/VEGF/bFGF) |
| Venous ectasia / venous lakes | Compressed myometrial veins → congestion |
| Impaired myometrial contractility | Disrupted junctional zone → poor haemostatic contraction |
| TGF-β3 excess | Impaired platelet function + poor decidualisation |
| Prostaglandin imbalance | Shift toward vasodilatory prostanoids |
| Endometrial ulceration | Over pedunculated submucosal fibroid |
Please simplify
| Location | Bleeding Type |
|---|---|
| Submucosal (inside cavity) | Heavy + irregular / between periods |
| Intramural (in the wall) | Heavy but regular, monthly |
| Subserosal (on outside) | Usually no bleeding - causes pressure symptoms instead |
Could you sum up all this content into a pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/uterine-fibroid && cat > /tmp/workspace/uterine-fibroid/build_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether) from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY from reportlab.platypus import PageBreak OUTPUT = "/tmp/workspace/uterine-fibroid/Uterine_Fibroids_Summary.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2.5*cm, bottomMargin=2*cm, title="Uterine Fibroids - Clinical Summary", author="Orris Medical", ) styles = getSampleStyleSheet() # Custom styles DARK_BLUE = colors.HexColor('#1a3a5c') MID_BLUE = colors.HexColor('#2563a8') LIGHT_BLUE = colors.HexColor('#dbeafe') ACCENT = colors.HexColor('#0ea5e9') LIGHT_GREY = colors.HexColor('#f3f4f6') DARK_GREY = colors.HexColor('#374151') RED_ACCENT = colors.HexColor('#dc2626') GREEN_ACCENT = colors.HexColor('#16a34a') title_style = ParagraphStyle('TitleStyle', parent=styles['Title'], fontSize=22, textColor=DARK_BLUE, spaceAfter=6, leading=28, alignment=TA_CENTER, fontName='Helvetica-Bold') subtitle_style = ParagraphStyle('SubTitle', parent=styles['Normal'], fontSize=11, textColor=MID_BLUE, spaceAfter=16, alignment=TA_CENTER, fontName='Helvetica') h1_style = ParagraphStyle('H1', parent=styles['Heading1'], fontSize=14, textColor=colors.white, spaceAfter=6, spaceBefore=14, fontName='Helvetica-Bold', backColor=DARK_BLUE, leftIndent=-10, rightIndent=-10, borderPad=6) h2_style = ParagraphStyle('H2', parent=styles['Heading2'], fontSize=12, textColor=DARK_BLUE, spaceAfter=4, spaceBefore=10, fontName='Helvetica-Bold', borderPad=2) h3_style = ParagraphStyle('H3', parent=styles['Heading3'], fontSize=10.5, textColor=MID_BLUE, spaceAfter=3, spaceBefore=6, fontName='Helvetica-Bold') body_style = ParagraphStyle('Body', parent=styles['Normal'], fontSize=9.5, textColor=DARK_GREY, spaceAfter=4, spaceBefore=2, leading=14, alignment=TA_JUSTIFY, fontName='Helvetica') bullet_style = ParagraphStyle('Bullet', parent=styles['Normal'], fontSize=9.5, textColor=DARK_GREY, spaceAfter=2, spaceBefore=1, leading=13, leftIndent=14, bulletIndent=4, fontName='Helvetica') note_style = ParagraphStyle('Note', parent=styles['Normal'], fontSize=8.5, textColor=colors.HexColor('#6b7280'), spaceAfter=4, spaceBefore=2, leading=12, fontName='Helvetica-Oblique', backColor=LIGHT_GREY, borderPad=4, leftIndent=4) caption_style = ParagraphStyle('Caption', parent=styles['Normal'], fontSize=8, textColor=colors.HexColor('#6b7280'), spaceAfter=6, alignment=TA_CENTER, fontName='Helvetica-Oblique') def h1(text): return Paragraph(f" {text}", h1_style) def h2(text): return Paragraph(text, h2_style) def h3(text): return Paragraph(text, h3_style) def body(text): return Paragraph(text, body_style) def bullet(text): return Paragraph(f"• {text}", bullet_style) def note(text): return Paragraph(f"ℹ {text}", note_style) def sp(n=1): return Spacer(1, n*0.25*cm) def hr(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#cbd5e1'), spaceAfter=4) TABLE_STYLE = TableStyle([ ('BACKGROUND', (0,0), (-1,0), DARK_BLUE), ('TEXTCOLOR', (0,0), (-1,0), colors.white), ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), ('FONTSIZE', (0,0), (-1,0), 9), ('FONTNAME', (0,1), (-1,-1), 'Helvetica'), ('FONTSIZE', (0,1), (-1,-1), 8.5), ('BACKGROUND', (0,1), (-1,-1), colors.white), ('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, LIGHT_GREY]), ('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#d1d5db')), ('VALIGN', (0,0), (-1,-1), 'TOP'), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('TEXTCOLOR', (0,1), (-1,-1), DARK_GREY), ('WORDWRAP', (0,0), (-1,-1), True), ]) def make_table(data, col_widths=None): t = Table(data, colWidths=col_widths, repeatRows=1) t.setStyle(TABLE_STYLE) return t story = [] # ── TITLE PAGE ────────────────────────────────────────────────────────────── story.append(sp(6)) story.append(Paragraph("UTERINE FIBROIDS", title_style)) story.append(Paragraph("(Leiomyomata Uteri)", subtitle_style)) story.append(sp(1)) story.append(HRFlowable(width="60%", thickness=2, color=ACCENT, spaceAfter=8)) story.append(Paragraph("A Comprehensive Clinical Summary", subtitle_style)) story.append(sp(2)) story.append(Paragraph("Topics covered: Definition · Pathogenesis · Classification · Clinical Features<br/>" "Diagnosis · FIGO Subclassification · Haemorrhage Control · Management", ParagraphStyle('Cover', parent=body_style, alignment=TA_CENTER, fontSize=9, textColor=colors.HexColor('#64748b')))) story.append(sp(1)) story.append(Paragraph("Sources: Robbins & Cotran Pathologic Basis of Disease · Berek & Novak's Gynecology<br/>" "Bailey & Love's Surgery · Creasy & Resnik's Maternal-Fetal Medicine<br/>" "Sabiston Textbook of Surgery · Katzung's Pharmacology · PubMed peer-reviewed literature", ParagraphStyle('Sources', parent=body_style, alignment=TA_CENTER, fontSize=8.5, textColor=colors.HexColor('#94a3b8'), fontName='Helvetica-Oblique'))) story.append(sp(2)) story.append(Paragraph("July 2026", ParagraphStyle('Date', parent=body_style, alignment=TA_CENTER, textColor=colors.HexColor('#94a3b8'), fontSize=9))) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 1: DEFINITION & EPIDEMIOLOGY # ═══════════════════════════════════════════════════════════ story.append(h1("1. DEFINITION & EPIDEMIOLOGY")) story.append(sp()) story.append(body("A uterine myoma (fibroid, leiomyoma) is a <b>benign monoclonal smooth muscle tumour</b> originating " "from the myometrial layer of the uterus. It is the <b>most common tumour in females</b>, with a " "cumulative prevalence exceeding 80% in Black women and nearly 70% in White women.")) story.append(sp()) story.append(h3("Key Epidemiological Facts")) epi_data = [ ["Parameter", "Detail"], ["Prevalence (>35 yrs)", "Up to 50% of women clinically; 70–80% on ultrasound by age 50"], ["Race disparity", "Earlier onset, larger size, greater number in Black/African-Caribbean women"], ["Hormone dependence", "Growth stimulated by oestrogen and progesterone; regress after menopause"], ["Malignant transformation", "Leiomyosarcoma in <1% — extremely rare"], ["Pregnancy incidence", "Detected in 3–4% of mid-trimester ultrasound evaluations"], ] story.append(make_table(epi_data, col_widths=[6*cm, 10*cm])) story.append(sp()) # ═══════════════════════════════════════════════════════════ # SECTION 2: PATHOGENESIS & MOLECULAR BIOLOGY # ═══════════════════════════════════════════════════════════ story.append(h1("2. PATHOGENESIS & MOLECULAR BIOLOGY")) story.append(sp()) story.append(body("Fibroids arise from a single mutated myometrial smooth muscle cell (monoclonal origin). " "Key molecular drivers include:")) story.append(sp(0.5)) mol_data = [ ["Mutation / Gene", "Frequency", "Mechanism"], ["MED12", "~70–77%", "Component of Mediator complex; bridges transcription factors to RNA polymerase. Mutations increase progesterone responsiveness and genomic instability."], ["HMGA2 / HMGA1", "~10%", "DNA-binding factors regulating chromatin structure; also seen in other benign neoplasms"], ["Fumarate hydratase (FH)", "Rare (germline)", "HLRCC syndrome (hereditary leiomyomas + renal cell carcinoma). Acquired FH mutations also seen in sporadic fibroids."], ["Chr 12q14 / 6p rearrangements", "~40%", "Involve HMGC and HMGIY genes; regulate chromatin structure"], ] story.append(make_table(mol_data, col_widths=[4*cm, 3*cm, 9*cm])) story.append(sp(0.5)) story.append(note("Progesterone — via its receptors in differentiated fibroid cells — activates WNT ligands and cytokines " "in a paracrine fashion to drive tumour growth. Both oestrogen and progesterone suppression are used therapeutically.")) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 3: MORPHOLOGY # ═══════════════════════════════════════════════════════════ story.append(h1("3. MORPHOLOGY")) story.append(sp()) story.append(h3("Gross Appearance")) for b in [ "Sharply circumscribed, discrete, round, firm, <b>grey-white tumours</b>", "Variable size: barely visible nodules to massive pelvic masses", "Characteristic <b>whorled pattern</b> of smooth muscle bundles on cut section", "Large tumours may show yellow-brown to red softening (degeneration)", "Most often multiple; usually in the corpus of the uterus", ]: story.append(bullet(b)) story.append(sp(0.5)) story.append(h3("Histology")) for b in [ "Bundles of uniform smooth muscle cells resembling normal myometrium", "Oval nuclei; long slender bipolar cytoplasmic processes", "<b>Mitotic figures are scarce</b> — key feature distinguishing from leiomyosarcoma", "Variants: leiomyoma with bizarre nuclei, cellular leiomyoma, intravenous leiomyomatosis, disseminated peritoneal leiomyomatosis", ]: story.append(bullet(b)) story.append(sp(0.5)) story.append(h3("Degeneration Types")) degen_data = [ ["Type", "Mechanism", "Appearance"], ["Hyaline", "Most common; fibrous replacement", "Firm, white areas"], ["Cystic", "Liquefaction after hyaline degeneration", "Fluid-filled spaces"], ["Red (Carneous)", "Haemorrhagic infarction; venous occlusion", "Particularly in pregnancy; acute pain"], ["Calcific", "End-stage — calcium deposition", "Hard, calcified nodules on imaging"], ["Septic/Necrotic", "Infection superimposed", "Rare; fever, pain"], ] story.append(make_table(degen_data, col_widths=[3.5*cm, 6*cm, 6.5*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 4: FIGO SUBCLASSIFICATION # ═══════════════════════════════════════════════════════════ story.append(h1("4. FIGO LEIOMYOMA SUBCLASSIFICATION (PALM-COEIN)")) story.append(sp()) story.append(note("Fibroids are benign and are NOT staged. The FIGO system provides a location-based " "subclassification (Types 0–8) within the PALM-COEIN framework for abnormal uterine bleeding (AUB-L).")) story.append(sp(0.5)) story.append(body("<b>PALM-COEIN:</b> Structural causes = Polyp, Adenomyosis, <b>L</b>eiomyoma, Malignancy/Hyperplasia; " "Non-structural = Coagulopathy, Ovulatory dysfunction, Endometrial, Iatrogenic, Not-otherwise-classified.")) story.append(sp(0.5)) figo_data = [ ["Group", "Type", "Location", "Bleeding Pattern", "Surgical Approach"], ["Submucosal (SM)", "0", "Pedunculated intracavitary — entirely in cavity, on a stalk", "Heavy + irregular/intermenstrual", "Hysteroscopic or vaginal"], ["", "1", "Submucosal, <50% intramural", "Heavy + irregular", "Hysteroscopic"], ["", "2", "Submucosal, ≥50% intramural", "Heavy + irregular", "Hysteroscopic or open/lap"], ["Other (O) — Intramural", "3", "Contacts endometrium; 100% intramural; no cavity protrusion", "Heavy, cyclical", "Open or laparoscopic"], ["", "4", "Entirely intramural; no contact with endometrium or serosa", "Heavy, cyclical", "Open or laparoscopic"], ["Other (O) — Subserosal", "5", "Subserosal ≥50% intramural", "Usually minimal", "Open or laparoscopic"], ["", "6", "Subserosal <50% intramural", "Usually none", "Open or laparoscopic"], ["", "7", "Subserosal pedunculated — stalk on outer surface", "None — bulk symptoms", "Open or laparoscopic"], ["Other", "8", "No myometrial involvement (cervical, broad ligament, parasitic)", "Variable", "Open or laparoscopic"], ["Hybrid", "2–5 (example)", "Contacts both endometrium and serosa", "Variable", "Open or laparoscopic ONLY — cannot be done hysteroscopically"], ] story.append(make_table(figo_data, col_widths=[3*cm, 1.2*cm, 4.5*cm, 3*cm, 4.3*cm])) story.append(sp(0.5)) story.append(note("Reference: Munro MG et al. FIGO classification system (PALM-COEIN) for causes of AUB " "in nongravid women of reproductive age. Int J Gynaecol Obstet 2011;113(1):3–13.")) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 5: CLINICAL FEATURES # ═══════════════════════════════════════════════════════════ story.append(h1("5. CLINICAL FEATURES")) story.append(sp()) story.append(body("Many women are <b>asymptomatic</b>. Symptoms depend on fibroid size, number, and — most importantly — location.")) story.append(sp(0.5)) story.append(h3("Symptoms")) symptoms_data = [ ["Symptom", "Detail"], ["Abnormal uterine bleeding (AUB)", "Most common symptom; submucosal type most likely to cause bleeding. No consistent correlation between fibroid size/number and bleeding severity."], ["Pelvic pressure/bulk symptoms", "Urinary frequency, incontinence, retention; constipation; backache — from adjacent organ compression"], ["Dysmenorrhoea", "Cyclic pain, especially with intramural and submucosal fibroids"], ["Dyspareunia", "Deep dyspareunia if fibroids encroach on pelvic floor"], ["Infertility", "Particularly submucosal and intramural fibroids distorting the cavity"], ["Acute pain (rare)", "From torsion of pedunculated fibroid or red degeneration (especially in pregnancy)"], ["Labour-like cramping", "When a pedunculated submucosal fibroid is 'expelled' by uterine contractions — usually with heavy haemorrhage"], ] story.append(make_table(symptoms_data, col_widths=[5*cm, 11*cm])) story.append(sp(0.5)) story.append(h3("Complications in Pregnancy")) preg_data = [ ["Complication", "Detail"], ["Spontaneous abortion", "Increased risk"], ["Fetal malpresentation", "Distortion of uterine cavity"], ["Preterm delivery", "Increased risk"], ["Caesarean section", "Mechanical obstruction to labour"], ["Postpartum haemorrhage", "Uterine inertia (failure to contract)"], ["Placenta praevia", "OR = 2.2 (especially anterior fibroids)"], ["Placental abruption", "OR = 2.6"], ["Red degeneration", "Haemorrhagic infarction — acute pain; usually managed conservatively"], ] story.append(make_table(preg_data, col_widths=[5*cm, 11*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 6: CAUSES OF HEAVY BLEEDING # ═══════════════════════════════════════════════════════════ story.append(h1("6. CAUSES OF HEAVY BLEEDING (MECHANISMS)")) story.append(sp()) story.append(note("The exact mechanism is not fully established. Multiple overlapping mechanisms are proposed.")) story.append(sp(0.5)) bleed_data = [ ["#", "Mechanism", "Explanation"], ["1", "Increased endometrial surface area", "Intramural fibroids enlarge and distort the uterine cavity → larger surface area → more endometrium to shed. Causes heavy but predictable, cyclical bleeding."], ["2", "Submucosal fibroid — direct endometrial disruption", "Types 0–2 protrude into cavity; often lack normal overlying endometrium. Bleed directly from fragile tumour surface vessels. Causes heavy + unpredictable/intermenstrual bleeding."], ["3", "Aberrant angiogenesis", "Fibroids produce VEGF, bFGF, IGF-1/2, PDGF, endothelin-1. The resulting tumour vasculature is structurally irregular, immature, and fragile — prone to rupture and leakage. IGF-driven (not hypoxia-VEGF as in malignancy)."], ["4", "Venous ectasia / venous lakes", "Fibroids compress the myometrial venous plexus → venous congestion and formation of 'venous lakes'. Engorged vessels bleed more heavily during menstruation."], ["5", "Impaired myometrial contractility", "Normal haemostasis relies on junctional zone (inner myometrium) contraction to compress spiral arteries. Fibroids disrupt this zone → bleeding harder to stop."], ["6", "TGF-β3 excess / defective haemostasis", "Fibroids overproduce TGF-β3 → impairs platelet function and defective endometrial decidualisation → local coagulation failure."], ["7", "Prostaglandin imbalance", "Shift toward vasodilatory PGE2/PGI2 over vasoconstrictive TXA2/PGF2α → promotes bleeding."], ["8", "Endometrial ulceration", "Over pedunculated type 0 fibroids — thin, atrophic, ulcerated mucosa bleeds readily; contributes to intermenstrual bleeding."], ] story.append(make_table(bleed_data, col_widths=[0.7*cm, 4.8*cm, 10.5*cm])) story.append(sp(0.5)) story.append(h3("Bleeding Pattern by Location — Quick Rule")) loc_data = [ ["Fibroid Location (FIGO Type)", "Bleeding Pattern"], ["Submucosal Types 0–2", "Heavy + IRREGULAR — between periods; unpredictable"], ["Intramural Types 3–5", "Heavy but REGULAR — cyclical, predictable"], ["Subserosal Types 6–7", "Usually NO bleeding — pressure/bulk symptoms only"], ] story.append(make_table(loc_data, col_widths=[8*cm, 8*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 7: DIAGNOSIS # ═══════════════════════════════════════════════════════════ story.append(h1("7. DIAGNOSIS")) story.append(sp()) diag_data = [ ["Investigation", "Role", "Notes"], ["Pelvic ultrasound (TVS)", "First-line", "Spherical, well-defined, hypoechoic mass. High sensitivity/specificity. Degenerated fibroids show heterogeneous echoes."], ["MRI pelvis", "Second-line / problem-solving", "When ultrasound inconclusive or patient declines. Most accurate for distinguishing fibroid from adenomyosis or sarcoma."], ["Hysterosonography (SIS)", "Submucosal assessment", "Saline infusion outlines submucosal fibroids clearly"], ["Hysteroscopy", "Diagnostic + therapeutic", "Direct visualisation of cavity; allows simultaneous treatment of types 0–2"], ["Endometrial biopsy", "Rule out malignancy", "Indicated if >45 yrs, failed medical treatment, or persistent irregular bleeding"], ["Blood tests", "Assess impact", "FBC (anaemia), TFTs (exclude thyroid cause), coagulation screen if coagulopathy suspected"], ] story.append(make_table(diag_data, col_widths=[4*cm, 3.5*cm, 8.5*cm])) story.append(sp(0.5)) story.append(h3("Differential Diagnosis")) for d in ["Adenomyosis", "Endometrial polyp", "Ovarian tumour (pedunculated fibroid can mimic)", "Uterine sarcoma / leiomyosarcoma (suspect if rapidly growing, perimenopausal, non-responsive to oestrogen deprivation)", "Uterine anomaly (bicornuate, septate)", "Localized myometrial contraction on ultrasound"]: story.append(bullet(d)) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 8: HAEMORRHAGE CONTROL - PRE-OP & INTRA-OP # ═══════════════════════════════════════════════════════════ story.append(h1("8. HAEMORRHAGE CONTROL IN MYOMECTOMY")) story.append(sp()) story.append(body("Haemorrhage is the most feared complication of myomectomy. " "Strategies exist at every stage: pre-operative, intra-operative, and as rescue measures.")) story.append(sp(0.5)) story.append(h2("8a. Pre-operative Haemorrhage Reduction")) story.append(sp(0.5)) preop_data = [ ["Intervention", "Mechanism", "Notes & Evidence"], ["GnRH Agonists\n(e.g. leuprolide acetate)\n3 months pre-op", "Pituitary downregulation → hypoestrogenism → fibroid shrinkage 30–50%, reduced vascularity", "STRONGEST evidence. 2025 AAGL Practice Guideline (75 studies) — MODERATE evidence. Improves Hb, reduces blood loss, shortens hospital stay. Risk: small fibroids harder to find intraoperatively."], ["GnRH Antagonists\n(elagolix, relugolix)", "Competitive GnRH receptor blockade → rapid hypoestrogenism without initial flare", "Faster onset than agonists. Supported by 2025 AAGL guideline."], ["Ulipristal Acetate (SPRM)", "Selective progesterone receptor modulator → fibroid reduction + amenorrhoea", "Reduces fibroid volume, corrects anaemia. NOTE: rare hepatotoxicity — regulatory restrictions in many countries."], ["Iron therapy (oral or IV)", "Corrects iron-deficiency anaemia from fibroid-related menorrhagia", "IV iron (ferric carboxymaltose/iron sucrose) for severe anaemia or oral intolerance. Often combined with GnRH agonist."], ["Autologous blood donation", "Patient donates own blood 2–4 weeks pre-op for auto-transfusion", "Avoids transfusion reaction/infection risks. Useful for large/multiple fibroids."], ] story.append(make_table(preop_data, col_widths=[3.5*cm, 5*cm, 7.5*cm])) story.append(sp(0.5)) story.append(h2("8b. Quantified Intra-operative Blood Loss Reductions (RCT Data)")) story.append(sp(0.5)) quant_data = [ ["Intervention", "Mean Blood Loss Reduction", "Transfusion Reduction?"], ["Intramyometrial vasopressin", "~246 mL", "Yes (significant)"], ["IV tranexamic acid", "~224–243 mL", "No significant difference"], ["Foley catheter tourniquet (cervix)", "~240 mL", "Yes (significant)"], ["Vaginal misoprostol", "~98 mL", "No significant difference"], ["Polyglactin suture tourniquet (cervix + IP ligaments)", "~1,870 mL", "Yes (significant)"], ] story.append(make_table(quant_data, col_widths=[6*cm, 5*cm, 5*cm])) story.append(sp(0.5)) story.append(h2("8c. Intra-operative Vasoconstrictors")) story.append(sp(0.5)) vaso_data = [ ["Agent", "Route", "Key Points"], ["Vasopressin (ADH)", "Intramyometrial injection at incision site before uterine incision. Dilute: typically 20 units in 100 mL saline", "Most widely used. 2022 meta-analysis (11 trials, n=1067): significant reduction in blood loss, Hb drop, transfusion rate, operative time. Max dose: <5 units total. Half-life 10–20 min; duration 2–8 hrs. RISK: cardiovascular collapse with IV injection — always aspirate before injecting. Off-label use."], ["Epinephrine (dilute)", "Intramyometrial", "Alternative/adjunct vasoconstrictor. Moderate evidence (AAGL 2025)."], ["Oxytocin", "IV or intramyometrial", "Uterine contraction → compresses myometrial vessels. Moderate evidence (AAGL 2025)."], ["Terlipressin", "Intramyometrial", "2025 RCT (vs carbetocin vs placebo in open myomectomy without tourniquets) — demonstrated haemostatic efficacy."], ["Misoprostol", "Vaginal (400–800 mcg) or rectal pre-op", "PGE1 → uterine contraction + reduced vascularity. Moderate evidence (AAGL 2025). Does NOT reduce transfusion rates significantly."], ] story.append(make_table(vaso_data, col_widths=[3*cm, 4*cm, 9*cm])) story.append(sp(0.5)) story.append(h2("8d. Mechanical Haemostasis (Tourniquets / Vascular Occlusion)")) story.append(sp(0.5)) mech_data = [ ["Technique", "Detail"], ["Cervical Foley catheter tourniquet (30 mL balloon)", "Inflated around cervix — compresses uterine arteries bilaterally. Simple, inexpensive. Reduces ~240 mL."], ["Polyglactin suture tourniquet (cervix + IP ligaments)", "Occludes uterine + ovarian arterial supply simultaneously. Most dramatic reduction (~1,870 mL). Requires careful anatomy."], ["Rubber/Penrose drain tourniquet", "Around lower uterine segment and broad ligament — compresses uterine and ovarian vessels"], ["Laparoscopic uterine artery occlusion (LUAO)", "Laparoscopic clipping or bipolar coagulation of uterine arteries prior to myomectomy. Moderate evidence — AAGL 2025."], ] story.append(make_table(mech_data, col_widths=[5.5*cm, 10.5*cm])) story.append(sp(0.5)) story.append(h2("8e. Antifibrinolytics — Tranexamic Acid (TXA)")) story.append(sp(0.5)) story.append(body("<b>Mechanism:</b> Inhibits plasminogen activator → prevents fibrin clot breakdown → reduces blood loss.")) story.append(body("<b>Dose:</b> IV 1 g at induction (some protocols 15–20 mg/kg)")) story.append(body("<b>Evidence (2022 meta-analysis, 7 RCTs, n=571, PMID 35839714):</b>")) txa_data = [ ["Outcome", "Result", "Significance"], ["Intraoperative blood loss", "−224 mL (95% CI: −303 to −146)", "p < 0.001"], ["Postoperative haemoglobin", "+0.4 g/dL", "p = 0.006"], ["Hospital stay", "−0.39 days", "p = 0.03"], ["Transfusion rate", "No significant difference", "—"], ["Thromboembolic events", "None in either group", "Safe"], ["Nausea (side-effect)", "Higher with TXA (RR 2.68)", "p = 0.03"], ] story.append(make_table(txa_data, col_widths=[6*cm, 6*cm, 4*cm])) story.append(sp(0.5)) story.append(h2("8f. Surgical Technique Strategies")) story.append(sp(0.5)) for b in [ "<b>Pseudocapsule dissection:</b> Identifying and dissecting along the fibroid pseudocapsule largely or totally eliminates myometrial injury and related bleeding", "<b>Minimising uterine incisions:</b> Accessing multiple fibroids through subserosal tunnelling from a single incision reduces total myometrial trauma", "<b>Limiting lateral wall dissection</b> near the uterine isthmus to avoid branches of the uterine artery", "<b>Barbed suture (V-Loc, Quill) for closure:</b> Achieves secure layered haemostatic closure without tied knots — AAGL 2025 guideline recommendation", "<b>Electrosurgical devices / bipolar coagulation:</b> Ball electrode to desiccate bleeding vessels (especially in hysteroscopic procedures). AAGL 2025 guideline includes this.", "<b>Topical haemostatic agents:</b> Fibrin sealants, oxidised cellulose, gelatin matrix applied to fibroid bed when suture alone is insufficient", ]: story.append(bullet(b)) story.append(sp(0.5)) story.append(h2("8g. Cell Salvage (Intraoperative Autotransfusion)")) story.append(body("Indicated for large fibroids (uterus >16 cm) or multiple fibroids with anticipated significant blood loss. " "Blood is suctioned from the field, mixed with heparinised saline, washed, centrifuged to ~50% haematocrit, " "and re-infused IV. In one series (n=92, uterus >16 cm), mean re-infused volume was 355 mL. " "Avoids infection risk and transfusion reactions.")) story.append(sp(0.5)) story.append(h2("8h. Approach by Surgical Route")) route_data = [ ["Route", "Key Haemostatic Strategies"], ["Abdominal (open)", "Vasopressin injection; tourniquets (Foley/suture); IV TXA; cell saver; GnRH pre-op"], ["Laparoscopic", "Vasopressin; uterine artery occlusion; misoprostol; epinephrine; oxytocin; barbed suture — AAGL 2025 guideline"], ["Hysteroscopic", "Pre-op GnRH + IV iron; cervical vasopressin injection; pseudocapsule dissection; ball electrode; 30 mL Foley balloon tamponade for intractable bleeding"], ] story.append(make_table(route_data, col_widths=[4*cm, 12*cm])) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 9: MANAGEMENT OVERVIEW # ═══════════════════════════════════════════════════════════ story.append(h1("9. MANAGEMENT OVERVIEW")) story.append(sp()) story.append(body("Treatment choice depends on: <b>age, fertility intentions, fibroid size, number, location, and severity of symptoms.</b>")) story.append(sp(0.5)) story.append(h3("Conservative (Asymptomatic Fibroids)")) story.append(bullet("Observation and watchful waiting — many fibroids never require treatment")) story.append(sp(0.5)) story.append(h3("Medical Management")) med_data = [ ["Drug", "Mechanism", "Use"], ["NSAIDs", "Prostaglandin inhibition", "Reduce dysmenorrhoea and blood loss"], ["Tranexamic acid", "Antifibrinolytic", "Reduce menstrual blood loss (no hormonal effect)"], ["Combined OCP / Progestogens", "Hormonal control of endometrium", "Reduce bleeding; do not reliably shrink fibroids"], ["Levonorgestrel IUD (Mirena)", "Local progestogen", "Best evidence for heavy menstrual bleeding; may slightly reduce fibroid volume"], ["GnRH Agonists (leuprolide, goserelin)", "Hypoestrogenism via pituitary downregulation", "Shrink fibroids 30–50% pre-surgery; max 6 months due to bone density loss"], ["GnRH Antagonists (elagolix, relugolix)", "Rapid competitive receptor blockade — no flare", "Newer; 2025 meta-analysis confirms efficacy for fibroid-related bleeding"], ["Ulipristal acetate (SPRM)", "Selective progesterone receptor modulator", "Pre-operative reduction; hepatotoxicity risk — restricted in many countries"], ] story.append(make_table(med_data, col_widths=[4*cm, 5*cm, 7*cm])) story.append(sp(0.5)) story.append(h3("Interventional (Minimally Invasive)")) interv_data = [ ["Procedure", "Description", "Evidence"], ["Uterine artery embolisation (UAE)", "Interventional radiology: occludes uterine arteries → fibroid necrosis. Preserves uterus.", "2024 meta-analysis: comparable outcomes to myomectomy for symptom relief. Higher minor complications and re-intervention rates vs surgery."], ["MRI-guided focused ultrasound (MRgFUS)", "Non-invasive thermal ablation of fibroid tissue", "Effective for selected patients; limited availability"], ["Endometrial ablation", "Destroys endometrial lining; not fertility-preserving", "For AUB without desire for future pregnancy; only suitable without large cavity distortion"], ] story.append(make_table(interv_data, col_widths=[4*cm, 6*cm, 6*cm])) story.append(sp(0.5)) story.append(h3("Surgical Management")) surg_data = [ ["Procedure", "Indication", "Notes"], ["Hysteroscopic myomectomy", "Types 0–2 submucosal; fertility-preserving", "Best approach for intracavitary fibroids ≤5 cm; must distinguish type 2 from type 2-5"], ["Laparoscopic myomectomy", "Subserosal/intramural; fertility-preserving", "Morcellation risk — consider patient age and sarcoma risk factors"], ["Open (abdominal) myomectomy", "Large/multiple fibroids; fertility-preserving", "Allows removal of many fibroids; cell saver can be used"], ["Hysterectomy", "Definitive treatment; childbearing complete", "Total cure; no recurrence possible; discuss thoroughly with patient"], ] story.append(make_table(surg_data, col_widths=[4.5*cm, 4.5*cm, 7*cm])) story.append(sp(0.5)) story.append(note("Morcellation caveat: Risk of parasitic tissue dissemination (1:120–1:1200) and upstaging of undiagnosed " "uterine sarcoma. Higher risk in perimenopausal/postmenopausal women, BRCA carriers, Lynch syndrome, " "and rapidly growing fibroids unresponsive to oestrogen deprivation.")) story.append(PageBreak()) # ═══════════════════════════════════════════════════════════ # SECTION 10: KEY REFERENCES # ═══════════════════════════════════════════════════════════ story.append(h1("10. KEY REFERENCES")) story.append(sp()) refs = [ ("Textbooks", [ "Robbins, Cotran & Kumar. Pathologic Basis of Disease. 10th ed. Elsevier, 2021. pp. 937–938.", "Berek JS, Novak E. Berek & Novak's Gynecology. 16th ed. Wolters Kluwer, 2019. pp. 507–537, 564–565, 1392.", "Bailey & Love's Short Practice of Surgery. 28th ed. Taylor & Francis, 2023. pp. 1608–1610.", "Creasy RK, Resnik R et al. Maternal-Fetal Medicine: Principles and Practice. 8th ed. Elsevier, 2019. pp. 625–626.", "Sabiston DC et al. Sabiston Textbook of Surgery. 21st ed. Elsevier, 2022. Table 120.5.", "Katzung BG et al. Basic and Clinical Pharmacology. 16th ed. McGraw-Hill, 2023.", ]), ("Guidelines & Systematic Reviews", [ "AAGL Practice Guideline Committee. Evidence-Based Practice for Minimization of Blood Loss During Laparoscopic Myomectomy. J Minim Invasive Gynecol 2025. PMID: 39919888.", "Alomar O, Abu-Zaid A, Jamjoom MZ. Prophylactic vasopressin to reduce intraoperative blood loss during myomectomy: meta-analysis of 11 trials. J Gynecol Obstet Hum Reprod 2022. PMID: 36241144.", "Baradwan S et al. Prophylactic tranexamic acid during myomectomy: meta-analysis of 7 RCTs. Eur J Obstet Gynecol Reprod Biol 2022. PMID: 35839714.", "Puscasiu L et al. Preoperative medical therapy before surgery for uterine fibroids. Cochrane Database Syst Rev 2025. PMID: 40183418.", "Sánchez Martín MJ et al. Efficacy of GnRH antagonists in uterine fibroids: meta-analysis. Arch Gynecol Obstet 2025. PMID: 39821450.", "Peng J et al. UAE vs myomectomy for symptomatic uterine fibroids: meta-analysis. Sci Rep 2024. PMID: 39164326.", ]), ("Mechanism of Bleeding", [ "Uimari O, Subramaniam KS, Vollenhoven B, Tapmeier TT. Uterine Fibroids and Heavy Menstrual Bleeding. Front Reprod Health 2022. PMID: 36303616.", "Bulun SE, Yin P, Wei J et al. Uterine Fibroids (comprehensive review). Physiol Rev 2025. PMID: 40214304.", "Munro MG et al. FIGO classification system (PALM-COEIN) for AUB. Int J Gynaecol Obstet 2011;113(1):3–13. PMID: 21345435.", ]), ] for section, items in refs: story.append(h3(section)) for i, item in enumerate(items, 1): story.append(Paragraph(f"{i}. {item}", ParagraphStyle('Ref', parent=body_style, fontSize=8.5, leftIndent=14, spaceAfter=3))) story.append(sp(0.5)) # ═══════════════════════════════════════════════════════════ # BUILD # ═══════════════════════════════════════════════════════════ doc.build(story) print(f"PDF created: {OUTPUT}") PYEOF echo "Script written"
cd /tmp/workspace/uterine-fibroid && python build_pdf.py
ls -lh /tmp/workspace/uterine-fibroid/Uterine_Fibroids_Summary.pdf
Uterine Fibroids Summary
PDF Document · PDF