attachment
attachment
attachment
attachment

Make an exam oriented notes property understandable learning notes with every important pointers from the given source

analyse_media
analyse_media
The images are clear enough for me to read directly. I'll now compile comprehensive exam-oriented notes from both screenshots.

πŸ“š MENOPAUSE - Exam-Oriented Notes


1. DEFINITION

  • Menopause = Permanent cessation of menstruation at the end of reproductive life due to loss of ovarian follicular activity
  • It is the point when last and final menstruation occurs
  • Clinical diagnosis confirmed after 12 consecutive months of amenorrhea without any other pathology
  • Key rule: Menopause is declared only RETROSPECTIVELY
  • Serum FSH elevated around the period of menopause (age 45-55 years)

Menopause Transition

  • Period of time when a woman passes from reproductive to non-reproductive stage
  • Covers 4-7 years on either side of menopause
  • Associated with: elevated serum FSH, variable menstrual cycle length, missed menses

Postmenopause

  • The phase of life after menopause

2. AGE OF MENOPAUSE

  • Age of menopause is genetically predetermined
  • NOT related to: age of menarche, last pregnancy, number of pregnancies, lactation, OCP use, socioeconomic condition, race, height, or weight
  • Thinner women have early menopause
  • Causes of early menopause: cigarette smoking, severe malnutrition
  • Range: 45-55 years | Average: 50 years

3. CLINICAL IMPORTANCE

  • Increased life expectancy β†’ women spend large portion of life in estrogen deficiency stage
  • Long-term symptomatic and metabolic complications result from this

4. ENDOCRINOLOGY OF MENOPAUSAL TRANSITION

Hypothalamo-Pituitary-Gonadal Axis

  • Ovarian follicles become resistant to pituitary gonadotropins
  • Effective folliculogenesis is impaired β†’ diminished estradiol production
  • Estradiol falls from 50-300 pg/mL (before menopause) to 10-20 pg/mL (after)
  • Reduced estradiol β†’ decreased negative feedback on hypothalamo-pituitary axis β†’ FSH increases
  • FSH increase is also due to diminished Inhibin (peptide secreted by granulosa cells of ovarian follicle)
  • LH increases subsequently
  • Disturbed folliculogenesis β†’ anovulation, oligoovulation, premature corpus luteum, corpus luteal insufficiency
  • Sustained estrogen levels β†’ can cause endometrial hyperplasia and clinical manifestation of menstrual abnormalities
  • Mean cycle length becomes shorter (follicular phase shortens; luteal phase remains constant)
  • In late menopausal transition: accelerated rate of follicular depletion
  • Ultimately, no more follicles β†’ resistance to gonadotropins β†’ estradiol drops to 20 pg/mL β†’ no endometrial growth β†’ absence of menstruation

5. HORMONAL CHANGES AFTER MENOPAUSE

Estrogens

  • Predominant estrogen after menopause = Estrone (not estradiol)
  • Estrone level: 30-70 pg/mL (higher than estradiol 10-20 pg/mL)
  • Main source of estrone = peripheral conversion (aromatization) of androgens from adrenals (mainly) and ovaries
  • Aromatization occurs at level of muscle and adipose tissue
  • Estrone is biologically less potent (about one-tenth of estradiol)
  • 5-10 years after menopause: sharp fall in estrogen and trophic hormones β†’ true menopause

Androgens

  • After menopause: stromal cells of ovary continue to produce androgens (androstenedione and testosterone)
  • Peripheral androgen levels reduced due to conversion to estrone
  • Results in increased estrogen:androgen ratio β†’ increased facial hair growth and voice changes
  • Obese patients convert more androgens to estrone β†’ less likely to develop estrogen deficiency symptoms; more vulnerable to endometrial hyperplasia and carcinoma

Progesterone

  • Trace amount (probably adrenal)
  • Anti-Mullerian Hormone (AMH) levels decreased markedly due to loss of ovarian reserve

Gonadotropins

  • Both FSH and LH are increased due to:
    • Absent negative feedback of estradiol and inhibin
    • Enhanced responsiveness of pituitary to GnRH
  • FSH rise = 10-20 fold (LH rise = about 3-fold)
  • GnRH pulse section increased in frequency and amplitude
  • Fall in level of inhibin β†’ increase in FSH from pituitary
  • Physiological aging causes both FSH and LH to ultimately decline with decline of estrogens

6. ORGAN CHANGES

OrganChanges
OvariesShrink, become wrinkled/white; cortex thins; increased stromal cells (secretory activity)
Fallopian tubesAtrophy; muscle coat thins; cilia disappear; plicae less prominent
UterusBecomes smaller; body:cervix ratio reverts to 1:1; endometrium thin/atrophic; cervical secretion scanty
VaginaNarrow; epithelium thin, no glycogen, no Doderlein's bacilli; vaginal pH becomes alkaline (parabasal, intermediate, superficial cells 10/85/5)
VulvaAtrophy; labia flattened; pubic hair less; narrow introitus
BreastsBreast fat reabsorbed; glands atrophy; nipples decrease; breasts become flat and pendulous
Bladder/UrethraThin epithelium; prone to damage/infection; dysuria, frequency, urgency, stress incontinence
Muscle toneLoss β†’ pelvic relaxation, uterine descent, anatomic changes in urethra/bladder neck; pelvic cellular tissues become scanty; ligaments lose tone

7. BONE METABOLISM

Key Concepts

  • Bone formation (osteoblastic) and resorption (osteoclastic) are normally in balance
  • After menopause: bone mass loss of 3-5% per year (due to estrogen deficiency)
  • Osteoporosis = reduction in bone mass; bone mineral to matrix ratio is normal

Bone Mineral Density (BMD) - T-Scores

T-ScoreDiagnosis
+2.5 to -1.0Normal BMD
-1.0 to -2.5Osteopenia (precursor to osteoporosis)
< -2.5Osteoporosis
  • Risk of fracture increased in osteoporosis
  • Bone loss primarily in trabecular bone (vertebra, distal radius) and cortical bones
  • PTH and IL-1 are involved in osteoporosis
  • Estrogen: inhibits osteoclastic activity, inhibits release of IL-1 by monocytes, increases calcium absorption from gut, stimulates calcitonin from thyroid C cells, increases 1,25-dihydroxyvitamin D β†’ increased bone mineralization

Risk Factors for Osteoporosis in Women (TABLE 6.1)

  • Family history
  • Age > 65 years
  • Asian/white race
  • Lack of estrogen
  • Low body weight/BMI
  • Fragility fracture
  • Osteopenia, Osteoporosis
  • Hypogonadism
  • Fall risk factors
  • Early menopause (surgical, radiation)
  • Dietary: low calcium, low Vit D, high caffeine, smoking, alcohol
  • Sedentary habit
  • Medications: heparin, corticosteroids, GnRH analogs, anticonvulsants
  • Diseases: rheumatoid arthritis, hyperparathyroidism, malabsorption, multiple myeloma, thyroid disorders

Detection of Osteoporosis

  • CT and especially DEXA (Dual-energy X-ray absorptiometry) are reliable methods
  • Total radiation exposure is higher with CT than DEXA
  • FRAX tool (WHO-2001): Calculates 10-year fracture risk probability; considers 11 risk factors; uses femoral neck BMD (gm/cmΒ²)
  • Biochemical markers: Urinary calcium/creatinine and hydroxyproline/creatinine ratios

8. CARDIOVASCULAR SYSTEM

  • Risk of cardiovascular disease high in postmenopausal women due to estrogen deficiency
  • Estrogen prevents cardiovascular disease by:
    • Increases HDL2 (high-density lipoprotein)
    • Decreases LDL and total cholesterol
    • Inhibits platelet and macrophage (foam cell) aggregation at vascular intima
    • Stimulates NO (nitric oxide) and prostacyclin from vascular endothelium β†’ dilates blood vessels
    • Prevents atherosclerosis by its antioxidant property
  • CV and cerebrovascular effects: oxidation of LDL + foam cell formation β†’ vascular endothelial injury, cell death, smooth muscle proliferation β†’ insulin resistance and central (android) obesity β†’ atherosclerosis, vasoconstriction, thrombus formation

Risk Factors for Cardiovascular Disease (TABLE 6.2)

  • Hypertension
  • Familial hyperlipidemia
  • Smoking habit
  • Impaired glucose tolerance

9. MENSTRUATION PATTERN PRIOR TO MENOPAUSE

Any of the following patterns observed:
  • Abrupt cessation of menstruation (rare)
  • Gradual decrease in both amount and duration - may be spotting, delayed, ultimately lead to cessation
  • Irregular with or without excessive bleeding - exclude genital malignancy before declaring it the usual premenopausal pattern

10. MENOPAUSAL SYMPTOMS

Important Symptoms and Health Concerns

  1. Vasomotor symptoms
  2. Urogenital atrophy
  3. Osteoporosis and fracture
  4. Cardiovascular disease
  5. Cerebrovascular diseases
  6. Psychological changes
  7. Skin and hair
  8. Sexual dysfunction
  9. Dementia and cognitive decline

11. SYMPTOMS OF MENOPAUSAL TRANSITION

CategorySymptoms
A. MenstrualShorter cycles (common), irregular bleeding
B. VasomotorHot flashes, night sweats, sleep disturbances
C. PsychologicalIrritability, mood swings, poor memory, depression
D. Sexual dysfunctionVaginal dryness, dyspareunia
E. UrinaryIncontinence, urgency, dysuria
F. OthersBack aches, joint aches

12. DETAILED SYMPTOM ANALYSIS

A. Vasomotor Symptoms (HOT FLASH)

  • Most characteristic symptom of menopause
  • Characterized by: Sudden feeling of heat followed by profuse sweating
  • Other symptoms: palpitation, fatigue, weakness
  • Physiologic changes: perspiration and cutaneous vasodilation (under central thermoregulatory control)
  • Low estrogen = prerequisite for hot flash
  • Hot flash coincides with GnRH pulse secretion with increase in serum LH level
  • Duration: 1-10 minutes; sleep may be disturbed (night sweats)
  • Thermoregulatory center in hypothalamus is involved in etiology of hot flash
  • Gonadotropins (LH) are thought to be involved
  • Altered levels of norepinephrine and serotonin also responsible (lower the set point in thermoregulatory center)

B. Genital and Urinary System

  • Steroid receptors identified in mucous membrane of urethra, bladder, vagina, and pelvic floor muscles
  • Estrogen deficiency β†’ atrophic epithelial changes β†’ dyspareunia and dysuria

Dyspareunia:

  • Estradiol deficiency β†’ vaginal dryness or atrophy
  • Estrogen replacement reverses atrophic changes
  • Can be given orally or vaginally
  • 17 Ξ²-estradiol tablet or Conjugated Equine Estrogen (CEE) cream is effective
  • Risks of endometrial hyperplasia is less with vaginal tablets than cream
  • Vaginal lubricants (water soluble) and moisturisers (K-Y jelly) are commonly used

Vaginal Changes:

  • Minimal trauma may cause vaginal bleeding
  • Also: dyspareunia, vaginal infections, dryness, pruritus, leucorrhea

Urinary Symptoms:

  • Urgency, dysuria, and recurrent urinary tract infections (UTI), stress incontinence

C. Sexual Dysfunction

  • Estrogen deficiency β†’ decreased sexual desire
  • Due to psychological changes (depression anxiety) + atrophic changes of genitourinary system

D. Skin and Hair

  • Thinning, loss of elasticity, wrinkling
  • Skin collagen content and thickness decrease 1-2% per year
  • 'Purse string' wrinkling around mouth; 'crow feet' around eyes are characteristic
  • Estrogen receptors present in skin; maximum in facial skin
  • Estrogen replacement can prevent skin loss during menopause
  • After menopause: loss of pubic and axillary hair; slight balding (low testosterone)

E. Psychological Changes

  • Increased frequency: anxiety, headache, insomnia, irritability, dysphasia, depression
  • Also: dementia, mood swings, inability to concentrate
  • Estrogen increases opioid (neurotransmitter) activity in brain β†’ important for memory

Dementia:

  • Estrogen improves cerebral perfusion and cognition
  • Not clear whether estrogen therapy prevents vascular dementia and Alzheimer's disease

F. Osteoporosis and Fracture

  • Decline in collagenous bone matrix
  • Bone mass loss and microarchitectural deterioration primarily in trabecular bone (vertebra, distal radius) and cortical bones
  • Bone loss increases to 5% per year during menopause
  • Osteoporosis may be:
    • Primary (Type 1): due to estrogen loss, age, deficient nutrition (calcium, Vitamin D), or hereditary
    • Secondary (Type 2): due to endocrine (parathyroid, diabetes) or medication abnormalities
  • Fracture may be due to fall of woman (fall risk factors) - reduced muscle mass, cognitive impairment
  • Fracture sites: vertebral body, femoral neck, distal forearm (Colles' fracture)
  • Morbidity and mortality in elderly women with fracture is HIGH

13. DIAGNOSIS OF MENOPAUSE

  1. Cessation of menstruation for consecutive 12 months during climacteric
  2. Average age: 50 years
  3. Appearance of menopausal symptoms - hot flash and night sweats
  4. Vaginal cytology: maturation index of at least 10/85/5 (features of low estrogen)
  5. Serum estradiol: < 20 pg/mL
  6. Serum FSH and LH: > 40 mIU/mL (three values at weekly intervals required)

14. MANAGEMENT

Prevention

  • Spontaneous menopause: unavoidable
  • Artificial menopause (surgery/radiation/chemotherapy): can be prevented or delayed
  • Counseling: Every woman with postmenopausal symptoms should be adequately counseled about physiologic events β†’ removes fear, minimizes anxiety, depression, insomnia - Reassurance is essential

Non-Hormonal Treatment

TreatmentDetails
Lifestyle modificationPhysical activity, reducing high coffee intake, smoking, excessive alcohol; adequate calcium (300 mL milk); reduce bone loss medications (corticosteroids)
Nutritious dietBalanced with calcium and protein
Supplementary calciumDaily intake of 1-1.5 g β†’ reduces osteoporosis and fracture
ExerciseWeight bearing - walking, jogging
Vitamin DSupplementation of Vit D₃ (1500-2000 IU/day) along with calcium β†’ reduces osteoporosis and fractures; sunlight exposure synthesizes cholecalciferol (Vit D₃)
Cessation of smoking and alcohol-
BisphosphonatesPrevents osteoclastic bone resorption; improves bone density; preferred for older women; monitored with bone density measurement; commonly used: Ibandronate, Alendronate; Risedronate also effective with fewer side effects; taken on empty stomach; remain upright for 30 minutes after oral dosing; Side effects: gastric and esophageal ulceration/bleeding, osteomyelitis, osteonecrosis of the jaw; when used alone cannot prevent hot flashes, atrophic changes, and cardiovascular disease
CalcitoninInhibits bone resorption by inhibiting osteoclasts; polypeptide hormone; given simultaneously with calcium and Vitamin D

15. HIGH-YIELD EXAM POINTS (MNEMONICS & KEY FACTS)

Quick Recall Box

PointFact
Diagnosis declaredRetrospectively (after 12 months of amenorrhea)
Average age50 years (range 45-55)
Predominant post-menopausal estrogenEstrone (not estradiol)
Source of estronePeripheral aromatization (adrenals/ovaries β†’ adipose/muscle)
FSH rise10-20 fold (LH rises only 3-fold)
AMHMarkedly decreased
Bone loss3-5% per year (up to 5% during menopause)
DEXA T-score for osteoporosis< -2.5
DEXA T-score for osteopenia-1.0 to -2.5
Serum FSH for diagnosis> 40 mIU/mL
Serum estradiol for diagnosis< 20 pg/mL
Skin collagen loss1-2% per year
Hot flash mechanismLow estrogen β†’ GnRH pulse β†’ LH surge
Characteristic skin wrinklingPurse string (mouth), Crow feet (eyes)
Fracture site (Colles')Distal forearm
BisphosphonatesTake on empty stomach; stay upright 30 min
Most common menstrual patternGradual decrease (spotting/delay β†’ cessation)
Vaginal pH after menopauseAlkaline (loss of Doderlein's bacilli)
Estrogen + cardiovascularIncreases HDL2, decreases LDL, antioxidant
FRAX toolCalculates 10-year fracture probability

Note: These notes cover all major exam-tested topics from the Menopause chapter. Focus especially on the diagnostic criteria, T-score thresholds, hormonal changes, vasomotor symptoms mechanism, bisphosphonate side effects, and the estrone/estradiol distinction - these are the most commonly tested points in clinical exams.

You are written every thing in this ..make a concise pdf including tables in it with minimum pages

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Running Command

mkdir -p /home/daytona/workspace/menopause-notes && python3 -c "from reportlab.lib import colors; print('reportlab ok')"

Writing File

~/menopause-notes/generate_pdf.py

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_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/menopause-notes/Menopause_Notes.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=1.5*cm, rightMargin=1.5*cm,
    topMargin=1.5*cm, bottomMargin=1.5*cm,
)

W = A4[0] - 3*cm  # usable width

# ── Colour palette ──────────────────────────────────────────────
DARK_BLUE  = colors.HexColor("#1a3a5c")
MED_BLUE   = colors.HexColor("#2563a8")
LIGHT_BLUE = colors.HexColor("#dbeafe")
ACCENT     = colors.HexColor("#dc2626")   # red for high-yield
GOLD       = colors.HexColor("#b45309")
TABLE_HDR  = colors.HexColor("#1e40af")
TABLE_ALT  = colors.HexColor("#eff6ff")
WHITE      = colors.white
LIGHT_GREY = colors.HexColor("#f8fafc")
BORDER     = colors.HexColor("#93c5fd")

# ── Styles ───────────────────────────────────────────────────────
styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

title_s = S("TitleS", fontName="Helvetica-Bold", fontSize=22,
            textColor=WHITE, alignment=TA_CENTER, spaceAfter=4)
sub_title_s = S("SubT", fontName="Helvetica", fontSize=10,
                textColor=LIGHT_BLUE, alignment=TA_CENTER, spaceAfter=2)
sec_s = S("Sec", fontName="Helvetica-Bold", fontSize=10,
          textColor=WHITE, alignment=TA_LEFT,
          leftIndent=4, spaceAfter=2, spaceBefore=6)
body_s = S("Body", fontName="Helvetica", fontSize=8.2,
           textColor=colors.HexColor("#1e293b"), leading=12,
           spaceAfter=3, alignment=TA_JUSTIFY)
bullet_s = S("Bul", fontName="Helvetica", fontSize=8.2,
             textColor=colors.HexColor("#1e293b"), leading=11.5,
             leftIndent=12, firstLineIndent=-8, spaceAfter=2)
bold_s = S("Bold", fontName="Helvetica-Bold", fontSize=8.2,
           textColor=DARK_BLUE, leading=12, spaceAfter=2)
high_s = S("High", fontName="Helvetica-Bold", fontSize=8,
           textColor=ACCENT, leading=11, spaceAfter=2)
note_s = S("Note", fontName="Helvetica-Oblique", fontSize=7.5,
           textColor=GOLD, leading=10, spaceAfter=2)

def section_header(text):
    """Blue banner heading."""
    data = [[Paragraph(text, sec_s)]]
    t = Table(data, colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), TABLE_HDR),
        ("TOPPADDING",  (0,0), (-1,-1), 3),
        ("BOTTOMPADDING",(0,0),(-1,-1), 3),
        ("LEFTPADDING", (0,0), (-1,-1), 6),
        ("ROWBACKGROUNDS",(0,0),(-1,-1),[TABLE_HDR]),
    ]))
    return t

def mini_header(text):
    return Paragraph(f"<font color='#1e40af'><b>β–Œ {text}</b></font>", bold_s)

def bullet(text):
    return Paragraph(f"β€’ {text}", bullet_s)

def body(text):
    return Paragraph(text, body_s)

def high(text):
    return Paragraph(f"β˜… {text}", high_s)

def note(text):
    return Paragraph(f"πŸ“ {text}", note_s)

def sp(h=4):
    return Spacer(1, h)

def hr():
    return HRFlowable(width=W, thickness=0.5, color=BORDER, spaceAfter=3, spaceBefore=3)

def make_table(headers, rows, col_widths=None):
    data = [[Paragraph(f"<b>{h}</b>", ParagraphStyle("th", fontName="Helvetica-Bold",
            fontSize=7.5, textColor=WHITE, alignment=TA_CENTER)) for h in headers]]
    for i, row in enumerate(rows):
        data.append([Paragraph(str(c), ParagraphStyle("td", fontName="Helvetica",
                     fontSize=7.5, textColor=colors.HexColor("#1e293b"),
                     leading=10, alignment=TA_LEFT)) for c in row])
    if col_widths is None:
        col_widths = [W / len(headers)] * len(headers)
    t = Table(data, colWidths=col_widths, repeatRows=1)
    style = [
        ("BACKGROUND",    (0,0), (-1,0),  TABLE_HDR),
        ("TEXTCOLOR",     (0,0), (-1,0),  WHITE),
        ("FONTNAME",      (0,0), (-1,0),  "Helvetica-Bold"),
        ("FONTSIZE",      (0,0), (-1,-1), 7.5),
        ("ALIGN",         (0,0), (-1,-1), "LEFT"),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, TABLE_ALT]),
        ("GRID",          (0,0), (-1,-1), 0.4, BORDER),
        ("TOPPADDING",    (0,0), (-1,-1), 3),
        ("BOTTOMPADDING", (0,0), (-1,-1), 3),
        ("LEFTPADDING",   (0,0), (-1,-1), 4),
        ("RIGHTPADDING",  (0,0), (-1,-1), 4),
    ]
    t.setStyle(TableStyle(style))
    return t

# ═══════════════════════════════════════════════════════════════
# BUILD CONTENT
# ═══════════════════════════════════════════════════════════════
story = []

# ── TITLE BANNER ─────────────────────────────────────────────────
title_data = [[
    Paragraph("MENOPAUSE", title_s),
    Paragraph("Chapter 6 Β· Exam-Oriented Concise Notes", sub_title_s),
]]
title_tbl = Table([[Paragraph("MENOPAUSE", title_s)],
                   [Paragraph("Chapter 6  Β·  Exam-Oriented Concise Notes", sub_title_s)]],
                  colWidths=[W])
title_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), DARK_BLUE),
    ("TOPPADDING",    (0,0), (-1,-1), 8),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
story.append(title_tbl)
story.append(sp(6))

# ── ROW 1: Two-column layout: Definition + Age of Menopause ──────
def two_col(left_items, right_items, left_w=None, right_w=None):
    lw = left_w or W*0.5 - 3
    rw = right_w or W*0.5 - 3
    left_tbl  = Table([[i] for i in left_items],  colWidths=[lw])
    right_tbl = Table([[i] for i in right_items], colWidths=[rw])
    outer = Table([[left_tbl, right_tbl]], colWidths=[lw+4, rw+4])
    outer.setStyle(TableStyle([
        ("VALIGN",       (0,0),(-1,-1),"TOP"),
        ("LEFTPADDING",  (0,0),(-1,-1), 0),
        ("RIGHTPADDING", (0,0),(-1,-1), 0),
        ("TOPPADDING",   (0,0),(-1,-1), 0),
        ("BOTTOMPADDING",(0,0),(-1,-1), 0),
    ]))
    return outer

# SECTION 1 β€” Definition
sec1 = [
    section_header("1. DEFINITION"),
    sp(2),
    bullet("<b>Menopause</b> = Permanent cessation of menstruation due to <b>loss of ovarian follicular activity</b>"),
    bullet("Confirmed after <b>12 consecutive months of amenorrhea</b> β€” NO other pathology"),
    high("Declared ONLY RETROSPECTIVELY"),
    bullet("Serum <b>FSH elevated</b> at 45–55 years"),
    sp(2),
    mini_header("Menopause Transition"),
    bullet("Reproductive β†’ Non-reproductive; covers <b>4–7 years on either side</b>"),
    bullet("Features: elevated FSH, variable cycle length, missed menses"),
    bullet("<b>Postmenopause</b> = phase after menopause"),
]

# SECTION 2 β€” Age
sec2 = [
    section_header("2. AGE OF MENOPAUSE"),
    sp(2),
    high("Age is GENETICALLY PREDETERMINED"),
    bullet("<b>NOT related to:</b> menarche age, last pregnancy, parity, lactation, OCP use, socioeconomics, race, height, weight"),
    bullet("<b>Early menopause:</b> thin women, cigarette smoking, severe malnutrition"),
    bullet("<b>Range:</b> 45–55 years | <b>Average: 50 years</b>"),
    sp(4),
    section_header("3. CLINICAL IMPORTANCE"),
    sp(2),
    bullet("Increased life expectancy β†’ women spend large part of life in <b>estrogen deficiency stage</b>"),
    bullet("Long-term: symptomatic + metabolic complications"),
]

story.append(two_col(sec1, sec2))
story.append(sp(5))

# ── SECTION 4: Endocrinology ──────────────────────────────────────
story.append(section_header("4. ENDOCRINOLOGY OF MENOPAUSAL TRANSITION"))
story.append(sp(3))

endo_left = [
    mini_header("Hypothalamo-Pituitary-Gonadal Axis"),
    bullet("Follicles become <b>resistant to gonadotropins</b> β†’ impaired folliculogenesis β†’ ↓ estradiol"),
    bullet("Estradiol: <b>50–300 pg/mL</b> (before) β†’ <b>10–20 pg/mL</b> (after menopause)"),
    bullet("↓ Estradiol β†’ ↓ negative feedback β†’ <b>↑ FSH</b> (also due to ↓ Inhibin from granulosa cells)"),
    bullet("<b>Inhibin</b> secreted by granulosa cells; its decrease β†’ ↑ FSH"),
    bullet("<b>LH increases</b> subsequently"),
    bullet("Disturbed folliculogenesis β†’ anovulation, oligoovulation, corpus luteal insufficiency"),
    bullet("Mean cycle length <b>shorter</b> (follicular phase ↓; luteal phase constant)"),
    bullet("Late menopausal transition: <b>accelerated follicular depletion</b>"),
    high("Ultimately: Estradiol drops to 20 pg/mL β†’ no endometrial growth β†’ NO MENSTRUATION"),
]

endo_right = [
    mini_header("Estrogens After Menopause"),
    bullet("Predominant estrogen = <b>ESTRONE</b> (not estradiol)"),
    bullet("Estrone: 30–70 pg/mL; Estradiol: 10–20 pg/mL"),
    bullet("Main source: <b>Peripheral aromatization of androgens</b> (mainly adrenals) at muscle & adipose tissue"),
    bullet("Estrone is <b>1/10th biologically potent</b> vs estradiol"),
    high("5–10 yrs after menopause = TRUE MENOPAUSE (sharp fall in all hormones)"),
    sp(3),
    mini_header("Gonadotropins"),
    bullet("<b>Both FSH & LH increased</b> β€” absent negative feedback of estradiol & inhibin"),
    bullet("<b>FSH rises 10–20 fold</b>; LH rises only <b>3-fold</b>"),
    bullet("GnRH pulse frequency & amplitude increased"),
    bullet("<b>AMH (Anti-Mullerian Hormone)</b> markedly decreased β€” loss of ovarian reserve"),
]

story.append(two_col(endo_left, endo_right))
story.append(sp(3))

# Hormones table
story.append(mini_header("Hormone Summary Table"))
story.append(sp(2))
story.append(make_table(
    ["Hormone", "Level After Menopause", "Key Reason"],
    [
        ["FSH", "↑↑ (10–20 fold)", "↓ Estradiol & ↓ Inhibin β†’ lost negative feedback"],
        ["LH", "↑ (3-fold)", "↓ Estradiol feedback"],
        ["Estrone", "30–70 pg/mL (dominant)", "Peripheral aromatization of androgens"],
        ["Estradiol", "10–20 pg/mL (↓)", "Ovarian follicular depletion"],
        ["Progesterone", "Trace (adrenal)", "No corpus luteum"],
        ["Androgens", "Relatively ↑ (ratio)", "Stromal ovarian cells continue production"],
        ["AMH", "Markedly ↓", "Severe loss of ovarian reserve"],
    ],
    col_widths=[W*0.18, W*0.22, W*0.60]
))
story.append(sp(5))

# ── SECTION 5: Organ Changes ─────────────────────────────────────
story.append(section_header("5. ORGAN CHANGES"))
story.append(sp(3))
story.append(make_table(
    ["Organ", "Key Changes"],
    [
        ["Ovaries", "Shrink, wrinkled/white; cortex thins; stromal cells ↑ (secretory)"],
        ["Fallopian Tubes", "Atrophy; muscle coat thins; cilia disappear; plicae less prominent"],
        ["Uterus", "Smaller; body:cervix ratio β†’ 1:1; endometrium thin/atrophic; cervical secretion scanty"],
        ["Vagina", "Narrow; epithelium thin; no glycogen; no Doderlein's bacilli; pH ALKALINE; maturation index 10/85/5"],
        ["Vulva", "Atrophy; labia flattened; pubic hair less; NARROW INTROITUS"],
        ["Breasts", "Breast fat reabsorbed; glands atrophy; nipples ↓; flat and pendulous"],
        ["Bladder/Urethra", "Thin epithelium; prone to infection; dysuria, frequency, urgency, stress incontinence"],
        ["Muscle Tone", "↓ β†’ Pelvic relaxation, uterine descent; ligaments lose tone; pelvic tissue becomes scanty"],
    ],
    col_widths=[W*0.22, W*0.78]
))
story.append(sp(5))

# ── SECTION 6: Bone Metabolism ───────────────────────────────────
story.append(section_header("6. BONE METABOLISM & OSTEOPOROSIS"))
story.append(sp(3))

bone_left = [
    mini_header("Key Concepts"),
    bullet("Post-menopause bone loss: <b>3–5% per year</b> (up to 5% during menopause)"),
    bullet("<b>Osteoporosis</b> = ↓ bone mass; bone mineral:matrix ratio NORMAL"),
    bullet("Bone loss mainly in <b>trabecular bone</b> (vertebra, distal radius) & cortical bone"),
    sp(3),
    mini_header("T-Score Classification (BMD)"),
    make_table(
        ["T-Score", "Diagnosis"],
        [
            ["+2.5 to βˆ’1.0", "Normal BMD"],
            ["βˆ’1.0 to βˆ’2.5", "Osteopenia (precursor to osteoporosis)"],
            ["< βˆ’2.5", "OSTEOPOROSIS"],
        ],
        col_widths=[W*0.25*0.9, W*0.25*1.6]
    ),
]

bone_right = [
    mini_header("Estrogen's Role in Bone"),
    bullet("Inhibits <b>osteoclastic activity</b>"),
    bullet("Inhibits release of <b>IL-1 by monocytes</b>"),
    bullet("↑ Calcium absorption from gut"),
    bullet("Stimulates <b>calcitonin</b> from thyroid C cells"),
    bullet("↑ 1,25-dihydroxyvitamin D β†’ ↑ bone mineralization"),
    sp(3),
    mini_header("Detection"),
    bullet("<b>DEXA</b> = gold standard (less radiation than CT)"),
    bullet("<b>FRAX tool (WHO-2001)</b>: 10-year fracture risk probability; uses 11 risk factors + femoral neck BMD"),
    bullet("Biochemical: Urinary Ca/Cr and hydroxyproline/Cr ratios"),
    high("PTH and IL-1 promote bone resorption in menopause"),
]

story.append(two_col(bone_left, bone_right, left_w=W*0.48, right_w=W*0.48))
story.append(sp(3))

# Risk factors table
story.append(mini_header("Risk Factors for Osteoporosis (Table 6.1)"))
story.append(sp(2))
story.append(make_table(
    ["Patient Factors", "Lifestyle Factors", "Medications/Diseases"],
    [
        ["Family history, Age >65", "↓ Calcium & Vit D, ↑ caffeine", "Heparin, Corticosteroids"],
        ["Asian/White race, Low BMI/weight", "↑ Smoking, ↑ Alcohol", "GnRH analogs, Anticonvulsants"],
        ["Lack of estrogen, Hypogonadism", "Sedentary habit", "RA, Hyperparathyroidism, DM"],
        ["Fragility fracture, Osteopenia", "Early menopause (surgical/radiation)", "Malabsorption, Multiple myeloma, Thyroid disorders"],
    ],
    col_widths=[W*0.33, W*0.33, W*0.34]
))
story.append(sp(5))

# ── SECTION 7: Cardiovascular ────────────────────────────────────
story.append(section_header("7. CARDIOVASCULAR SYSTEM"))
story.append(sp(3))

cv_left = [
    mini_header("Estrogen Protects Heart By:"),
    bullet("↑ <b>HDL2</b>; ↓ <b>LDL</b> and total cholesterol"),
    bullet("Inhibits platelet & macrophage (foam cell) aggregation"),
    bullet("↑ <b>NO (nitric oxide)</b> & prostacyclin β†’ vasodilation"),
    bullet("Prevents atherosclerosis via <b>antioxidant property</b>"),
]

cv_right = [
    mini_header("Without Estrogen (Post-menopause):"),
    bullet("Oxidation of LDL + foam cell formation β†’ endothelial injury"),
    bullet("β†’ Smooth muscle proliferation β†’ <b>insulin resistance</b>"),
    bullet("β†’ Central (android) obesity β†’ atherosclerosis & thrombus"),
    bullet("↑ Risk: ischemic heart disease, stroke, coronary artery disease"),
    make_table(
        ["CV Risk Factors (Table 6.2)"],
        [["Hypertension, Familial hyperlipidemia"],
         ["Smoking habit, Impaired glucose tolerance"]],
        col_widths=[W*0.45]
    ),
]
story.append(two_col(cv_left, cv_right))
story.append(sp(5))

# ── SECTION 8: Symptoms ──────────────────────────────────────────
story.append(section_header("8. MENOPAUSAL SYMPTOMS"))
story.append(sp(3))

story.append(make_table(
    ["Category", "Key Symptoms"],
    [
        ["Menstrual", "Shorter cycles (common), irregular bleeding"],
        ["Vasomotor β˜…", "Hot flashes, Night sweats, Sleep disturbances"],
        ["Psychological", "Irritability, Mood swings, Poor memory, Depression"],
        ["Sexual Dysfunction", "Vaginal dryness, Dyspareunia"],
        ["Urinary", "Incontinence, Urgency, Dysuria"],
        ["Skin & Hair", "Thinning, Loss of elasticity, Purse-string wrinkling (mouth), Crow feet (eyes)"],
        ["Others", "Back aches, Joint aches"],
    ],
    col_widths=[W*0.22, W*0.78]
))
story.append(sp(4))

symp_left = [
    mini_header("HOT FLASH β€” Most Characteristic Symptom"),
    high("Sudden feeling of heat + profuse sweating"),
    bullet("<b>Low estrogen</b> is prerequisite"),
    bullet("Coincides with <b>GnRH pulse secretion β†’ ↑ LH surge</b>"),
    bullet("Duration: <b>1–10 minutes</b>; may be unbearable"),
    bullet("<b>Thermoregulatory center in hypothalamus</b> involved"),
    bullet("Neurotransmitters: <b>norepinephrine & serotonin</b> lower the thermoregulatory set-point"),
    bullet("Physiologic changes: <b>perspiration + cutaneous vasodilation</b>"),
    sp(3),
    mini_header("Skin & Hair"),
    bullet("Skin collagen ↓ <b>1–2%/year</b>"),
    bullet("<b>Purse string</b> wrinkling (mouth) | <b>Crow feet</b> (eyes)"),
    bullet("Estrogen receptors max in <b>facial skin</b>"),
    bullet("Loss of pubic & axillary hair; slight balding (↓ testosterone)"),
]

symp_right = [
    mini_header("Dyspareunia / Vaginal"),
    bullet("Estradiol deficiency β†’ vaginal dryness/atrophy"),
    bullet("Rx: <b>17Ξ²-estradiol tablet</b> or <b>CEE cream</b> (vaginally/orally)"),
    bullet("Endometrial hyperplasia risk: <b>less with vaginal tablets than cream</b>"),
    bullet("Vaginal lubricants: <b>K-Y jelly</b> (water soluble)"),
    bullet("Vaginal: minimal trauma β†’ bleeding, dyspareunia, infections, leucorrhea"),
    sp(3),
    mini_header("Psychological"),
    bullet("Anxiety, headache, insomnia, irritability, depression"),
    bullet("Estrogen ↑ opioid activity in brain β†’ important for <b>memory</b>"),
    bullet("Dementia: estrogen improves cerebral perfusion; unclear if prevents Alzheimer's"),
    sp(3),
    mini_header("Osteoporosis & Fracture"),
    bullet("Bone loss ↑ to <b>5%/year</b> during menopause"),
    bullet("<b>Primary (Type 1)</b>: estrogen loss, age, Ca/Vit D deficiency, hereditary"),
    bullet("<b>Secondary (Type 2)</b>: endocrine (parathyroid, DM) or medications"),
    bullet("Fracture sites: <b>vertebral body, femoral neck, distal forearm (Colles')</b>"),
    high("Fracture = FALL risk (↓ muscle mass, cognitive impairment)"),
]

story.append(two_col(symp_left, symp_right))
story.append(sp(5))

# ── SECTION 9: Menstrual Patterns ────────────────────────────────
story.append(section_header("9. MENSTRUAL PATTERNS PRIOR TO MENOPAUSE"))
story.append(sp(3))
story.append(make_table(
    ["Pattern", "Description"],
    [
        ["Abrupt cessation", "Sudden stopping β€” RARE"],
        ["Gradual decrease β˜…", "↓ amount & duration β†’ spotting/delay β†’ cessation (most common)"],
        ["Irregular", "With/without excessive bleeding β€” EXCLUDE genital malignancy first"],
    ],
    col_widths=[W*0.25, W*0.75]
))
story.append(sp(5))

# ── SECTION 10: Diagnosis ────────────────────────────────────────
story.append(section_header("10. DIAGNOSIS OF MENOPAUSE"))
story.append(sp(3))
story.append(make_table(
    ["Criterion", "Value"],
    [
        ["Amenorrhea duration", "12 consecutive months during climacteric"],
        ["Average age", "50 years"],
        ["Symptoms", "Hot flash + Night sweats"],
        ["Vaginal cytology (maturation index)", "β‰₯ 10/85/5 (features of low estrogen)"],
        ["Serum estradiol", "< 20 pg/mL"],
        ["Serum FSH & LH", "> 40 mIU/mL (3 values at weekly intervals required)"],
    ],
    col_widths=[W*0.40, W*0.60]
))
story.append(sp(5))

# ── SECTION 11: Management ───────────────────────────────────────
story.append(section_header("11. MANAGEMENT"))
story.append(sp(3))

story.append(mini_header("Prevention & Counseling"))
story.append(bullet("Spontaneous menopause: unavoidable"))
story.append(bullet("<b>Artificial menopause</b> (surgery/radiation/chemo): can be <b>prevented or delayed</b>"))
story.append(high("Counseling & Reassurance is ESSENTIAL β€” addresses anxiety, depression, insomnia"))
story.append(sp(3))

story.append(mini_header("Non-Hormonal Treatment"))
story.append(sp(2))
story.append(make_table(
    ["Treatment", "Details"],
    [
        ["Lifestyle modification", "Physical activity; ↓ caffeine, smoking, alcohol; adequate calcium (300 mL milk); ↓ corticosteroids"],
        ["Nutritious diet", "Balanced β€” calcium + protein rich"],
        ["Supplementary calcium", "Daily <b>1–1.5 g</b> β†’ reduces osteoporosis & fracture"],
        ["Exercise", "Weight-bearing: walking, jogging"],
        ["Vitamin D₃", "1500–2000 IU/day + calcium; sunlight synthesizes cholecalciferol (Vit D₃)"],
        ["Bisphosphonates", "Prevents osteoclastic resorption; preferred for OLDER women; common: Ibandronate, Alendronate, Risedronate (fewer SE)"],
        ["Bisphosphonates β€” How to take", "Empty stomach; remain UPRIGHT 30 min after oral dose"],
        ["Bisphosphonates β€” Side effects", "Gastric/esophageal ulceration, osteomyelitis, OSTEONECROSIS OF JAW; cannot alone prevent hot flashes or CVD"],
        ["Calcitonin", "Inhibits osteoclasts (polypeptide hormone); always give WITH calcium + Vit D"],
        ["Cessation", "Stop smoking & alcohol"],
    ],
    col_widths=[W*0.30, W*0.70]
))
story.append(sp(5))

# ── SECTION 12: High-Yield Summary ───────────────────────────────
story.append(section_header("12. HIGH-YIELD EXAM RAPID RECALL"))
story.append(sp(3))
story.append(make_table(
    ["Key Point", "Fact to Remember"],
    [
        ["Diagnosis declared", "RETROSPECTIVELY after 12 months amenorrhea"],
        ["Average age", "50 years (range 45–55)"],
        ["Post-menopausal dominant estrogen", "ESTRONE (not estradiol)"],
        ["Source of estrone", "Peripheral aromatization of androgens (adrenals β†’ adipose/muscle)"],
        ["FSH rise", "10–20 fold  |  LH rises only 3-fold"],
        ["AMH", "Markedly decreased"],
        ["Bone loss rate", "3–5%/year; up to 5% during menopause"],
        ["T-score: Osteoporosis", "< βˆ’2.5"],
        ["T-score: Osteopenia", "βˆ’1.0 to βˆ’2.5"],
        ["Serum FSH for diagnosis", "> 40 mIU/mL (3 values weekly)"],
        ["Serum estradiol for diagnosis", "< 20 pg/mL"],
        ["Skin collagen loss", "1–2%/year"],
        ["Hot flash mechanism", "Low estrogen β†’ GnRH pulse β†’ LH surge β†’ thermoregulatory center"],
        ["Characteristic wrinkling", "Purse-string (mouth)  |  Crow-feet (eyes)"],
        ["Fracture site (Colles')", "Distal forearm"],
        ["Bisphosphonate rule", "Empty stomach; upright 30 min; SE: osteonecrosis of jaw"],
        ["Vaginal pH post-menopause", "Alkaline (no Doderlein's bacilli, no glycogen)"],
        ["Estrogen + CVD protection", "↑ HDL2, ↓ LDL, ↑ NO, antioxidant"],
        ["FRAX tool", "10-year fracture probability (WHO-2001), 11 risk factors"],
        ["Most common menstrual pattern", "Gradual decrease β†’ spotting β†’ cessation"],
        ["Obese women risk", "More estrone conversion β†’ ↑ endometrial hyperplasia/carcinoma risk"],
    ],
    col_widths=[W*0.40, W*0.60]
))

story.append(sp(4))
story.append(note("These notes are compiled from Chapter 6 β€” Menopause. Focus especially on: diagnostic criteria, T-scores, hormonal changes, vasomotor mechanism, bisphosphonate side effects, and the estrone/estradiol distinction."))

# ── Build ─────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/menopause-notes && python3 generate_pdf.py 2>&1

Running Command

python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/menopause-notes/Menopause_Notes.pdf') print(f'Pages: {len(r.pages)}') import os size = os.path.getsize('/home/daytona/workspace/menopause-notes/Menopause_Notes.pdf') print(f'Size: {size/1024:.1f} KB') "

Your concise exam-oriented PDF is ready - only 4 pages, packed with all the key content in a clean, structured format.

Menopause Notes

PDF Document Β· PDF

What's inside (4 pages):

  • Title banner with chapter reference
  • Two-column layouts for Definition, Age, Endocrinology, Symptoms, CVS
  • 10+ color-coded tables covering:
    • Hormone levels summary
    • Organ changes
    • T-score BMD classification
    • Osteoporosis risk factors (Table 6.1)
    • CV risk factors (Table 6.2)
    • Menopausal symptoms by category
    • Menstrual patterns
    • Diagnostic criteria
    • Non-hormonal treatments
    • 21-point High-Yield Rapid Recall table at the end
  • β˜… Red high-yield callouts for the most exam-tested facts
  • πŸ“ Study note reminder at the bottom
attachment
attachment
attachment
attachment
attachment
attachment
attachment
attachment

Make an exam oriented notes concise pdf including tables in it with minimum pages

analyse_media
analyse_media
analyse_media
analyse_media
Writing File

~/genital-prolapse/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
import os

os.makedirs("/home/daytona/workspace/genital-prolapse", exist_ok=True)
OUTPUT = "/home/daytona/workspace/genital-prolapse/Genital_Prolapse_Notes.pdf"

doc = SimpleDocTemplate(
    OUTPUT, pagesize=A4,
    leftMargin=1.4*cm, rightMargin=1.4*cm,
    topMargin=1.4*cm, bottomMargin=1.4*cm,
)
W = A4[0] - 2.8*cm

# ── Colours ──────────────────────────────────────────────────────
DARK      = colors.HexColor("#1a3a5c")
MED_BLUE  = colors.HexColor("#1e40af")
LT_BLUE   = colors.HexColor("#dbeafe")
RED       = colors.HexColor("#dc2626")
GOLD      = colors.HexColor("#92400e")
TBL_HDR   = colors.HexColor("#1e3a8a")
TBL_ALT   = colors.HexColor("#f0f4ff")
BORDER    = colors.HexColor("#93c5fd")
WHITE     = colors.white
SLATE     = colors.HexColor("#1e293b")
GREEN_HDR = colors.HexColor("#166534")
GREEN_BG  = colors.HexColor("#dcfce7")

def S(name, **kw): return ParagraphStyle(name, **kw)

title_s  = S("T",  fontName="Helvetica-Bold", fontSize=20, textColor=WHITE, alignment=TA_CENTER)
subt_s   = S("ST", fontName="Helvetica",      fontSize=9,  textColor=LT_BLUE, alignment=TA_CENTER)
sec_s    = S("SE", fontName="Helvetica-Bold", fontSize=9,  textColor=WHITE, leftIndent=5)
mini_s   = S("MI", fontName="Helvetica-Bold", fontSize=8.5,textColor=MED_BLUE, spaceAfter=2, spaceBefore=4)
body_s   = S("BO", fontName="Helvetica",      fontSize=7.8,textColor=SLATE, leading=11, spaceAfter=2, alignment=TA_JUSTIFY)
bul_s    = S("BU", fontName="Helvetica",      fontSize=7.8,textColor=SLATE, leading=11, leftIndent=10, firstLineIndent=-8, spaceAfter=1.5)
high_s   = S("HI", fontName="Helvetica-Bold", fontSize=7.8,textColor=RED,   leading=11, spaceAfter=2, leftIndent=10, firstLineIndent=-8)
note_s   = S("NO", fontName="Helvetica-Oblique",fontSize=7.2,textColor=GOLD,leading=10, spaceAfter=2)
th_s     = S("TH", fontName="Helvetica-Bold", fontSize=7.5,textColor=WHITE, alignment=TA_LEFT)
td_s     = S("TD", fontName="Helvetica",      fontSize=7.5,textColor=SLATE, leading=10, alignment=TA_LEFT)
tdb_s    = S("TDB",fontName="Helvetica-Bold", fontSize=7.5,textColor=SLATE, leading=10, alignment=TA_LEFT)

def sec(text, bg=TBL_HDR):
    t = Table([[Paragraph(text, sec_s)]], colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,-1),bg),
        ("TOPPADDING",(0,0),(-1,-1),3),("BOTTOMPADDING",(0,0),(-1,-1),3),
        ("LEFTPADDING",(0,0),(-1,-1),6),("RIGHTPADDING",(0,0),(-1,-1),4),
    ]))
    return t

def mini(text): return Paragraph(f"<font color='#1e40af'><b>β–Œ {text}</b></font>", mini_s)
def bul(text):  return Paragraph(f"β€’ {text}", bul_s)
def high(text): return Paragraph(f"β˜… {text}", high_s)
def body(text): return Paragraph(text, body_s)
def note(text): return Paragraph(f"πŸ’‘ {text}", note_s)
def sp(h=3):    return Spacer(1, h)
def hr():       return HRFlowable(width=W, thickness=0.4, color=BORDER, spaceAfter=2, spaceBefore=2)

def tbl(headers, rows, widths=None):
    data = [[Paragraph(h, th_s) for h in headers]]
    for row in rows:
        data.append([Paragraph(str(c[0]), tdb_s) if (isinstance(c, tuple) and c[1]=='b') else Paragraph(str(c), td_s) for c in row])
    if widths is None: widths = [W/len(headers)]*len(headers)
    t = Table(data, colWidths=widths, repeatRows=1)
    t.setStyle(TableStyle([
        ("BACKGROUND",(0,0),(-1,0),TBL_HDR),
        ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE,TBL_ALT]),
        ("GRID",(0,0),(-1,-1),0.35,BORDER),
        ("VALIGN",(0,0),(-1,-1),"TOP"),
        ("TOPPADDING",(0,0),(-1,-1),2.5),("BOTTOMPADDING",(0,0),(-1,-1),2.5),
        ("LEFTPADDING",(0,0),(-1,-1),4),("RIGHTPADDING",(0,0),(-1,-1),4),
        ("FONTSIZE",(0,0),(-1,-1),7.5),
    ]))
    return t

def two_col(L, R, lw=None, rw=None):
    lw = lw or W*0.495; rw = rw or W*0.495
    lt = Table([[i] for i in L], colWidths=[lw])
    rt = Table([[i] for i in R], colWidths=[rw])
    ot = Table([[lt, rt]], colWidths=[lw+2, rw+2])
    ot.setStyle(TableStyle([("VALIGN",(0,0),(-1,-1),"TOP"),
        ("LEFTPADDING",(0,0),(-1,-1),0),("RIGHTPADDING",(0,0),(-1,-1),0),
        ("TOPPADDING",(0,0),(-1,-1),0),("BOTTOMPADDING",(0,0),(-1,-1),0)]))
    return ot

# ══════════════════════════════════════════════════════════════════
story = []

# ── TITLE ─────────────────────────────────────────────────────────
tb = Table([[Paragraph("GENITAL PROLAPSE", title_s)],
            [Paragraph("Chapter 16 Β· Displacement of the Uterus  Β·  Exam-Oriented Concise Notes", subt_s)]],
           colWidths=[W])
tb.setStyle(TableStyle([("BACKGROUND",(0,0),(-1,-1),DARK),
    ("TOPPADDING",(0,0),(-1,-1),7),("BOTTOMPADDING",(0,0),(-1,-1),7),
    ("LEFTPADDING",(0,0),(-1,-1),8)]))
story += [tb, sp(5)]

# ── 1. DEFINITION & SUPPORTS ──────────────────────────────────────
story += [sec("1. DEFINITION & PELVIC SUPPORTS"), sp(2)]
left1 = [
    mini("Definition"),
    bul("<b>Genital prolapse</b> = descent of pelvic organs from their normal position due to weakness of supporting structures"),
    bul("Factors may be <b>anatomical</b> (structural) or <b>clinical</b> (predisposing/aggravating)"),
    sp(2),
    mini("Key Pelvic Supports"),
    bul("<b>Levator ani muscles</b> β€” main support; pubococcygeus part attaches to urethra, vagina, rectum"),
    bul("<b>Levator plate</b> β€” horizontal shelf upon which rectum, upper vagina, uterus rest"),
    bul("<b>Pubovisceral fibers</b> β€” squeeze rectum, vagina, urethra against pubic bone"),
    bul("Damage β†’ <b>widening of hiatus urogenitalis</b> β†’ vagina pushed down β†’ organs prolapse"),
    high("Recto-genitourinary hiatus enlargement = key anatomic predisposition"),
]
right1 = [
    mini("Levator Plate"),
    bul("Formed by medial fibers of two levator ani muscles"),
    bul("Is the <b>anococcygeal raphe</b> extending from anorectal junction to coccyx"),
    bul("Horizontal position prevents prolapse; when damaged β†’ organs descend"),
    sp(2),
    mini("Biomechanical Note"),
    bul("Delancey (1992): three levels of uterovaginal support"),
    bul("<b>Level I</b>: cardinal/uterosacral ligaments (upper vagina/uterus)"),
    bul("<b>Level II</b>: lateral attachment of mid-vagina (paravaginal)"),
    bul("<b>Level III</b>: fusion of distal vagina to surrounding structures"),
    high("Loss of normal vaginal axis β†’ prolapse"),
]
story += [two_col(left1, right1), sp(4)]

# ── 2. ETIOLOGY TABLE ─────────────────────────────────────────────
story += [sec("2. ETIOLOGY OF PELVIC ORGAN PROLAPSE (POP) β€” TABLE 16.1"), sp(2)]
story.append(tbl(
    ["Anatomical Factors", "Predisposing Factors (Acquired/Congenital)", "Aggravating Factors"],
    [
        ["Gravitational stress (bipedal posture)",
         "ACQUIRED: Vaginal delivery trauma β†’ ligaments, endopelvic fascia, levator muscle, nerve (pudendal) injury",
         "Postmenopausal atrophy"],
        ["Anterior pelvic inclination directing force anteriorly",
         "Overstretching Mackenrodt's & uterosacral ligaments (premature pushing, forceps, prolonged 2nd stage, precipitate labor)",
         "Poor collagen repair with age"],
        ["Stress of parturition β€” max damage to puborectal fibers",
         "CONGENITAL: Genetic connective tissue disorders, ↓ Type I collagen ratio",
         "↑ Intra-abdominal pressure: COPD, constipation, occupation (weight lifting)"],
        ["Pelvic floor weakness β†’ urogenital hiatus ↑ + ↓ obstetric axis through hiatus",
         "Spina bifida",
         "Obesity, smoking; Uterine weight ↑ (fibroids, myohyperplasia); Multiparity"],
        ["Inherent weakness of supporting structures", "β€”", "These act where supports are already weakened"],
    ],
    widths=[W*0.27, W*0.40, W*0.33]
))
story += [sp(2), note("MOST IMPORTANT acquired factor = Vaginal delivery with injury to supporting structures. Prolapse unusual after cesarean delivery."), sp(4)]

# ── 3. CLINICAL TYPES ─────────────────────────────────────────────
story += [sec("3. CLINICAL TYPES OF PELVIC ORGAN PROLAPSE"), sp(2)]
story.append(tbl(
    ["Type", "Location / Structure", "Description"],
    [
        ["VAGINAL β€” ANTERIOR WALL","",""],
        ["Cystocele","Upper 2/3 of anterior vaginal wall","Laxity of upper 2/3 β†’ herniation of bladder base through lax anterior wall (most common)"],
        ["Urethrocele","Lower 1/3 of anterior vaginal wall","Laxity of lower 1/3 β†’ urethra herniates through it (often with cystocele = cystourethrocele)"],
        ["VAGINAL β€” POSTERIOR WALL","",""],
        ["Relaxed Perineum","Perineal body","Torn perineal body β†’ gaping introitus with bulge of lower posterior vaginal wall"],
        ["Rectocele","Middle 1/3 posterior vaginal wall","Laxity of middle 1/3 + adjacent rectovaginal septum β†’ herniation of rectum"],
        ["VAULT PROLAPSE","",""],
        ["Enterocele","Upper 1/3 posterior vaginal wall","Laxity of upper 1/3 β†’ herniation of pouch of Douglas (omentum/small bowel); secondary to uterovaginal prolapse"],
        ["Secondary vault prolapse","After hysterectomy","Follows vaginal or abdominal hysterectomy; undetected enterocele at initial op β†’ secondary vault prolapse"],
        ["UTERINE PROLAPSE","",""],
        ["Uterovaginal prolapse","Uterus, cervix, upper vagina","Most common type; cystocele occurs first, then traction on cervix causes retroversion β†’ uterus descends"],
        ["Congenital prolapse","Nulliparous women","No cystocele; uterus descends with inverted vagina; congenital weakness of supports"],
    ],
    widths=[W*0.22, W*0.28, W*0.50]
))
story += [sp(4)]

# ── 4. DEGREES OF UTERINE PROLAPSE ───────────────────────────────
story += [sec("4. DEGREES OF UTERINE PROLAPSE (TABLE 16.2) & POP-Q STAGING (TABLE 16.3)"), sp(2)]
left4 = [
    mini("Clinical Degrees (Table 16.2)"),
    tbl(
        ["Degree", "Description"],
        [
            ["Normal", "External os at level of ischial spines; no prolapse"],
            ["1st Degree", "Uterus descends from normal position; external os still ABOVE introitus"],
            ["2nd Degree", "External os protrudes outside vaginal introitus; uterine body still inside"],
            ["3rd Degree\n(Procidentia)", "Uterine cervix AND fundus lie OUTSIDE introitus; complete prolapse"],
            ["Procidentia", "Prolapse of uterus with EVERSION of entire vagina"],
        ],
        widths=[W*0.22, W*0.26]
    ),
]
right4 = [
    mini("POP-Q Staging (ICS/AUGS/SGS 1996) β€” Table 16.3"),
    bul("Hymen = fixed reference point (zero level)"),
    bul("Measurements: NEGATIVE = above hymen; POSITIVE = below hymen"),
    bul("Measured with wooden PAP spatula; patient in lithotomy/standing; Valsalva maneuver"),
    tbl(
        ["Stage", "Description"],
        [
            ["0", "No descent of pelvic organs"],
            ["I", "Leading edge β‰₯1 cm ABOVE hymenal ring (≀ βˆ’1 cm)"],
            ["II", "Leading edge between βˆ’1 cm and +1 cm of hymenal ring"],
            ["III", "Leading edge >1 cm BEYOND hymenal ring; no complete eversion"],
            ["IV", "Essentially complete vaginal eversion"],
        ],
        widths=[W*0.08, W*0.38]
    ),
    high("POP-Q recommended by ICS β€” objective, site-specific, anatomical"),
]
story += [two_col(left4, right4, lw=W*0.50, rw=W*0.46), sp(4)]

# ── 5. MORBID CHANGES ─────────────────────────────────────────────
story += [sec("5. MORBID CHANGES IN PROLAPSE"), sp(2)]
story.append(tbl(
    ["Structure", "Morbid Change"],
    [
        ["Vaginal Mucosa", "Stretched, thickened, dry, surface keratinization; may show pigmentation"],
        ["Decubitus Ulcer", "Trophic ulcer at dependent part of prolapsed mass; initial surface β†’ cracks β†’ infection β†’ sloughing β†’ ulceration; complete surface epithelium loss; diminished circulation due to constriction by vaginal opening"],
        ["Decubitus Mgmt", "(a) Cervical cytology to exclude malignancy (b) Colposcopy & directed biopsy if needed (c) Manual reduction (d) Vaginal pack with antiseptic glycerin + acriflavine or estrogen cream (postmenopausal)"],
        ["Cervix β€” Vaginal part", "Chronic congestion β†’ hyperplasia & hypertrophy of fibromuscular components β†’ bulky, congested; infection β†’ blood-stained discharge from ulceration"],
        ["Cervix β€” Supravaginal part", "Elongated due to strain of cardinal ligaments trying to keep cervix in position + weight of uterus pulling it through vaginal axis"],
        ["Urinary β€” Bladder", "Incomplete emptying β†’ sharp angulation of urethra against pubourethral ligament β†’ bladder wall hypertrophy + trabeculation; incomplete evacuation β†’ cystitis"],
        ["Urinary β€” Ureters", "Carried downwards with elongated Mackenrodt's ligaments β†’ mechanically obstructed by hiatus of pelvic floor β†’ compression by uterine arteries at crossing β†’ hydroureteric changes; bladder infection β†’ pyelitis/pyelonephritis; long-standing procidentia β†’ uraemia"],
        ["Incarceration", "Infection of paravaginal/cervical tissues β†’ entire prolapsed mass becomes edematous/congested β†’ IRREDUCIBLE"],
        ["Peritonitis", "Rarely, peritoneal infection (pelvic peritonitis) through posterior vaginal wall"],
        ["Carcinoma", "Rarely develops on decubitus ulcer"],
    ],
    widths=[W*0.25, W*0.75]
))
story += [sp(4)]

# ── 6. SYMPTOMS ───────────────────────────────────────────────────
story += [sec("6. SYMPTOMS OF GENITAL PROLAPSE"), sp(2)]
left6 = [
    mini("General Symptoms"),
    bul("<b>Something coming down</b> per vaginum (worse when moving/walking; comes out when mass outside introitus)"),
    bul("<b>Backache or dragging pain</b> in pelvis"),
    bul("Both above relieved on <b>lying down</b>"),
    bul("Dyspareunia"),
    sp(2),
    mini("Urinary Symptoms (with cystocele)"),
    bul("<b>Difficulty</b> passing urine β€” more straining = less evacuation; patient elevates anterior vaginal wall to void"),
    bul("<b>Incomplete evacuation</b> β†’ frequent desire to urinate"),
    bul("<b>Urgency and frequency</b> β€” may be due to cystitis"),
    bul("<b>Painful micturition</b> β€” due to infection"),
    bul("<b>Stress incontinence</b> β€” associated urethrocele"),
    bul("<b>Retention</b> of urine may rarely occur"),
]
right6 = [
    mini("Bowel Symptoms (with rectocele)"),
    bul("Difficulty passing stool β€” must push back posterior vaginal wall to complete evacuation"),
    bul("Fecal incontinence may be associated"),
    sp(2),
    mini("Discharge"),
    bul("Excessive white or blood-stained discharge per vaginam β€” associated vaginitis or decubitus ulcer"),
    sp(2),
    mini("Important Exam Points"),
    high("Minor prolapse may be asymptomatic β€” even severe degree may have no symptoms"),
    high("Prolapse of one organ (uterus) usually associated with adjacent organ prolapse (bladder, rectum)"),
    high("Symptoms RELIEVED on lying down β€” classic for prolapse"),
    bul("Etiological aspect + risk factors should always be evaluated"),
]
story += [two_col(left6, right6), sp(4)]

# ── 7. CLINICAL EXAMINATION & DIAGNOSIS ──────────────────────────
story += [sec("7. CLINICAL EXAMINATION & DIAGNOSIS OF POP"), sp(2)]
left7 = [
    mini("Examination Protocol"),
    bul("<b>Composite examination</b>: inspection + palpation; vaginal, rectal, rectovaginal, or under anesthesia"),
    bul("<b>General examination</b>: BMI, signs of myopathy/neuropathy, COPD features, abdominal mass"),
    bul("<b>POP evaluated</b> in both dorsal AND standing positions"),
    bul("Patient strains (Valsalva) during examination β€” helps demonstrate prolapse not seen at rest"),
    bul("<b>Negative finding on dorsal inspection</b> β†’ reconfirm by asking to strain on squatting position"),
    sp(2),
    mini("Pelvic Exam Assesses:"),
    bul("Staging (POP-Q), levator ani muscle tone, urinary incontinence"),
    bul("Decubitus ulcer, uterine size, mobility, perineal body, anal sphincter tone"),
]
right7 = [
    mini("Specific Examination Findings"),
    bul("<b>Cystocele</b>: bulge on anterior vaginal wall; ↑ when straining; use Sims' speculum in lateral position to demonstrate"),
    bul("<b>Cystourethrocele</b>: bulging of entire anterior wall + lower third; urine escapes through urethral meatus on coughing (bladder must be full to test)"),
    bul("<b>Relaxed perineum</b>: gaping introitus; old scar of perineal tear; ↓ distance introitus β†’ anal verge; lower posterior vaginal wall visible"),
    bul("<b>Rectocele vs Enterocele</b>: transverse sulcus between two with midvaginal one being rectocele (diffuse margins, reducible); enterocele closer to cervix, cannot reach by finger in rectum"),
    high("3rd degree: thumb anteriorly + fingers posteriorly outside introitus = apposed = 3rd degree prolapse"),
    bul("<b>Levator ani tone</b>: index + middle fingers inside vagina, thumb outside; pubovaginalis palpated in lower 1/3"),
]
story += [two_col(left7, right7), sp(4)]

# ── 8. DIFFERENTIAL DIAGNOSIS ─────────────────────────────────────
story += [sec("8. DIFFERENTIAL DIAGNOSIS"), sp(2)]
story.append(tbl(
    ["Condition", "vs Prolapse", "Distinguishing Features"],
    [
        ["Gartner's Cyst (vs Cystocele)",
         "Cyst in anterior vaginal wall β€” retention cyst in Wolffian duct remnants",
         "Situated anteriorly/anterolaterally; variable size; rugosities of vaginal mucosa LOST over it; mucosa tense & shiny; well-defined margins; NOT reducible; NO impulse on coughing; metal catheter tip per urethra FAILS to come underneath vaginal mucosa"],
        ["Congenital cervical elongation (vs Uterine prolapse)",
         "Cervix elongated WITHOUT actual uterine descent",
         "Not associated with prolapse (usually); vaginal part elongated; external os below ischial spines; vaginal fornices narrow & deep; cervix CONICAL; uterine body NORMAL size & position; Rectal exam β€” NO prolapse"],
        ["Chronic inversion (vs Uterine prolapse)",
         "Inverted uterus prolapsing through introitus",
         "Leading protruding mass is BROAD; NO opening visible; internal exam β€” cervical rim on top around mass; rectal exam β€” absence of uterine body + cup-like depression"],
        ["Fibroid polyp (vs Uterine prolapse)",
         "Pedunculated fibroid through cervix/introitus",
         "Mass is SHAGGY with broad leading part; NO opening visible; internal exam β€” pedicle from cervical canal or cervix; rectal exam β€” normal uterine shape and position"],
    ],
    widths=[W*0.22, W*0.28, W*0.50]
))
story += [sp(4)]

# ── 9. MANAGEMENT ─────────────────────────────────────────────────
story += [sec("9. MANAGEMENT OF PROLAPSE"), sp(2)]

# 9A: Prevention + Conservative
left9 = [
    mini("A. Preventive Measures"),
    bul("<b>Adequate antenatal/intranatal care</b>: avoid injury during vaginal delivery"),
    bul("<b>Adequate postnatal care</b>: early ambulation; encourage pelvic floor exercises (Kegel's) in puerperium"),
    bul("General: avoid strenuous activities, chronic cough, constipation, heavy lifting"),
    bul("Avoid future pregnancy too soon/too many β€” contraceptive practice"),
    sp(2),
    mini("B. Conservative Management"),
    bul("<b>Indications:</b> Asymptomatic women; old woman not willing for surgery; mild degree prolapse; POP in early pregnancy"),
    bul("<b>Estrogen replacement therapy</b> may improve minor degree prolapse in postmenopausal women"),
    bul("<b>Pelvic floor exercises (Kegel's)</b>: strengthen muscles"),
    bul("<b>Pessary treatment</b>: cannot CURE but relieves symptoms by stretching hiatus urogenitalis β†’ prevents descent"),
    sp(2),
    mini("Pessary β€” Indications of Use"),
    bul("Early pregnancy β€” up to 18 weeks (until uterus sits on brim of pelvis)"),
    bul("Puerperium β€” to facilitate involution"),
    bul("Patients absolutely unfit for surgery (short life expectancy)"),
    bul("Patient's unwillingness for operation"),
    bul("While waiting for operation"),
    bul("<i>Additional benefits</i>: improvement of urinary symptoms (voiding problems, urgency)"),
]

right9 = [
    mini("C. Surgical Management"),
    bul("Surgery = treatment of symptomatic prolapse where conservative management failed/not indicated"),
    bul("<b>(A) Restorative</b>: correcting own support / compensatory (permanent graft material)"),
    bul("<b>(B) Extirpative</b>: removing uterus and correcting support"),
    bul("<b>(C) Obliterative</b>: closing the vagina (colpocleisis)"),
    high("No single procedure for ALL types of prolapse"),
    bul("<b>Factors determining surgery choice:</b> Patient's age, parity, degree & type of prolapse, any prior surgery, associated factors (urinary/fecal incontinence, PID), comorbidities (cardiac disease)"),
    sp(2),
    mini("Anterior Colporrhaphy"),
    bul("Designed to correct cystocele and urethrocele"),
    bul("Principle: excise relaxed anterior vaginal wall β†’ mobilize bladder upward after cutting vesicovervical ligament β†’ support bladder by plicating endopelvic fascia and pubocervical fascia under bladder neck in midline"),
    bul("<b>Steps:</b> GA/epidural; lithotomy; antiseptic swab; sterile perineum draped; empty bladder by metal catheter; vaginal exam for degree of prolapse"),
    high("Sims' speculum introduced; anterior lip of cervix held by multiple-toothed vulsellum; metal catheter to know lower limit of bladder; inverted 'I' incision on anterior vaginal wall"),
]
story += [two_col(left9, right9), sp(4)]

# ── 10. SURGICAL REPAIR TABLE ─────────────────────────────────────
story += [sec("10. TYPE OF PROLAPSE & SURGICAL REPAIR PROCEDURES (TABLE 16.4)"), sp(2)]
story.append(tbl(
    ["Organ Descent", "Clinical Condition", "Type of Operation"],
    [
        ["VAGINAL WALL β€” Anterior (Upper 2/3) or whole", "Cystocele / Cystourethrocele / Paravaginal defect", "β€’ Anterior colporrhaphy\nβ€’ Paravaginal defect repair"],
        ["Posterior (Lower 2/3)", "Rectocele", "β€’ Colpoperineorrhaphy"],
        ["Posterior (Upper 1/3)", "Enterocele", "β€’ Vaginal repair of enterocele with PFR\nβ€’ McCall culdoplasty\nβ€’ Moskowitz procedure"],
        ["Combined anterior and posterior", "Cystocele and rectocele", "β€’ PFR (combined procedure)"],
        ["UTEROVAGINAL β€” Uterus along with vaginal walls", "Uterovaginal prolapse", "β€’ Vaginal hysterectomy with PFR (elderly, family completed)\nβ€’ Fothergill's operation (preservation of uterus)"],
        ["VAGINAL WALL β€” Following hysterectomy (vaginal or abdominal)", "Vault prolapse (secondary)", "Vaginal: (i) Repair of vaginal vault along with PFR  (ii) Sacrospinous colpopexy  (iii) Colpocleisis (Le Fort)\nAbdominal: (i) Sacral colpopexy"],
        ["Uterus (without vaginal walls)", "Congenital or nulliparous prolapse (young women)", "β€’ Cervicopexy or Sling (Purandare's) operation"],
        ["Pelvic organ prolapse (POP) with stress incontinence", "POP with stress incontinence", "Vaginal: TOT operation\nAbdominal: Burch operation"],
    ],
    widths=[W*0.25, W*0.30, W*0.45]
))
story += [sp(2), note("Abbreviations: PFR = Pelvic Floor Repair; TOT = Transobturator Tape Procedure"), sp(4)]

# ── 11. HIGH-YIELD RAPID RECALL ───────────────────────────────────
story += [sec("11. HIGH-YIELD EXAM RAPID RECALL"), sp(2)]
story.append(tbl(
    ["Key Point", "Fact to Remember"],
    [
        ["Most important acquired cause", "Vaginal delivery β€” injury to supporting structures"],
        ["Prolapse unusual after", "Cesarean delivery"],
        ["Congenital cause", "Genetic connective tissue disorders; ↓ Type I collagen; Spina bifida"],
        ["Levator plate position", "Horizontal β€” prevents prolapse; damage β†’ organs descend"],
        ["Cystocele = laxity of", "Upper 2/3 of anterior vaginal wall (bladder herniates)"],
        ["Urethrocele = laxity of", "Lower 1/3 of anterior vaginal wall (urethra herniates)"],
        ["Rectocele = laxity of", "Middle 1/3 of posterior vaginal wall (rectum herniates)"],
        ["Enterocele = laxity of", "Upper 1/3 of posterior vaginal wall (pouch of Douglas herniates)"],
        ["Procidentia", "3rd degree uterine prolapse + complete eversion of vagina"],
        ["Prolapse diagnosis criterion", "Thumb anteriorly + fingers posteriorly APPOSED outside introitus = 3rd degree"],
        ["POP-Q reference point", "Plane of hymen = ZERO level (negative = above, positive = below)"],
        ["POP-Q Stage IV", "Essentially complete eversion of vagina"],
        ["POP-Q recommended by", "ICS, AUGS, SGS (1996) β€” objective, site-specific, anatomical"],
        ["Decubitus ulcer management", "Cytology to exclude malignancy β†’ manual reduction β†’ vaginal pack (antiseptic glycerin + acriflavine)"],
        ["Ureteric complication", "Hydroureteric changes; pyelonephritis; uraemia (long-standing procidentia)"],
        ["Symptom classic for prolapse", "Comes down when walking; RELIEVED on lying down"],
        ["Stress incontinence associated with", "Urethrocele (cystourethrocele)"],
        ["Gartner's cyst vs cystocele", "Gartner's: no rugosities, shiny, NOT reducible, NO impulse on cough, metal catheter does NOT pass under"],
        ["Pessary does NOT cure prolapse", "Only relieves symptoms; cannot cure"],
        ["No single operation for all", "Type, degree, age, parity, comorbidities determine surgical choice"],
        ["Surgery type: Obliterative", "Colpocleisis β€” closing the vagina"],
        ["Surgery: young nulliparous", "Cervicopexy or Sling (Purandare's) operation"],
        ["Surgery: vault prolapse (vaginal)", "Sacrospinous colpopexy, Le Fort colpocleisis, or vault repair + PFR"],
        ["Surgery: uterovaginal (elderly)", "Vaginal hysterectomy with PFR"],
        ["Fothergill's operation", "Preserves uterus β€” for uterovaginal prolapse"],
        ["TOT operation indication", "POP with stress incontinence (vaginal approach)"],
    ],
    widths=[W*0.40, W*0.60]
))
story += [sp(4)]
story.append(note("Notes compiled from Chapter 16: Displacement of the Uterus β€” Textbook of Gynecology. Focus on: Types of prolapse & their exact anatomical locations, POP-Q stages, degrees of uterine prolapse, differential diagnosis features, and surgical procedure matching."))

doc.build(story)
print(f"Done: {OUTPUT}")
Running Command

cd /home/daytona/workspace/genital-prolapse && python3 generate_pdf.py 2>&1

Running Command

python3 -c " from pypdf import PdfReader; import os r = PdfReader('/home/daytona/workspace/genital-prolapse/Genital_Prolapse_Notes.pdf') size = os.path.getsize('/home/daytona/workspace/genital-prolapse/Genital_Prolapse_Notes.pdf') print(f'Pages: {len(r.pages)}') print(f'Size: {size/1024:.1f} KB') "

Your concise exam-oriented PDF is ready - 5 pages, 21 KB.

Genital Prolapse Notes

PDF Document Β· PDF


What's inside (5 pages):

SectionContent
1. Definition & Pelvic SupportsLevator ani, levator plate, 3 levels of support (DeLancey), hiatus urogenitalis
2. Etiology Table (16.1)Anatomical vs Predisposing (Acquired/Congenital) vs Aggravating factors
3. Clinical TypesFull table: Cystocele, Urethrocele, Rectocele, Enterocele, Vault prolapse, Uterovaginal, Congenital
4. Degrees + POP-Q StagingTable 16.2 (degrees) + Table 16.3 (Stages 0–IV with measurements)
5. Morbid ChangesDecubitus ulcer, cervix changes, ureteric complications, incarceration
6. SymptomsUrinary, bowel, discharge, general β€” with exam-key callouts
7. Clinical ExaminationProtocol, Valsalva, Sims' speculum, levator ani tone testing
8. Differential DiagnosisGartner's cyst vs cystocele, Congenital cervical elongation, Chronic inversion, Fibroid polyp
9. ManagementPreventive β†’ Conservative (Kegel's, Pessary indications) β†’ Surgical (all 3 types)
10. Surgical Procedures (Table 16.4)Full matching table: condition β†’ operation
11. High-Yield Rapid Recall26-point rapid recall table covering all commonly tested facts
This is a shared conversation. Sign in to Orris to start your own chat.