Give me a homoeopathic therapeutic of dentitation diarrhoea

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Searching the Web

homoeopathic therapeutics dentition diarrhoea remedies chamomilla calcarea

Reading Web Page

https://homeoco.fr/en/homeopathy-in-action/article/difficult…

Searching the Web

dentition diarrhoea homoeopathic repertory Chamomilla Podophyllum Calcarea phos Kreosotum symptoms

Reading Web Page

https://hpathy.com/cause-symptoms-treatment/diarrhea-homeopa…

Here is a comprehensive homoeopathic therapeutic guide for Dentition Diarrhoea (diarrhoea occurring during the teething period in infants, typically 6 months to 3 years of age).

Homoeopathic Therapeutics of Dentition Diarrhoea

Overview

Dentition diarrhoea refers to loose or frequent stools that occur coincidentally with the eruption of primary (deciduous) teeth. It arises from the increased salivation, reflex stimulation of the gastrointestinal tract, and the general constitutional disturbance of the erupting child. In homoeopathy, remedy selection is based on the totality of symptoms - the character of stool, associated mental/general symptoms, modalities (what makes it better or worse), and the child's constitutional type.

Major Remedies

1. Chamomilla (The Most Common Remedy)

  • Stools: Green, watery, like chopped spinach or grass; offensive, slimy, sometimes mixed with mucus. Hot, corroding stool.
  • Associated symptoms: Violent colic with screaming; one cheek red, the other pale; extreme irritability - child demands things then refuses them; wants to be carried constantly; hypersensitivity to pain.
  • Modalities: Better by rocking, being carried; worse at night and from warmth.
  • Constitutional type: Highly irritable, angry, impossible to please; nothing satisfies.
  • Key note: The first remedy to think of in dentition diarrhoea with extreme irritability and green, offensive stools.

2. Podophyllum

  • Stools: Profuse, watery, yellowish, gushing, offensive; forcibly expelled; painless but exhausting; early morning diarrhoea (3 AM - 9 AM).
  • Associated symptoms: Excessive drooling during sleep; child rolls head from side to side; grinds gums together; weak, sinking feeling in abdomen; rectum may prolapse before stool.
  • Modalities: Better lying on stomach with firm pressure on abdomen; worse in morning and hot humid weather.
  • Key note: Especially indicated when cerebral symptoms (head rolling, moaning) accompany diarrhoea. Sometimes headache alternates with diarrhoea.

3. Calcarea Carbonica

  • Stools: Sour-smelling, whitish, undigested, acid; may be chalk-like or pale.
  • Associated symptoms: Profuse perspiration of the head during sleep (wet pillow); open fontanelles; delayed dentition; craving for eggs; large head; ravenous appetite; stools do not seem to weaken the child much.
  • Modalities: Better in dry weather; worse in cold, damp weather.
  • Constitutional type: Fat, chubby, fair-complexioned, slow to develop (late walking, late teething); "the Calcarea baby."
  • Key note: For dentition diarrhoea in infants with open fontanelles - never overlook Calcarea in any intestinal trouble in this constitutional type.

4. Calcarea Phosphorica

  • Stools: Greenish, mucous, fetid; watery and offensive.
  • Associated symptoms: Non-union or delayed closure of fontanelles; thin, tall, restless child; irritability; picky eating; stomachaches; susceptibility to food allergies; tendency to early tooth decay.
  • Modalities: Better in warm dry weather; worse in cold and damp.
  • Constitutional type: Thin, dark-complexioned, growing children; opposite of Calc. carb.
  • Key note: Where Calc. carb suits the fat baby, Calc. phos suits the thin, lanky child with delayed dentition.

5. Rheum (Rhubarb)

  • Stools: Sour-smelling brown and frothy stools; the whole body smells sour (the child, the stool, the sweat - all sour). Stools worse from motion and eating.
  • Associated symptoms: Griping colic followed by tenesmus; colic continues even after stool; chilliness during stool; debility.
  • Modalities: Worse from motion, after eating.
  • Key note: The characteristic sourness of the entire body is the guiding symptom - "the sour baby."

6. Kreosotum

  • Stools: Offensive, dark, watery, sometimes with blood; burning and excoriating stools that excoriate the skin.
  • Associated symptoms: Rapid decay of newly erupted teeth; gum bleeding; intensely irritable child; offensive, acrid saliva causing excoriation around mouth.
  • Modalities: Better from warmth; worse in cold and during dentition.
  • Key note: Indicated when rapid tooth decay accompanies dentition diarrhoea - the hallmark of Kreosotum in teething.

7. Ipecacuanha

  • Stools: Grass-green, fermented, frothy, slimy; diarrhoea with constant nausea (nausea unrelieved by vomiting).
  • Associated symptoms: Constant and persistent nausea; pale face; clean tongue; cutting colicky pain around navel; vomiting of mucus or bile.
  • Modalities: Worse from warmth, overeating.
  • Key note: When persistent nausea accompanies dentition diarrhoea, Ipecac is strongly indicated.

8. Mercurius Solubilis / Vivus

  • Stools: Slimy, bloody, green; burning and offensive; accompanied by straining and never-get-done feeling (tenesmus persists after stool); worse at night.
  • Associated symptoms: Profuse, offensive perspiration; sickly smell from mouth; flabby tongue showing imprint of teeth; prolapse of rectum may follow stool; increased salivation.
  • Modalities: Worse at night, from warmth of bed.
  • Key note: The "never-get-done" tenesmus and tongue showing teeth-marks are the guiding keynotes.

9. Pulsatilla

  • Stools: Watery, changeable in character (no two stools alike); yellow-green mucus; no fixed symptom picture.
  • Associated symptoms: Mild, weepy, clinging child; no thirst; changeable symptoms; better in open air; worse in warm, stuffy rooms.
  • Constitutional type: Mild, yielding, emotional child who seeks affection.
  • Key note: No thirst + changeable stools + mild clingy nature = Pulsatilla.

10. Belladonna

  • Stools: Greenish, watery, offensive, with blood; passed with force.
  • Associated symptoms: Acute inflammatory state - sudden high fever, hot flushed face, throbbing carotids; extreme restlessness; hypersensitivity; may cry out during sleep; dilated pupils.
  • Modalities: Worse from jarring, touch, light, noise; better by warmth.
  • Key note: When dentition diarrhoea is accompanied by acute cerebral congestion and high fever.

Comparative Summary Table

RemedyCharacter of StoolKey Associated SymptomModality
ChamomillaGreen, chopped spinach-like, offensiveOne cheek red; extreme irritabilityBetter carried/rocked
PodophyllumYellow, profuse, gushing, painlessHead rolling, drooling, early morningBetter lying on stomach
Calc. carbSour, white, undigestedSweating head, open fontanelle, fat childBetter dry weather
Calc. phosGreen, mucous, fetidThin child, delayed fontanelle closureBetter warm dry weather
RheumBrown, frothy, sour body odourWhole body smells sour; griping colicWorse motion/eating
KreosotumOffensive, excoriatingRapid tooth decay; gum bleedingBetter warmth
IpecacGrass-green, frothyConstant unrelieved nauseaWorse warmth
MercuriusSlimy, bloody, offensiveNever-get-done tenesmus; teeth marks on tongueWorse night/warm bed
PulsatillaChangeable, no two stools alikeMild, weepy, no thirstBetter open air
BelladonnaGreen, watery, forcefulSudden high fever, hot red faceWorse jarring/light

Important Clinical Note

While mild diarrhoea may accompany teething, severe or persistent diarrhoea, high fever (>38.5°C), vomiting, or signs of dehydration should NOT be attributed to dentition alone and require prompt medical evaluation. Homoeopathic prescribing in such situations should be used alongside - not instead of - appropriate medical assessment.

Give me a pdf format

Reading File
Running Command

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

Running Command

mkdir -p /home/daytona/workspace/homoeopathy && python3 -c "from reportlab.lib i…

Writing File

~/homoeopathy/generate_pdf.py

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

OUTPUT = "/home/daytona/workspace/homoeopathy/Dentition_Diarrhoea_Homoeopathic_Therapeutics.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2.2*cm, bottomMargin=2.2*cm,
    title="Homoeopathic Therapeutics of Dentition Diarrhoea",
    author="Orris – Homoeopathic Reference"
)

# ── Colour palette ──────────────────────────────────────────────────────────
DARK_GREEN   = colors.HexColor("#1B4332")
MID_GREEN    = colors.HexColor("#2D6A4F")
LIGHT_GREEN  = colors.HexColor("#D8F3DC")
ACCENT       = colors.HexColor("#40916C")
TABLE_HEADER = colors.HexColor("#1B4332")
ROW_ALT      = colors.HexColor("#EEF7F1")
WHITE        = colors.white
GREY_TEXT    = colors.HexColor("#333333")
LIGHT_GREY   = colors.HexColor("#F5F5F5")

styles = getSampleStyleSheet()

# Custom styles
title_style = ParagraphStyle(
    "Title", parent=styles["Title"],
    fontSize=22, leading=28,
    textColor=WHITE, alignment=TA_CENTER,
    spaceAfter=4, fontName="Helvetica-Bold"
)
subtitle_style = ParagraphStyle(
    "Subtitle", parent=styles["Normal"],
    fontSize=11, leading=16,
    textColor=colors.HexColor("#B7E4C7"), alignment=TA_CENTER,
    spaceAfter=2, fontName="Helvetica"
)
section_header = ParagraphStyle(
    "SectionHeader",
    fontSize=13, leading=18,
    textColor=WHITE, fontName="Helvetica-Bold",
    spaceBefore=14, spaceAfter=6,
    leftIndent=0
)
remedy_title = ParagraphStyle(
    "RemedyTitle",
    fontSize=12, leading=16,
    textColor=DARK_GREEN, fontName="Helvetica-Bold",
    spaceBefore=10, spaceAfter=3
)
body = ParagraphStyle(
    "Body", parent=styles["Normal"],
    fontSize=9.5, leading=14,
    textColor=GREY_TEXT, fontName="Helvetica",
    spaceAfter=3, leftIndent=10
)
bullet_style = ParagraphStyle(
    "Bullet", parent=styles["Normal"],
    fontSize=9.5, leading=13.5,
    textColor=GREY_TEXT, fontName="Helvetica",
    leftIndent=18, spaceAfter=2,
    bulletIndent=8
)
keynote_style = ParagraphStyle(
    "Keynote", parent=styles["Normal"],
    fontSize=9.5, leading=13.5,
    textColor=DARK_GREEN, fontName="Helvetica-BoldOblique",
    leftIndent=10, spaceAfter=4,
    borderPad=4
)
note_style = ParagraphStyle(
    "Note", parent=styles["Normal"],
    fontSize=9, leading=13,
    textColor=colors.HexColor("#7F0000"), fontName="Helvetica-Oblique",
    leftIndent=10, rightIndent=10, spaceAfter=4
)
footer_style = ParagraphStyle(
    "Footer", parent=styles["Normal"],
    fontSize=7.5, textColor=colors.HexColor("#888888"),
    alignment=TA_CENTER, fontName="Helvetica"
)
toc_style = ParagraphStyle(
    "TOC", parent=styles["Normal"],
    fontSize=10, leading=16, textColor=DARK_GREEN,
    fontName="Helvetica", leftIndent=20
)

# ── Helper: coloured banner ──────────────────────────────────────────────────
def banner(text, style=section_header, bg=MID_GREEN, pad=6):
    tbl = Table([[Paragraph(text, style)]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (-1,-1), pad),
        ("BOTTOMPADDING", (0,0), (-1,-1), pad),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("ROUNDEDCORNERS", [4]),
    ]))
    return tbl

def remedy_banner(text):
    tbl = Table([[Paragraph(text, remedy_title)]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), LIGHT_GREEN),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("LINEBELOW", (0,0), (-1,-1), 1.5, ACCENT),
    ]))
    return tbl

def bullet(text):
    return Paragraph(f"• {text}", bullet_style)

def keynote(text):
    return Paragraph(f"★ Key note: {text}", keynote_style)

# ── Content ─────────────────────────────────────────────────────────────────
story = []

# ── Title block ─────────────────────────────────────────────────────────────
title_block = Table(
    [[Paragraph("Homoeopathic Therapeutics", title_style)],
     [Paragraph("of Dentition Diarrhoea", title_style)],
     [Spacer(1, 4)],
     [Paragraph("A comprehensive remedy guide for diarrhoea during the teething period", subtitle_style)],
     [Paragraph("Classical Homoeopathy  |  Paediatric Practice", subtitle_style)]],
    colWidths=[17*cm]
)
title_block.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DARK_GREEN),
    ("TOPPADDING",    (0,0), (-1,-1), 14),
    ("BOTTOMPADDING", (0,0), (-1,-1), 14),
    ("LEFTPADDING",   (0,0), (-1,-1), 16),
    ("RIGHTPADDING",  (0,0), (-1,-1), 16),
]))
story.append(title_block)
story.append(Spacer(1, 10))

# ── Overview ─────────────────────────────────────────────────────────────────
story.append(banner("Overview"))
story.append(Spacer(1, 4))
overview_text = (
    "Dentition diarrhoea refers to loose or frequent stools occurring coincidentally with the eruption "
    "of primary (deciduous) teeth, typically between 6 months and 3 years of age. It arises from "
    "increased salivation, reflex stimulation of the gastrointestinal tract, and general constitutional "
    "disturbance during tooth eruption. In homoeopathy, remedy selection rests on the <b>totality of "
    "symptoms</b> — character of stool, associated mental/general symptoms, modalities, and the child's "
    "constitutional type."
)
story.append(Paragraph(overview_text, body))
story.append(Spacer(1, 6))

# ── Remedies ──────────────────────────────────────────────────────────────────
story.append(banner("Major Homoeopathic Remedies"))
story.append(Spacer(1, 6))

remedies = [
    {
        "name": "1. Chamomilla  ✦  (The Most Common Remedy)",
        "stool": "Green, watery, like chopped spinach/grass; offensive, slimy, hot, corroding; may be mixed with mucus.",
        "associated": [
            "Violent colic with loud screaming.",
            "One cheek red, the other pale.",
            "Extreme irritability — demands things then refuses them.",
            "Wants to be carried constantly; hypersensitive to pain.",
        ],
        "modalities": "Better: rocking, being carried.  Worse: night, warmth.",
        "constitution": "Highly irritable, angry, impossible to please; nothing satisfies.",
        "keynote": "The FIRST remedy to think of in dentition diarrhoea with extreme irritability and green, offensive stools.",
    },
    {
        "name": "2. Podophyllum",
        "stool": "Profuse, watery, yellowish, gushing, forcibly expelled, offensive; painless but exhausting. Early morning (3 AM – 9 AM).",
        "associated": [
            "Excessive drooling during sleep.",
            "Child rolls head from side to side; grinds gums together.",
            "Weak, sinking feeling in abdomen.",
            "Tendency to rectal prolapse before stool.",
        ],
        "modalities": "Better: lying on stomach with firm pressure.  Worse: morning, hot humid weather.",
        "constitution": "Child who moans in sleep and clamps gums together.",
        "keynote": "Especially indicated when cerebral symptoms (head rolling, moaning) accompany dentition diarrhoea. Headache may alternate with diarrhoea.",
    },
    {
        "name": "3. Calcarea Carbonica",
        "stool": "Sour-smelling, whitish, undigested, acid; chalk-like or pale.",
        "associated": [
            "Profuse perspiration of the head during sleep (wet pillow).",
            "Open fontanelles; delayed dentition.",
            "Craving for eggs; ravenous appetite.",
            "Large, sweating head; stool does not seem to weaken the child.",
        ],
        "modalities": "Better: dry weather.  Worse: cold, damp weather.",
        "constitution": "Fat, chubby, fair-complexioned; slow to develop (the 'Calcarea baby').",
        "keynote": "For dentition diarrhoea in infants with open fontanelles — never overlook Calcarea in any intestinal trouble in this type.",
    },
    {
        "name": "4. Calcarea Phosphorica",
        "stool": "Greenish, mucous, fetid, watery, offensive.",
        "associated": [
            "Delayed closure of fontanelles.",
            "Thin, restless, irritable child; picky eater.",
            "Stomachaches; susceptibility to food allergies.",
            "Tendency to early tooth decay.",
        ],
        "modalities": "Better: warm dry weather.  Worse: cold, damp.",
        "constitution": "Thin, dark-complexioned, growing children — the opposite of Calc. carb.",
        "keynote": "Where Calc. carb suits the fat baby, Calc. phos suits the thin, lanky child with delayed dentition.",
    },
    {
        "name": "5. Rheum  (Rhubarb)",
        "stool": "Brown, frothy, sour; the whole body smells sour (child, stool, and sweat all sour). Worse from motion and eating.",
        "associated": [
            "Griping colic followed by tenesmus.",
            "Colic continues even after stool.",
            "Chilliness during stool.",
            "Marked debility.",
        ],
        "modalities": "Worse: motion, eating.",
        "constitution": "The 'sour baby' — every secretion and excretion is sour.",
        "keynote": "The characteristic sourness of the entire body is the guiding symptom.",
    },
    {
        "name": "6. Kreosotum",
        "stool": "Offensive, dark, watery; burning and excoriating; may contain blood; corrodes the skin around the anus.",
        "associated": [
            "Rapid decay of newly erupted teeth — a hallmark.",
            "Gum bleeding on slightest touch.",
            "Intensely irritable child.",
            "Offensive, acrid saliva causing excoriation around the mouth.",
        ],
        "modalities": "Better: warmth.  Worse: cold, during dentition.",
        "constitution": "Irritable child with putrid odour from all discharges.",
        "keynote": "Indicated when rapid tooth decay accompanies dentition diarrhoea.",
    },
    {
        "name": "7. Ipecacuanha",
        "stool": "Grass-green, fermented, frothy, slimy, with cutting colic.",
        "associated": [
            "Constant, persistent nausea — not relieved by vomiting.",
            "Pale face; clean tongue despite nausea.",
            "Cutting colicky pain around the navel.",
            "Vomiting of mucus or bile.",
        ],
        "modalities": "Worse: warmth, overeating.",
        "constitution": "Child who is whiny and constantly nauseated.",
        "keynote": "When persistent, unrelieved nausea accompanies dentition diarrhoea — Ipecac is strongly indicated.",
    },
    {
        "name": "8. Mercurius Solubilis / Vivus",
        "stool": "Slimy, bloody, green; burning, offensive; worse at night. Accompanied by never-get-done tenesmus.",
        "associated": [
            "Flabby tongue showing imprint of teeth.",
            "Profuse, offensive perspiration.",
            "Sickly, sweetish odour from mouth.",
            "Increased salivation; rectal prolapse may follow stool.",
        ],
        "modalities": "Worse: night, warmth of bed.",
        "constitution": "Profusely perspiring child with metallic breath.",
        "keynote": "The 'never-get-done' tenesmus and tongue showing teeth-marks are the guiding keynotes.",
    },
    {
        "name": "9. Pulsatilla",
        "stool": "Watery, changeable — no two stools alike; yellow-green mucus.",
        "associated": [
            "Mild, weepy, clinging child.",
            "Absence of thirst (strong keynote).",
            "Changeable symptoms.",
            "Better in open air; worse in warm, stuffy rooms.",
        ],
        "modalities": "Better: open air, cool.  Worse: warmth, evening.",
        "constitution": "Mild, yielding, emotional child who seeks affection.",
        "keynote": "No thirst + changeable stools + mild clingy nature = Pulsatilla.",
    },
    {
        "name": "10. Belladonna",
        "stool": "Greenish, watery, offensive; passed with great force; may contain blood.",
        "associated": [
            "Sudden high fever with hot, flushed face.",
            "Throbbing carotids; dilated pupils.",
            "Extreme restlessness; may cry out during sleep.",
            "Hypersensitivity to touch, light, and noise.",
        ],
        "modalities": "Worse: jarring, touch, light, noise.  Better: warmth.",
        "constitution": "Acute, violent inflammatory states.",
        "keynote": "When dentition diarrhoea is accompanied by acute cerebral congestion and sudden high fever.",
    },
]

for r in remedies:
    block = []
    block.append(remedy_banner(r["name"]))
    block.append(Paragraph(f"<b>Stools:</b> {r['stool']}", body))
    block.append(Paragraph("<b>Associated symptoms:</b>", body))
    for b in r["associated"]:
        block.append(bullet(b))
    block.append(Paragraph(f"<b>Modalities:</b> {r['modalities']}", body))
    block.append(Paragraph(f"<b>Constitutional type:</b> {r['constitution']}", body))
    block.append(keynote(r["keynote"]))
    block.append(Spacer(1, 4))
    story.append(KeepTogether(block))

# ── Comparative Table ─────────────────────────────────────────────────────────
story.append(Spacer(1, 8))
story.append(banner("Comparative Summary Table"))
story.append(Spacer(1, 6))

table_data = [
    [
        Paragraph("<b>Remedy</b>", ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
        Paragraph("<b>Character of Stool</b>", ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
        Paragraph("<b>Key Associated Symptom</b>", ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
        Paragraph("<b>Modality</b>", ParagraphStyle("th", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
    ],
    ["Chamomilla",       "Green, chopped-spinach, offensive",         "One cheek red; extreme irritability",         "Better carried/rocked"],
    ["Podophyllum",      "Yellow, profuse, gushing, painless",        "Head rolling, drooling, early morning",       "Better lying on stomach"],
    ["Calc. carb",       "Sour, white, undigested",                   "Sweating head, open fontanelle, fat child",   "Better dry weather"],
    ["Calc. phos",       "Green, mucous, fetid",                      "Thin child, delayed fontanelle closure",      "Better warm dry weather"],
    ["Rheum",            "Brown, frothy, whole body sour",            "Whole body smells sour; griping colic",       "Worse motion/eating"],
    ["Kreosotum",        "Offensive, dark, excoriating",              "Rapid tooth decay; gum bleeding",             "Better warmth"],
    ["Ipecacuanha",      "Grass-green, frothy, slimy",                "Constant unrelieved nausea",                  "Worse warmth"],
    ["Mercurius",        "Slimy, bloody, never-get-done tenesmus",    "Teeth-marks on tongue; offensive sweat",      "Worse night/warm bed"],
    ["Pulsatilla",       "Changeable, no two stools alike",           "Mild, weepy, no thirst",                      "Better open air"],
    ["Belladonna",       "Green, watery, forceful",                   "Sudden high fever; hot red face",             "Worse jarring/light"],
]

col_widths = [3.2*cm, 4.8*cm, 5.5*cm, 3.5*cm]
tbl = Table(table_data, colWidths=col_widths, repeatRows=1)
tbl_style = TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  TABLE_HEADER),
    ("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, ROW_ALT]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("RIGHTPADDING",  (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
    ("FONTNAME",      (0,1), (0,-1),  "Helvetica-Bold"),
    ("TEXTCOLOR",     (0,1), (0,-1),  DARK_GREEN),
])
tbl.setStyle(tbl_style)
story.append(tbl)

# ── Clinical Note ─────────────────────────────────────────────────────────────
story.append(Spacer(1, 12))
note_banner = Table(
    [[Paragraph("⚕  Important Clinical Note", ParagraphStyle(
        "nb", fontSize=11, fontName="Helvetica-Bold", textColor=colors.HexColor("#7F0000")))
    ]],
    colWidths=[17*cm]
)
note_banner.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), colors.HexColor("#FFF3F3")),
    ("LINEBELOW",     (0,0), (-1,-1), 1.5, colors.HexColor("#C0392B")),
    ("TOPPADDING",    (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
story.append(note_banner)
story.append(Spacer(1, 4))
note_text = (
    "While mild diarrhoea may accompany teething, <b>severe or persistent diarrhoea, high fever "
    "(&gt;38.5°C), vomiting, or signs of dehydration should NOT be attributed to dentition alone</b> "
    "and require prompt medical evaluation. Homoeopathic prescribing in such situations should be used "
    "alongside — not instead of — appropriate medical assessment and rehydration therapy."
)
story.append(Paragraph(note_text, note_style))

# ── Footer ────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 14))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#CCCCCC")))
story.append(Spacer(1, 4))
story.append(Paragraph(
    "Prepared by Orris  |  Classical Homoeopathic Reference  |  For educational purposes only  |  July 2026",
    footer_style
))

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

python3 /home/daytona/workspace/homoeopathy/generate_pdf.py

Your PDF is ready! Download it here:

Dentition Diarrhoea Homoeopathic Therapeutics

PDF Document · PDF

The PDF includes:
  • A formatted title page banner in homoeopathic green
  • Overview of dentition diarrhoea
  • 10 major remedies (Chamomilla, Podophyllum, Calc. carb, Calc. phos, Rheum, Kreosotum, Ipecacuanha, Mercurius, Pulsatilla, Belladonna) - each with stool character, associated symptoms, modalities, constitutional type, and a highlighted keynote
  • A comparative summary table for quick reference
  • A clinical caution note on when to seek medical evaluation

Give me a homoeopathic therapeutic Preeclampsia

Reading File
Finding Sources
Searching the Web

homoeopathic therapeutics preeclampsia remedies Belladonna Gelsemium Nux vomica Apis Helonias symptoms

Searching the Web

homoeopathic treatment preeclampsia eclampsia Gelsemium Veratrum viride Apis mellifica Viscum album Helonias clinical symptoms

Searching the Web

homeopathic materia medica preeclampsia hypertension pregnancy oedema proteinuria Natrum mur Lachesis Phosphorus Sepia remedy

Reading Web Page

https://www.journalijdr.com/sites/default/files/issue-pdf/29…

Searching the Web

homoeopathic repertory preeclampsia Veratrum viride Gelsemium Crataegus Kali carb Sulphur Arsenicum album pregnancy hypertension convulsions

Writing File

~/homoeopathy/generate_preeclampsia_pdf.py

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

OUTPUT = "/home/daytona/workspace/homoeopathy/Preeclampsia_Homoeopathic_Therapeutics.pdf"

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=2*cm, rightMargin=2*cm,
    topMargin=2.2*cm, bottomMargin=2.2*cm,
    title="Homoeopathic Therapeutics of Preeclampsia",
    author="Orris – Homoeopathic Reference"
)

# ── Colour palette ──────────────────────────────────────────────────────────
DEEP_NAVY    = colors.HexColor("#0D1B2A")
MID_NAVY     = colors.HexColor("#1B3A5C")
STEEL_BLUE   = colors.HexColor("#2E6DA4")
LIGHT_BLUE   = colors.HexColor("#D6E8F9")
ACCENT       = colors.HexColor("#3A7EBF")
ROW_ALT      = colors.HexColor("#EEF4FB")
WHITE        = colors.white
GREY_TEXT    = colors.HexColor("#2A2A2A")
RED_NOTE     = colors.HexColor("#8B0000")
LIGHT_RED    = colors.HexColor("#FFF0F0")
GOLD         = colors.HexColor("#C8A800")
LIGHT_GOLD   = colors.HexColor("#FFFBE6")

styles = getSampleStyleSheet()

title_style = ParagraphStyle(
    "TitleS", fontSize=22, leading=28, textColor=WHITE,
    alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=4
)
subtitle_style = ParagraphStyle(
    "SubS", fontSize=10.5, leading=15, textColor=colors.HexColor("#B8D4F0"),
    alignment=TA_CENTER, fontName="Helvetica", spaceAfter=2
)
section_header_style = ParagraphStyle(
    "SecH", fontSize=13, leading=18, textColor=WHITE,
    fontName="Helvetica-Bold", spaceBefore=2, spaceAfter=2, leftIndent=0
)
remedy_title_style = ParagraphStyle(
    "RemT", fontSize=11.5, leading=16, textColor=MID_NAVY,
    fontName="Helvetica-Bold", spaceBefore=2, spaceAfter=2
)
body_style = ParagraphStyle(
    "Body", fontSize=9.5, leading=14, textColor=GREY_TEXT,
    fontName="Helvetica", spaceAfter=3, leftIndent=10
)
bullet_style = ParagraphStyle(
    "Bul", fontSize=9.5, leading=13.5, textColor=GREY_TEXT,
    fontName="Helvetica", leftIndent=20, spaceAfter=2, bulletIndent=10
)
keynote_style = ParagraphStyle(
    "KN", fontSize=9.5, leading=13.5, textColor=colors.HexColor("#1B5E20"),
    fontName="Helvetica-BoldOblique", leftIndent=10, spaceAfter=4
)
note_style = ParagraphStyle(
    "Note", fontSize=9, leading=13, textColor=RED_NOTE,
    fontName="Helvetica-Oblique", leftIndent=10, rightIndent=10, spaceAfter=4
)
footer_style = ParagraphStyle(
    "Foot", fontSize=7.5, textColor=colors.HexColor("#888888"),
    alignment=TA_CENTER, fontName="Helvetica"
)
overview_style = ParagraphStyle(
    "Ov", fontSize=9.5, leading=14.5, textColor=GREY_TEXT,
    fontName="Helvetica", spaceAfter=4, leftIndent=8, alignment=TA_JUSTIFY
)

# ── Helpers ──────────────────────────────────────────────────────────────────
def section_banner(text):
    tbl = Table([[Paragraph(text, section_header_style)]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), MID_NAVY),
        ("TOPPADDING",    (0,0), (-1,-1), 7),
        ("BOTTOMPADDING", (0,0), (-1,-1), 7),
        ("LEFTPADDING",   (0,0), (-1,-1), 12),
        ("RIGHTPADDING",  (0,0), (-1,-1), 12),
    ]))
    return tbl

def remedy_banner(text):
    tbl = Table([[Paragraph(text, remedy_title_style)]], colWidths=[17*cm])
    tbl.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE),
        ("TOPPADDING",    (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("LINEBELOW", (0,0), (-1,-1), 1.5, STEEL_BLUE),
    ]))
    return tbl

def bullet(text):
    return Paragraph(f"• {text}", bullet_style)

def keynote(text):
    return Paragraph(f"★ Key note: {text}", keynote_style)

# ── STORY ────────────────────────────────────────────────────────────────────
story = []

# Title block
title_block = Table(
    [[Paragraph("Homoeopathic Therapeutics", title_style)],
     [Paragraph("of Preeclampsia", title_style)],
     [Spacer(1, 5)],
     [Paragraph("Hypertension · Proteinuria · Oedema · Eclampsia in Pregnancy", subtitle_style)],
     [Paragraph("Classical Homoeopathy  |  Obstetric Practice  |  Materia Medica Reference", subtitle_style)]],
    colWidths=[17*cm]
)
title_block.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), DEEP_NAVY),
    ("TOPPADDING",    (0,0), (-1,-1), 16),
    ("BOTTOMPADDING", (0,0), (-1,-1), 16),
    ("LEFTPADDING",   (0,0), (-1,-1), 16),
    ("RIGHTPADDING",  (0,0), (-1,-1), 16),
]))
story.append(title_block)
story.append(Spacer(1, 10))

# ── Definition & Clinical Features ───────────────────────────────────────────
story.append(section_banner("Definition & Clinical Profile"))
story.append(Spacer(1, 5))

def_text = (
    "<b>Preeclampsia</b> is a pregnancy-specific hypertensive disorder occurring after the 20th week of gestation, "
    "characterised by a triad of <b>hypertension</b> (BP ≥140/90 mmHg on two readings ≥4 hours apart), "
    "<b>proteinuria</b> (≥300 mg/24 h), and <b>oedema</b>. It may progress to eclampsia (tonic-clonic "
    "seizures), HELLP syndrome, renal failure, hepatic rupture, and maternal or foetal death. "
    "It is one of the leading causes of maternal and perinatal morbidity worldwide."
)
story.append(Paragraph(def_text, overview_style))
story.append(Spacer(1, 4))

# Two-column features table
features_data = [
    [Paragraph("<b>Symptoms</b>", ParagraphStyle("hd", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
     Paragraph("<b>Severity Indicators</b>", ParagraphStyle("hd", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE))],
    ["Severe, persistent headache (frontal/occipital)",       "BP ≥160/110 mmHg"],
    ["Visual disturbances (blurring, scotomata, photophobia)","Platelet count <100,000/μL"],
    ["Pitting oedema (face, hands, ankles)",                  "Serum creatinine ≥1.5 mg/dL"],
    ["Epigastric / RUQ pain (liver capsule stretch)",        "Pulmonary oedema"],
    ["Proteinuria, oliguria",                                  "HELLP syndrome"],
    ["Hyperreflexia, drowsiness",                             "Foetal growth restriction"],
    ["Sudden weight gain (>1 kg/week)",                       "Eclamptic convulsions"],
]
feat_tbl = Table(features_data, colWidths=[8.5*cm, 8.5*cm], repeatRows=1)
feat_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  MID_NAVY),
    ("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, ROW_ALT]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
    ("RIGHTPADDING",  (0,0), (-1,-1), 6),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(feat_tbl)
story.append(Spacer(1, 10))

# ── Major Remedies ────────────────────────────────────────────────────────────
story.append(section_banner("Major Homoeopathic Remedies"))
story.append(Spacer(1, 6))

remedies = [
    {
        "name": "1. Belladonna",
        "subtitle": "(Atropa belladonna)",
        "bp": "Sudden-onset, very high blood pressure with bounding, full pulse.",
        "symptoms": [
            "Violent, throbbing, congestive headache — worse from light, noise, jar.",
            "Flushed, hot, red, dry face; dilated pupils.",
            "Extreme restlessness and hypersensitivity.",
            "High fever; skin hot and dry to touch.",
            "Convulsive movements, twitching; premonitory signs of eclampsia.",
            "Scanty, concentrated urine; burning in kidneys.",
        ],
        "modalities": "Worse: light, noise, touch, jar, lying down. Better: sitting upright, warmth.",
        "constitution": "Plethoric, robust patient; symptoms sudden and violent in onset.",
        "keynote": "The FIRST remedy when BP rises suddenly with a red, hot, throbbing head and restlessness — the preeclampsia storm in full force.",
    },
    {
        "name": "2. Glonoinum (Glonoine)",
        "subtitle": "(Nitroglycerine)",
        "bp": "Acute hypertensive episodes with surging, bursting sensations.",
        "symptoms": [
            "Severe, bursting headache — sensation of fullness as if head would explode.",
            "Pulsations felt throughout the body, especially in the head and neck.",
            "Feeling of constriction in the chest and throat.",
            "Flushing of face; hot, perspiring skin.",
            "Fluctuating or rapidly rising blood pressure.",
            "Confusion, loss of sense of location.",
        ],
        "modalities": "Worse: heat of sun, jar, stooping, wine. Better: cool, open air.",
        "constitution": "Patients sensitive to heat; symptoms triggered or worsened by sun exposure.",
        "keynote": "The 'bursting, expanding' headache with surging circulation is the hallmark — closely related to Belladonna but more vascular/congestive.",
    },
    {
        "name": "3. Veratrum Viride",
        "subtitle": "(White American Hellebore)",
        "bp": "One of the most directly anti-hypertensive remedies in the materia medica.",
        "symptoms": [
            "Rapid, full, hard, bounding pulse — markedly elevated systolic pressure.",
            "Slow, soft, weak, irregular pulse in advanced cases (atrial fibrillation).",
            "Burning, dull precordial pain; pulsation felt throughout the body.",
            "Congestion of the brain; flushing and heat of head and face.",
            "Nausea and vomiting with hypertension.",
            "Venous engorgement; especially suited to plethoric constitutions.",
        ],
        "modalities": "Worse: lying on left side; better after rest.",
        "constitution": "Plethoric, full-blooded patients; blood rushing upward.",
        "keynote": "The leading homoeopathic remedy for acute blood-pressure reduction — Boericke's therapeutic index lists it first for 'raised arterial tension'.",
    },
    {
        "name": "4. Gelsemium Sempervirens",
        "subtitle": "(Yellow Jasmine)",
        "bp": "Hypertension associated with dizziness, muscular weakness, and anxiety.",
        "symptoms": [
            "Dull, heavy, occipital headache extending to forehead; head feels like a band.",
            "Dizziness, drowsiness, and muscular weakness — the 'dull, dropy, drowsy, dumb' tetrad.",
            "Blurred vision, diplopia; visual disturbances in preeclampsia.",
            "Trembling; weak extremities; heaviness of eyelids.",
            "Anxiety about upcoming labour; anticipatory dread.",
            "Slow, weak pulse; BP fluctuating with anxiety.",
        ],
        "modalities": "Worse: damp weather, excitement, emotion. Better: profuse urination, stimulants.",
        "constitution": "Timid, emotionally sensitive patient; hypertension triggered by anxiety or emotional shock.",
        "keynote": "For preeclampsia where BP rises with anxiety, dizziness, and visual blurring — especially in emotionally sensitive mothers.",
    },
    {
        "name": "5. Apis Mellifica",
        "subtitle": "(Bee venom)",
        "bp": "Preeclampsia with pronounced oedema and albuminuria (proteinuria).",
        "symptoms": [
            "Generalised pitting oedema — face, eyelids, hands, ankles; skin looks waxy or transparent.",
            "Proteinuria/albuminuria — a strong keynote of Apis in renal involvement.",
            "Scanty, dark, burning urine; suppression of urine.",
            "Burning, stinging pains; intolerance of heat.",
            "Breathlessness from oedema of lungs; rapid, laboured respiration.",
            "Restlessness; fidgety; cannot find comfortable position.",
        ],
        "modalities": "Worse: heat, warm room, touch. Better: cold applications, cold air, open air.",
        "constitution": "Absence of thirst despite oedema; jealous, fussy temperament.",
        "keynote": "The prime remedy when OEDEMA and PROTEINURIA dominate — 'dropsy without thirst' is a clinical hallmark.",
    },
    {
        "name": "6. Natrum Muriaticum",
        "subtitle": "(Common salt — NaCl)",
        "bp": "Hypertension in pregnancy linked to fluid retention and suppressed grief.",
        "symptoms": [
            "Generalised oedema; fluid retention with salt and water imbalance.",
            "Persistent, hammering headache — worse in the morning.",
            "Puffiness around eyes; pale, waxy face.",
            "Proteinuria; renal dysfunction.",
            "Emotionally reserved; suppressed grief or silent suffering; aversion to consolation.",
            "Craving for salt; great thirst.",
        ],
        "modalities": "Worse: heat of sun, consolation, 10 AM, seaside. Better: open air, cold bathing.",
        "constitution": "Thin, reserved women with a history of suppressed emotions; tends to keep emotions internalised.",
        "keynote": "When preeclampsia develops in a woman who has suffered grief or emotional stress and retains fluid — Nat. mur. covers the totality.",
    },
    {
        "name": "7. Helonias Dioica",
        "subtitle": "(Unicorn root)",
        "bp": "Preeclampsia in exhausted, anaemic, overworked women.",
        "symptoms": [
            "Profound exhaustion and anaemia; the body feels heavy, dragging.",
            "Albuminuria with weakness; burning and weight in the kidneys.",
            "Engorged, congested uterus; dragging sensation in pelvis.",
            "The woman feels better only when her mind is occupied (distraction ameliorates).",
            "Oedema of lower extremities.",
            "Sweetish taste; frequent, burning urination.",
        ],
        "modalities": "Worse: when at rest, thinking of her condition. Better: diversion, attention.",
        "constitution": "Worn-out women who work too hard — domestic overwork, anaemia, and uterine congestion.",
        "keynote": "For the exhausted, anaemic pregnant woman with albuminuria who improves when her mind is kept busy.",
    },
    {
        "name": "8. Viscum Album",
        "subtitle": "(Mistletoe)",
        "bp": "A direct anti-hypertensive — clinically used for sustained high blood pressure in pregnancy.",
        "symptoms": [
            "Sustained arterial hypertension; high systolic and diastolic readings.",
            "Slow, weak, irregular pulse with raised blood pressure.",
            "Headache and dizziness from vascular tension.",
            "Oedema; tendency to cardiac weakness alongside high BP.",
            "Bradycardia with hypertension — unusual combination well covered by this remedy.",
        ],
        "modalities": "Worse: cold; better: warmth.",
        "constitution": "Elderly or debilitated patients; also useful in younger women with persistent gestational hypertension.",
        "keynote": "Listed by Boericke first (alongside Veratrum viride) under 'raised arterial tension' — a specific anti-hypertensive in the homoeopathic pharmacopoeia.",
    },
    {
        "name": "9. Arsenicum Album",
        "subtitle": "(Arsenic trioxide)",
        "bp": "Preeclampsia with marked anxiety, restlessness, renal involvement, and prostration.",
        "symptoms": [
            "Generalised oedema (anasarca); puffy, waxy skin.",
            "Albuminuria, haematuria; nephritis-like picture.",
            "Extreme restlessness — moves constantly from place to place despite weakness.",
            "Burning pains relieved by heat — burning in kidneys, bladder, stomach.",
            "Great thirst for small, frequent sips of cold water.",
            "Anxiety of death; fear that she will not survive.",
        ],
        "modalities": "Worse: midnight to 2 AM, cold, exertion. Better: warmth, hot drinks, company.",
        "constitution": "Fastidious, anxious, chilly women with fear of death and great restlessness.",
        "keynote": "For preeclampsia progressing toward renal failure with extreme anxiety, burning oedema, and prostration.",
    },
    {
        "name": "10. Phosphorus",
        "subtitle": "",
        "bp": "Preeclampsia with haemorrhagic tendency, visual disturbances, and renal involvement.",
        "symptoms": [
            "Visual disturbances — sees flashes, black spots (scotomata), temporary blindness.",
            "Haemorrhages: epistaxis, haematuria, bleeding gums; low clotting tendency.",
            "Proteinuria; granular casts in urine.",
            "Burning in kidneys; bright red blood in urine.",
            "Anxious, open, sympathetic; craves cold drinks and ice.",
            "Palpitations; chest oppression; congestion of lungs.",
        ],
        "modalities": "Worse: lying on left side, evening, cold. Better: cold food/drinks, open air, sleep.",
        "constitution": "Tall, thin, open, affectionate; craves cold drinks (which may be vomited when warm).",
        "keynote": "When scotomata, haemorrhagic tendency, and renal signs accompany preeclampsia — Phosphorus covers the danger of impending eclampsia.",
    },
    {
        "name": "11. Secale Cornutum",
        "subtitle": "(Ergot of Rye)",
        "bp": "Preeclampsia with threatened or actual convulsions and vascular spasm.",
        "symptoms": [
            "Vascular spasm; constriction of peripheral vessels; numbness and tingling.",
            "Threatened eclampsia with twitching and jerking.",
            "Tendency to haemorrhage (thin, persistent, dark blood).",
            "Burning sensation throughout the body, yet patient craves cold and is intolerant of heat.",
            "Extreme prostration; sunken face; collapse-like state.",
            "Dry, shrivelled, dark skin; cold extremities.",
        ],
        "modalities": "Worse: warmth, covering. Better: cold, uncovering.",
        "constitution": "Thin, cachectic, older pregnant women; or after exhausting deliveries.",
        "keynote": "For impending eclampsia with vascular spasm, burning with desire for cold, and collapse.",
    },
    {
        "name": "12. Lachesis Mutus",
        "subtitle": "(Bushmaster snake venom)",
        "bp": "Preeclampsia with loquaciousness, left-sided complaints, haemorrhagic tendency.",
        "symptoms": [
            "Hypertension worse on waking from sleep; all symptoms worse after sleep.",
            "Flushes of heat; hot flushes alternating with chills.",
            "Purplish discolouration; mottled skin.",
            "Haemorrhagic tendency; dark, decomposed blood.",
            "Constriction and tightness — cannot bear tight clothing around neck or abdomen.",
            "Talkative, jealous, suspicious; worse from suppression of discharges.",
        ],
        "modalities": "Worse: sleep, warmth, left side, pressure. Better: discharges, open air.",
        "constitution": "Loquacious, jealous; hypertension worse on waking; left-sided affections.",
        "keynote": "When preeclampsia is worse after sleep, left-sided, with purplish skin and haemorrhagic tendency — Lachesis should be strongly considered.",
    },
]

for r in remedies:
    block = []
    name_text = r["name"]
    if r["subtitle"]:
        name_text += f"  <i><font size='9' color='#555555'>{r['subtitle']}</font></i>"
    block.append(remedy_banner(name_text))
    block.append(Paragraph(f"<b>Blood Pressure Picture:</b> {r['bp']}", body_style))
    block.append(Paragraph("<b>Key Symptoms:</b>", body_style))
    for b in r["symptoms"]:
        block.append(bullet(b))
    block.append(Paragraph(f"<b>Modalities:</b> {r['modalities']}", body_style))
    block.append(Paragraph(f"<b>Constitutional type:</b> {r['constitution']}", body_style))
    block.append(keynote(r["keynote"]))
    block.append(Spacer(1, 4))
    story.append(KeepTogether(block))

# ── Comparative Table ─────────────────────────────────────────────────────────
story.append(Spacer(1, 6))
story.append(section_banner("Comparative Summary Table"))
story.append(Spacer(1, 6))

th = lambda t: Paragraph(f"<b>{t}</b>", ParagraphStyle("th", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE))
td = lambda t: Paragraph(t, ParagraphStyle("td", fontSize=8, fontName="Helvetica", leading=11))
tdb = lambda t: Paragraph(f"<b>{t}</b>", ParagraphStyle("tdb", fontSize=8, fontName="Helvetica-Bold", leading=11, textColor=MID_NAVY))

table_data = [
    [th("Remedy"), th("Dominant Feature"), th("Stool/Urine"), th("Key Modality"), th("Constitution")],
    [tdb("Belladonna"),      td("Sudden high BP; throbbing red head"),    td("Scanty, dark urine"),             td("Worse light/noise"),       td("Plethoric, robust")],
    [tdb("Glonoinum"),       td("Bursting, expanding headache"),           td("Flushed face"),                   td("Worse heat/sun"),          td("Heat-sensitive")],
    [tdb("Veratrum vir."),   td("Full, hard, bounding pulse; direct ↓BP"), td("Nausea with hypertension"),      td("Worse lying left"),        td("Plethoric, venous")],
    [tdb("Gelsemium"),       td("Dull/droopy; anxiety-driven BP"),         td("Diplopia, blurred vision"),       td("Better urination"),        td("Anxious, timid")],
    [tdb("Apis mellifica"),  td("Oedema + albuminuria; no thirst"),        td("Scanty, dark, burning urine"),    td("Worse heat; better cold"), td("Restless, jealous")],
    [tdb("Natrum mur."),     td("Fluid retention; suppressed grief"),      td("Proteinuria; craves salt"),       td("Worse 10 AM, consolation"),td("Reserved, grieving")],
    [tdb("Helonias"),        td("Exhaustion + albuminuria"),               td("Sweetish taste, burning urine"),  td("Better distraction"),      td("Worn-out, anaemic")],
    [tdb("Viscum album"),    td("Sustained high BP; bradycardia"),         td("Cardiac weakness + high BP"),     td("Better warmth"),           td("Debilitated")],
    [tdb("Arsenicum alb."), td("Anxiety, restlessness, renal oedema"),    td("Burning urine; albuminuria"),     td("Worse midnight/cold"),     td("Anxious, fastidious")],
    [tdb("Phosphorus"),      td("Haemorrhage + scotomata"),                td("Haematuria; granular casts"),     td("Worse lying left"),        td("Thin, open, affectionate")],
    [tdb("Secale cor."),     td("Vascular spasm; impending eclampsia"),   td("Burning, desires cold"),          td("Better uncovering"),       td("Thin, cachectic")],
    [tdb("Lachesis"),        td("Worse after sleep; left-sided"),         td("Dark, decomposed blood"),         td("Worse sleep/pressure"),    td("Loquacious, jealous")],
]

cw = [3.0*cm, 4.3*cm, 3.5*cm, 3.2*cm, 3.0*cm]
tbl = Table(table_data, colWidths=cw, repeatRows=1)
tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  MID_NAVY),
    ("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, ROW_ALT]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("TOPPADDING",    (0,0), (-1,-1), 4),
    ("BOTTOMPADDING", (0,0), (-1,-1), 4),
    ("LEFTPADDING",   (0,0), (-1,-1), 5),
    ("RIGHTPADDING",  (0,0), (-1,-1), 5),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(tbl)
story.append(Spacer(1, 12))

# ── Repertory Quick-Reference ─────────────────────────────────────────────────
story.append(section_banner("Repertory Quick Reference — Key Rubrics"))
story.append(Spacer(1, 6))

rubric_data = [
    [th("Rubric / Symptom"), th("Leading Remedies")],
    [td("Hypertension in pregnancy"),           td("Veratrum vir., Viscum alb., Glonoinum, Belladonna, Apis")],
    [td("Oedema with proteinuria"),              td("Apis mel., Arsenicum alb., Natrum mur., Helonias")],
    [td("Headache — throbbing/congestive"),      td("Belladonna, Glonoinum, Gelsemium, Natrum mur.")],
    [td("Visual disturbances / scotomata"),      td("Gelsemium, Phosphorus, Belladonna, Apis")],
    [td("Convulsions — eclampsia / threatened"), td("Belladonna, Secale cor., Glonoinum, Veratrum vir., Cuprum met.")],
    [td("Haemorrhagic tendency in preeclampsia"),td("Phosphorus, Lachesis, Secale cor., Crotalus horr.")],
    [td("Suppressed urine / oliguria"),          td("Apis mel., Arsenicum alb., Helonias, Terebinthina")],
    [td("Restlessness + oedema"),                td("Apis mel., Arsenicum alb., Rhus tox.")],
    [td("BP worse after sleep"),                 td("Lachesis (keynote)")],
    [td("Anxiety of death in hypertensive"),     td("Arsenicum alb., Aconite, Phosphorus")],
]

rub_tbl = Table(rubric_data, colWidths=[7.5*cm, 9.5*cm], repeatRows=1)
rub_tbl.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,0),  STEEL_BLUE),
    ("TEXTCOLOR",     (0,0), (-1,0),  WHITE),
    ("FONTSIZE",      (0,0), (-1,-1), 8.5),
    ("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, ROW_ALT]),
    ("GRID",          (0,0), (-1,-1), 0.4, colors.HexColor("#AAAAAA")),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 7),
    ("RIGHTPADDING",  (0,0), (-1,-1), 7),
    ("VALIGN",        (0,0), (-1,-1), "TOP"),
]))
story.append(rub_tbl)
story.append(Spacer(1, 12))

# ── Critical Safety Note ──────────────────────────────────────────────────────
warn_banner = Table(
    [[Paragraph("⚕  CRITICAL SAFETY NOTE — READ BEFORE PRESCRIBING", ParagraphStyle(
        "wn", fontSize=11, fontName="Helvetica-Bold", textColor=RED_NOTE))]],
    colWidths=[17*cm]
)
warn_banner.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), LIGHT_RED),
    ("LINEBELOW",     (0,0), (-1,-1), 2.0, RED_NOTE),
    ("TOPPADDING",    (0,0), (-1,-1), 7),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("LEFTPADDING",   (0,0), (-1,-1), 10),
]))
story.append(warn_banner)
story.append(Spacer(1, 5))

warnings = [
    "Preeclampsia is a potentially <b>life-threatening obstetric emergency</b>. Homoeopathic treatment must NEVER be used as a substitute for standard obstetric care.",
    "Any patient with BP ≥160/110 mmHg, severe headache, visual disturbances, RUQ pain, or oliguria requires <b>immediate hospital admission and conventional management</b> (magnesium sulphate, antihypertensives, delivery planning).",
    "Homoeopathy may be used as an <b>adjunct</b> to conventional care — never as a sole or primary treatment in severe preeclampsia or eclampsia.",
    "Always inform the treating obstetrician about any homoeopathic remedies being taken.",
    "Individualised constitutional prescribing by a qualified homoeopathic physician is essential — self-medication in preeclampsia is dangerous.",
]
for w in warnings:
    story.append(Paragraph(f"• {w}", note_style))

# ── Footer ────────────────────────────────────────────────────────────────────
story.append(Spacer(1, 14))
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#CCCCCC")))
story.append(Spacer(1, 4))
story.append(Paragraph(
    "Prepared by Orris  |  Classical Homoeopathic Reference  |  Based on Boericke's Materia Medica, Clarke's Prescriber & homoeopathic journals  |  July 2026",
    footer_style
))

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

python3 /home/daytona/workspace/homoeopathy/generate_preeclampsia_pdf.py

Your PDF is ready! Download it here:

Preeclampsia Homoeopathic Therapeutics

PDF Document · PDF

The PDF includes:
  • Deep navy title banner with subtitle
  • Definition & Clinical Profile — diagnostic criteria (BP ≥140/90, proteinuria, oedema) and severity indicators in a two-column table
  • 12 Major Remedies with full detail for each:
    • Belladonna, Glonoinum, Veratrum Viride, Gelsemium, Apis Mellifica, Natrum Muriaticum, Helonias, Viscum Album, Arsenicum Album, Phosphorus, Secale Cornutum, Lachesis
    • Each covers: BP picture, key symptoms, modalities, constitutional type, and a highlighted keynote
  • Comparative Summary Table — all 12 remedies at a glance
  • Repertory Quick Reference — rubrics for headache, scotomata, eclampsia, oedema, suppressed urine, haemorrhage, etc.
  • Critical Safety Warning — clearly stating homoeopathy must be used as an adjunct to, not a replacement for, conventional obstetric management
This is a shared conversation. Sign in to Orris to start your own chat.