Urogenital homeopathic medicine pdf

Reading File
Asking for Preferences
Searching the Web

homeopathic materia medica urogenital remedies PDF free download

Finding Sources
The medical textbook library doesn't contain homeopathy titles (it's an evidence-based clinical library), but here is a thorough reference guide based on classical homeopathic materia medica sources, plus links to freely available PDFs.

Homeopathic Remedies for Urogenital Conditions

Disclaimer: Homeopathy is not supported by the same evidence base as conventional medicine. The information below is drawn from classical homeopathic materia medica texts (Boericke, Kent, Clarke) for reference purposes only. Always consult a qualified healthcare provider for urogenital complaints.

Key Freely Available PDFs

  1. Boericke's Pocket Manual of Homeopathic Materia Medica - the most widely used reference, includes full urogenital chapters. Available on Scribd (Boericke + Kent).
  2. RLHH Unit 41 - Urinary System Therapeutic Pointers - a free direct PDF from the Royal London Hospital for Integrated Medicine covering urogenital homeopathic prescribing for healthcare professionals.
  1. New Homeopathic Medicines (Materia Medica of Modern Drugs, Vol II) - covers urogenital symptoms from a modern homeopathic viewpoint. Free PDF via PAHO/BVS:

Classical Remedies by Urogenital Condition

Urinary Tract / Cystitis

RemedyKey Indications
CantharisIntense burning before, during, after urination; constant urge; scanty urine drop by drop
Apis mellificaBurning, stinging pain; scanty urine; oedema; suppressed urination
Staphysagria"Honeymoon cystitis" (after intercourse or catheterization); urge with only drops passed
Berberis vulgarisRadiating pains from kidney to bladder; urinary tract infections with back/flank pain
SarsaparillaSevere pain at end of urination; gravel/stones; urine dribbles when sitting
EquisetumFull feeling in bladder; dull pain; frequent urge; no clear cause

Renal Calculi (Kidney Stones)

RemedyKey Indications
Berberis vulgarisSharp stitching pains radiating down ureter; gravel in urine
LycopodiumRight-sided stones; red sandy sediment; bloating; 4-8 PM aggravation
Ocimum canumRight kidney stone; violent pain; vomiting; brick-dust sediment
Pareira bravaSevere straining to urinate; pain radiating to thighs; calculi

Prostate (Male)

RemedyKey Indications
Sabal serrulataBPH; difficulty urinating; cold, numbed genitals; loss of libido
Conium maculatumUrinary dribbling in elderly; interrupted stream; prostatic enlargement
Chimaphila umbellataCan only urinate leaning forward; prostatic hypertrophy with straining
Thuja occidentalisUrge with inability; stream splits or sprays; genital warts

Female Urogenital / Vaginal

RemedyKey Indications
SepiaProlapse; dragging sensation; leucorrhoea (yellow/greenish); irritability; indifference
KreosotumOffensive, corrosive leucorrhoea; burning itching; carcinous tendency
PulsatillaBland, changeable discharge; urinary incontinence on coughing/sneezing
Calcarea carbonicaProfuse, milky discharge; menses too early/heavy; chilly constitution
BelladonnaAcute vaginitis; hot, dry, red, throbbing; sudden onset

Sexually Transmitted / Urethritis

RemedyKey Indications
Medorrhinum (nosode)Chronic gonorrhoeal history; chronic urethritis; intense urging
Mercurius solubilisUrethral discharge; burning worse at night; sweating; metallic taste
Nitric acidSplinter-like pain; urethral ulcers; offensive urine smelling like horse urine
ThujaCondylomata; warts on genitals; gonorrhoeal history

Post-Surgical / Trauma

RemedyKey Indications
Arnica montanaAfter catheterization, prostatectomy, calculi passage, blunt trauma
StaphysagriaAfter gynecological procedures; post-catheter urethral irritation
HamamelisUrinary bleeding after trauma; increased desire to urinate

Recommended Reference Books (Classical Materia Medica)

  • Boericke's New Manual of Homeopathic Materia Medica & Repertory (3rd revised ed., B. Jain) - Scribd preview
  • K.N. Mathur - Systematic Materia Medica - Scribd preview
  • Kent's Repertory - for cross-referencing urogenital rubrics (kidney, urine, genitalia chapters)

Note: The RLHH PDF (link above) is the most clinically structured free resource specifically covering urinary system prescribing, compiled by Dr. Gabriela Rieberer for healthcare professionals. It includes therapeutic pointers for cystitis, renal colic, prostate, and post-operative urinary complaints with a nosode section for chronic/recurrent infections.

Generate a reference PDF quick-start guide for homeopathic urogenital remedies

Reading File
Running Command

mkdir -p /tmp/workspace/homeopathy-urogenital && ls /tmp/workspace/

Writing File

~/homeopathy-urogenital/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, PageBreak, KeepTogether
)
from reportlab.platypus.flowables import HRFlowable
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os

OUTPUT = "/tmp/workspace/homeopathy-urogenital/Homeopathic_Urogenital_Remedies_QuickStart.pdf"

# ── Colour palette ──────────────────────────────────────────────
TEAL        = colors.HexColor("#1A7A8A")
TEAL_LIGHT  = colors.HexColor("#D6EFF2")
TEAL_DARK   = colors.HexColor("#0D4F59")
GOLD        = colors.HexColor("#C8962B")
GREY_LIGHT  = colors.HexColor("#F5F5F5")
GREY_MED    = colors.HexColor("#E0E0E0")
TEXT_DARK   = colors.HexColor("#1C1C1C")
WHITE       = colors.white

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=18*mm, rightMargin=18*mm,
    topMargin=20*mm, bottomMargin=20*mm,
    title="Homeopathic Urogenital Remedies – Quick-Start Guide",
    author="Reference Guide",
    subject="Homeopathy Materia Medica – Urogenital System"
)

W, H = A4
CONTENT_W = W - 36*mm

styles = getSampleStyleSheet()

# ── Custom paragraph styles ──────────────────────────────────────
def S(name, **kw):
    base = kw.pop("parent", "Normal")
    s = ParagraphStyle(name, parent=styles[base], **kw)
    return s

sTitle = S("sTitle", fontSize=26, textColor=WHITE, fontName="Helvetica-Bold",
           leading=32, alignment=TA_CENTER)
sSubtitle = S("sSubtitle", fontSize=13, textColor=TEAL_LIGHT, fontName="Helvetica",
              leading=18, alignment=TA_CENTER)
sDisclaimer = S("sDisclaimer", fontSize=7.5, textColor=colors.HexColor("#AAAAAA"),
                fontName="Helvetica-Oblique", leading=10, alignment=TA_CENTER)

sSectionHead = S("sSectionHead", fontSize=13, textColor=WHITE,
                 fontName="Helvetica-Bold", leading=17, alignment=TA_LEFT,
                 leftIndent=4)
sSubHead = S("sSubHead", fontSize=10.5, textColor=TEAL_DARK,
             fontName="Helvetica-Bold", leading=14)
sBody = S("sBody", fontSize=9, textColor=TEXT_DARK, fontName="Helvetica",
          leading=13, alignment=TA_JUSTIFY)
sBodyBold = S("sBodyBold", fontSize=9, textColor=TEXT_DARK,
              fontName="Helvetica-Bold", leading=13)
sNote = S("sNote", fontSize=8, textColor=colors.HexColor("#555555"),
          fontName="Helvetica-Oblique", leading=11)
sFooter = S("sFooter", fontSize=7.5, textColor=colors.HexColor("#888888"),
            fontName="Helvetica", leading=10, alignment=TA_CENTER)
sTableHead = S("sTableHead", fontSize=8.5, textColor=WHITE,
               fontName="Helvetica-Bold", leading=11, alignment=TA_CENTER)
sTableCell = S("sTableCell", fontSize=8, textColor=TEXT_DARK,
               fontName="Helvetica", leading=11)
sTableCellBold = S("sTableCellBold", fontSize=8, textColor=TEAL_DARK,
                   fontName="Helvetica-Bold", leading=11)
sTableCellItalic = S("sTableCellItalic", fontSize=8, textColor=TEXT_DARK,
                     fontName="Helvetica-Oblique", leading=11)

# ── Helper builders ──────────────────────────────────────────────

def section_header(title, icon=""):
    label = f"{icon}  {title}" if icon else title
    tbl = Table([[Paragraph(label, sSectionHead)]], colWidths=[CONTENT_W])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), TEAL),
        ("TOPPADDING",  (0,0), (-1,-1), 6),
        ("BOTTOMPADDING",(0,0),(-1,-1), 6),
        ("LEFTPADDING", (0,0), (-1,-1), 8),
        ("ROUNDEDCORNERS", [4, 4, 4, 4]),
    ]))
    return tbl

def remedy_table(headers, rows, col_widths):
    head_row = [Paragraph(h, sTableHead) for h in headers]
    data = [head_row]
    for i, row in enumerate(rows):
        cells = []
        for j, cell in enumerate(row):
            if j == 0:
                cells.append(Paragraph(cell, sTableCellBold))
            elif j == 1:
                cells.append(Paragraph(cell, sTableCellItalic))
            else:
                cells.append(Paragraph(cell, sTableCell))
        data.append(cells)

    tbl = Table(data, colWidths=col_widths, repeatRows=1)
    style = [
        # Header
        ("BACKGROUND",    (0,0), (-1,0), TEAL_DARK),
        ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
        ("TOPPADDING",    (0,0), (-1,0), 5),
        ("BOTTOMPADDING", (0,0), (-1,0), 5),
        # Body rows
        ("TOPPADDING",    (0,1), (-1,-1), 4),
        ("BOTTOMPADDING", (0,1), (-1,-1), 4),
        ("LEFTPADDING",   (0,0), (-1,-1), 5),
        ("RIGHTPADDING",  (0,0), (-1,-1), 5),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
        ("GRID",          (0,0), (-1,-1), 0.4, GREY_MED),
        ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, GREY_LIGHT]),
    ]
    tbl.setStyle(TableStyle(style))
    return tbl

def callout_box(text, bg=TEAL_LIGHT, border=TEAL):
    tbl = Table([[Paragraph(text, sNote)]], colWidths=[CONTENT_W])
    tbl.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), bg),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("TOPPADDING",    (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("BOX",           (0,0), (-1,-1), 1.5, border),
    ]))
    return tbl

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

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

# ── COVER BLOCK ─────────────────────────────────────────────────
cover = Table(
    [[Paragraph("Homeopathic Urogenital Remedies", sTitle)],
     [Paragraph("Quick-Start Reference Guide", sSubtitle)],
     [Spacer(1, 4*mm)],
     [Paragraph("Based on Classical Materia Medica: Boericke · Kent · Clarke", sDisclaimer)],
    ],
    colWidths=[CONTENT_W]
)
cover.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), TEAL_DARK),
    ("TOPPADDING",    (0,0), (-1,-1), 14),
    ("BOTTOMPADDING", (0,0), (-1,-1), 8),
    ("LEFTPADDING",   (0,0), (-1,-1), 12),
    ("RIGHTPADDING",  (0,0), (-1,-1), 12),
    ("ROUNDEDCORNERS",[6,6,6,6]),
]))
story.append(cover)
story.append(sp(5))

# Disclaimer box
story.append(callout_box(
    "<b>Important Disclaimer:</b>  This guide is compiled from classical homeopathic materia medica "
    "for reference purposes only. Homeopathy is not a substitute for evidence-based medical care. "
    "All urogenital symptoms — including urinary infections, haematuria, pelvic pain, or sexual-health "
    "concerns — should be assessed by a qualified healthcare professional before any treatment is begun.",
    bg=colors.HexColor("#FFF8E1"), border=GOLD
))
story.append(sp(5))

# ── HOW TO USE ──────────────────────────────────────────────────
story.append(section_header("How to Use This Guide"))
story.append(sp(2))
how_to = [
    ["Step", "Action"],
    ["1", "Identify the patient's PRIMARY urogenital complaint from the section tabs below."],
    ["2", "Match the symptom picture to the remedy's key indications column."],
    ["3", "Check modalities (what makes it better/worse) and constitutional fit."],
    ["4", "Select the remedy whose total picture most closely matches (the similimum)."],
    ["5", "Typical starting potency: 30C for acute; 200C for subacute/constitutional."],
    ["6", "Reassess after 3 doses. If no change in 24 h (acute) or 2 weeks (chronic), reconsider."],
]
ht = Table(how_to, colWidths=[14*mm, CONTENT_W - 14*mm])
ht.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), TEAL),
    ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, GREY_LIGHT]),
    ("GRID",          (0,0), (-1,-1), 0.4, GREY_MED),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
]))
story.append(ht)
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 1 – URINARY TRACT / CYSTITIS
# ════════════════════════════════════════════════════════════════
story.append(section_header("Section 1 — Urinary Tract & Cystitis"))
story.append(sp(2))
story.append(Paragraph(
    "Acute and chronic inflammation of the bladder and urethra. "
    "Match burning quality, timing, and associated symptoms carefully.",
    sBody))
story.append(sp(3))

cystitis_rows = [
    ["Cantharis\n(Spanish Fly)",        "30C – 200C",
     "Intense burning before, during AND after urination. Constant, intolerable urge. "
     "Urine passed drop by drop. Cutting pain in urethra. Dark/bloody urine. "
     "Worse: cold water, coffee. Better: warmth."],
    ["Apis mellifica\n(Honey Bee)",     "30C",
     "Burning, stinging pain. Scanty/suppressed urine. Oedema of genitalia. "
     "Last drops burn intensely. Thirstless. Better: cold applications."],
    ["Staphysagria\n(Stavesacre)",      "30C – 200C",
     "'Honeymoon cystitis' — after intercourse or catheterisation. Urge with only drops passed. "
     "Pressure feeling in bladder even after voiding. Post-gynaecological procedure."],
    ["Equisetum\n(Scouring Rush)",      "30C",
     "Dull, full feeling in bladder not relieved by urination. Frequent urge. "
     "Pain at close of urination. Enuresis in children."],
    ["Pulsatilla\n(Wind Flower)",        "30C",
     "Involuntary urination on coughing, sneezing, walking. Bland, changeable symptoms. "
     "Urine expelled in spurts. Worse: lying on back. Better: open air."],
    ["Berberis vulgaris\n(Barberry)",    "30C – Q",
     "Radiating, stitching pains from kidneys to bladder/urethra. "
     "Mucous sediment. Burning during and after urination. Left-sided predominance."],
]
cw1 = [35*mm, 20*mm, CONTENT_W - 55*mm]
story.append(remedy_table(["Remedy (Potency range)", "Potency", "Key Indications & Modalities"], cystitis_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 2 – RENAL CALCULI
# ════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("Section 2 — Renal Calculi (Kidney Stones)"),
    sp(2),
    Paragraph(
        "For acute renal colic, always rule out obstruction and infection clinically. "
        "These remedies may ease passage and reduce recurrence.",
        sBody),
    sp(3),
]))

calculi_rows = [
    ["Berberis vulgaris",  "Q / 30C",
     "Sharp, stitching pains radiating down ureter to bladder/thigh. Gravel in urine. "
     "Bubbling sensation in kidneys. Left-sided. Worse: motion, jarring."],
    ["Lycopodium\n(Club Moss)", "30C – 200C",
     "Right-sided stones. Red sandy sediment in urine. 4–8 PM aggravation. "
     "Bloating, flatulence. Anxious, dictatorial constitution."],
    ["Ocimum canum\n(Brazilian Basil)", "30C",
     "Violent renal colic with intense vomiting. Right kidney. Brick-dust or saffron-coloured sediment. "
     "Uric acid tendency. Restless."],
    ["Pareira brava\n(Virgin Vine)", "Q / 30C",
     "Severe straining to urinate — must get on hands and knees. Pain radiates to thighs. "
     "Calculi with great difficulty of urination."],
    ["Sarsaparilla\n(Wild Liquorice)", "30C",
     "Severe pain at END of urination. Urine dribbles while sitting — better standing. "
     "Gravel/sandy deposit. Wrinkled skin folds."],
]
story.append(remedy_table(["Remedy", "Potency", "Key Indications & Modalities"], calculi_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 3 – PROSTATE
# ════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("Section 3 — Prostate Conditions (BPH & Prostatitis)"),
    sp(2),
    Paragraph(
        "Benign prostatic hyperplasia and chronic prostatitis. PSA and imaging should "
        "always be obtained before attributing symptoms to BPH alone.",
        sBody),
    sp(3),
]))

prostate_rows = [
    ["Sabal serrulata\n(Saw Palmetto)", "Q / 30C",
     "Enlarged prostate with difficulty urinating. Dribbling. Cold, numb genitalia. "
     "Loss of libido. Irritability. Considered the foremost glandular remedy."],
    ["Conium maculatum\n(Hemlock)", "30C – 200C",
     "Interrupted stream — starts and stops. Straining. Dribbling after urination. "
     "Elderly patients. Vertigo. Hardness of prostate. Cancer tendency."],
    ["Chimaphila umbellata\n(Ground Holly)", "Q / 30C",
     "Can only pass urine by straining and leaning far forward. Prostatic hypertrophy "
     "with sensation of a ball in the perineum. Scanty, turbid urine."],
    ["Thuja occidentalis\n(Arbor Vitae)", "30C – 200C",
     "Urge with inability to hold; stream splits or forked. Genital warts. "
     "Post-gonorrhoeal prostatitis. Oily skin; fixed ideas constitution."],
    ["Staphysagria", "30C",
     "Prostatitis after instrumentation or psychological insult. "
     "Burning between micturation. Suppressed emotions/anger."],
]
story.append(remedy_table(["Remedy", "Potency", "Key Indications & Modalities"], prostate_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 4 – FEMALE UROGENITAL
# ════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("Section 4 — Female Urogenital Conditions"))
story.append(sp(2))
story.append(Paragraph(
    "Covers leucorrhoea, vaginitis, prolapse, and atrophic/menopausal urogenital changes.",
    sBody))
story.append(sp(3))

female_rows = [
    ["Sepia\n(Cuttlefish ink)", "30C – 200C",
     "Prolapse with dragging, bearing-down sensation. Yellowish-green leucorrhoea. "
     "Indifference to loved ones. Irritability. Worse: before menses, cold. Better: vigorous exercise."],
    ["Kreosotum\n(Beechwood kreosote)", "30C",
     "Intensely offensive, corrosive, burning leucorrhoea. Itching between labia. "
     "Stains yellow-brown. Worse: menses, cold. Carcinous tendency in chronic cases."],
    ["Calcarea carbonica\n(Calc carb)", "30C – 200C",
     "Profuse milky or creamy leucorrhoea. Menses early and heavy. Chilly. Sweaty head. "
     "Cravings: eggs, chalk, indigestible things. Fearful, reliable constitution."],
    ["Belladonna\n(Deadly Nightshade)", "30C",
     "Acute vaginitis: hot, dry, red, throbbing. Sudden violent onset. "
     "Hot leucorrhoea. Worse: touch, jar, light, noise. Better: warmth."],
    ["Pulsatilla\n(Wind Flower)", "30C – 200C",
     "Bland, creamy, changeable discharge. Urinary stress incontinence. "
     "Weepy, yielding constitution. Worse: warmth, evening. Better: cool air, sympathy."],
    ["Natrum muriaticum\n(Common Salt)", "30C – 200C",
     "Dry vagina with painful intercourse (dyspareunia). Clear/white discharge like egg-white. "
     "Grief/reserved constitution. Craving salt. Worse: consolation, sun."],
]
story.append(remedy_table(["Remedy", "Potency", "Key Indications & Modalities"], female_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 5 – URETHRITIS / STI-RELATED
# ════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("Section 5 — Urethritis & STI-Related Conditions"),
    sp(2),
    Paragraph(
        "Classical homeopathy addresses post-infective/chronic states and miasmatic background. "
        "Acute STIs require conventional antibiotic therapy first.",
        sBody),
    sp(3),
]))

sti_rows = [
    ["Medorrhinum\n(Gonorrhoeal nosode)", "200C – 1M",
     "Chronic sequelae of gonorrhoea. Intense urging. Offensive urine. "
     "Warts on genitalia. Wild, intense disposition. Better: damp, seaside. Worse: daylight."],
    ["Mercurius solubilis\n(Quicksilver)", "30C",
     "Urethral discharge; burning worse at night. Profuse sweating. "
     "Metallic/offensive taste. Trembling. Sensitive to temperature extremes."],
    ["Nitric acid\n(Nitric acid)", "30C – 200C",
     "Splinter-like pains in urethra/anus. Offensive urine smelling like horse urine. "
     "Ulcers with irregular edges on genitalia. Warts that bleed easily."],
    ["Thuja occidentalis", "30C – 200C",
     "Genital warts (condylomata). Post-gonorrhoeal state. Split urinary stream. "
     "Oily skin. Fixed ideas. Worse: cold, damp."],
    ["Cannabis sativa\n(Hemp)", "30C",
     "Acute urethritis: burning on urination, especially at start. "
     "Urethra feels as if glued together. Gonorrhoeal discharge in early stage."],
]
story.append(remedy_table(["Remedy", "Potency", "Key Indications & Modalities"], sti_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 6 – POST-SURGICAL / TRAUMA
# ════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("Section 6 — Post-Surgical & Trauma"),
    sp(2),
    Paragraph(
        "Useful after catheterisation, cystoscopy, TURP, lithotripsy, "
        "or passage of calculi.",
        sBody),
    sp(3),
]))

trauma_rows = [
    ["Arnica montana\n(Leopard's Bane)", "30C – 200C",
     "First remedy after any blunt trauma or surgical procedure. "
     "Post-TURP or post-prostatectomy. Bruised, sore feeling. 'Don't touch me' attitude."],
    ["Staphysagria", "30C – 200C",
     "After catheterisation or any instrumentation of urethra/bladder. "
     "Post-lithotomy. Burning between micturation. Suppressed anger/humiliation."],
    ["Hamamelis virginica\n(Witch Hazel)", "Q / 30C",
     "Urinary tract bleeding after trauma. Increased desire to urinate. "
     "Passive, venous haemorrhage. Bruised, sore pains."],
    ["Hypericum perforatum\n(St John's Wort)", "30C",
     "Nerve injury to genitourinary area; peri-urethral nerve pain after surgery. "
     "Shooting, darting pains along nerve paths."],
]
story.append(remedy_table(["Remedy", "Potency", "Key Indications & Modalities"], trauma_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 7 – QUICK POTENCY SELECTION GUIDE
# ════════════════════════════════════════════════════════════════
story.append(PageBreak())
story.append(section_header("Section 7 — Potency Selection & Dosing Reference"))
story.append(sp(3))

potency_data = [
    ["Potency", "Use Case", "Frequency", "Notes"],
    ["6C / 12C",  "Very acute, sensitive patients, children, elderly",
     "Every 1–2 h (acute)\nThrice daily (subacute)", "Gentlest. Suitable for self-care."],
    ["30C",       "Acute and subacute conditions; most common starting point",
     "Every 2–4 h (acute)\nTwice daily (subacute)", "Most widely available. Safe first choice."],
    ["200C",      "Stronger acute cases; clear constitutional match",
     "Once or twice daily\nSingle dose (constitutional)", "Avoid repeating too frequently."],
    ["1M",        "Deep constitutional / chronic miasmatic cases",
     "Single dose; repeat monthly or less", "Use under experienced supervision."],
    ["Q (LM / Mother Tincture)",
     "Herbal-level action (e.g. Sabal serrulata Q, Berberis Q)",
     "5–10 drops in water, 2–3× daily", "Good for organ-affinity remedies."],
]
pt = Table(potency_data, colWidths=[22*mm, 55*mm, 48*mm, CONTENT_W - 125*mm])
pt.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), TEAL_DARK),
    ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, GREY_LIGHT]),
    ("GRID",          (0,0), (-1,-1), 0.4, GREY_MED),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("RIGHTPADDING",  (0,0), (-1,-1), 5),
]))
story.append(pt)
story.append(sp(4))
story.append(callout_box(
    "<b>General Dosing Rule:</b>  Stop the remedy as soon as clear improvement begins — "
    "repeating unnecessarily can antidote the effect. Restart only if improvement stalls or symptoms return. "
    "Antidotes to avoid during treatment: camphor, strong mint/menthol, coffee, and electric blankets.",
    bg=TEAL_LIGHT, border=TEAL
))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 8 – NOSODES REFERENCE
# ════════════════════════════════════════════════════════════════
story.append(section_header("Section 8 — Nosodes in Urogenital Practice"))
story.append(sp(2))
story.append(Paragraph(
    "Nosodes are homeopathic preparations from pathological material. Used primarily "
    "for chronic/recurrent conditions with a clear infective history.",
    sBody))
story.append(sp(3))

nosode_rows = [
    ["Medorrhinum",      "200C – 1M",
     "History of gonorrhoea (patient or family). Chronic urethritis, pelvic inflammatory residue, "
     "recurrent warts. Intense, hurried personality. Better: knee-chest position, damp."],
    ["Syphilinum\n(Lueticum)", "200C – 1M",
     "Syphilitic miasm. Destructive ulceration of genitalia. Nocturnal aggravation. "
     "Bone pains. Hopeless, despairing constitution."],
    ["Tuberculinum",     "200C – 1M",
     "Recurrent urinary infections especially in children with TB history/exposure. "
     "Takes cold easily. Desire to travel. Restless."],
    ["E. coli (Bacillinum Testium)", "30C",
     "Recurrent E. coli UTIs. Given as intercurrent remedy between acute episodes "
     "to break the pattern of recurrence."],
]
story.append(remedy_table(["Nosode", "Potency", "Indications"], nosode_rows, cw1))
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# SECTION 9 – REPERTORY CROSS-REFERENCE
# ════════════════════════════════════════════════════════════════
story.append(KeepTogether([
    section_header("Section 9 — Repertory Quick Cross-Reference"),
    sp(2),
    Paragraph(
        "Key rubrics from Kent's Repertory (Urinary Organs / Genitalia chapters). "
        "Use these to confirm remedy selection.",
        sBody),
    sp(3),
]))

rubric_rows = [
    ["Urination, burning, during",
     "Cantharis, Cannabis sat., Berberis, Apis, Sarsaparilla"],
    ["Urination, painful, at close of",
     "Sarsaparilla, Equisetum, Berberis, Staphysagria"],
    ["Urination, dribbling (BPH)",
     "Conium, Sabal ser., Chimaphila, Causticum"],
    ["Urine, sediment, red / brick-dust",
     "Lycopodium, Ocimum can., Sarsaparilla"],
    ["Bladder, urge, constant",
     "Cantharis, Equisetum, Merc. sol., Apis"],
    ["Leucorrhoea, offensive",
     "Kreosotum, Sepia, Nitric acid, Psorinum"],
    ["Leucorrhoea, bland / creamy",
     "Pulsatilla, Calcarea carb."],
    ["Genitalia, warts / condylomata",
     "Thuja, Nitric acid, Medorrhinum, Sabina"],
    ["Colic, renal",
     "Berberis, Lycopodium, Ocimum can., Pareira brava"],
    ["Trauma, after instrumentation",
     "Staphysagria, Arnica, Hamamelis"],
]
rt = Table(
    [["Rubric (symptom)", "Leading Remedies (bold = first choice)"]] + rubric_rows,
    colWidths=[70*mm, CONTENT_W - 70*mm]
)
rt.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0), TEAL_DARK),
    ("TEXTCOLOR",     (0,0), (-1,0), WHITE),
    ("FONTNAME",      (0,0), (-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0), (-1,-1), 8),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[WHITE, GREY_LIGHT]),
    ("GRID",          (0,0), (-1,-1), 0.4, GREY_MED),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("RIGHTPADDING",  (0,0), (-1,-1), 5),
    ("FONTNAME",      (0,1), (0,-1), "Helvetica-Oblique"),
]))
story.append(rt)
story.append(sp(6))

# ════════════════════════════════════════════════════════════════
# REFERENCES & FOOTER
# ════════════════════════════════════════════════════════════════
story.append(HRFlowable(width=CONTENT_W, thickness=1, color=TEAL_LIGHT))
story.append(sp(3))
story.append(Paragraph("<b>Source References</b>", sSubHead))
story.append(sp(1))
refs = [
    "Boericke W. New Manual of Homeopathic Materia Medica & Repertory (3rd rev. ed.). B. Jain Publishers, 2007.",
    "Kent J.T. Repertory of the Homeopathic Materia Medica (6th ed.). B. Jain Publishers.",
    "Clarke J.H. A Dictionary of Practical Materia Medica (3 vols). B. Jain Publishers.",
    "RLHH Academic Dept / Rieberer G. Urinary System — Therapeutic Pointers (Unit 41). CIMT / RLHH, 1996–97.",
    "Teixeira M.Z. New Homeopathic Medicines: Materia Medica of Modern Drugs, Vol II. BIREME/PAHO, 2021.",
]
for r in refs:
    story.append(Paragraph(f"• {r}", sNote))
    story.append(sp(0.5))
story.append(sp(4))
story.append(Paragraph(
    "This document is for educational reference only. It does not constitute medical advice. "
    "Always seek professional diagnosis and treatment for urogenital symptoms.",
    sFooter))

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

cd /tmp/workspace/homeopathy-urogenital && python generate_pdf.py

Running Command

ls -lh /tmp/workspace/homeopathy-urogenital/

Your PDF is ready (19 KB, professionally formatted):

Homeopathic Urogenital Remedies QuickStart

PDF Document · PDF


What's inside the guide (9 sections):
SectionContent
Cover + DisclaimerTitle block with safety disclaimer in a gold callout box
How to Use6-step prescribing workflow
1. Urinary Tract / Cystitis6 remedies: Cantharis, Apis, Staphysagria, Equisetum, Pulsatilla, Berberis
2. Renal Calculi5 remedies: Berberis, Lycopodium, Ocimum canum, Pareira brava, Sarsaparilla
3. Prostate (BPH)5 remedies: Sabal serrulata, Conium, Chimaphila, Thuja, Staphysagria
4. Female Urogenital6 remedies: Sepia, Kreosotum, Calc carb, Belladonna, Pulsatilla, Nat mur
5. Urethritis / STI-related5 remedies: Medorrhinum, Mercurius, Nitric acid, Thuja, Cannabis sat
6. Post-Surgical / Trauma4 remedies: Arnica, Staphysagria, Hamamelis, Hypericum
7. Potency Selection Guide6C through 1M + Q/LM with dosing frequencies
8. Nosodes ReferenceMedorrhinum, Syphilinum, Tuberculinum, E. coli nosode
9. Repertory Cross-Reference10 key rubrics mapped to leading remedies
ReferencesBoericke, Kent, Clarke, RLHH Unit 41, Teixeira
Each remedy entry includes the common name, potency range, key indications, and modalities (better/worse factors) in a clean teal-themed table layout.
This is a shared conversation. Sign in to Orris to start your own chat.