Paper presentation on Uterine Fibroids Impact only on Women’s Health and Quality of Life for gynec resident
"uterine fibroids" AND "quality of life"
PMID: 38246400
"uterine leiomyoma" AND "symptoms" AND "burden"
ls /home/daytona/workspace/ 2>/dev/null && python3 -c "import reportlab; print('reportlab ok')" && python3 -c "from reportlab.lib.pagesizes import A4; print('A4 ok')"
mkdir -p /home/daytona/workspace/fibroid-presentation && cat > /home/daytona/workspace/fibroid-presentation/generate_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import landscape, A4 from reportlab.lib import colors from reportlab.lib.units import cm, mm from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY from reportlab.platypus import KeepTogether from reportlab.lib.colors import HexColor import textwrap # Color palette DARK_TEAL = HexColor('#0D4B5C') MED_TEAL = HexColor('#1A7B8A') LIGHT_TEAL = HexColor('#E0F4F7') ACCENT = HexColor('#E8703A') WHITE = colors.white LIGHT_GREY = HexColor('#F5F7FA') DARK_GREY = HexColor('#2C3E50') MID_GREY = HexColor('#6B7C8D') BORDER_GREY = HexColor('#D0D9E0') PAGE_W, PAGE_H = landscape(A4) MARGIN = 1.6 * cm doc = SimpleDocTemplate( '/home/daytona/workspace/fibroid-presentation/Uterine_Fibroids_QoL_Presentation.pdf', pagesize=landscape(A4), leftMargin=MARGIN, rightMargin=MARGIN, topMargin=MARGIN, bottomMargin=MARGIN, title='Uterine Fibroids: Impact on Women\'s Health and Quality of Life', author='Gynecology Residency Presentation' ) styles = getSampleStyleSheet() def slide_title_style(): return ParagraphStyle('SlideTitle', fontSize=26, textColor=WHITE, leading=30, fontName='Helvetica-Bold', alignment=TA_LEFT, spaceAfter=4) def slide_subtitle_style(): return ParagraphStyle('SlideSubtitle', fontSize=13, textColor=HexColor('#B8DCE4'), leading=17, fontName='Helvetica', alignment=TA_LEFT, spaceAfter=0) def heading2_style(): return ParagraphStyle('Heading2', fontSize=15, textColor=DARK_TEAL, leading=20, fontName='Helvetica-Bold', spaceAfter=6, spaceBefore=6) def body_style(): return ParagraphStyle('Body', fontSize=10.5, textColor=DARK_GREY, leading=15, fontName='Helvetica', spaceAfter=3, leftIndent=6) def bullet_style(): return ParagraphStyle('Bullet', fontSize=10.5, textColor=DARK_GREY, leading=15, fontName='Helvetica', leftIndent=18, firstLineIndent=-12, spaceAfter=4, bulletFontName='Helvetica') def sub_bullet_style(): return ParagraphStyle('SubBullet', fontSize=9.5, textColor=MID_GREY, leading=13, fontName='Helvetica', leftIndent=34, firstLineIndent=-12, spaceAfter=3) def caption_style(): return ParagraphStyle('Caption', fontSize=8.5, textColor=MID_GREY, leading=12, fontName='Helvetica-Oblique', alignment=TA_CENTER) def ref_style(): return ParagraphStyle('Ref', fontSize=7.5, textColor=MID_GREY, leading=11, fontName='Helvetica-Oblique', leftIndent=0) def accent_box_style(): return ParagraphStyle('AccentBox', fontSize=10.5, textColor=DARK_TEAL, leading=15, fontName='Helvetica-Bold', leftIndent=6) def build_header(title_text, subtitle_text=''): """Returns a full-width header table.""" title_para = Paragraph(title_text, slide_title_style()) sub_para = Paragraph(subtitle_text, slide_subtitle_style()) if subtitle_text else Spacer(1,1) data = [[title_para], [sub_para]] t = Table(data, colWidths=[PAGE_W - 2*MARGIN]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_TEAL), ('TOPPADDING', (0,0), (-1,-1), 14), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 18), ('RIGHTPADDING', (0,0), (-1,-1), 18), ('ROUNDEDCORNERS', [8,8,8,8]), ])) return t def accent_line(): return HRFlowable(width='100%', thickness=3, color=ACCENT, spaceAfter=10, spaceBefore=6) def divider(): return HRFlowable(width='100%', thickness=0.5, color=BORDER_GREY, spaceAfter=6, spaceBefore=4) def bullet(text, level=1): if level == 1: return Paragraph(f'• {text}', bullet_style()) else: return Paragraph(f'◦ {text}', sub_bullet_style()) def ref(text): return Paragraph(text, ref_style()) def stat_box(stat, label, color=MED_TEAL): data = [[Paragraph(f'<font size=22 color=white><b>{stat}</b></font>', ParagraphStyle('s', alignment=TA_CENTER, leading=26))], [Paragraph(f'<font size=9 color=white>{label}</font>', ParagraphStyle('l', alignment=TA_CENTER, leading=13))]] t = Table(data, colWidths=[5.5*cm]) t.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), color), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 6), ('RIGHTPADDING', (0,0), (-1,-1), 6), ('ROUNDEDCORNERS', [6,6,6,6]), ])) return t story = [] # ───────────────────────────────────────────────── # SLIDE 1: TITLE SLIDE # ───────────────────────────────────────────────── title_para = Paragraph('Uterine Fibroids', ParagraphStyle('TT', fontSize=36, textColor=WHITE, fontName='Helvetica-Bold', leading=42, alignment=TA_CENTER)) sub1_para = Paragraph('Impact on Women\'s Health and Quality of Life', ParagraphStyle('TS', fontSize=20, textColor=HexColor('#B8DCE4'), fontName='Helvetica', leading=26, alignment=TA_CENTER)) sub2_para = Paragraph('Paper Presentation | Gynecology Residency | May 2026', ParagraphStyle('TS2', fontSize=12, textColor=HexColor('#8DBEC8'), fontName='Helvetica-Oblique', leading=18, alignment=TA_CENTER)) title_tbl = Table([[title_para],[sub1_para],[Spacer(1,6)],[sub2_para]], colWidths=[PAGE_W - 2*MARGIN]) title_tbl.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), DARK_TEAL), ('TOPPADDING', (0,0), (-1,-1), 40), ('BOTTOMPADDING', (0,0), (-1,-1), 40), ('LEFTPADDING', (0,0), (-1,-1), 20), ('RIGHTPADDING', (0,0), (-1,-1), 20), ])) story.append(title_tbl) story.append(Spacer(1, 0.6*cm)) bottom_data = [ [Paragraph('Presented by', ParagraphStyle('pb1', fontSize=9, textColor=MID_GREY, alignment=TA_CENTER)), Paragraph('Department', ParagraphStyle('pb2', fontSize=9, textColor=MID_GREY, alignment=TA_CENTER)), Paragraph('Sources', ParagraphStyle('pb3', fontSize=9, textColor=MID_GREY, alignment=TA_CENTER))], [Paragraph('Gynecology Resident', ParagraphStyle('pb4', fontSize=11, textColor=DARK_GREY, alignment=TA_CENTER, fontName='Helvetica-Bold')), Paragraph('Obstetrics & Gynecology', ParagraphStyle('pb5', fontSize=11, textColor=DARK_GREY, alignment=TA_CENTER, fontName='Helvetica-Bold')), Paragraph('Berek & Novak\'s Gynecology; Fertility & Sterility 2024', ParagraphStyle('pb6', fontSize=10, textColor=DARK_GREY, alignment=TA_CENTER))] ] bt = Table(bottom_data, colWidths=[(PAGE_W - 2*MARGIN)/3]*3) bt.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), LIGHT_GREY), ('TOPPADDING', (0,0), (-1,-1), 8), ('BOTTOMPADDING', (0,0), (-1,-1), 8), ('LINEAFTER', (0,0), (1,-1), 1, BORDER_GREY), ])) story.append(bt) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 2: OVERVIEW / LEARNING OBJECTIVES # ───────────────────────────────────────────────── story.append(build_header('Overview & Learning Objectives', 'What this presentation covers')) story.append(accent_line()) cols = [ [Paragraph('After this presentation, the resident will be able to:', heading2_style()), bullet('Define uterine fibroids and their classification (FIGO system)'), bullet('Describe epidemiology and risk factors with racial disparities'), bullet('Correlate fibroid location with clinical symptoms'), bullet('Quantify the impact on heavy menstrual bleeding, pain, and urinary health'), bullet('Discuss psychosocial impact and mental health burden'), bullet('Understand reproductive consequences including infertility and pregnancy complications'), bullet('Summarize evidence-based treatment options and their effect on QoL'), ], [Paragraph('Scope: Women\'s Health Impact Only', heading2_style()), Table([[Paragraph('• Heavy Menstrual Bleeding', body_style())], [Paragraph('• Pelvic Pain & Pressure', body_style())], [Paragraph('• Urinary & Bowel Symptoms', body_style())], [Paragraph('• Reproductive Health', body_style())], [Paragraph('• Psychosocial & Mental Health', body_style())], [Paragraph('• Economic & Work-life Burden', body_style())], [Paragraph('• QoL Measures & Validated Scores', body_style())], ], colWidths=[9*cm], style=[('BACKGROUND', (0,0), (-1,-1), LIGHT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 8), ('LINEAFTER', (0,-1), (-1,-1), 2, MED_TEAL)] ) ] ] t2 = Table([cols], colWidths=[(PAGE_W - 2*MARGIN)*0.57, (PAGE_W - 2*MARGIN)*0.43]) t2.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t2) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 3: DEFINITION & CLASSIFICATION # ───────────────────────────────────────────────── story.append(build_header('Definition & Classification', 'Uterine Leiomyomas (Fibroids)')) story.append(accent_line()) left = [ Paragraph('What are Fibroids?', heading2_style()), bullet('Benign, monoclonal tumors of myometrial smooth muscle cells'), bullet('Contain large aggregations of extracellular matrix: collagen, elastin, fibronectin, proteoglycan'), bullet('Most common benign pelvic tumor in women of reproductive age'), bullet('Nearly never undergo malignant transformation - LMS arises de novo'), Spacer(1, 8), Paragraph('FIGO Classification by Location', heading2_style()), ] figo_data = [ [Paragraph('<b>Type</b>', body_style()), Paragraph('<b>Location</b>', body_style()), Paragraph('<b>Clinical Significance</b>', body_style())], [Paragraph('Type 0', body_style()), Paragraph('Submucosal - pedunculated intracavitary', body_style()), Paragraph('HMB, infertility', body_style())], [Paragraph('Type 1', body_style()), Paragraph('Submucosal - <50% intramural', body_style()), Paragraph('HMB, anemia', body_style())], [Paragraph('Type 2', body_style()), Paragraph('Submucosal - ≥50% intramural', body_style()), Paragraph('HMB, cavity distortion', body_style())], [Paragraph('Type 3-4', body_style()), Paragraph('Intramural (3=contacts endometrium)', body_style()), Paragraph('Bulk symptoms, mild HMB', body_style())], [Paragraph('Type 5-6', body_style()), Paragraph('Subserosal', body_style()), Paragraph('Pelvic pressure, urinary sx', body_style())], [Paragraph('Type 7', body_style()), Paragraph('Subsersal - pedunculated', body_style()), Paragraph('Risk of torsion', body_style())], [Paragraph('Type 8', body_style()), Paragraph('Other (cervical, parasitic)', body_style()), Paragraph('Variable', body_style())], ] ft = Table(figo_data, colWidths=[2*cm, 7*cm, 6*cm]) ft.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ])) left.append(ft) right = [ Paragraph('Key Molecular Biology', heading2_style()), bullet('~40-50% show nonrandom chromosomal rearrangements (chr 6, 7, 12, 14)'), bullet('Growth factors: TGF-β, bFGF, VEGF, PDGF, IGF - drive proliferation and ECM synthesis'), bullet('Estrogen + progesterone dependent:'), bullet('Highest mitotic index at peak progesterone production', 2), bullet('GnRH agonists shrink fibroids; concurrent progestin prevents this', 2), bullet('Rarely before puberty; regress after menopause'), Spacer(1, 10), Paragraph('Types of Degeneration', heading2_style()), bullet('Hyaline degeneration (most common)'), bullet('Cystic degeneration'), bullet('Calcification (postmenopausal)'), bullet('Hemorrhagic / Red degeneration (pregnancy)'), bullet('Type of degeneration NOT correlated with symptom severity'), ] t3 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.52, (PAGE_W - 2*MARGIN)*0.48]) t3.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t3) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 4: EPIDEMIOLOGY & RISK FACTORS # ───────────────────────────────────────────────── story.append(build_header('Epidemiology & Risk Factors', 'The most common benign pelvic tumor')) story.append(accent_line()) stat_row = [ stat_box('77%', 'Found on serial sectioning of\nhysterectomy specimens', DARK_TEAL), stat_box('80%', 'African American women\nby age 50', MED_TEAL), stat_box('70%', 'White women\nby age 50', ACCENT), stat_box('240K', 'Hysterectomies/year\nin the US due to fibroids', HexColor('#6B4C8A')), stat_box('$2.1B', 'Annual inpatient surgery\ncost (US)', HexColor('#2E7D52')), ] sr = Table([stat_row], colWidths=[5.8*cm]*5) sr.setStyle(TableStyle([ ('LEFTPADDING', (0,0), (-1,-1), 4), ('RIGHTPADDING', (0,0), (-1,-1), 4), ])) story.append(sr) story.append(Spacer(1, 0.4*cm)) risk_data = [ [Paragraph('<b>Risk Factor</b>', body_style()), Paragraph('<b>Effect</b>', body_style()), Paragraph('<b>Risk Factor</b>', body_style()), Paragraph('<b>Effect</b>', body_style())], [Paragraph('African American race', body_style()), Paragraph('↑ 2-3x risk; earlier onset, more severe', body_style()), Paragraph('Obesity (BMI >25)', body_style()), Paragraph('↑ Risk via increased estrogen bioavailability', body_style())], [Paragraph('Early menarche (<10 yrs)', body_style()), Paragraph('↑ Lifetime estrogen exposure', body_style()), Paragraph('Nulliparity', body_style()), Paragraph('↑ Risk; parity is protective', body_style())], [Paragraph('Hypertension', body_style()), Paragraph('↑ Risk, independent association', body_style()), Paragraph('Smoking', body_style()), Paragraph('↓ Risk (reduces estrogen bioavailability)', body_style())], [Paragraph('Family history', body_style()), Paragraph('↑ Risk; genetic predisposition', body_style()), Paragraph('Exercise', body_style()), Paragraph('↓ Risk (protective)', body_style())], ] rt = Table(risk_data, colWidths=[5*cm, 7.5*cm, 5*cm, 7.5*cm]) rt.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ('LINEBEFORE', (2,0), (2,-1), 1.5, DARK_TEAL), ])) story.append(rt) story.append(Spacer(1, 0.2*cm)) story.append(ref('Source: Berek & Novak\'s Gynecology, 16th ed., Ch. 11')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 5: HEAVY MENSTRUAL BLEEDING & ANEMIA # ───────────────────────────────────────────────── story.append(build_header('Heavy Menstrual Bleeding & Anemia', 'The most common symptomatic complaint')) story.append(accent_line()) left = [ Paragraph('Impact on Menstrual Health', heading2_style()), bullet('HMB is NOT universal - fibroids are present in many asymptomatic women'), bullet('Submucosal fibroids (Type 0 & 1) most strongly associated with HMB'), bullet('Study of 1,665 women undergoing hysteroscopy for HMB: 259 had submucosal fibroids'), bullet('Hemoglobin <12 g/dL significantly associated with submucosal fibroids', 2), bullet('Most strongly correlated with Type 0 (intracavitary) fibroids', 2), Spacer(1,6), bullet('Women with fibroids used 7.5 pads/tampons on heaviest day vs. 6.1 in controls'), bullet('Fibroids >5 cm: ~3 more pads/tampons on heaviest day of bleeding'), Spacer(1,6), Paragraph('Mechanism of HMB in Fibroids', heading2_style()), bullet('Distortion of endometrial surface area - increased vascularity'), bullet('Impaired uterine contractility reducing hemostasis'), bullet('Local growth factor dysregulation (TGF-β, VEGF)'), bullet('Venous ectasia and arteriovenous malformations in submucosal fibroids'), ] right = [ Paragraph('Anemia Consequences', heading2_style()), Table([ [Paragraph('• Fatigue and reduced work capacity', body_style())], [Paragraph('• Reduced cognitive function', body_style())], [Paragraph('• Impact on social and professional activities', body_style())], [Paragraph('• Reduced exercise tolerance', body_style())], [Paragraph('• Pre-operative iron deficiency requiring optimization', body_style())], ], colWidths=[10*cm], style=[('BACKGROUND', (0,0), (-1,-1), LIGHT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 8)]), Spacer(1, 10), Paragraph('Key Clinical Point', heading2_style()), Table([[Paragraph( 'Women with fibroid-related HMB score worse on SF-36 QoL questionnaires than women with hypertension, heart disease, chronic lung disease, or arthritis (Berek & Novak)', ParagraphStyle('kc', fontSize=10.5, textColor=DARK_TEAL, leading=15, fontName='Helvetica-Bold', leftIndent=6) )]], colWidths=[10*cm], style=[('BACKGROUND', (0,0), (-1,-1), HexColor('#FFF3ED')), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 10), ('LINEBEFORE', (0,0), (-1,-1), 4, ACCENT)]), Spacer(1,6), bullet('Differential: von Willebrand disease, adenomyosis, polyps - always consider'), ] t5 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.52, (PAGE_W - 2*MARGIN)*0.48]) t5.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t5) story.append(Spacer(1, 0.2*cm)) story.append(ref('Source: Berek & Novak\'s Gynecology, 16th ed.')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 6: PELVIC PAIN, PRESSURE & URINARY SYMPTOMS # ───────────────────────────────────────────────── story.append(build_header('Pelvic Pain, Pressure & Urinary Symptoms', 'Bulk-related and degenerative manifestations')) story.append(accent_line()) left = [ Paragraph('Pelvic Pain', heading2_style()), bullet('Population-based cohort of 635 non-care-seeking women (TVS-confirmed fibroids)'), bullet('Women with fibroids: only slightly more likely to report dyspareunia or non-cyclic pelvic pain'), bullet('No significant increase in dysmenorrhea compared to women without fibroids'), bullet('Neither fibroid number nor volume correlated with pain intensity'), Spacer(1,5), bullet('EXCEPTION: Women presenting to clinics for fibroid pain are a selected, more symptomatic group'), Spacer(1,5), Paragraph('Fibroid Degeneration - Acute Pain', heading2_style()), bullet('Occurs in ~5-9% of women with fibroids (higher in pregnancy)'), bullet('Sonographic features: anechoic spaces or coarse heterogeneous pattern'), bullet('Severe abdominal pain requiring hospitalization'), bullet('Red degeneration - most common in pregnancy (increased vascularity)'), bullet('Treatment: analgesics + observation; ibuprofen reduces hospital stay'), Spacer(1,5), Paragraph('Torsion of Pedunculated Subserosal Fibroid', heading2_style()), bullet('Produces ACUTE pelvic pain - surgical emergency'), bullet('Requires prompt laparoscopic or open evaluation'), ] right = [ Paragraph('Urinary & Bowel Symptoms', heading2_style()), Table([ [Paragraph('<b>Symptom</b>', body_style()), Paragraph('<b>Mechanism</b>', body_style()), Paragraph('<b>Frequency</b>', body_style())], [Paragraph('Urinary frequency', body_style()), Paragraph('Anterior wall / bladder compression', body_style()), Paragraph('Common', body_style())], [Paragraph('Urgency', body_style()), Paragraph('Detrusor irritation by fibroid', body_style()), Paragraph('Common', body_style())], [Paragraph('Incomplete emptying', body_style()), Paragraph('Urethral compression', body_style()), Paragraph('Less common', body_style())], [Paragraph('Hydronephrosis', body_style()), Paragraph('Ureteral compression (large)', body_style()), Paragraph('Rare', body_style())], [Paragraph('Constipation', body_style()), Paragraph('Posterior wall / rectal compression', body_style()), Paragraph('Posterior fibroids', body_style())], ], colWidths=[3.5*cm, 5.5*cm, 2.8*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1,10), Paragraph('Evidence for UAE Improving Urinary Symptoms', heading2_style()), bullet('Following UAE (35% reduction in mean uterine volume):'), bullet('68% had great or moderate improvement in frequency/urgency', 2), bullet('18% had slight improvement', 2), bullet('Only 14% unchanged or worse', 2), bullet('Confirms: uterine volume directly drives urinary symptom burden'), Spacer(1,6), Paragraph('Pressure Symptoms', heading2_style()), bullet('Pelvic fullness, heaviness, bloating - common with large fibroids'), bullet('Significant impact on daily activities and body image'), ] t6 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.48, (PAGE_W - 2*MARGIN)*0.52]) t6.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t6) story.append(Spacer(1,0.2*cm)) story.append(ref('Source: Berek & Novak\'s Gynecology, 16th ed.')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 7: PSYCHOSOCIAL & MENTAL HEALTH IMPACT # ───────────────────────────────────────────────── story.append(build_header('Psychosocial & Mental Health Impact', 'The hidden burden of fibroids')) story.append(accent_line()) left = [ Paragraph('QoL Burden Compared to Other Chronic Diseases', heading2_style()), Table([[Paragraph( 'Women undergoing hysterectomy for fibroid-related symptoms have significantly WORSE SF-36 scores than women with:\n• Hypertension\n• Heart disease\n• Chronic lung disease\n• Arthritis', ParagraphStyle('qb', fontSize=10.5, textColor=DARK_TEAL, leading=16, fontName='Helvetica', leftIndent=6) )]], colWidths=[12*cm], style=[('BACKGROUND', (0,0), (-1,-1), LIGHT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 10), ('LINEBEFORE', (0,0), (-1,-1), 4, MED_TEAL)]), Spacer(1, 10), Paragraph('Validated QoL Assessment Tools', heading2_style()), bullet('UFS-QoL (Uterine Fibroid Symptom - QoL): fibroid-specific, most validated'), bullet('SF-36: generic health-related QoL, 8 domains'), bullet('PGII (Patient Global Impression of Improvement)'), bullet('PHQ-9 / GAD-7: mental health screening tools'), bullet('SSS (Symptom Severity Score) - component of UFS-QoL'), Spacer(1,8), Paragraph('Domains Most Affected (SF-36 & UFS-QoL)', heading2_style()), bullet('Physical functioning - reduced by pain, fatigue, anemia'), bullet('Role limitations - work and social activity restriction'), bullet('Bodily pain - pelvic and menstrual pain'), bullet('Vitality - fatigue from anemia and sleep disruption'), bullet('Social functioning - avoidance of activities during heavy periods'), bullet('Mental health - anxiety, depression, body image concerns'), ] right = [ Paragraph('Mental Health Consequences', heading2_style()), Table([ [Paragraph('Anxiety & Depression', ParagraphStyle('mh', fontSize=11, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=15)), Paragraph('Associated with unpredictable heavy bleeding, fear of embarrassment, and chronic pain', body_style())], [Spacer(1,4), Spacer(1,4)], [Paragraph('Sexual Dysfunction', ParagraphStyle('mh2', fontSize=11, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=15)), Paragraph('Dyspareunia, reduced libido, avoidance of intimacy', body_style())], [Spacer(1,4), Spacer(1,4)], [Paragraph('Work Productivity', ParagraphStyle('mh3', fontSize=11, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=15)), Paragraph('Absenteeism, presenteeism; direct cost >$1.55 billion/year in US lost productivity', body_style())], [Spacer(1,4), Spacer(1,4)], [Paragraph('Body Image', ParagraphStyle('mh4', fontSize=11, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=15)), Paragraph('Abdominal distension, pregnancy-like appearance with large fibroids', body_style())], [Spacer(1,4), Spacer(1,4)], [Paragraph('Underestimation by Clinicians', ParagraphStyle('mh5', fontSize=11, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=15)), Paragraph('Physicians underestimate true impact; women often normalize symptoms for years', body_style())], ], colWidths=[4*cm, 7*cm], style=[('VALIGN', (0,0), (-1,-1), 'TOP'), ('TOPPADDING', (0,0), (-1,-1), 3), ('BOTTOMPADDING', (0,0), (-1,-1), 3)]), Spacer(1,10), Paragraph('2024 Systematic Review Findings', heading2_style()), bullet('67 studies (18 RCTs + 49 observational) - Neumann et al., Fertil Steril 2024'), bullet('ALL interventions associated with significant improvement in fibroid-specific QoL, mental health metrics, and symptom severity scores'), bullet('Highlights the magnitude of pre-treatment QoL impairment'), ] t7 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.50, (PAGE_W - 2*MARGIN)*0.50]) t7.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t7) story.append(Spacer(1,0.2*cm)) story.append(ref('Sources: Berek & Novak\'s Gynecology; Neumann et al., Fertil Steril 2024 [PMID: 38246400]')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 8: REPRODUCTIVE HEALTH IMPACT # ───────────────────────────────────────────────── story.append(build_header('Reproductive Health Impact', 'Infertility, miscarriage, and obstetric outcomes')) story.append(accent_line()) left = [ Paragraph('Fibroids and Infertility', heading2_style()), Table([[Paragraph( 'KEY PRINCIPLE (Berek & Novak Key Point #8):\n"Submucosal fibroids decrease fertility and removing them can increase fertility; subserosal fibroids do not affect fertility; intramural fibroids may slightly decrease fertility, but removal does not consistently increase fertility."', ParagraphStyle('kp', fontSize=10, textColor=DARK_TEAL, leading=15, fontName='Helvetica', leftIndent=6) )]], colWidths=[12.5*cm], style=[('BACKGROUND', (0,0), (-1,-1), HexColor('#FFF3ED')), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 10), ('LINEBEFORE', (0,0), (-1,-1), 4, ACCENT)]), Spacer(1,8), Paragraph('Mechanism of Infertility', heading2_style()), bullet('Obstruction of fallopian tube ostia (submucosal or cornual fibroids)'), bullet('Distortion of endometrial cavity - impaired implantation'), bullet('Altered uterine contractility and sperm transport'), bullet('Abnormal endometrial vascularization'), Spacer(1,8), Paragraph('Evidence on Intramural Fibroids', heading2_style()), bullet('Meta-analysis: non-cavity distorting intramural fibroids show no difference in conception or live birth rates in IUI cycles'), bullet('Myomectomy does NOT improve IVF outcomes for non-distorting intramural fibroids'), bullet('Decision to operate must weigh surgical risks vs. unproven benefit'), ] right = [ Paragraph('Fibroids in Pregnancy', heading2_style()), Table([ [Paragraph('<b>Complication</b>', body_style()), Paragraph('<b>Incidence / Notes</b>', body_style())], [Paragraph('Fibroid prevalence in pregnancy', body_style()), Paragraph('18% AA, 10% Hispanic, 8% White (1st trimester US)', body_style())], [Paragraph('Fibroid growth in pregnancy', body_style()), Paragraph('69% do NOT grow; greatest growth before 10 weeks', body_style())], [Paragraph('Red degeneration', body_style()), Paragraph('~5-9%; severe pain, fever, hospitalization', body_style())], [Paragraph('Preterm labour', body_style()), Paragraph('RR increased, especially with large/multiple fibroids', body_style())], [Paragraph('Placenta previa', body_style()), Paragraph('Increased risk with submucosal/lower segment', body_style())], [Paragraph('Placental abruption', body_style()), Paragraph('Increased risk if retroplacental fibroid', body_style())], [Paragraph('Fetal malpresentation', body_style()), Paragraph('Large fibroids distort uterine shape', body_style())], [Paragraph('Caesarean section', body_style()), Paragraph('Increased rate; fibroids may obstruct labour', body_style())], [Paragraph('PPH', body_style()), Paragraph('Impaired uterine contraction post-delivery', body_style())], ], colWidths=[6*cm, 8*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1,6), bullet('Most outcomes are reassuring in small studies - caution with generalization'), bullet('Myomectomy in pregnancy carries high risk - generally deferred'), ] t8 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.48, (PAGE_W - 2*MARGIN)*0.52]) t8.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t8) story.append(Spacer(1,0.2*cm)) story.append(ref('Source: Berek & Novak\'s Gynecology, 16th ed.')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 9: RACIAL DISPARITIES & SOCIAL DETERMINANTS # ───────────────────────────────────────────────── story.append(build_header('Racial Disparities & Social Determinants', 'A health equity perspective')) story.append(accent_line()) left = [ Paragraph('Striking Racial Differences', heading2_style()), Table([ [Paragraph('<b>Parameter</b>', body_style()), Paragraph('<b>African American</b>', body_style()), Paragraph('<b>White</b>', body_style())], [Paragraph('Incidence by age 35', body_style()), Paragraph('60%', body_style()), Paragraph('40%', body_style())], [Paragraph('Incidence by age 50', body_style()), Paragraph('>80%', body_style()), Paragraph('~70%', body_style())], [Paragraph('Age at diagnosis', body_style()), Paragraph('Younger', body_style()), Paragraph('Older', body_style())], [Paragraph('Fibroid growth rate', body_style()), Paragraph('Higher after age 35', body_style()), Paragraph('Declines after 35', body_style())], [Paragraph('Symptom severity', body_style()), Paragraph('More severe HMB, pain', body_style()), Paragraph('Generally milder', body_style())], [Paragraph('Hysterectomy rate', body_style()), Paragraph('2-3x higher', body_style()), Paragraph('Lower', body_style())], ], colWidths=[5.5*cm, 4.5*cm, 4.5*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1, 8), Paragraph('Why Do Disparities Exist?', heading2_style()), bullet('Genetic differences in fibroid biology and ECM composition'), bullet('Vitamin D deficiency more prevalent in darker-skinned populations'), bullet('Higher psychological stress - chronic stress increases cortisol and estrogen'), bullet('Hair relaxer use - phthalate/chemical exposure (emerging evidence)'), bullet('Socioeconomic barriers to early diagnosis and treatment'), bullet('Implicit bias in healthcare - symptom minimization by providers'), ] right = [ Paragraph('Impact on Health Equity', heading2_style()), bullet('African American women more likely to undergo hysterectomy than uterus-preserving alternatives'), bullet('Less likely to be offered UAE or myomectomy in some healthcare settings'), bullet('Delayed diagnosis due to normalized heavy bleeding culturally'), bullet('Loss of fertility potential due to delayed treatment'), Spacer(1, 12), Paragraph('Natural History & Menopause', heading2_style()), bullet('Growth rates decline with age in white women but NOT in African American women'), bullet('After menopause: fibroids typically regress as estrogen levels fall'), bullet('Spontaneous regression occurs in ~7% of fibroids over follow-up'), bullet('Watchful waiting near menopause: reasonable strategy for mild-moderate symptoms'), Table([[Paragraph( 'Clinical Pearl: "As women approach menopause, watchful waiting may be considered because there is limited time to develop new symptoms, and after menopause bleeding stops and fibroids decrease in size." - Berek & Novak', ParagraphStyle('cp', fontSize=10, textColor=DARK_TEAL, leading=15, fontName='Helvetica-Oblique', leftIndent=6) )]], colWidths=[11*cm], style=[('BACKGROUND', (0,0), (-1,-1), LIGHT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 8), ('BOTTOMPADDING', (0,0), (-1,-1), 8), ('LEFTPADDING', (0,0), (-1,-1), 10), ('LINEBEFORE', (0,0), (-1,-1), 4, MED_TEAL)]), ] t9 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.50, (PAGE_W - 2*MARGIN)*0.50]) t9.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t9) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 10: TREATMENT OPTIONS & QoL OUTCOMES # ───────────────────────────────────────────────── story.append(build_header('Treatment Options & QoL Outcomes', 'Evidence-based approach to improving women\'s health')) story.append(accent_line()) tx_data = [ [Paragraph('<b>Treatment</b>', body_style()), Paragraph('<b>Type</b>', body_style()), Paragraph('<b>QoL Evidence</b>', body_style()), Paragraph('<b>Key Consideration</b>', body_style())], [Paragraph('Watchful waiting', body_style()), Paragraph('Conservative', body_style()), Paragraph('Appropriate for mild-moderate symptoms', body_style()), Paragraph('42% satisfied at baseline in one cohort', body_style())], [Paragraph('GnRH agonists', body_style()), Paragraph('Medical', body_style()), Paragraph('Shrink fibroids 30-50%; improve HMB pre-op', body_style()), Paragraph('Max 6 months; bone loss; add-back therapy', body_style())], [Paragraph('Ulipristal / SPRMs', body_style()), Paragraph('Medical', body_style()), Paragraph('Improved HMB and QoL scores in RCTs', body_style()), Paragraph('Hepatotoxicity concern; regulatory review ongoing', body_style())], [Paragraph('Tranexamic acid / NSAIDs', body_style()), Paragraph('Medical', body_style()), Paragraph('Reduce HMB 30-50%; improve QoL', body_style()), Paragraph('Short-term; no effect on fibroid size', body_style())], [Paragraph('LNG-IUS (Mirena)', body_style()), Paragraph('Medical', body_style()), Paragraph('Reduces HMB, improves QoL', body_style()), Paragraph('Suitable if no cavity distortion', body_style())], [Paragraph('Hysteroscopic myomectomy', body_style()), Paragraph('Surgical', body_style()), Paragraph('UFS-QoL & HRQL significantly improved at 12 months', body_style()), Paragraph('Type 0/1 best; fertility-preserving', body_style())], [Paragraph('Abdominal/Lap myomectomy', body_style()), Paragraph('Surgical', body_style()), Paragraph('Significant improvement in all QoL domains', body_style()), Paragraph('Fertility-preserving; risk of recurrence 10-27%', body_style())], [Paragraph('Radiofrequency ablation (lap)', body_style()), Paragraph('Surgical', body_style()), Paragraph('HRQL improved at 3 months - maintained 36 months; 11% re-intervention rate', body_style()), Paragraph('Minimally invasive; uterus preserving', body_style())], [Paragraph('Uterine Artery Embolization', body_style()), Paragraph('Radiological', body_style()), Paragraph('Non-inferior to surgery for QoL at 1-2 years', body_style()), Paragraph('Avoid if planning pregnancy; POF risk', body_style())], [Paragraph('Hysterectomy', body_style()), Paragraph('Surgical', body_style()), Paragraph('Definitive; highest long-term QoL improvement', body_style()), Paragraph('No recurrence; eliminates fertility', body_style())], ] txf = Table(tx_data, colWidths=[4.3*cm, 2.5*cm, 8*cm, 5.5*cm]) txf.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ('VALIGN', (0,0), (-1,-1), 'TOP'), ])) story.append(txf) story.append(Spacer(1, 0.3*cm)) story.append(ref('Sources: Berek & Novak\'s Gynecology 16th ed.; Singh et al. Eur J Obstet Gynecol 2023 [PMID: 37385088]; Neumann et al. Fertil Steril 2024 [PMID: 38246400]; Peng et al. Sci Rep 2024 [PMID: 39164326]; Chen et al. J Minim Invasive Gynecol 2025 [PMID: 39277104]')) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 11: DIAGNOSTIC APPROACH & ASSESSMENT # ───────────────────────────────────────────────── story.append(build_header('Diagnosis & Clinical Assessment', 'Workup and symptom quantification')) story.append(accent_line()) left = [ Paragraph('Diagnostic Modalities', heading2_style()), Table([ [Paragraph('<b>Tool</b>', body_style()), Paragraph('<b>Role</b>', body_style()), Paragraph('<b>Notes</b>', body_style())], [Paragraph('Pelvic Exam', body_style()), Paragraph('Initial assessment', body_style()), Paragraph('Uterine size, tenderness, mobility', body_style())], [Paragraph('Transvaginal US', body_style()), Paragraph('First-line imaging', body_style()), Paragraph('Location, size, number; cavity assessment', body_style())], [Paragraph('Saline Infusion Sonohysterography', body_style()), Paragraph('Cavity evaluation', body_style()), Paragraph('Best for submucosal fibroid classification', body_style())], [Paragraph('MRI pelvis', body_style()), Paragraph('Pre-surgical planning', body_style()), Paragraph('Maps all fibroids; guides UAE/RF ablation', body_style())], [Paragraph('Hysteroscopy', body_style()), Paragraph('Diagnostic + therapeutic', body_style()), Paragraph('Direct visualization; simultaneous removal', body_style())], ], colWidths=[4.5*cm, 3.5*cm, 5.5*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1, 8), Paragraph('Laboratory Investigations', heading2_style()), bullet('FBC - assess degree of anemia (Hb, MCV, iron studies)'), bullet('Coagulation screen - exclude von Willebrand disease'), bullet('TFTs - exclude thyroid pathology as HMB cause'), bullet('Pregnancy test - always before intervention'), bullet('Endometrial biopsy - if irregular bleeding, age >40, or risk factors for malignancy'), ] right = [ Paragraph('Symptom Assessment Tools', heading2_style()), bullet('UFS-QoL Questionnaire: gold standard for fibroid-specific QoL'), bullet('8 symptom items + 29 HRQL items across 6 domains'), bullet('Domains: Concern, Activities, Energy/Mood, Control, Self-consciousness, Sexual Function'), bullet('Scores 0-100; higher HRQL = better QoL; higher SSS = worse symptoms'), Spacer(1,8), Paragraph('Indications for Treatment', heading2_style()), Table([ [Paragraph('<b>Indication</b>', body_style()), Paragraph('<b>Category</b>', body_style())], [Paragraph('Heavy menstrual bleeding causing anemia', body_style()), Paragraph('Strong', body_style())], [Paragraph('Significant pelvic pain unresponsive to analgesics', body_style()), Paragraph('Strong', body_style())], [Paragraph('Urinary incontinence or obstructive symptoms', body_style()), Paragraph('Moderate', body_style())], [Paragraph('Infertility with cavity-distorting submucosal fibroid', body_style()), Paragraph('Strong', body_style())], [Paragraph('Rapidly enlarging fibroid (>6 weeks growth/6 months)', body_style()), Paragraph('Concerning', body_style())], [Paragraph('Fibroid >10 cm with compression symptoms', body_style()), Paragraph('Relative', body_style())], [Paragraph('Patient\'s desire for definitive treatment', body_style()), Paragraph('Patient-centred', body_style())], ], colWidths=[8*cm, 3.5*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1,4), bullet('NOTE: Inability to visualize ovaries on pelvic exam is NOT an indication for surgery'), ] t11 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.50, (PAGE_W - 2*MARGIN)*0.50]) t11.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t11) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 12: ECONOMIC & WORK-LIFE BURDEN # ───────────────────────────────────────────────── story.append(build_header('Economic & Work-Life Burden', 'The systemic cost of undertreated fibroids')) story.append(accent_line()) econ_stats = [ stat_box('$2.1B', 'US inpatient surgery\ncosts/year', DARK_TEAL), stat_box('$1.55B', 'Annual lost work\nproductivity (US)', MED_TEAL), stat_box('30K', 'Myomectomies\nperformed/year (US)', ACCENT), stat_box('5.9 yrs', 'Average delay from\nsymptoms to diagnosis', HexColor('#6B4C8A')), ] es = Table([econ_stats], colWidths=[6.7*cm]*4) es.setStyle(TableStyle([('LEFTPADDING', (0,0), (-1,-1), 4), ('RIGHTPADDING', (0,0), (-1,-1), 4)])) story.append(es) story.append(Spacer(1, 0.5*cm)) left = [ Paragraph('Direct Costs', heading2_style()), bullet('Inpatient surgical costs: $2.1 billion/year (US)'), bullet('Outpatient management, medications, imaging - significant additional burden'), bullet('Fibroid accounts for the most common indication for hysterectomy in the US'), bullet('~240,000 hysterectomies/year performed for fibroids'), Spacer(1,8), Paragraph('Indirect Costs', heading2_style()), bullet('Work absenteeism: missed days due to heavy bleeding, pain, surgery recovery'), bullet('Presenteeism: reduced productivity while at work due to symptoms'), bullet('Caregiver burden: post-operative recovery, childcare disruption'), bullet('Mental health treatment costs: counseling, pharmacotherapy for depression/anxiety'), ] right = [ Paragraph('Impact on Daily Life Activities', heading2_style()), Table([ [Paragraph('Activity', body_style()), Paragraph('Impact', body_style())], [Paragraph('Exercise', body_style()), Paragraph('Avoidance due to flooding, pad-dependency, pain', body_style())], [Paragraph('Social events', body_style()), Paragraph('Planning around heavy days; fear of embarrassment', body_style())], [Paragraph('Travel', body_style()), Paragraph('Restricted; access to bathroom essential', body_style())], [Paragraph('Intimacy', body_style()), Paragraph('Reduced due to dyspareunia, low energy, self-consciousness', body_style())], [Paragraph('Sleep', body_style()), Paragraph('Disrupted by nocturnal symptoms, night pads', body_style())], [Paragraph('Career advancement', body_style()), Paragraph('Presenteeism; avoidance of high-stakes meetings on heavy days', body_style())], ], colWidths=[3.5*cm, 8*cm], style=[ ('BACKGROUND', (0,0), (-1,0), DARK_TEAL), ('TEXTCOLOR', (0,0), (-1,0), WHITE), ('ROWBACKGROUNDS', (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ('GRID', (0,0), (-1,-1), 0.5, BORDER_GREY), ('TOPPADDING', (0,0), (-1,-1), 5), ('BOTTOMPADDING', (0,0), (-1,-1), 5), ('LEFTPADDING', (0,0), (-1,-1), 6), ]), Spacer(1,8), Paragraph('Clinical Takeaway', heading2_style()), Table([[Paragraph( 'Do not underestimate the patient\'s burden. Active symptom assessment using validated tools (UFS-QoL, SF-36) should guide the decision to treat - not fibroid size alone.', ParagraphStyle('ct', fontSize=10.5, textColor=DARK_TEAL, leading=15, fontName='Helvetica-Bold', leftIndent=6) )]], colWidths=[11.5*cm], style=[('BACKGROUND', (0,0), (-1,-1), HexColor('#FFF3ED')), ('TOPPADDING', (0,0), (-1,-1), 10), ('BOTTOMPADDING', (0,0), (-1,-1), 10), ('LEFTPADDING', (0,0), (-1,-1), 10), ('LINEBEFORE', (0,0), (-1,-1), 4, ACCENT)]), ] t12 = Table([[left, right]], colWidths=[(PAGE_W - 2*MARGIN)*0.44, (PAGE_W - 2*MARGIN)*0.56]) t12.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LINEAFTER', (0,0), (0,-1), 1, BORDER_GREY), ('RIGHTPADDING', (0,0), (0,-1), 16), ('LEFTPADDING', (1,0), (1,-1), 16), ])) story.append(t12) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 13: KEY MESSAGES & SUMMARY # ───────────────────────────────────────────────── story.append(build_header('Key Messages & Clinical Takeaways', 'What every gynecology resident must know')) story.append(accent_line()) msgs = [ ('1. Fibroids are ubiquitous', 'Present in up to 77% of uteri at hysterectomy. Most are asymptomatic - treat symptoms, not images.'), ('2. QoL impact is profound & underrecognized', 'Women with fibroid-related HMB score WORSE than those with cardiac disease, hypertension, or arthritis on SF-36. Always use validated QoL tools.'), ('3. Location determines symptoms', 'Submucosal = HMB + infertility. Intramural = bulk + mild HMB. Subserosal = pressure + urinary. Classify using FIGO system.'), ('4. Racial disparities are real & must be addressed', 'African American women bear disproportionate burden - earlier onset, more fibroids, higher hysterectomy rates. Offer uterus-preserving options proactively.'), ('5. Reproductive impact is location-specific', 'Submucosal fibroids reduce fertility and myomectomy improves it. Intramural with normal cavity does not need surgery before IVF.'), ('6. All treatments improve QoL', '67 studies confirm every modality - medical, surgical, radiological - improves fibroid-specific QoL and mental health (Neumann et al. 2024). Personalise treatment to patient goals.'), ('7. Mental health is part of the disease', 'Screen for depression and anxiety. Assess sexual function, body image, and work impact. Fibroid management is holistic care.'), ('8. Watchful waiting is evidence-based', 'Mildly symptomatic patients may be observed. Near-menopausal women often benefit from waiting as regression occurs post-menopause.'), ] msg_cells = [] for i, (title, body) in enumerate(msgs): cell = Table([ [Paragraph(title, ParagraphStyle('mt', fontSize=10.5, textColor=DARK_TEAL, fontName='Helvetica-Bold', leading=14))], [Paragraph(body, ParagraphStyle('mb', fontSize=9.5, textColor=DARK_GREY, fontName='Helvetica', leading=13))], ], colWidths=[(PAGE_W - 2*MARGIN)/2 - 1*cm]) cell.setStyle(TableStyle([ ('BACKGROUND', (0,0), (-1,-1), LIGHT_GREY if i % 2 == 0 else LIGHT_TEAL), ('TOPPADDING', (0,0), (-1,-1), 7), ('BOTTOMPADDING', (0,0), (-1,-1), 7), ('LEFTPADDING', (0,0), (-1,-1), 10), ('RIGHTPADDING', (0,0), (-1,-1), 10), ('ROUNDEDCORNERS', [4,4,4,4]), ])) msg_cells.append(cell) rows = [] for i in range(0, len(msg_cells), 2): if i+1 < len(msg_cells): rows.append([msg_cells[i], msg_cells[i+1]]) else: rows.append([msg_cells[i], Spacer(1,1)]) mt = Table(rows, colWidths=[(PAGE_W - 2*MARGIN)/2]*2) mt.setStyle(TableStyle([ ('VALIGN', (0,0), (-1,-1), 'TOP'), ('LEFTPADDING', (0,0), (-1,-1), 4), ('RIGHTPADDING', (0,0), (-1,-1), 4), ('TOPPADDING', (0,0), (-1,-1), 4), ('BOTTOMPADDING', (0,0), (-1,-1), 4), ])) story.append(mt) story.append(PageBreak()) # ───────────────────────────────────────────────── # SLIDE 14: REFERENCES # ───────────────────────────────────────────────── story.append(build_header('References', 'Evidence base for this presentation')) story.append(accent_line()) refs = [ '1. Berek JS, Novak E. Berek & Novak\'s Gynecology, 16th Edition. Chapter 11: Uterine Leiomyomas. Wolters Kluwer Health, 2019. ISBN: 9781496380357.', '2. Neumann B, Singh B, Brennan J, Blanck J, Segars JH. The impact of fibroid treatments on quality of life and mental health: a systematic review. Fertil Steril. 2024 Mar;121(3):.. [PMID: 38246400] [PMC: PMC11140829]', '3. Singh S, Kumar P, Kavita. Contemporary approaches in the management of uterine leiomyomas. Eur J Obstet Gynecol Reprod Biol. 2023 Aug. [PMID: 37385088]', '4. Peng J, Wang J, Shu Q. Systematic review and meta-analysis of current evidence in uterine artery embolization vs myomectomy for symptomatic uterine fibroids. Sci Rep. 2024 Aug 20. [PMID: 39164326]', '5. Chen I, Berman JM, Balk EM. Radiofrequency Ablation for the Treatment of Uterine Fibroids: A Systematic Review and Meta-Analysis by the AAGL Practice Committee. J Minim Invasive Gynecol. 2025 Jan. [PMID: 39277104]', '6. Puscasiu L, Vollenhoven B, Nagels HE. Preoperative medical therapy before surgery for uterine fibroids. Cochrane Database Syst Rev. 2025 Apr 4. [PMID: 40183418]', '7. Robbins & Kumar Basic Pathology, 11th Edition. Chapter: Female Genital Tract - Proliferative Lesions. ISBN: 9780323790185.', '8. Donnez J, Dolmans MM. Uterine fibroid management: from the present to the future. Hum Reprod Update. 2016;22(6):665-686.', '9. Stewart EA. Uterine fibroids. N Engl J Med. 2015;372(17):1646-1655.', '10. Marsh EE, Al-Hendy A, Kappus D, Galitsky A, Stewart EA, Kerolous M. Burden, prevalence, and treatment of uterine fibroids: a survey of U.S. women. J Womens Health (Larchmt). 2018;27(11):1359-1367.', ] for r in refs: story.append(Paragraph(r, ParagraphStyle('rf', fontSize=9, textColor=DARK_GREY, leading=13, fontName='Helvetica', spaceAfter=5, leftIndent=0))) story.append(Spacer(1, 0.5*cm)) story.append(divider()) story.append(Paragraph( 'Disclosure: This presentation was prepared for educational purposes for gynecology residency training. Content is based on major gynecology textbooks and peer-reviewed literature. Clinical decisions should be guided by institutional protocols and current evidence-based guidelines.', ParagraphStyle('disc', fontSize=8, textColor=MID_GREY, leading=12, fontName='Helvetica-Oblique') )) # BUILD doc.build(story) print("PDF generated successfully!") PYEOF echo "Script written"
cd /home/daytona/workspace/fibroid-presentation && python3 generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/fibroid-presentation/Uterine_Fibroids_QoL_Presentation.pdf
Uterine Fibroids QoL Presentation
PDF Document · PDF
| Slide | Topic |
|---|---|
| 1 | Title Slide - Department, presenter, source attribution |
| 2 | Overview & Learning Objectives - Scope and goals |
| 3 | Definition & Classification - FIGO system (Type 0-8), molecular biology, degeneration types |
| 4 | Epidemiology & Risk Factors - Stats infographic (77%, 80%, $2.1B); risk factor table |
| 5 | Heavy Menstrual Bleeding & Anemia - Mechanism, submucosal correlation, pad count data, key QoL quote |
| 6 | Pelvic Pain, Pressure & Urinary Symptoms - Pain evidence, degeneration, UAE outcomes table |
| 7 | Psychosocial & Mental Health Impact - SF-36 comparison vs chronic diseases, UFS-QoL domains, 2024 systematic review |
| 8 | Reproductive Health Impact - Infertility by location, pregnancy complications table |
| 9 | Racial Disparities & Social Determinants - AA vs White comparison, health equity issues, natural history |
| 10 | Treatment Options & QoL Outcomes - 11-row table covering all modalities with QoL evidence |
| 11 | Diagnosis & Clinical Assessment - Imaging, labs, UFS-QoL tool, indications for treatment |
| 12 | Economic & Work-Life Burden - Stats infographic, daily life impact table |
| 13 | Key Messages (8 takeaways) - Color-coded summary grid |
| 14 | References - 10 citations including Berek & Novak's 16th ed. + 5 PubMed sources (2023-2025) |
Paper presentation on Uterine Fibroids Impact only on Women’s Health and Quality of Life for gynec resident
ls -lh /home/daytona/workspace/fibroid-presentation/ 2>/dev/null && echo "DIR_EXISTS" || echo "DIR_MISSING"
"uterine fibroids" AND "quality of life"
python3 /home/daytona/workspace/fibroid-presentation/generate_pdf.py 2>&1 && ls -lh /home/daytona/workspace/fibroid-presentation/Uterine_Fibroids_QoL_Presentation.pdf
Uterine Fibroids QoL Presentation
PDF Document · PDF
| # | Slide Title | Key Content |
|---|---|---|
| 1 | Title Slide | Department, date, sources |
| 2 | Learning Objectives | Scope, 8 goals |
| 3 | Definition & Classification | FIGO Type 0-8 table, molecular biology, degeneration types |
| 4 | Epidemiology & Risk Factors | Stats infographic (77%, 80%, $2.1B), risk factor table |
| 5 | Heavy Menstrual Bleeding & Anemia | Submucosal-HMB correlation, pad count data, SF-36 QoL quote |
| 6 | Pelvic Pain, Pressure & Urinary Symptoms | Pain evidence (635-woman cohort), degeneration, UAE urinary outcomes |
| 7 | Psychosocial & Mental Health | SF-36 vs chronic diseases, UFS-QoL domains, 2024 systematic review |
| 8 | Reproductive Health Impact | Infertility by fibroid type, pregnancy complications table (9 outcomes) |
| 9 | Racial Disparities & Social Determinants | AA vs White comparison table, health equity, natural history |
| 10 | Treatment Options & QoL Outcomes | 11-row evidence table covering all modalities |
| 11 | Diagnosis & Clinical Assessment | Imaging table, UFS-QoL tool, indications for treatment |
| 12 | Economic & Work-Life Burden | Stats infographic, daily activity impact table |
| 13 | 8 Key Clinical Takeaways | Color-coded summary grid |
| 14 | References | 10 citations with PMIDs |
Improve pdf with colour and content
Re-edit thi case paper and remove pink background from all pages
Edit this pdf made by you and remove pink colour from whole pdf
grep -n "FFF3ED\|E8703A\|ff\|pink\|rose\|FFC\|FFE\|F4A\|FFA\|FF9\|FF8\|FF7\|ACCENT\|accent" /home/daytona/workspace/fibroid-presentation/generate_pdf.py | head -60
~/fibroid-presentation/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/fibroid-presentation/generate_pdf.py'
~/fibroid-presentation/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/fibroid-presentation/generate_pdf.py'
grep -n "FFF3ED" /home/daytona/workspace/fibroid-presentation/generate_pdf.py
sed -i "s/HexColor('#FFF3ED')/HexColor('#E8F4F8')/g" /home/daytona/workspace/fibroid-presentation/generate_pdf.py && grep -n "FFF3ED\|E8F4F8" /home/daytona/workspace/fibroid-presentation/generate_pdf.py
~/fibroid-presentation/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/fibroid-presentation/generate_pdf.py'
~/fibroid-presentation/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/fibroid-presentation/generate_pdf.py'
grep -n "6B4C8A\|FFF3ED\|E8703A\|FF.*ED\|pink" /home/daytona/workspace/fibroid-presentation/generate_pdf.py
grep -n "FFF3ED\|E8703A" /home/daytona/workspace/fibroid-presentation/generate_pdf.py && echo "---CLEAN CHECK DONE---"
cd /home/daytona/workspace/fibroid-presentation && python3 generate_pdf.py 2>&1 && ls -lh Uterine_Fibroids_QoL_Presentation.pdf
Uterine Fibroids QoL Presentation
PDF Document · PDF
| What was removed | Replaced with |
|---|---|
#E8703A orange/pink accent lines & stat boxes | #1A7B8A medium teal |
#FFF3ED peach/pink callout box backgrounds (3 boxes) | #E8F4F8 clean light blue |