HII

Hey there! How can I help you today?

WHICH BOOK OF MEDICNE DO U HAVE?

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Here's the full list of medical books available in my library, organized by specialty:

๐Ÿ“š Medical Library - Available Books

๐Ÿซ€ Anatomy

  • Color Atlas of Ultrasound Anatomy, 3e
  • Color Atlas of Human Anatomy Vol. 1, 2, 3
  • General Anatomy and Musculoskeletal System (THIEME Atlas)
  • Gray's Anatomy for Students
  • Imaging Anatomy - Bones, Joints, Vessels and Nerves
  • Netter's Atlas of Human Anatomy

๐Ÿ’‰ Anesthesiology

  • Barash, Cullen, and Stoelting's Clinical Anesthesia, 9e
  • Miller's Anesthesia, 2-Volume Set, 10e
  • Morgan and Mikhail's Clinical Anesthesiology, 7e

๐Ÿงฌ Biochemistry

  • Basic Medical Biochemistry - A Clinical Approach, 6e
  • Biochemistry, 8th ed - Lippincott Illustrated Reviews
  • Harper's Illustrated Biochemistry, 32nd Ed

โค๏ธ Cardiology

  • Braunwald's Heart Disease, 2 Vol Set
  • Fuster and Hurst's The Heart, 15th Edition
  • Textbook of Clinical Echocardiography

๐Ÿ˜๏ธ Community Medicine

  • Park's Textbook of Preventive and Social Medicine

๐Ÿงด Dermatology

  • Andrews' Diseases of the Skin Clinical Atlas, 2e
  • Andrews' Diseases of the Skin - Clinical Dermatology
  • Dermatology 2-Volume Set, 5e
  • Fitzpatrick's Dermatology, Vol 1 & 2

๐Ÿง’ Embryology

  • Langman's Medical Embryology
  • The Developing Human - Clinically Oriented Embryology

๐Ÿšจ Emergency Medicine

  • Rosen's Emergency Medicine, 9e
  • Roberts and Hedges' Clinical Procedures in Emergency
  • Tintinalli's Emergency Medicine

๐Ÿ‘‚ ENT (Otolaryngology)

  • Cummings Otolaryngology Head and Neck Surgery
  • K. J. Lee's Essential Otolaryngology
  • Scott-Brown's Otorhinolaryngology Head & Neck Surgery (3 volumes)
  • Shambaugh Surgery of the Ear

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Family Medicine

  • Pfenninger and Fowler's Procedures for Primary Care
  • Swanson's Family Medicine Review
  • Textbook of Family Medicine, 9e

๐Ÿ”ฌ Forensic Medicine

  • Brogdon's Forensic Radiology
  • DiMaio's Forensic Pathology, 3rd Edition
  • Forensic Anthropology - A Comprehensive Introduction
  • P. C. Dikshit Textbook of Forensic Medicine and Toxicology
  • Parikh's Textbook of Medical Jurisprudence
  • The Essentials of Forensic Medicine and Toxicology, 36th ed (2026)

๐Ÿซƒ Gastroenterology

  • Clinical Gastrointestinal Endoscopy, 3e
  • Sleisenger and Fordtran's Gastrointestinal and Liver Disease
  • Yamada's Textbook of Gastroenterology, 7th ed

๐Ÿ”ช General Surgery

  • Bailey and Love's Short Practice of Surgery, 28th Ed
  • Current Surgical Therapy, 14e
  • Fischer's Mastery of Surgery, 8th ed
  • Maingot's Abdominal Operations
  • Mulholland and Greenfield's Surgery, 7e
  • Pye's Surgical Handicraft, 22nd Ed
  • S. Das Manual on Clinical Surgery, 13th Ed
  • Schwartz's Principles of Surgery, 11th Ed
  • Sabiston Textbook of Surgery

๐Ÿงฌ Genetics

  • Emery's Elements of Medical Genetics and Genomics
  • Thompson & Thompson Genetics and Genomics in Medicine, 9th Ed

๐Ÿ”ญ Histology

  • Histology - A Text and Atlas (Wheater's style)
  • Junqueira's Basic Histology, 17e

๐Ÿ›ก๏ธ Immunology

  • Cellular and Molecular Immunology
  • Janeway's Immunobiology, 10e
  • Roitt's Essential Immunology

๐Ÿฅ Internal Medicine

  • Firestein & Kelley's Textbook of Rheumatology
  • Frameworks for Internal Medicine
  • Goldman-Cecil Medicine, 2 Volume Set
  • Harrison's Principles of Internal Medicine, 22nd Ed (2025)
  • Rheumatology, 2-Volume Set (2022)
  • Symptom to Diagnosis - An Evidence Based Guide, 4th Ed
  • The Washington Manual of Medical Therapeutics

๐Ÿงช Laboratory Medicine

  • Henry's Clinical Diagnosis and Management by Laboratory Methods
  • Quick Compendium of Clinical Pathology, 5th Ed
  • Tietz Textbook of Laboratory Medicine, 7th Ed

๐Ÿฆ  Microbiology

  • Jawetz Melnick & Adelberg's Medical Microbiology, 28th Ed
  • Medical Microbiology, 9e
  • Sherris & Ryan's Medical Microbiology, 8th Ed

๐Ÿซ˜ Nephrology

  • Brenner and Rector's The Kidney, 2-Volume Set
  • Comprehensive Clinical Nephrology, 7th Ed
  • National Kidney Foundation Primer on Kidney Diseases, 8e

๐Ÿง  Neurology

  • Adams and Victor's Principles of Neurology, 12th Ed
  • Bradley and Daroff's Neurology in Clinical Practice
  • Localization in Clinical Neurology, 8e
  • Plum and Posner's Diagnosis and Treatment of Stupor and Coma

๐Ÿง  Neuroscience

  • Eric Kandel - Principles of Neural Science, 6th Ed
  • Neuroanatomy through Clinical Cases, 3rd Ed
  • Neuroscience - Exploring the Brain, 5th Ed

๐Ÿ‘ถ Obstetrics & Gynecology

  • Berek & Novak's Gynecology
  • Creasy & Resnik's Maternal-Fetal Medicine

๐Ÿ‘๏ธ Ophthalmology

  • Kanski's Clinical Ophthalmology, 10th Ed
  • The Wills Eye Manual

๐Ÿฆด Orthopedics

  • Campbell's Operative Orthopaedics, 15th Ed (2026)
  • Miller's Review of Orthopaedics, 9th Ed
  • Rockwood and Green's Fractures in Adults, 10th Ed (2025)

๐Ÿ”ฌ Pathology

  • Robbins & Kumar Basic Pathology
  • Robbins, Cotran & Kumar Pathologic Basis of Disease

๐Ÿ‘ถ Pediatrics

  • Red Book 2021 - Report of the Committee on Infectious Diseases
  • The Harriet Lane Handbook, 23rd Ed

๐Ÿ’Š Pharmacology

  • Goodman & Gilman's Pharmacological Basis of Therapeutics
  • Katzung's Basic and Clinical Pharmacology, 16th Ed
  • Lippincott Illustrated Reviews: Pharmacology

๐Ÿซ Physiology

  • Costanzo Physiology, 7th Ed
  • Ganong's Review of Medical Physiology, 26th Ed
  • Guyton and Hall Textbook of Medical Physiology
  • Medical Physiology (Boron & Boulpaep)

๐Ÿง  Psychiatry

  • Kaplan & Sadock's Comprehensive Textbook of Psychiatry
  • Kaplan and Sadock's Synopsis of Psychiatry
  • Stahl's Essential Psychopharmacology
  • The Clozapine Handbook
  • The Maudsley Deprescribing Guidelines
  • The Maudsley Prescribing Guidelines in Psychiatry, 15th Ed

๐Ÿซ Pulmonology

  • Fishman's Pulmonary Diseases and Disorders, 2-Volume Set
  • Murray & Nadel's Textbook of Respiratory Medicine, 2-Volume Set

๐Ÿฉป Radiology

  • Grainger & Allison's Diagnostic Radiology

๐Ÿšฝ Urology

  • Campbell Walsh Wein Urology, 3-Volume Set
  • Hinman's Atlas of Urologic Surgery
  • Smith and Tanagho's General Urology, 19th Ed

That's 130+ medical textbooks across 30+ specialties! Just ask me any medical question and I'll pull from these authoritative sources to give you a detailed, cited answer. ๐Ÿ˜Š

I'LL GIVE U PPT AND EDIT IT AND ADD THERA FORM MATERIA MEDICA AND INVESTIGATION ALSO IN DETAIL IF POSSIBLE USE MORE DIAGRAM AND CHART AND TABLE ETC. GIVE ME PROPER REFRENCES

Reading File
Reading File
Running Command

cd /tmp/workspace && python3 -c " from pptx import Presentation from pptx.util import Emu prs = Presentation('/tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/OEDEMA PAYAL PARMAR.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): print(f'\\n=== SLIDE {i} (layout: {slide.slide_layout.name}) ===') for shape in slide.shapes: pos = (round(Emu(shape.left).inches,2), round(Emu(shape.top).inches,2)) if shape.left is not None else None print(f' Shape: {shape.name} | Type: {shape.shape_type} | Pos: {pos}') if shape.has_text_frame and shape.text_frame.text.strip(): print(f' TEXT: {shape.text_frame.text[:300]}') "

Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Running Command

ls /tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/

Running Command

mkdir -p /tmp/workspace/oedema-ppt && python3 << 'PYEOF' import copy from pptx import Presentation from pptx.util import Inches, Pt, Emu from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN from pptx.util import Inches, Pt import pptx.oxml.ns as nsmap from lxml import etree # Load original src = '/tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/OEDEMA PAYAL PARMAR.pptx' prs = Presentation(src) # Slide dimensions W = prs.slide_width H = prs.slide_height print(f"Slide size: {Emu(W).inches:.2f} x {Emu(H).inches:.2f} inches") print(f"Total slides: {len(prs.slides)}") print(f"Available layouts: {[l.name for l in prs.slide_layouts]}") PYEOF

Writing File

~/oedema-ppt/build_ppt.py

"""
Enhanced Oedema PPT builder - adds Investigations, Materia Medica (Therapeutic Formulations),
detailed tables, charts, and references to the existing presentation.
"""
import copy, io
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.oxml.ns import qn
from lxml import etree

SRC = '/tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/OEDEMA PAYAL PARMAR.pptx'
OUT = '/tmp/workspace/oedema-ppt/OEDEMA_ENHANCED_PAYAL_PARMAR.pptx'

prs = Presentation(SRC)
W = prs.slide_width   # 13.33 inches
H = prs.slide_height  # 7.50 inches

# โ”€โ”€ colour palette (matching original teal/dark theme) โ”€โ”€
C_BG      = RGBColor(0x0D, 0x1B, 0x2A)   # dark navy bg
C_HEADER  = RGBColor(0x00, 0xB4, 0xD8)   # bright teal
C_SUB     = RGBColor(0x48, 0xCA, 0xE4)   # lighter teal
C_WHITE   = RGBColor(0xFF, 0xFF, 0xFF)
C_YELLOW  = RGBColor(0xFF, 0xD6, 0x00)
C_GREEN   = RGBColor(0x06, 0xD6, 0xA0)
C_ORANGE  = RGBColor(0xFF, 0x77, 0x22)
C_PINK    = RGBColor(0xFF, 0x4D, 0x6D)
C_LGRAY   = RGBColor(0xD0, 0xEA, 0xFF)
C_DARKBLUE= RGBColor(0x02, 0x36, 0x5E)

def get_layout(name):
    for l in prs.slide_layouts:
        if l.name == name:
            return l
    return prs.slide_layouts[6]  # Blank fallback

def add_slide(layout_name='DEFAULT'):
    layout = get_layout(layout_name)
    return prs.slides.add_slide(layout)

def fill_shape(shape, rgb):
    fill = shape.fill
    fill.solid()
    fill.fore_color.rgb = rgb

def add_rect(slide, l, t, w, h, rgb, alpha=None):
    shape = slide.shapes.add_shape(1, Inches(l), Inches(t), Inches(w), Inches(h))
    fill_shape(shape, rgb)
    shape.line.fill.background()
    return shape

def add_textbox(slide, text, l, t, w, h, size=14, bold=False, color=C_WHITE,
                align=PP_ALIGN.LEFT, wrap=True, italic=False):
    txb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    txb.text_frame.word_wrap = wrap
    tf = txb.text_frame
    tf.clear()
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.italic = italic
    run.font.color.rgb = color
    return txb

def add_title_bar(slide, title):
    """Dark top bar with bright teal title text."""
    add_rect(slide, 0, 0, 13.33, 0.75, C_DARKBLUE)
    add_textbox(slide, title, 0.3, 0.08, 12.7, 0.62, size=20, bold=True,
                color=C_HEADER, align=PP_ALIGN.LEFT)

def add_section_box(slide, label, l, t, w, h, bg=C_DARKBLUE):
    add_rect(slide, l, t, w, 0.38, bg)
    add_textbox(slide, label, l+0.1, t+0.04, w-0.2, 0.32,
                size=13, bold=True, color=C_YELLOW)

def set_cell_text(cell, text, size=11, bold=False, color=C_WHITE, align=PP_ALIGN.CENTER):
    tf = cell.text_frame
    tf.clear()
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.color.rgb = color

def set_cell_bg(cell, rgb):
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    solidFill = etree.SubElement(tcPr, qn('a:solidFill'))
    srgbClr = etree.SubElement(solidFill, qn('a:srgbClr'))
    srgbClr.set('val', f'{rgb.red:02X}{rgb.green:02X}{rgb.blue:02X}')

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE A: SECTION DIVIDER โ€” INVESTIGATIONS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Section Header')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_rect(sl, 0, 2.8, 13.33, 0.08, C_HEADER)
add_textbox(sl, '๐Ÿ”ฌ  INVESTIGATIONS IN OEDEMA', 1.5, 2.9, 10, 1.0,
            size=32, bold=True, color=C_HEADER, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Targeted laboratory, imaging & functional workup for each aetiology',
            1.5, 4.1, 10, 0.7, size=16, color=C_LGRAY, align=PP_ALIGN.CENTER)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE B: OVERVIEW TABLE โ€” INVESTIGATIONS BY SYSTEM
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'INVESTIGATIONS IN OEDEMA โ€” OVERVIEW TABLE')

rows = [
    ('CATEGORY', 'TESTS', 'KEY FINDING', 'DIAGNOSIS SUGGESTED'),
    ('Urine', 'Dipstick, 24hr protein, Urine PCR, Microscopy',
     'Proteinuria โ‰ฅ3.5g/day, haematuria, casts', 'Nephrotic / Nephritic Syndrome'),
    ('Serum Biochemistry', 'Albumin, Total Protein, LFT, RFT, Electrolytes, Urea, Creatinine',
     'Albumin <3 g/dL โ†’ oncotic pressure โ†“', 'Hepatic / Nutritional / Renal'),
    ('Renal Function', 'Serum creatinine, eGFR, BUN, Urine Na+',
     'eGFR <60 ml/min, โ†‘ creatinine', 'CKD / AKI'),
    ('Haematology', 'CBC, ESR, CRP, PT/INR, APTT',
     'Anaemia (normocytic), โ†‘ CRP, coagulopathy', 'Liver disease, infection, inflammation'),
    ('Cardiac Markers', 'BNP / NT-proBNP, Troponin I/T, ECG, CXR',
     'BNP >100 pg/mL โ†’ cardiac oedema', 'Heart failure (LVF/RVF/CCF)'),
    ('Thyroid', 'TSH, Free T3, Free T4',
     'TSH โ†‘, FT4 โ†“ โ†’ Hypothyroidism', 'Myxoedema'),
    ('Imaging โ€” Cardiac', 'Echo (2D + Doppler), Chest X-Ray',
     'LVEF <40%, bat-wing perihilar shadows', 'Cardiogenic oedema / Pulmonary oedema'),
    ('Imaging โ€” Abdominal', 'USG abdomen, Doppler portal vein',
     'Ascites, hepatomegaly, portal HTN pattern', 'Cirrhosis / Portal HTN / Budd-Chiari'),
    ('Imaging โ€” Limbs', 'Venous Duplex Doppler, Lymphoscintigraphy, MRI',
     'Non-compressible vein = DVT; dermal backflow = lymphoedema', 'DVT / Lymphoedema'),
    ('Specialised', 'SAAG (serum-ascites albumin gradient), skin biopsy (glycosaminoglycan)',
     'SAAG โ‰ฅ1.1 g/dL โ†’ portal HTN', 'Cirrhosis / Constrictive pericarditis'),
    ('Immunology', 'ANA, anti-dsDNA, ANCA, complement (C3/C4)',
     'ANA+, low C3 โ†’ SLE nephritis', 'Immune-mediated glomerulonephritis'),
    ('Filariasis / Infection', 'Night blood smear, ICT card test, Serology (ELISA)',
     'Microfilaria in blood; positive ICT', 'Lymphatic filariasis'),
    ('DVT / PE Screen', 'D-Dimer, Well\'s Score, CTPA if PE suspected',
     'D-Dimer >500 ng/mL โ†’ further workup', 'DVT / PE'),
]

table = sl.shapes.add_table(len(rows), 4,
    Inches(0.2), Inches(0.9), Inches(12.93), Inches(6.45)).table

col_widths = [1.9, 3.8, 3.8, 3.43]
for i, cw in enumerate(col_widths):
    table.columns[i].width = Inches(cw)

for r_idx, row_data in enumerate(rows):
    if r_idx == 0:
        bg = C_HEADER
        txt_color = C_BG
        bold = True
        sz = 11
    else:
        bg = C_DARKBLUE if r_idx % 2 == 0 else RGBColor(0x02, 0x4E, 0x7C)
        txt_color = C_WHITE
        bold = False
        sz = 10
    for c_idx, cell_text in enumerate(row_data):
        cell = table.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, cell_text, size=sz, bold=bold, color=txt_color,
                      align=PP_ALIGN.LEFT if c_idx > 0 else PP_ALIGN.CENTER)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE C: CARDIAC OEDEMA INVESTIGATION FLOWCHART
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'CARDIAC OEDEMA โ€” INVESTIGATION ALGORITHM')

# flowchart boxes
boxes = [
    (4.4, 0.9,  4.5, 0.65, C_DARKBLUE, '๐Ÿซ€ Suspected Cardiac Oedema', C_YELLOW, 13, True),
    (4.4, 1.9,  4.5, 0.65, C_DARKBLUE, 'ECG + Chest X-Ray (first-line)', C_WHITE, 12, False),
    (1.0, 3.2,  4.0, 0.65, RGBColor(0x03,0x5E,0x8C), 'CXR: Bat-wing shadowing\nKerley B lines, cardiomegaly', C_WHITE, 11, False),
    (8.3, 3.2,  4.0, 0.65, RGBColor(0x03,0x5E,0x8C), 'ECG: LVH, AF, LBBB\nIschaemic changes', C_WHITE, 11, False),
    (4.4, 4.6,  4.5, 0.65, C_DARKBLUE, 'Echocardiography (2D + Doppler)', C_WHITE, 12, False),
    (1.0, 5.7,  4.0, 0.65, RGBColor(0x03,0x5E,0x8C), 'LVEF <40% โ†’ HFrEF\nDiastolic dysfunction โ†’ HFpEF', C_WHITE, 11, False),
    (8.3, 5.7,  4.0, 0.65, RGBColor(0x03,0x5E,0x8C), 'BNP/NT-proBNP\n>100/>300 pg/mL โ†’ HF confirmed', C_WHITE, 11, False),
]

for (l, t, w, h, bg, txt, tc, sz, bold) in boxes:
    add_rect(sl, l, t, w, h, bg)
    add_textbox(sl, txt, l+0.1, t+0.05, w-0.2, h-0.1, size=sz, bold=bold,
                color=tc, align=PP_ALIGN.CENTER)

# arrows
for arrow_data in [(6.65, 1.25, 6.65, 1.9), (6.65, 2.6, 6.65, 3.2)]:
    sh = sl.shapes.add_connector(1, Inches(arrow_data[0]), Inches(arrow_data[1]),
                                  Inches(arrow_data[2]), Inches(arrow_data[3]))
    sh.line.color.rgb = C_HEADER
    sh.line.width = Pt(2)

# Additional info box
add_rect(sl, 0.3, 6.55, 12.73, 0.75, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“Œ Key: BNP >35 pg/mL or NT-proBNP >125 pg/mL suggests HF (ESC 2021 Guidelines). '
                'Echo is gold-standard for confirming cardiac cause. LVEF cutoff: โ‰ฅ50% = HFpEF, 40โ€“49% = HFmrEF, <40% = HFrEF.',
            0.4, 6.58, 12.5, 0.7, size=10, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE D: URINE INVESTIGATIONS DETAIL
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'URINE & BIOCHEMICAL INVESTIGATIONS โ€” NEPHROTIC vs NEPHRITIC')

# Left panel
add_rect(sl, 0.3, 0.9, 6.0, 0.5, RGBColor(0x00,0x77,0xB6))
add_textbox(sl, '๐Ÿ”ด NEPHROTIC SYNDROME', 0.4, 0.93, 5.8, 0.42, size=14, bold=True, color=C_WHITE)
nephrotic = [
    ('24h Urine Protein', 'โ‰ฅ 3.5 g/day'),
    ('Serum Albumin', '< 3.0 g/dL'),
    ('Urine Microscopy', 'Oval fat bodies, fatty casts, lipiduria'),
    ('Serum Cholesterol', 'โ†‘ (>200 mg/dL) โ€” hyperlipidaemia'),
    ('Urine PCR', '> 300 mg/mmol'),
    ('Complement (C3/C4)', 'Low in membranoproliferative GN'),
    ('Renal Biopsy', 'Gold standard for histological type'),
    ('Oedema type', 'Periorbital in AM; generalised'),
]
for i, (test, result) in enumerate(nephrotic):
    y = 1.5 + i*0.6
    add_rect(sl, 0.3, y, 6.0, 0.52, C_DARKBLUE if i%2==0 else RGBColor(0x02,0x4E,0x7C))
    add_textbox(sl, test, 0.4, y+0.06, 2.8, 0.42, size=11, color=C_YELLOW)
    add_textbox(sl, result, 3.2, y+0.06, 3.0, 0.42, size=11, color=C_WHITE)

# Right panel
add_rect(sl, 6.8, 0.9, 6.2, 0.5, RGBColor(0xD6,0x2B,0x2B))
add_textbox(sl, '๐ŸŸ  NEPHRITIC SYNDROME', 6.9, 0.93, 6.0, 0.42, size=14, bold=True, color=C_WHITE)
nephritic = [
    ('Urine Microscopy', 'RBC casts, dysmorphic RBCs'),
    ('Urine Dipstick', 'Haematuria + Proteinuria (< 3.5g/day)'),
    ('Serum Creatinine', 'โ†‘ (reduced GFR)'),
    ('Blood Pressure', 'โ†‘ (Hypertension prominent)'),
    ('ASO titre', 'โ†‘ in post-streptococcal GN'),
    ('C3 Complement', 'โ†“ in PSGN, MPGN, SLE'),
    ('ANCA/ANA', '+ve in vasculitis/SLE nephritis'),
    ('Oedema type', 'Periorbital; associated with HTN'),
]
for i, (test, result) in enumerate(nephritic):
    y = 1.5 + i*0.6
    add_rect(sl, 6.8, y, 6.2, 0.52, C_DARKBLUE if i%2==0 else RGBColor(0x02,0x4E,0x7C))
    add_textbox(sl, test, 6.9, y+0.06, 2.8, 0.42, size=11, color=C_YELLOW)
    add_textbox(sl, result, 9.7, y+0.06, 3.2, 0.42, size=11, color=C_WHITE)

add_rect(sl, 0.3, 6.55, 12.73, 0.75, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Brenner & Rector\'s The Kidney, 2-Volume Set | Harrison\'s Principles of Internal Medicine 22e (2025)',
            0.4, 6.58, 12.5, 0.7, size=10, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE E: IMAGING INVESTIGATIONS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'IMAGING INVESTIGATIONS IN OEDEMA')

imaging = [
    ('CHEST X-RAY (CXR)', C_HEADER,
     [('Cardiomegaly', 'Cardiothoracic ratio > 0.5 โ†’ Heart failure'),
      ('Bat-wing shadowing', 'Perihilar bilateral opacities โ†’ Pulmonary oedema'),
      ('Kerley B lines', 'Horizontal lines at lung base โ†’ interstitial oedema'),
      ('Pleural effusion', 'Blunting of costophrenic angle'),
      ('Water bottle sign', 'Globular cardiac silhouette โ†’ Pericardial effusion')]),
    ('ECHOCARDIOGRAPHY', C_GREEN,
     [('LVEF', 'Normal โ‰ฅ55%; <40% = HFrEF; 40-49% = HFmrEF'),
      ('E/A ratio', 'E/A <0.8 โ†’ Grade I diastolic dysfunction'),
      ('Valve assessment', 'Mitral stenosis, regurgitation'),
      ('Pericardial effusion', 'Collapse of RA/RV in tamponade'),
      ('IVC diameter', '>21mm + <50% collapse โ†’ elevated RAP')]),
    ('USG ABDOMEN + DOPPLER', C_ORANGE,
     [('Ascites', 'Free fluid in peritoneal cavity'),
      ('Portal vein diameter', '>13 mm โ†’ Portal hypertension'),
      ('Hepatic vein Doppler', 'Loss of triphasic flow โ†’ cirrhosis/Budd-Chiari'),
      ('IVC Doppler', 'Absent pulsatility โ†’ tamponade/CCF'),
      ('Splenomegaly', '>12 cm โ†’ portal HTN, haematological cause')]),
    ('LIMB DOPPLER / MRI', C_PINK,
     [('Venous Duplex', 'Non-compressible vein + absent flow โ†’ DVT'),
      ('Lymphoscintigraphy', 'Dermal backflow = Lymphoedema; gold standard'),
      ('CT venogram', 'IVC obstruction, extrinsic compression'),
      ('MRI soft tissue', 'Soft tissue oedema, bone marrow oedema'),
      ('PET-CT', 'Malignancy-related lymphoedema/obstruction')]),
]

for col_i, (title, hdr_color, items) in enumerate(imaging):
    x = 0.2 + col_i * 3.27
    add_rect(sl, x, 0.85, 3.1, 0.45, hdr_color)
    add_textbox(sl, title, x+0.05, 0.87, 3.0, 0.4, size=10, bold=True,
                color=C_BG, align=PP_ALIGN.CENTER)
    for row_i, (test, finding) in enumerate(items):
        y = 1.4 + row_i * 1.16
        add_rect(sl, x, y, 3.1, 0.5, C_DARKBLUE)
        add_textbox(sl, test, x+0.05, y+0.02, 3.0, 0.25, size=10, bold=True, color=hdr_color)
        add_textbox(sl, finding, x+0.05, y+0.27, 3.0, 0.4, size=9.5, color=C_WHITE)

add_rect(sl, 0.2, 7.15, 12.93, 0.28, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Grainger & Allison\'s Diagnostic Radiology | Braunwald\'s Heart Disease 12e | Brenner & Rector\'s Kidney',
            0.3, 7.16, 12.7, 0.25, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE F: SECTION DIVIDER โ€” MATERIA MEDICA
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Section Header')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_rect(sl, 0, 3.0, 13.33, 0.08, C_YELLOW)
add_textbox(sl, '๐Ÿ’Š  MATERIA MEDICA', 1.5, 2.3, 10, 0.9,
            size=36, bold=True, color=C_YELLOW, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Therapeutic Formulations for the Management of Oedema',
            1.5, 3.3, 10, 0.7, size=16, color=C_LGRAY, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Diuretics โ€ข RAAS Agents โ€ข Albumin โ€ข Supportive Therapy',
            1.5, 4.1, 10, 0.6, size=14, color=C_HEADER, align=PP_ALIGN.CENTER)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE G: LOOP DIURETICS โ€” DETAILED TABLE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'MATERIA MEDICA โ€” LOOP DIURETICS (HIGH-CEILING DIURETICS)')

# Mechanism banner
add_rect(sl, 0.3, 0.85, 12.73, 0.55, RGBColor(0x00,0x60,0x8A))
add_textbox(sl, 'โš™๏ธ  MECHANISM: Inhibit Naโบ-Kโบ-2Clโป co-transporter (NKCC2) in thick ascending limb of Loop of Henle โ†’ '
                'inhibit 20โ€“25% of filtered Naโบ reabsorption โ†’ powerful diuresis. '
                'Also cause acute venodilation (โ†“ preload) via prostaglandin release.',
            0.4, 0.87, 12.5, 0.5, size=10.5, color=C_WHITE)

rows_loop = [
    ('DRUG', 'DOSE (ORAL)', 'DOSE (IV)', 'BIOAVAILABILITY', 'DURATION', 'SPECIAL NOTES'),
    ('Furosemide\n(Lasixยฎ)', '20โ€“80 mg\nonce/twice daily', '20โ€“80 mg IV\n(double oral dose)', '10โ€“90% (variable)', '4โ€“6 hrs', 'Drug of choice acute pulm. oedema; ototoxic at high doses; monitor Kโบ & creatinine'),
    ('Bumetanide\n(Bumexยฎ)', '0.5โ€“2 mg\nonce daily', '0.5โ€“1 mg IV', '80โ€“100% (reliable)', '4โ€“6 hrs', 'Preferred when oral bioavailability is concern; 40x more potent than furosemide mg-for-mg'),
    ('Torsemide\n(Demadexยฎ)', '5โ€“20 mg\nonce daily', '5โ€“20 mg IV', '80โ€“100% (reliable)', '12โ€“16 hrs', 'Longer duration โ†’ better compliance; metabolised hepatically; less ototoxic'),
    ('Ethacrynic acid\n(Edecrinยฎ)', '50โ€“200 mg/day', '50 mg IV', '~100%', '6โ€“8 hrs', 'ONLY loop diuretic for sulfa allergy; more ototoxic than furosemide'),
]

tbl = sl.shapes.add_table(len(rows_loop), 6,
    Inches(0.2), Inches(1.5), Inches(12.93), Inches(5.7)).table

col_ws = [1.8, 1.8, 1.8, 1.7, 1.2, 4.63]
for i, cw in enumerate(col_ws):
    tbl.columns[i].width = Inches(cw)

for r_idx, row_data in enumerate(rows_loop):
    hdr = r_idx == 0
    bg = C_HEADER if hdr else (C_DARKBLUE if r_idx%2==1 else RGBColor(0x02,0x4E,0x7C))
    tc = C_BG if hdr else C_WHITE
    sz = 11 if hdr else 10
    for c_idx, txt in enumerate(row_data):
        cell = tbl.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr, color=tc,
                      align=PP_ALIGN.CENTER if c_idx < 2 else PP_ALIGN.LEFT)

add_rect(sl, 0.2, 7.15, 12.93, 0.28, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Lippincott Illustrated Reviews: Pharmacology (2023) | The Washington Manual of Medical Therapeutics | Goodman & Gilman\'s Pharmacological Basis of Therapeutics',
            0.3, 7.16, 12.7, 0.25, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE H: THIAZIDE + POTASSIUM-SPARING + ALDOSTERONE ANTAGONISTS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'MATERIA MEDICA โ€” THIAZIDES, Kโบ-SPARING & ALDOSTERONE ANTAGONISTS')

# Section 1 - Thiazides
add_rect(sl, 0.2, 0.85, 12.93, 0.42, RGBColor(0x02,0x6A,0x4F))
add_textbox(sl, '1๏ธโƒฃ  THIAZIDE / THIAZIDE-LIKE DIURETICS โ€” Inhibit NaCl co-transporter (NCC) in distal convoluted tubule',
            0.3, 0.87, 12.7, 0.38, size=11.5, bold=True, color=C_WHITE)

thiazide_rows = [
    ('DRUG', 'DOSE', 'USES IN OEDEMA', 'NOTES'),
    ('Hydrochlorothiazide (HCTZ)', '12.5โ€“50 mg/day', 'Mild oedema, HTN', 'Hypokalaemia, hyperuricaemia, hyperglycaemia'),
    ('Chlorthalidone', '12.5โ€“25 mg/day', 'Hypertension + mild oedema', 'Longer acting (48โ€“72h); preferred over HCTZ in guidelines'),
    ('Indapamide', '1.25โ€“2.5 mg/day', 'Hypertension + oedema', 'Less metabolic SE; used in CKD'),
    ('Metolazone', '2.5โ€“10 mg/day', 'Diuretic resistance (with loop)', 'Synergistic with furosemide in resistant oedema; very potent combination'),
]

tbl_t = sl.shapes.add_table(len(thiazide_rows), 4,
    Inches(0.2), Inches(1.32), Inches(12.93), Inches(2.1)).table
for i, cw in enumerate([2.5, 1.5, 3.0, 5.93]):
    tbl_t.columns[i].width = Inches(cw)
for r_idx, rd in enumerate(thiazide_rows):
    hdr = r_idx == 0
    bg = RGBColor(0x02,0x6A,0x4F) if hdr else (C_DARKBLUE if r_idx%2==1 else RGBColor(0x02,0x4E,0x7C))
    tc = C_WHITE
    for c_idx, txt in enumerate(rd):
        cell = tbl_t.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=10, bold=hdr, color=tc, align=PP_ALIGN.LEFT)

# Section 2 - K-sparing / Aldosterone antagonists
add_rect(sl, 0.2, 3.55, 12.93, 0.42, RGBColor(0x6A,0x02,0x4F))
add_textbox(sl, '2๏ธโƒฃ  POTASSIUM-SPARING & ALDOSTERONE ANTAGONISTS โ€” Block ENaC (amiloride) or MR receptor (spironolactone, eplerenone)',
            0.3, 3.57, 12.7, 0.38, size=11.5, bold=True, color=C_WHITE)

ksparing_rows = [
    ('DRUG', 'DOSE', 'KEY INDICATION', 'MECHANISM / NOTES'),
    ('Spironolactone', '25โ€“400 mg/day',
     'Cirrhotic ascites (1st choice)\nNephrotic, CCF',
     'Aldosterone antagonist; gynecomastia; hyperKโบ risk; avoid if Kโบ>5.5'),
    ('Eplerenone', '25โ€“50 mg/day',
     'Heart failure (HFrEF post-MI)',
     'Selective MR antagonist; fewer anti-androgenic SE; more expensive'),
    ('Amiloride', '5โ€“10 mg/day',
     'Combination with loop/thiazide',
     'Blocks ENaC in collecting duct; Kโบ-sparing without MR blockade'),
    ('Triamterene', '50โ€“100 mg twice daily',
     'Combination therapy',
     'Similar to amiloride; less commonly used; risk of renal stones'),
]

tbl_k = sl.shapes.add_table(len(ksparing_rows), 4,
    Inches(0.2), Inches(4.02), Inches(12.93), Inches(2.65)).table
for i, cw in enumerate([2.0, 1.8, 2.93, 6.2]):
    tbl_k.columns[i].width = Inches(cw)
for r_idx, rd in enumerate(ksparing_rows):
    hdr = r_idx == 0
    bg = RGBColor(0x6A,0x02,0x4F) if hdr else (C_DARKBLUE if r_idx%2==1 else RGBColor(0x02,0x4E,0x7C))
    for c_idx, txt in enumerate(rd):
        cell = tbl_k.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=10, bold=hdr, color=C_WHITE, align=PP_ALIGN.LEFT)

add_rect(sl, 0.2, 7.15, 12.93, 0.28, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Lippincott Illustrated Reviews: Pharmacology | Comprehensive Clinical Nephrology 7e | Brenner & Rector\'s The Kidney | The Washington Manual',
            0.3, 7.16, 12.7, 0.25, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE I: DISEASE-SPECIFIC TREATMENT TABLE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'MATERIA MEDICA โ€” DISEASE-SPECIFIC TREATMENT OF OEDEMA')

disease_rows = [
    ('CAUSE OF OEDEMA', 'FIRST-LINE DRUG(S)', 'DOSE / ROUTE', 'ADDITIONAL AGENTS'),
    ('Acute Pulmonary Oedema\n(Cardiogenic)', 'IV Furosemide', '40โ€“80 mg IV stat', 'Oโ‚‚, morphine, nitrates (GTN sublingual/IV), positive pressure ventilation (BiPAP/CPAP)'),
    ('Chronic Cardiac Oedema\n(CHF / CCF)', 'Furosemide + Spironolactone', 'Frusemide 20โ€“80 mg OD\nSpiro 25โ€“50 mg OD', 'ACE inhibitor (enalapril) / ARB; beta-blocker; SGLT2i (dapagliflozin)'),
    ('Nephrotic Syndrome', 'Furosemide\n(ยฑ Albumin infusion)', 'Frusemide 40โ€“120 mg PO/IV\n20% Albumin 1g/kg IV if severe', 'Salt restriction (<2g/day); ACEi/ARB (reduce proteinuria); treat underlying cause'),
    ('Cirrhotic Ascites\n/ Hepatic Oedema', 'Spironolactone ยฑ Furosemide', 'Spiro 100 mg + Furo 40 mg\n(titrate in 5:2 ratio)', 'Naโบ restriction; therapeutic paracentesis (โ‰ฅ5L); terlipressin for HRS; TIPS'),
    ('DVT-related oedema', 'Anticoagulation\n(not diuretics)', 'LMWH โ†’ Rivaroxaban/Apixaban\nor Warfarin (INR 2โ€“3)', 'Compression stockings 30โ€“40 mmHg; limb elevation; no diuretics'),
    ('Lymphoedema', 'No specific drug\n(mechanical treatment)', 'Complete Decongestive\nTherapy (CDT)', 'Compression bandaging; lymphatic massage; for filariasis: DEC 6mg/kg ร—12 days'),
    ('Cerebral Oedema', 'Mannitol (osmotic)', '20% Mannitol 0.5โ€“1 g/kg IV\nover 15โ€“20 min', 'Dexamethasone (vasogenic); ICP monitoring; avoid hypotonic fluids'),
    ('Angioneurotic Oedema\n(Allergic/Anaphylaxis)', 'Adrenaline (Epinephrine)', '0.5 mg IM (1:1000)\nEpiPenยฎ 0.3 mg', 'Antihistamines (IV chlorpheniramine 10 mg); IV hydrocortisone 200 mg; airway management'),
    ('Myxoedema\n(Hypothyroidism)', 'Levothyroxine', '25โ€“50 mcg OD โ†’ titrate\nto TSH normalisation', 'No diuretics required; oedema resolves with thyroid replacement'),
    ('Drug-induced Oedema\n(CCBs, steroids, NSAIDs)', 'Withdraw offending drug', 'โ€” ', 'Switch CCB to RAAS agent; if unavoidable, add ACEi/ARB to offset CCB oedema'),
]

tbl_d = sl.shapes.add_table(len(disease_rows), 4,
    Inches(0.15), Inches(0.88), Inches(13.03), Inches(6.5)).table
for i, cw in enumerate([2.6, 2.5, 2.5, 5.43]):
    tbl_d.columns[i].width = Inches(cw)
for r_idx, rd in enumerate(disease_rows):
    hdr = r_idx == 0
    bg = C_HEADER if hdr else (C_DARKBLUE if r_idx%2==1 else RGBColor(0x02,0x4E,0x7C))
    tc = C_BG if hdr else C_WHITE
    sz = 10 if hdr else 9.5
    for c_idx, txt in enumerate(rd):
        cell = tbl_d.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr, color=tc, align=PP_ALIGN.LEFT)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE J: OTHER PHARMACOLOGICAL AGENTS
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'MATERIA MEDICA โ€” ADJUNCT & SPECIALISED PHARMACOLOGICAL AGENTS')

agents = [
    ('๐Ÿ’‰ HUMAN ALBUMIN SOLUTION', C_HEADER, RGBColor(0x01,0x3A,0x63),
     [('Indication', 'Severe nephrotic oedema with albumin <2.0 g/dL; SBP; hepatorenal syndrome'),
      ('Formulation', '20% (100 ml vials) or 25% IV infusion'),
      ('Dose', '1 g/kg body weight IV; infuse over 2โ€“4 hrs; follow with furosemide'),
      ('Mechanism', 'Temporarily restores plasma oncotic pressure โ†’ mobilises interstitial fluid'),
      ('Caution', 'Expensive; effect transient in nephrotic syndrome; risk of pulm. oedema')]),
    ('๐Ÿซ€ VASOPRESSIN ANTAGONISTS\n(VAPTANS)', C_GREEN, RGBColor(0x01,0x3A,0x3A),
     [('Drug', 'Tolvaptan (oral); Conivaptan (IV)'),
      ('Mechanism', 'Block V2 receptors in collecting duct โ†’ aquaresis (water without Naโบ loss)'),
      ('Indication', 'Euvolaemic/hypervolaemic hyponatraemia (SIADH, CCF, cirrhosis)'),
      ('Dose (Tolvaptan)', '15 mg OD orally (titrate to 60 mg OD)'),
      ('Caution', 'Hepatotoxic (tolvaptan); rapid Naโบ correction โ†’ osmotic demyelination; expensive')]),
    ('๐Ÿงฌ NATRIURETIC PEPTIDES', C_ORANGE, RGBColor(0x3A,0x1A,0x01),
     [('Drug', 'Nesiritide (recombinant BNP), IV'),
      ('Mechanism', 'Binds NPR-A โ†’ โ†‘ cGMP โ†’ venous/arterial dilation + natriuresis'),
      ('Indication', 'Acute decompensated heart failure (ADHF) โ€” symptomatic relief of dyspnoea'),
      ('Dose', '2 mcg/kg IV bolus โ†’ 0.01 mcg/kg/min infusion'),
      ('Note', 'Not shown to reduce mortality; no longer recommended as routine per ACC/AHA 2022')]),
    ('๐ŸŒฟ HERBAL / TRADITIONAL (SIDDHA/AYURVEDA)', C_YELLOW, RGBColor(0x2E,0x25,0x00),
     [('Punarnava (Boerhavia diffusa)', 'Diuretic; used in oedema due to kidney/liver disease'),
      ('Palash (Butea monosperma)', 'Antifilarial, anti-inflammatory properties'),
      ('Gokhru (Tribulus terrestris)', 'Diuretic; used in nephrotic oedema, dysuria'),
      ('Shvadamstra (Tribulus)', 'Naโบ excretion โ†‘; used in cardiac oedema'),
      ('Note', 'Limited RCT evidence; use only as adjunct; never replace evidence-based therapy')]),
]

for col_i, (title, hdr_color, bg_color, items) in enumerate(agents):
    x = 0.2 + col_i * 3.27
    add_rect(sl, x, 0.85, 3.1, 0.55, hdr_color)
    add_textbox(sl, title, x+0.05, 0.87, 3.0, 0.5, size=9.5, bold=True,
                color=C_BG, align=PP_ALIGN.CENTER)
    for row_i, (label, detail) in enumerate(items):
        y = 1.5 + row_i * 1.16
        add_rect(sl, x, y, 3.1, 1.08, bg_color)
        add_textbox(sl, label, x+0.07, y+0.03, 3.0, 0.3, size=9.5, bold=True, color=hdr_color)
        add_textbox(sl, detail, x+0.07, y+0.33, 2.96, 0.72, size=9, color=C_WHITE)

add_rect(sl, 0.2, 7.15, 12.93, 0.28, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Goodman & Gilman\'s Pharmacological Basis of Therapeutics | Katzung\'s Basic & Clinical Pharmacology 16e | Lippincott Illustrated Reviews: Pharmacology',
            0.3, 7.16, 12.7, 0.25, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE K: DIURETIC COMPARISON CHART (visual bar-like)
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'COMPARATIVE EFFICACY CHART โ€” DIURETIC CLASSES')

# Comparison table
comp_rows = [
    ('PROPERTY', 'LOOP\n(Furosemide)', 'THIAZIDE\n(HCTZ)', 'K-SPARING\n(Spironolactone)', 'OSMOTIC\n(Mannitol)', 'CARBONIC\nANHYDRASE (Acetazolamide)'),
    ('Site of action', 'Thick ascending\nLoH (NKCC2)', 'Distal convoluted\ntubule (NCC)', 'Collecting duct\n(MR/ENaC)', 'Proximal tubule\n+ LoH (osmotic)', 'Proximal tubule\n(CA enzyme)'),
    ('Natriuretic potency', 'โ˜…โ˜…โ˜…โ˜…โ˜…\n(highest)', 'โ˜…โ˜…โ˜…โ˜†โ˜†', 'โ˜…โ˜…โ˜†โ˜†โ˜†', 'โ˜…โ˜…โ˜…โ˜†โ˜†', 'โ˜…โ˜…โ˜†โ˜†โ˜†'),
    ('Onset IV', '5 min', 'N/A (oral only)', 'N/A (oral only)', '1โ€“5 min', '5โ€“15 min'),
    ('Kโบ effect', 'โ†“โ†“ Hypokalaemia', 'โ†“ Hypokalaemia', 'โ†‘ Hyperkalaemia', 'Neutral', 'โ†“ Mild hypokalaemia'),
    ('Use in oedema', 'Heart failure,\nNephrotic, renal', 'Hypertension,\nmild oedema', 'Ascites, CCF,\nnephrotic', 'Cerebral oedema,\nAcute glaucoma', 'Altitude sickness,\nAlkalinisation'),
    ('Ototoxicity', 'Yes (high dose)', 'No', 'No', 'No', 'No'),
    ('Contraindication', 'Anuria, sulfa\nallergy (use\nethacrynic acid)', 'Gout, severe\nhypokalaemia', 'Hyperkalaemia,\nGFR <30', 'Pulmonary\noedema, anuria', 'Hepatic cirrhosis\n(โ†‘ ammonia)'),
]

tbl_c = sl.shapes.add_table(len(comp_rows), 6,
    Inches(0.15), Inches(0.88), Inches(13.03), Inches(6.4)).table
for i, cw in enumerate([2.1, 2.0, 2.0, 2.3, 2.0, 2.63]):
    tbl_c.columns[i].width = Inches(cw)
for r_idx, rd in enumerate(comp_rows):
    hdr = r_idx == 0
    if hdr:
        bg = C_HEADER; tc = C_BG; sz = 10
    elif r_idx % 2 == 1:
        bg = C_DARKBLUE; tc = C_WHITE; sz = 9.5
    else:
        bg = RGBColor(0x02,0x4E,0x7C); tc = C_WHITE; sz = 9.5
    for c_idx, txt in enumerate(rd):
        cell = tbl_c.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=(hdr or c_idx==0), color=tc,
                      align=PP_ALIGN.CENTER)

add_rect(sl, 0.2, 7.33, 12.93, 0.1, RGBColor(0x01,0x28,0x45))

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE L: DIURETIC RESISTANCE โ€” MANAGEMENT ALGORITHM
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'DIURETIC RESISTANCE โ€” CAUSES & MANAGEMENT')

# Left: causes
add_rect(sl, 0.2, 0.85, 5.5, 0.42, RGBColor(0xD6,0x2B,0x2B))
add_textbox(sl, 'โš ๏ธ  CAUSES OF DIURETIC RESISTANCE', 0.3, 0.87, 5.3, 0.38, size=12, bold=True, color=C_WHITE)

causes = [
    '1. Non-compliance with Naโบ restriction (>2g/day intake)',
    '2. Poor oral bioavailability of furosemide (10โ€“90%)',
    '3. Reduced renal blood flow (โ†“ drug delivery to tubule)',
    '4. RAAS activation โ€” compensatory Naโบ retention at distal nephron',
    '5. Nephron remodelling โ€” distal tubule hypertrophy (chronic use)',
    '6. NSAIDs โ€” block prostaglandin-mediated diuresis',
    '7. Hypoalbuminaemia โ€” โ†“ drug protein binding & tubular delivery',
    '8. Underlying disease progression (CCF, CKD)',
]
for i, c in enumerate(causes):
    y = 1.35 + i*0.6
    add_rect(sl, 0.2, y, 5.5, 0.55, C_DARKBLUE if i%2==0 else RGBColor(0x02,0x4E,0x7C))
    add_textbox(sl, c, 0.3, y+0.05, 5.3, 0.46, size=10, color=C_WHITE)

# Right: management steps
add_rect(sl, 6.0, 0.85, 7.1, 0.42, RGBColor(0x02,0x6A,0x4F))
add_textbox(sl, 'โœ…  MANAGEMENT STRATEGY', 6.1, 0.87, 6.9, 0.38, size=12, bold=True, color=C_WHITE)

mgmt = [
    ('Step 1', 'Ensure Naโบ restriction (<2g/day) and compliance; weigh daily'),
    ('Step 2', 'Increase dose of loop diuretic (up to ceiling dose)'),
    ('Step 3', 'Switch oral โ†’ IV furosemide (2โ€“2.5x oral dose IV)'),
    ('Step 4', 'Add metolazone 2.5โ€“10 mg PO + furosemide (sequential nephron blockade)'),
    ('Step 5', 'Add spironolactone (blocks RAAS-driven distal Naโบ retention)'),
    ('Step 6', 'Consider continuous IV furosemide infusion (1โ€“10 mg/hr)'),
    ('Step 7', 'Tolvaptan (V2 antagonist) for hyponatraemia + oedema (short-term)'),
    ('Step 8', 'Ultrafiltration / aquapheresis if pharmacotherapy fails'),
]
for i, (step, action) in enumerate(mgmt):
    y = 1.35 + i*0.6
    add_rect(sl, 6.0, y, 7.1, 0.55, C_DARKBLUE if i%2==0 else RGBColor(0x02,0x4E,0x7C))
    add_textbox(sl, step, 6.1, y+0.05, 1.0, 0.46, size=10, bold=True, color=C_GREEN)
    add_textbox(sl, action, 7.15, y+0.05, 5.85, 0.46, size=10, color=C_WHITE)

add_rect(sl, 0.2, 7.15, 12.93, 0.28, RGBColor(0x01,0x28,0x45))
add_textbox(sl, '๐Ÿ“– Ref: Comprehensive Clinical Nephrology 7e (Feehally) | Brenner & Rector\'s The Kidney | Ellison DH, Felker GM. NEJM 2017;377:1964',
            0.3, 7.16, 12.7, 0.25, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE M: DRUG-INDUCED OEDEMA โ€” DETAILED TABLE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'DRUG-INDUCED OEDEMA โ€” MATERIA MEDICA (CAUSATIVE DRUGS)')

drug_rows = [
    ('DRUG CLASS', 'EXAMPLES', 'MECHANISM', 'MANAGEMENT'),
    ('Calcium Channel\nBlockers (CCBs)', 'Amlodipine, Nifedipine,\nFelodipine', 'Precapillary arteriolar dilation > venular โ†’ โ†‘ capillary hydrostatic pressure; NOT Naโบ retention',
     'Add ACEi/ARB (reduce capillary pressure); switch to diltiazem/verapamil; elevate limbs'),
    ('NSAIDs', 'Ibuprofen, Naproxen,\nDiclofenac, COX-2 inhibitors', 'Block renal PGEโ‚‚ โ†’ afferent arteriolar vasoconstriction โ†’ โ†“ GFR โ†’ Naโบ & water retention',
     'Discontinue NSAID; switch to paracetamol; use diuretics if essential; monitor renal function'),
    ('Corticosteroids', 'Prednisolone, Dexamethasone,\nHydrocortisone', 'Mineralocorticoid cross-reactivity โ†’ โ†‘ Naโบ reabsorption in collecting duct + ADH potentiation',
     'Use minimum dose; dietary Naโบ restriction; spironolactone; use deflazacort (less mineralocorticoid effect)'),
    ('Thiazolidinediones\n(TZDs)', 'Pioglitazone,\nRosiglitazone', 'PPAR-ฮณ agonist โ†’ โ†‘ epithelial Naโบ channel (ENaC) expression in collecting duct โ†’ Naโบ/Hโ‚‚O retention',
     'Avoid in heart failure (contraindicated); dose reduction; amiloride can offset Naโบ retention'),
    ('Oestrogens /\nHormonal therapy', 'OCP, HRT, Tamoxifen', 'Stimulate hepatic angiotensinogen โ†’ โ†‘ RAAS activation; mild mineralocorticoid activity',
     'Reduce dose; switch to progestogen-only OCP; diuretics if symptomatic'),
    ('Vasodilators', 'Minoxidil, Hydralazine,\nDiazoxide', 'Reflex RAAS activation + direct renal Naโบ retention (minoxidil โ€” most prominent)',
     'Always combine with loop diuretic when using minoxidil; beta-blocker for reflex tachycardia'),
    ('Immunosuppressants', 'Cyclosporine, Tacrolimus', 'Renal vasoconstriction โ†’ โ†“ GFR โ†’ Naโบ/Hโ‚‚O retention; cyclosporine โ†’ endothelin release',
     'Monitor renal function; dose reduction; Caยฒโบ channel blockers for hypertension'),
]

tbl_dr = sl.shapes.add_table(len(drug_rows), 4,
    Inches(0.15), Inches(0.88), Inches(13.03), Inches(6.5)).table
for i, cw in enumerate([2.0, 2.3, 4.3, 4.43]):
    tbl_dr.columns[i].width = Inches(cw)
for r_idx, rd in enumerate(drug_rows):
    hdr = r_idx == 0
    bg = C_HEADER if hdr else (C_DARKBLUE if r_idx%2==1 else RGBColor(0x02,0x4E,0x7C))
    tc = C_BG if hdr else C_WHITE
    sz = 10 if hdr else 9.5
    for c_idx, txt in enumerate(rd):
        cell = tbl_dr.cell(r_idx, c_idx)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr, color=tc, align=PP_ALIGN.LEFT)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SLIDE N: REFERENCES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide('Blank')
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'REFERENCES')

refs = [
    ('Textbooks', [
        '1. Harrison\'s Principles of Internal Medicine, 22nd Edition (2025). McGraw-Hill Medical.',
        '2. Goldman-Cecil Medicine, International Edition, 2 Volume Set. Elsevier.',
        '3. The Washington Manual of Medical Therapeutics. Wolters Kluwer.',
        '4. Goodman & Gilman\'s The Pharmacological Basis of Therapeutics, 14e. McGraw-Hill.',
        '5. Lippincott Illustrated Reviews: Pharmacology, 8e. Wolters Kluwer.',
        '6. Katzung\'s Basic and Clinical Pharmacology, 16th Edition. McGraw-Hill.',
        '7. Brenner and Rector\'s The Kidney, 2-Volume Set. Elsevier.',
        '8. Comprehensive Clinical Nephrology, 7th Edition (Feehally et al.). Elsevier.',
    ]),
    ('Textbooks (contd.)', [
        '9. Braunwald\'s Heart Disease: A Textbook of Cardiovascular Medicine, 12e. Elsevier.',
        '10. Grainger & Allison\'s Diagnostic Radiology. Elsevier.',
        '11. Frameworks for Internal Medicine. Wiley.',
        '12. Symptom to Diagnosis: An Evidence Based Guide, 4th Ed. McGraw-Hill.',
        '13. Guyton and Hall Textbook of Medical Physiology, 14e. Elsevier.',
        '14. Robbins & Kumar: Basic Pathology, 11e. Elsevier.',
        '15. Fuster and Hurst\'s The Heart, 15th Edition. McGraw-Hill.',
    ]),
    ('Journal Articles', [
        '16. Ellison DH, Felker GM. Diuretic Treatment in Heart Failure. NEJM 2017;377:1964โ€“1975.',
        '17. Cheatham ML et al. How to prescribe loop diuretics in oedema. BMJ 2019;364:l359.',
        '18. Ponikowski P et al. 2016 ESC Guidelines for diagnosis & treatment of acute/chronic heart failure. Eur Heart J 2016;37:2129โ€“2200.',
        '19. KDIGO 2021 Clinical Practice Guideline for the Management of Glomerular Diseases.',
        '20. WHO. Lymphatic Filariasis Fact Sheet. World Health Organization, 2022.',
    ]),
]

for col_i, (section_title, ref_list) in enumerate(refs):
    x = 0.3 + col_i * 4.35
    add_rect(sl, x, 0.88, 4.1, 0.42, C_HEADER if col_i < 2 else C_GREEN)
    add_textbox(sl, section_title, x+0.1, 0.9, 3.9, 0.38, size=12, bold=True,
                color=C_BG)
    for r_i, ref in enumerate(ref_list):
        y = 1.38 + r_i * 0.72
        add_textbox(sl, ref, x+0.05, y, 4.0, 0.68, size=9, color=C_LGRAY)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SAVE
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
prs.save(OUT)
print(f"โœ… Saved: {OUT}")
print(f"Total slides now: {len(prs.slides)}")
PYEOF
Running Command

cd /tmp/workspace/oedema-ppt && python3 build_ppt.py 2>&1

Running Command

python3 -c " from pptx.dml.color import RGBColor c = RGBColor(0x00, 0xB4, 0xD8) print(dir(c)) print(type(c)) "

Editing File

~/oedema-ppt/build_ppt.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/oedema-ppt/build_ppt.py'
Running Command

cd /tmp/workspace/oedema-ppt && python3 build_ppt.py 2>&1

Running Command

ls -lh /tmp/workspace/oedema-ppt/OEDEMA_ENHANCED_PAYAL_PARMAR.pptx

Your enhanced presentation is ready! Here is the download link:

OEDEMA ENHANCED PAYAL PARMAR

Presentation ยท PPTX


What Was Added (14 New Slides - Total 49 Slides)

The original 35 slides were kept intact. The following new slides were appended in a matching dark navy/teal colour scheme:

๐Ÿ”ฌ INVESTIGATIONS SECTION (5 new slides)

SlideContent
Slide 36Section Divider - Investigations
Slide 37Master Investigations Table - 13-row overview table covering urine, biochemistry, cardiac markers, thyroid, imaging, immunology, DVT screen - with diagnosis suggested for each
Slide 38Cardiac Oedema Investigation Algorithm - Flowchart: CXR + ECG โ†’ Echo โ†’ BNP/NT-proBNP with cutoffs (ESC 2021 guidelines)
Slide 39Nephrotic vs Nephritic - Side-by-side comparison table: urine protein, microscopy, complement, ASO titre, ANCA, oedema pattern
Slide 40Imaging Investigations - 4-column layout: CXR / Echo / USG Abdomen+Doppler / Limb Doppler+MRI with specific findings

๐Ÿ’Š MATERIA MEDICA SECTION (8 new slides)

SlideContent
Slide 41Section Divider - Materia Medica
Slide 42Loop Diuretics - Furosemide, Bumetanide, Torsemide, Ethacrynic acid - full table with dose (oral + IV), bioavailability, duration, special notes
Slide 43Thiazides + K-sparing + Aldosterone Antagonists - Two tables: HCTZ/Chlorthalidone/Metolazone + Spironolactone/Eplerenone/Amiloride with doses and indications
Slide 44Disease-Specific Treatment Table - 10 conditions covered (acute pulm. oedema, CHF, nephrotic, cirrhotic ascites, DVT, lymphoedema, cerebral oedema, angioedema, myxoedema, drug-induced)
Slide 45Adjunct Agents - 4-column layout: Human Albumin / Vaptans (Tolvaptan) / Natriuretic Peptides (Nesiritide) / Herbal/Traditional (Punarnava, Gokhru, Palash)
Slide 46Diuretic Comparison Chart - 8-row comparison table: Loop vs Thiazide vs K-sparing vs Osmotic vs Carbonic Anhydrase inhibitor (site, potency, K+ effect, contraindications)
Slide 47Diuretic Resistance - Causes (8 points) + Step-by-step management algorithm (8 steps including sequential nephron blockade, continuous infusion, ultrafiltration)
Slide 48Drug-Induced Oedema Table - CCBs, NSAIDs, Corticosteroids, TZDs, Oestrogens, Vasodilators, Immunosuppressants - mechanism + management

๐Ÿ“– REFERENCES (1 new slide)

SlideContent
Slide 49Full References - 20 citations: 15 textbooks + 5 journal articles (Harrison's 22e, Goldman-Cecil, Goodman & Gilman, Lippincott Pharmacology, Brenner & Rector's Kidney, Braunwald's Heart Disease, Grainger & Allison Radiology, NEJM 2017 Ellison/Felker, ESC 2021 guidelines, KDIGO 2021, WHO Filariasis)

Sources used: Harrison's 22e (2025) - Goodman & Gilman's - Lippincott Illustrated Reviews Pharmacology - The Washington Manual of Medical Therapeutics - Brenner & Rector's The Kidney - Comprehensive Clinical Nephrology 7e - Braunwald's Heart Disease - Grainger & Allison's Diagnostic Radiology - Ellison & Felker NEJM 2017

NO NOT ALLOPATHIC BUT HOMEOPATHIC MATERIA MEDICA

Searching the Web

homeopathic materia medica oedema edema remedies Apis Arsenicum Digitalis Apocynum Lycopodium indications modalities potency

Searching the Web

homeopathy repertory oedema dropsy key remedies Natrum muriaticum Rhus tox Lachesis Calcarea carbonica symptoms keynotes

Reading Web Page

https://hpathy.com/cause-symptoms-treatment/dropsical-affectโ€ฆ

Searching the Web

homeopathic materia medica Apocynum cannabinum Digitalis Strophanthus Helleborus Niger oedema dropsy keynotes symptoms potency dose

Writing File

~/oedema-ppt/build_homeo_ppt.py

"""
Enhanced Oedema PPT - HOMEOPATHIC MATERIA MEDICA version
Adds: Investigations slides + Homeopathic Materia Medica slides with full detail
Source: Boericke's Pocket Manual, Allen's Keynotes, H'pathy.com, Clarke's Dictionary
"""
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.oxml.ns import qn
from lxml import etree

SRC = '/tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/OEDEMA PAYAL PARMAR.pptx'
OUT = '/tmp/workspace/oedema-ppt/OEDEMA_HOMEOPATHIC_PAYAL_PARMAR.pptx'

prs = Presentation(SRC)
W = prs.slide_width
H = prs.slide_height

# Colour palette
C_BG       = RGBColor(0x0D, 0x1B, 0x2A)
C_HEADER   = RGBColor(0x00, 0xB4, 0xD8)
C_WHITE    = RGBColor(0xFF, 0xFF, 0xFF)
C_YELLOW   = RGBColor(0xFF, 0xD6, 0x00)
C_GREEN    = RGBColor(0x06, 0xD6, 0xA0)
C_ORANGE   = RGBColor(0xFF, 0x77, 0x22)
C_PINK     = RGBColor(0xFF, 0x4D, 0x6D)
C_LGRAY    = RGBColor(0xD0, 0xEA, 0xFF)
C_DARKBLUE = RGBColor(0x02, 0x36, 0x5E)
C_MID      = RGBColor(0x02, 0x4E, 0x7C)
C_GOLD     = RGBColor(0xFF, 0xA5, 0x00)
C_PURPLE   = RGBColor(0x7B, 0x2F, 0xBE)
C_TEAL2    = RGBColor(0x00, 0x8B, 0x8B)


def get_layout(name):
    for l in prs.slide_layouts:
        if l.name == name:
            return l
    return prs.slide_layouts[6]


def add_slide(layout_name='Blank'):
    return prs.slides.add_slide(get_layout(layout_name))


def fill_shape(shape, rgb):
    shape.fill.solid()
    shape.fill.fore_color.rgb = rgb


def add_rect(slide, l, t, w, h, rgb):
    shape = slide.shapes.add_shape(1, Inches(l), Inches(t), Inches(w), Inches(h))
    fill_shape(shape, rgb)
    shape.line.fill.background()
    return shape


def add_textbox(slide, text, l, t, w, h, size=12, bold=False, color=C_WHITE,
                align=PP_ALIGN.LEFT, italic=False):
    txb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    txb.text_frame.word_wrap = True
    tf = txb.text_frame
    tf.clear()
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.italic = italic
    run.font.color.rgb = color
    return txb


def add_multiline_textbox(slide, lines, l, t, w, h, default_size=11,
                          default_color=C_WHITE, default_bold=False):
    """lines = list of (text, size, bold, color, italic)"""
    txb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    txb.text_frame.word_wrap = True
    tf = txb.text_frame
    tf.clear()
    for i, line_data in enumerate(lines):
        text = line_data[0]
        sz = line_data[1] if len(line_data) > 1 else default_size
        bold = line_data[2] if len(line_data) > 2 else default_bold
        color = line_data[3] if len(line_data) > 3 else default_color
        italic = line_data[4] if len(line_data) > 4 else False
        if i == 0:
            p = tf.paragraphs[0]
        else:
            p = tf.add_paragraph()
        run = p.add_run()
        run.text = text
        run.font.size = Pt(sz)
        run.font.bold = bold
        run.font.italic = italic
        run.font.color.rgb = color


def add_title_bar(slide, title, subtitle=None):
    add_rect(slide, 0, 0, 13.33, 0.78, C_DARKBLUE)
    add_textbox(slide, title, 0.3, 0.06, 12.7, 0.65, size=20, bold=True,
                color=C_HEADER, align=PP_ALIGN.LEFT)
    if subtitle:
        add_textbox(slide, subtitle, 0.3, 0.52, 12.7, 0.3, size=10,
                    color=C_LGRAY, align=PP_ALIGN.LEFT)


def set_cell_bg(cell, rgb):
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    solidFill = etree.SubElement(tcPr, qn('a:solidFill'))
    srgbClr = etree.SubElement(solidFill, qn('a:srgbClr'))
    srgbClr.set('val', f'{rgb[0]:02X}{rgb[1]:02X}{rgb[2]:02X}')


def set_cell_text(cell, text, size=10, bold=False, color=C_WHITE,
                  align=PP_ALIGN.LEFT):
    tf = cell.text_frame
    tf.word_wrap = True
    tf.clear()
    p = tf.paragraphs[0]
    p.alignment = align
    run = p.add_run()
    run.text = text
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.color.rgb = color


def ref_bar(slide, text):
    add_rect(slide, 0, 7.18, 13.33, 0.3, RGBColor(0x01, 0x1A, 0x33))
    add_textbox(slide, text, 0.3, 7.19, 12.9, 0.27, size=8.5, color=C_LGRAY)


# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  INVESTIGATION SLIDES (kept from previous version, rewritten cleanly)
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

# โ”€โ”€ SLIDE 36: Section divider โ€“ Investigations
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_rect(sl, 0, 2.95, 13.33, 0.07, C_HEADER)
add_textbox(sl, '๐Ÿ”ฌ  INVESTIGATIONS IN OEDEMA', 0.5, 2.3, 12.33, 0.9,
            size=34, bold=True, color=C_HEADER, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Targeted laboratory, imaging & special investigations for each aetiology',
            0.5, 3.3, 12.33, 0.6, size=16, color=C_LGRAY, align=PP_ALIGN.CENTER)

# โ”€โ”€ SLIDE 37: Master Investigations Table
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'INVESTIGATIONS IN OEDEMA โ€” SYSTEM-WISE OVERVIEW')

rows = [
    ('INVESTIGATION', 'TESTS', 'KEY FINDING', 'DIAGNOSIS POINTED TO'),
    ('Urine', 'Dipstick, 24hr protein, Urine PCR,\nMicroscopy, FENA',
     'Proteinuria โ‰ฅ3.5g/day\nRBC casts, haematuria',
     'Nephrotic (โ‰ฅ3.5g) / Nephritic syndrome'),
    ('Serum Biochemistry', 'Albumin, Total Protein, LFT,\nElectrolytes, Urea, Creatinine',
     'Albumin <3.0 g/dL\nโ†’ โ†“ Oncotic pressure',
     'Hepatic / Nutritional / Renal oedema'),
    ('Renal Function', 'Serum creatinine, eGFR,\nBUN, Urine Naโบ, 24hr creatinine clearance',
     'eGFR <60 ml/min โ†’ CKD\nOliguria + โ†‘ creatinine โ†’ AKI',
     'Chronic kidney disease / Acute GN'),
    ('Cardiac Markers', 'BNP / NT-proBNP\nTroponin I/T, ECG',
     'BNP >100 pg/mL = HF\nNT-proBNP >300 pg/mL = HF',
     'Cardiogenic oedema (CCF/LVF)'),
    ('Haematology', 'CBC, ESR, CRP, PT/INR,\nAPTT, D-Dimer',
     'Normocytic anaemia, โ†‘CRP\nD-Dimer >500 โ†’ DVT/PE screen',
     'Liver disease / Infection / DVT'),
    ('Thyroid', 'TSH, Free T3, Free T4,\nAnti-TPO antibody',
     'TSH โ†‘ + FT4 โ†“ โ†’ Hypothyroidism\nTSH โ†“ โ†’ Hyperthyroidism (pretibial)',
     'Myxoedema / Graves\' disease'),
    ('Imaging โ€” Chest', 'Chest X-Ray (PA view)',
     'Cardiomegaly (CTR >0.5)\nKerley B lines, bat-wing shadowing',
     'CCF / Pulmonary oedema'),
    ('Imaging โ€” Cardiac', 'Echocardiography\n(2D + Doppler)',
     'LVEF <40% = HFrEF\nDiastolic dysfunction = HFpEF\nIVC >21mm = โ†‘ RAP',
     'Heart failure (any type)'),
    ('Imaging โ€” Abdomen', 'USG Abdomen + Portal\nDoppler, CT abdomen',
     'Ascites, hepatomegaly\nPortal vein >13mm โ†’ portal HTN',
     'Cirrhosis / Portal HTN / Budd-Chiari'),
    ('Limb Imaging', 'Venous Duplex Doppler\nLymphoscintigraphy',
     'Non-compressible vein โ†’ DVT\nDermal backflow โ†’ Lymphoedema',
     'DVT / Lymphoedema / Filariasis'),
    ('Special Tests', 'SAAG (serum-ascites albumin gradient)\nBone marrow biopsy (if anaemia)',
     'SAAG โ‰ฅ1.1 โ†’ portal HTN\nSAAG <1.1 โ†’ TB/malignancy',
     'Cirrhosis vs Malignant ascites'),
    ('Immunology', 'ANA, anti-dsDNA, ANCA\nComplement C3/C4, ASO titre',
     'ANA+ + low C3 โ†’ SLE nephritis\nโ†‘ ASO โ†’ Post-strep GN',
     'Immune glomerulonephritis / SLE'),
    ('Filariasis Screen', 'Night blood smear (10 PMโ€“2 AM)\nICT card test, ELISA (IgG4)',
     'Microfilaria on smear\nICT +ve',
     'Lymphatic filariasis (W. bancrofti)'),
]

tbl = sl.shapes.add_table(len(rows), 4,
    Inches(0.18), Inches(0.88), Inches(12.97), Inches(6.5)).table
for i, cw in enumerate([1.9, 3.0, 3.5, 4.57]):
    tbl.columns[i].width = Inches(cw)
for r_i, rd in enumerate(rows):
    hdr = r_i == 0
    bg = C_HEADER if hdr else (C_DARKBLUE if r_i % 2 == 1 else C_MID)
    tc = C_BG if hdr else C_WHITE
    sz = 10 if hdr else 9.5
    for c_i, txt in enumerate(rd):
        cell = tbl.cell(r_i, c_i)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr, color=tc)
ref_bar(sl, '๐Ÿ“– Harrison\'s Principles of Internal Medicine 22e | Goldman-Cecil Medicine | Braunwald\'s Heart Disease | Brenner & Rector\'s The Kidney')

# โ”€โ”€ SLIDE 38: Investigation flowchart โ€“ cardiac vs renal vs hepatic
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'DIFFERENTIAL INVESTIGATION FLOWCHART โ€” OEDEMA BY SYSTEM')

# Three column panels
panels = [
    ('โค๏ธ  CARDIAC OEDEMA', C_PINK, RGBColor(0x4A, 0x00, 0x20), [
        ('ECG', 'LVH, AF, LBBB, ischaemic ST changes'),
        ('Chest X-Ray', 'Cardiomegaly, Kerley B lines, bat-wing opacities, pleural effusion'),
        ('BNP / NT-proBNP', 'BNP >100 pg/mL confirms cardiac cause\n(ESC 2021: >35 pg/mL for HF)'),
        ('Echocardiography', 'LVEF, diastolic function, wall motion, valves, IVC'),
        ('Urine', 'May show proteinuria (cardiorenal syndrome)'),
        ('Biochemistry', 'Hyponatraemia, โ†‘ creatinine (cardiorenal); โ†‘ LFT (congestive)'),
    ]),
    ('๐Ÿซ˜  RENAL OEDEMA', C_HEADER, RGBColor(0x00, 0x3A, 0x5C), [
        ('Urine Dipstick', 'Nephrotic: 3+ protein; Nephritic: blood + protein'),
        ('24h Urine Protein', 'Nephrotic โ‰ฅ3.5 g/day; Nephritic <3.5 g/day'),
        ('Serum Albumin', '<3.0 g/dL โ†’ โ†“ oncotic pressure โ†’ generalised oedema'),
        ('Urine Microscopy', 'Nephrotic: oval fat bodies; Nephritic: RBC casts, dysmorphic RBCs'),
        ('Complement (C3/C4)', 'โ†“ C3 in PSGN, MPGN, SLE nephritis'),
        ('Renal Biopsy', 'Gold standard for histological classification'),
    ]),
    ('๐Ÿซ  HEPATIC OEDEMA', C_GREEN, RGBColor(0x00, 0x35, 0x1A), [
        ('LFT panel', 'Raised bilirubin, โ†‘ AST/ALT, โ†“ albumin, โ†“ PT'),
        ('USG Abdomen', 'Ascites, hepatomegaly/atrophy, splenomegaly, nodular liver'),
        ('SAAG', 'โ‰ฅ1.1 g/dL โ†’ portal HTN; <1.1 โ†’ TB or malignancy'),
        ('Portal Doppler', 'Reversed flow in portal vein โ†’ advanced cirrhosis'),
        ('Serum Albumin', 'Low (<3.0 g/dL) due to โ†“ hepatic synthesis'),
        ('Diagnostic Paracentesis', 'Appearance, SAAG, total protein, LDH, culture'),
    ]),
]

for col_i, (title, hdr_col, bg_col, items) in enumerate(panels):
    x = 0.25 + col_i * 4.35
    add_rect(sl, x, 0.88, 4.1, 0.48, hdr_col)
    add_textbox(sl, title, x + 0.08, 0.90, 3.95, 0.44,
                size=13, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for row_i, (label, detail) in enumerate(items):
        y = 1.44 + row_i * 0.93
        add_rect(sl, x, y, 4.1, 0.85, bg_col)
        add_textbox(sl, label, x + 0.1, y + 0.04, 3.9, 0.28, size=11, bold=True, color=hdr_col)
        add_textbox(sl, detail, x + 0.1, y + 0.32, 3.9, 0.5, size=9.5, color=C_WHITE)

ref_bar(sl, '๐Ÿ“– Symptom to Diagnosis: An Evidence Based Guide 4e | Frameworks for Internal Medicine | Brenner & Rector\'s The Kidney 10e')

# โ”€โ”€ SLIDE 39: Nephrotic vs Nephritic comparison table
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'NEPHROTIC vs NEPHRITIC SYNDROME โ€” INVESTIGATIONS COMPARISON')

comp_rows = [
    ('FEATURE', 'NEPHROTIC SYNDROME', 'NEPHRITIC SYNDROME'),
    ('Proteinuria', 'โ‰ฅ 3.5 g/day (massive)', '< 3.5 g/day (mild-moderate)'),
    ('Haematuria', 'Absent / minimal', 'Present โ€” smoky/cola urine; RBC casts'),
    ('Serum Albumin', '< 3.0 g/dL (severe hypoalbuminaemia)', 'Normal or slightly low'),
    ('Oedema type', 'Generalised; periorbital in AM; anasarca', 'Periorbital; associated with โ†‘ BP'),
    ('Blood Pressure', 'Normal or low (fluid shifts to interstitium)', 'Raised (primary Naโบ retention)'),
    ('Urine Microscopy', 'Oval fat bodies, fatty casts, lipiduria', 'RBC casts, dysmorphic RBCs, granular casts'),
    ('Serum Cholesterol', 'โ†‘ Hyperlipidaemia (compensatory)', 'Normal'),
    ('Urine PCR', '> 300 mg/mmol', '50โ€“300 mg/mmol'),
    ('Complement (C3)', 'Variable (low in MPGN, SLE)', 'โ†“ in PSGN, SLE, MPGN'),
    ('ASO Titre', 'Usually normal', 'โ†‘ in post-streptococcal GN'),
    ('Renal Function (GFR)', 'Usually preserved initially', 'Reduced (โ†‘ creatinine, โ†“ GFR)'),
    ('Renal Biopsy', 'MCD, FSGS, Membranous GN, Diabetic nephropathy', 'PSGN, IgA nephropathy, RPGN, SLE class III/IV'),
    ('Oedema mechanism', 'โ†“ Oncotic pressure (hypoalbuminaemia)', 'โ†‘ Hydrostatic pressure (primary Naโบ retention)'),
]

tbl = sl.shapes.add_table(len(comp_rows), 3,
    Inches(0.18), Inches(0.88), Inches(12.97), Inches(6.5)).table
for i, cw in enumerate([2.4, 5.28, 5.29]):
    tbl.columns[i].width = Inches(cw)
for r_i, rd in enumerate(comp_rows):
    hdr = r_i == 0
    bg = C_HEADER if hdr else (C_DARKBLUE if r_i % 2 == 1 else C_MID)
    tc = C_BG if hdr else C_WHITE
    sz = 11 if hdr else 10
    for c_i, txt in enumerate(rd):
        cell = tbl.cell(r_i, c_i)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr or c_i == 0, color=tc)
ref_bar(sl, '๐Ÿ“– Harrison\'s Principles of Internal Medicine 22e | Comprehensive Clinical Nephrology 7e | Robbins & Kumar Basic Pathology')

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  HOMEOPATHIC MATERIA MEDICA SLIDES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

# โ”€โ”€ SLIDE 40: Section Divider โ€“ Homeopathic Materia Medica
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_rect(sl, 0, 3.05, 13.33, 0.07, C_GOLD)
add_textbox(sl, '๐ŸŒฟ  HOMEOPATHIC MATERIA MEDICA', 0.5, 1.8, 12.33, 1.1,
            size=34, bold=True, color=C_GOLD, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Therapeutic Remedies for Oedema / Dropsy', 0.5, 3.2, 12.33, 0.6,
            size=18, color=C_LGRAY, align=PP_ALIGN.CENTER)
add_textbox(sl, 'Based on: Boericke\'s Materia Medica | Allen\'s Keynotes | Clarke\'s Dictionary | Kent\'s Repertory',
            0.5, 4.0, 12.33, 0.55, size=13, color=C_HEADER, align=PP_ALIGN.CENTER, italic=True)

# โ”€โ”€ SLIDE 41: Overview - Remedy Selection Principle + Master Grid
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'HOMEOPATHIC PRINCIPLE & REMEDY SELECTION IN OEDEMA',
              subtitle='Based on: Cause โ€ข Constitution โ€ข Location โ€ข Modalities โ€ข Sensation (totality of symptoms)')

# Principle box
add_rect(sl, 0.2, 0.88, 12.93, 0.7, RGBColor(0x1A, 0x3A, 0x1A))
add_textbox(sl,
    'โš–๏ธ  KEY PRINCIPLE: In homeopathy, oedema (dropsy) is treated by finding a remedy that matches '
    'the TOTALITY of the patient\'s symptoms โ€” including the causative factor (cardiac, renal, hepatic, '
    'nutritional, inflammatory), the physical generals, the mental/emotional state, and the characteristic '
    'modalities (what makes it better or worse). No single "oedema drug" exists; the similar remedy cures.',
    0.3, 0.9, 12.7, 0.65, size=10.5, color=C_WHITE, italic=False)

# Overview grid - remedies by cause
causes_grid = [
    ('CARDIAC DROPSY', C_PINK, ['Digitalis Purpurea', 'Apocynum Cannabinum', 'Strophanthus', 'Arsenicum Album', 'Cactus Grandiflorus']),
    ('RENAL DROPSY', C_HEADER, ['Apis Mellifica', 'Arsenicum Album', 'Helleborus Niger', 'Terebinthina', 'Colchicum']),
    ('HEPATIC DROPSY\n(Cirrhosis / Ascites)', C_GREEN, ['Lycopodium', 'Muriatic Acid', 'Cardus Marianus', 'Chelidonium', 'Natrum Sulph']),
    ('INFLAMMATORY /\nALLERGIC OEDEMA', C_GOLD, ['Apis Mellifica', 'Bryonia Alba', 'Rhus Toxicodendron', 'Dulcamara', 'Ledum Pal']),
    ('GENERAL /\nNUTRITIONAL', RGBColor(0xA0, 0x60, 0xFF), ['Acetic Acid', 'Calcarea Carbonica', 'Ferrum Metallicum', 'Natrum Muriaticum', 'Sulphur']),
    ('LYMPHATIC /\nSKIN OEDEMA', C_ORANGE, ['Graphites', 'Pulsatilla', 'Silicea', 'Lachesis', 'Conium']),
]

for col_i, (cat, col, rems) in enumerate(causes_grid):
    x = 0.18 + (col_i % 3) * 4.38
    y = 1.7 if col_i < 3 else 4.55
    add_rect(sl, x, y, 4.1, 0.42, col)
    add_textbox(sl, cat, x + 0.08, y + 0.04, 3.95, 0.35,
                size=10.5, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, rem in enumerate(rems):
        ry = y + 0.48 + ri * 0.44
        add_rect(sl, x, ry, 4.1, 0.38, C_DARKBLUE if ri % 2 == 0 else C_MID)
        add_textbox(sl, f'โ€ข {rem}', x + 0.12, ry + 0.04, 3.85, 0.32, size=10.5, color=C_WHITE)

ref_bar(sl, '๐Ÿ“– Boericke W. Pocket Manual of Materia Medica (9th ed.) | Allen HC. Keynotes and Characteristics | Kent JT. Repertory of Homeopathic Materia Medica')

# โ”€โ”€ HELPER: remedy detail slide (2-column layout)
def remedy_slide(title, subtitle, left_col, right_col, ref_text):
    """
    left_col / right_col = list of (header, content_list_or_text, header_color)
    """
    sl = add_slide()
    add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
    add_rect(sl, 0, 0, 13.33, 0.85, C_DARKBLUE)
    add_textbox(sl, title, 0.3, 0.06, 12.7, 0.48, size=20, bold=True,
                color=C_GOLD, align=PP_ALIGN.LEFT)
    add_textbox(sl, subtitle, 0.3, 0.52, 12.7, 0.3, size=10,
                color=C_LGRAY, italic=True)

    for col_i, col_data in enumerate([left_col, right_col]):
        x = 0.2 if col_i == 0 else 6.85
        y = 0.95
        for hdr, content, hcol in col_data:
            add_rect(sl, x, y, 6.28, 0.38, hcol)
            add_textbox(sl, hdr, x + 0.1, y + 0.04, 6.1, 0.3,
                        size=11, bold=True, color=C_BG)
            y += 0.42
            if isinstance(content, list):
                for item in content:
                    add_rect(sl, x, y, 6.28, 0.44, C_DARKBLUE if y % 1 < 0.5 else C_MID)
                    add_textbox(sl, f'โ€ข {item}', x + 0.12, y + 0.04,
                                6.1, 0.37, size=10.5, color=C_WHITE)
                    y += 0.44
            else:
                lines = [ln for ln in content.split('\n') if ln.strip()]
                block_h = max(len(lines) * 0.44, 0.44)
                add_rect(sl, x, y, 6.28, block_h, C_DARKBLUE)
                add_textbox(sl, content, x + 0.12, y + 0.04,
                            6.1, block_h - 0.08, size=10.5, color=C_WHITE)
                y += block_h
            y += 0.06

    ref_bar(sl, ref_text)
    return sl


# โ”€โ”€ SLIDE 42: APIS MELLIFICA
remedy_slide(
    title='APIS MELLIFICA  [Bee Venom] โ€” Oedema Remedy #1',
    subtitle='Source: Honey bee (Apis mellifera) | Potency: 3X, 6C, 30C, 200C | Boericke, Kent, Allen',
    left_col=[
        ('๐Ÿ”‘ KEYNOTES / CHARACTERISTICS', [
            'Sudden, rapid onset of puffy, shining, bag-like swelling',
            'Oedema of eyelids, face, lips, extremities โ€” transparent, watery',
            'Burning, stinging, smarting pains (like bee sting)',
            'Rosy-red swelling with heat (resembles erysipelas)',
            'No thirst despite swelling and fever',
            '"Bag of water" sensation in the swollen parts',
        ], C_PINK),
        ('๐Ÿฅ CLINICAL INDICATIONS', [
            'Angioneurotic oedema (allergic) โ€” face, lips, larynx',
            'Nephrotic syndrome โ€” periorbital puffiness, albuminuria',
            'Ovarian oedema; ascites; hydrothorax; hydrocephalus',
            'Urticaria; insect bites; bee stings',
            'Acute glomerulonephritis (face puffed, scanty urine)',
            'Dropsy of knee; peritoneal oedema (ascites)',
        ], C_PINK),
    ],
    right_col=[
        ('โฌ†๏ธ AGGRAVATION (WORSE)', [
            'Heat in any form โ€” warm room, warm applications, sun',
            'Touch and pressure on swollen part',
            'Late afternoon (3โ€“5 PM)',
            'After sleeping; lying down',
            'Right side more affected',
        ], C_ORANGE),
        ('โฌ‡๏ธ AMELIORATION (BETTER)', [
            'Cold applications โ€” ice, cold bathing, cold water',
            'Open air; uncovering',
            'Motion (gentle); sitting erect',
        ], C_GREEN),
        ('๐Ÿ’Š POTENCY & DOSE', [
            'Acute oedema / anaphylaxis: 30C or 200C',
            'Chronic dropsy: 6C or 30C 3 times daily',
            'Trituration (3X) preferred for serous effusions',
            'Inimical to: Lachesis | Complementary: Natrum Mur',
        ], C_GOLD),
    ],
    ref_text='๐Ÿ“– Boericke W. Pocket Manual of Materia Medica 9e | Allen HC. Keynotes (Apis Mellifica) | hpathy.com'
)

# โ”€โ”€ SLIDE 43: ARSENICUM ALBUM
remedy_slide(
    title='ARSENICUM ALBUM  [Arsenic Trioxide] โ€” Oedema Remedy #2',
    subtitle='Source: Arsenic trioxide (Asโ‚‚Oโ‚ƒ) | Potency: 6C, 30C, 200C, 1M | Boericke, Allen, Clarke',
    left_col=[
        ('๐Ÿ”‘ KEYNOTES / CHARACTERISTICS', [
            'Puffiness of face with oedema about the eyelids โ€” waxy, transparent skin',
            'Great restlessness and anxiety; fear of death; cannot be alone',
            'Burning pains relieved by warmth (opposite of Apis)',
            'Oedema with marked weakness and prostration',
            'Scanty, dark, albuminous urine; oozing of serum from ulcers',
            'Thirst for small sips of water at frequent intervals',
        ], C_HEADER),
        ('๐Ÿฅ CLINICAL INDICATIONS', [
            'Cardiac dropsy โ€” heart and lung oedema (Ars. is an important diuretic in homeopathy)',
            'Renal dropsy โ€” nephritis, nephrotic syndrome',
            'Anasarca with waxy pale skin; periorbital puffiness',
            'Hydrothorax; ascites; generalised oedema',
            'Oedema with ulcers on legs, oozing thin serous fluid',
            'Diabetic nephropathy with oedema',
        ], C_HEADER),
    ],
    right_col=[
        ('โฌ†๏ธ AGGRAVATION (WORSE)', [
            'After midnight (1โ€“2 AM) โ€” classic aggravation time',
            'Cold air, cold food, cold drinks, cold applications',
            'Exertion, even slight',
            'Periodically (every 2 weeks)',
        ], C_ORANGE),
        ('โฌ‡๏ธ AMELIORATION (BETTER)', [
            'Warmth in all forms โ€” warm room, warm applications',
            'Hot drinks; company and being attended to',
            'Elevating the head',
        ], C_GREEN),
        ('๐Ÿ’Š POTENCY & DOSE', [
            'Acute states: 30C or 200C',
            'Constitutional / chronic: 200C or 1M',
            'Complementary: Thuja, Nat Sulph | Follows well: Allium cepa',
            'Antidoted by: Opium, Ferrum, Graphites',
        ], C_GOLD),
    ],
    ref_text='๐Ÿ“– Boericke W. Pocket Manual 9e | Allen HC. Keynotes | Clarke JH. Dictionary of Practical Materia Medica | similia.io'
)

# โ”€โ”€ SLIDE 44: APOCYNUM CANNABINUM + DIGITALIS PURPUREA
remedy_slide(
    title='APOCYNUM CANNABINUM & DIGITALIS PURPUREA โ€” Cardiac Dropsy Remedies',
    subtitle='Source: Indian Hemp (Apocynum) | Foxglove (Digitalis) | Potency: Tincture, 3Xโ€“30C',
    left_col=[
        ('๐ŸŒฟ APOCYNUM CANNABINUM (Indian Hemp)', [
            'Chief remedy for cardiac and renal dropsy',
            'Great thirst โ€” but drinking causes distress to the heart',
            '"Gone feeling" at the pit of the stomach; cannot tolerate food',
            'Irregular, slow, feeble pulse; diminished frequency is keynote',
            'Dropsy of serous membranes: ascites, hydrothorax, hydrocephalus',
            'Scanty urine; suppression of urine',
        ], C_GREEN),
        ('โš™๏ธ APOCYNUM โ€” MODALITIES & DOSE', [
            'Worse: cold weather, cold drinks, uncovering',
            'Better: warmth (mild)',
            'Dose: Tincture (10 drops TDS) or 3Xโ€“6X for dropsy',
            'Kinship: Strophanthus (cardiac), Apis, Arsenicum, Digitalis',
            'Use fresh preparation โ€” stale preparations lose action',
        ], C_GREEN),
    ],
    right_col=[
        ('๐ŸŒธ DIGITALIS PURPUREA (Foxglove)', [
            'Best homeopathic remedy for cardiac dropsy with feeble, irregular heart',
            'Slow, intermittent, weak pulse (as if heart would stop on motion)',
            'Frequent desire to take a deep breath',
            'Scanty, dark urine; great desire to urinate with little result',
            'Scrotum and penis swollen (genital oedema)',
            'Cyanosis; general anasarca; mitral regurgitation with oedema',
        ], C_PINK),
        ('โš™๏ธ DIGITALIS โ€” MODALITIES & DOSE', [
            'Worse: motion, upright position, cold, after eating',
            'Better: rest, warmth, empty stomach',
            'Dose: 3X trituration or 6Cโ€“30C',
            'Do NOT repeat if pulse becomes slower โ€” danger sign',
            'Compare: Strophanthus, Apocynum, Cactus',
        ], C_PINK),
    ],
    ref_text='๐Ÿ“– Boericke W. Pocket Manual of Materia Medica | kavithakhomeo.com | Allen HC. Keynotes | hpathy.com'
)

# โ”€โ”€ SLIDE 45: LYCOPODIUM + HELLEBORUS NIGER
remedy_slide(
    title='LYCOPODIUM CLAVATUM & HELLEBORUS NIGER โ€” Hepatic & Anasarca Remedies',
    subtitle='Source: Club Moss spores (Lycopodium) | Black Hellebore (Helleborus) | Potency: 30C, 200C',
    left_col=[
        ('๐ŸŒฟ LYCOPODIUM CLAVATUM (Club Moss)', [
            'Ascites from liver affections, cirrhosis, alcohol abuse',
            'Upper body emaciated; lower half enormously swollen',
            'One foot cold, the other hot โ€” characteristic general',
            'Hydrothorax; dyspnoea worse lying on back',
            'Urine dark and albuminous; dark skin or bluish-white',
            'Bloating and flatulence; craving for sweets; 4โ€“8 PM aggravation',
        ], C_GREEN),
        ('โš™๏ธ LYCOPODIUM โ€” MODALITIES & DOSE', [
            'Worse: 4โ€“8 PM; right side; warmth; tight clothing',
            'Better: warm drinks; motion; uncovering; after midnight',
            'Dose: 30C (constitutional); 200C for deep chronic cases',
            'Complementary: Calcarea Carb | Compare: Sulphur, Nux Vomica',
        ], C_GREEN),
    ],
    right_col=[
        ('๐ŸŒบ HELLEBORUS NIGER (Black Hellebore)', [
            'General anasarca with unconscious and stupid state',
            'Best remedy for hydrocephalus with boring of head into pillow',
            'Ascites; effusion into serous cavities; generalised anasarca',
            'Dark, smoky, scanty urine โ†’ suppression',
            'Involuntary motions and wetting; complete apathy and stupor',
            'Cool, pale, waxy skin; absence of fever',
        ], RGBColor(0x7B, 0x2F, 0xBE)),
        ('โš™๏ธ HELLEBORUS โ€” MODALITIES & DOSE', [
            'Worse: evening and night; uncovering; cold air',
            'Better: warmth; wrapping up',
            'Dose: 6Cโ€“30C; useful in end-stage renal/hepatic oedema',
            'Compare: Apis (anasarca); Zinc (nervous symptoms)',
            'Particularly useful in post-scarlatina dropsy with stupor',
        ], RGBColor(0x7B, 0x2F, 0xBE)),
    ],
    ref_text='๐Ÿ“– Boericke W. Pocket Manual 9e | hpathy.com Dropsical Affections | Clarke JH. Dictionary of Practical Materia Medica'
)

# โ”€โ”€ SLIDE 46: BRYONIA + RHUS TOX + DULCAMARA + COLCHICUM
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'HOMEOPATHIC MATERIA MEDICA โ€” INFLAMMATORY OEDEMA REMEDIES')

rems = [
    ('BRYONIA ALBA', C_ORANGE, [
        ('Source', 'White Bryony root'),
        ('Key Oedema', 'Anasarca, oedema of feet; hydrothorax; ascites'),
        ('Characteristic', 'Great thirst; scanty urine; obstinate constipation'),
        ('Modality โ†‘', 'Motion (even slightest); heat; lying on painless side'),
        ('Modality โ†“', 'Rest; lying on painful side; cold; pressure'),
        ('Swelling Pattern', 'Increases in daytime, lessens at night'),
        ('Potency', '6C, 30C, 200C; suits dry, irritable patients'),
    ]),
    ('RHUS TOX', C_GREEN, [
        ('Source', 'Poison Ivy leaves'),
        ('Key Oedema', 'Dropsy of lower extremities with oozing serous fluid'),
        ('Characteristic', 'Extreme restlessness; cannot stay still; skin red and swollen'),
        ('Modality โ†‘', 'Rest; cold; damp weather; initial motion'),
        ('Modality โ†“', 'Continued motion; warmth; dry weather'),
        ('Swelling Pattern', 'Red, shiny, hot, blistered-looking oedema'),
        ('Potency', '6C, 30C; post-septic or rheumatic oedema'),
    ]),
    ('DULCAMARA', C_HEADER, [
        ('Source', 'Bittersweet (Solanum dulcamara)'),
        ('Key Oedema', 'Sudden anasarca after overheating + exposure to damp cold'),
        ('Characteristic', 'General oedema from intermittent fever; bloated face, swollen limbs'),
        ('Modality โ†‘', 'Cold, damp weather; cold nights after warm days; autumn'),
        ('Modality โ†“', 'Dry warm weather; motion'),
        ('Swelling Pattern', 'Anasarca after rheumatic fever; post-malaria oedema'),
        ('Potency', '6C, 30C; especially after seasonal change trigger'),
    ]),
    ('COLCHICUM', RGBColor(0xA0, 0x60, 0xFF), [
        ('Source', 'Autumn Crocus corm'),
        ('Key Oedema', 'Dropsy after scarlatina; hydropericardium; lower limb oedema + cold'),
        ('Characteristic', 'Dark urine; dropsy with rheumatic/gouty complications'),
        ('Modality โ†‘', 'Evening; night; damp cold; motion; touch'),
        ('Modality โ†“', 'Rest; warmth; sitting upright'),
        ('Swelling Pattern', 'Legs cold and oedematous; skin pale and dry'),
        ('Potency', '6Cโ€“30C; useful post-scarlatina with dark urine'),
    ]),
]

for col_i, (name, hcol, items) in enumerate(rems):
    x = 0.18 + col_i * 3.27
    add_rect(sl, x, 0.88, 3.1, 0.45, hcol)
    add_textbox(sl, name, x + 0.07, 0.90, 2.97, 0.4,
                size=11, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, (label, val) in enumerate(items):
        y = 1.4 + ri * 0.82
        add_rect(sl, x, y, 3.1, 0.75, C_DARKBLUE if ri % 2 == 0 else C_MID)
        add_textbox(sl, label, x + 0.08, y + 0.03, 2.95, 0.28, size=9.5, bold=True, color=hcol)
        add_textbox(sl, val, x + 0.08, y + 0.3, 2.95, 0.42, size=9.5, color=C_WHITE)

ref_bar(sl, '๐Ÿ“– Boericke W. Pocket Manual of Materia Medica 9e | hpathy.com | Allen HC. Keynotes | Kent JT. Lectures on Homeopathic Materia Medica')

# โ”€โ”€ SLIDE 47: ACETIC ACID + CALCAREA CARB + NAT MUR + SULPHUR + PULSATILLA
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'HOMEOPATHIC MATERIA MEDICA โ€” NUTRITIONAL / CONSTITUTIONAL OEDEMA REMEDIES')

rems2 = [
    ('ACETIC ACID', C_PINK, [
        ('Source', 'Glacial Acetic Acid'),
        ('Key Oedema', 'Best for oedema of lower limbs and abdomen (anasarca); great debility'),
        ('Characteristics', 'Profuse sweat; intense thirst; emaciation; night sweats; waxy pale face'),
        ('Potency', '6C, 30C'),
        ('Compare', 'Arsenicum (restlessness); Apocynum (thirst + dropsy)'),
    ]),
    ('CALCAREA CARBONICA', C_ORANGE, [
        ('Source', 'Middle layer of oyster shell'),
        ('Key Oedema', 'Dropsy aggravated by bathing; fat, flabby, fair constitution'),
        ('Characteristics', 'Profuse sweat on head (sour smell); cold, damp feet; chronic oedema'),
        ('Potency', '30C, 200C, 1M (constitutional remedy)'),
        ('Compare', 'Lycopodium (liver); Graphites (skin/lymph)'),
    ]),
    ('NATRUM MURIATICUM', C_HEADER, [
        ('Source', 'Common salt (NaCl)'),
        ('Key Oedema', 'Oedema from grief, prolonged emotional distress; hyponatraemia picture'),
        ('Characteristics', 'Great emaciation with water-logged tissues; craving for salt; dry mucous membranes'),
        ('Potency', '30C, 200C (do NOT give low potency โ€” aggravates)'),
        ('Compare', 'Apis (no thirst); Sepia (indifference); Pulsatilla (weeping)'),
    ]),
    ('SULPHUR', RGBColor(0xFF, 0xC0, 0x00), [
        ('Source', 'Sublimed sulphur'),
        ('Key Oedema', 'Hydrothorax with sudden arrest of breathing; dropsy after suppressed eruptions'),
        ('Characteristics', 'Burning heat in feet at night; dirty, rough skin with bluish spots; cold feet'),
        ('Potency', '30C, 200C; often used to complete/follow other remedies'),
        ('Compare', 'Psorinum (chronic dropsy); Lycopodium (liver); Arsenicum'),
    ]),
    ('PULSATILLA', C_GREEN, [
        ('Source', 'Wind Flower (Pulsatilla nigricans)'),
        ('Key Oedema', 'Oedema of knees, ankles, feet; premenstrual and pregnancy-related oedema'),
        ('Characteristics', 'Heaviness and weariness in limbs; weeping, mild disposition; no thirst'),
        ('Potency', '30C, 200C; excellent for cyclical/hormonal oedema'),
        ('Compare', 'Apis (stinging + no thirst); Ledum (ankles + cold better)'),
    ]),
]

for col_i, (name, hcol, items) in enumerate(rems2):
    x = 0.18 + col_i * 2.59
    add_rect(sl, x, 0.88, 2.45, 0.45, hcol)
    add_textbox(sl, name, x + 0.05, 0.9, 2.35, 0.4,
                size=9.5, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, (label, val) in enumerate(items):
        y = 1.4 + ri * 1.18
        add_rect(sl, x, y, 2.45, 1.1, C_DARKBLUE if ri % 2 == 0 else C_MID)
        add_textbox(sl, label, x + 0.07, y + 0.04, 2.3, 0.28, size=9, bold=True, color=hcol)
        add_textbox(sl, val, x + 0.07, y + 0.32, 2.3, 0.74, size=9, color=C_WHITE)

ref_bar(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | kavithakhomeo.com | hpathy.com | Allen HC. Keynotes and Characteristics with Comparisons')

# โ”€โ”€ SLIDE 48: Master Comparison Table โ€“ All Remedies
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'HOMEOPATHIC MATERIA MEDICA โ€” MASTER COMPARISON TABLE (OEDEMA)')

master_rows = [
    ('REMEDY', 'TYPE OF OEDEMA', 'CHARACTERISTIC KEYNOTES', 'WORSE', 'BETTER', 'POTENCY'),
    ('Apis Mellifica', 'Allergic, renal,\nangioneurotic',
     'Burning-stinging pain; bag-like puffy shiny skin; no thirst; rosy-red swelling',
     'Heat; touch;\nafternoon; right side', 'Cold; open air;\nuncovering', '30C, 200C\n(trituration for effusions)'),
    ('Arsenicum Album', 'Cardiac, renal,\ngeneralised anasarca',
     'Restless + anxious; waxy transparent skin; oozing serous ulcers; thirst small sips',
     'Midnight (1โ€“2 AM);\ncold; exertion', 'Heat; hot drinks;\ncompany', '30C, 200C, 1M'),
    ('Apocynum\nCannabinum', 'Cardiac dropsy,\nascites, anasarca',
     'Great thirst but water distresses heart; gone feeling at stomach; feeble slow pulse',
     'Cold drinks;\nuncovering', 'Warmth\n(mild)', 'Tincture, 3Xโ€“6X'),
    ('Digitalis\nPurpurea', 'Cardiac dropsy\n(mitral, weak heart)',
     'Feeble intermittent pulse; scanty dark urine; scrotum oedema; desire for deep breath',
     'Motion; upright;\ncold; after eating', 'Rest; warmth;\nempty stomach', '3X trituration;\n6Cโ€“30C'),
    ('Lycopodium', 'Hepatic dropsy,\nascites (cirrhosis)',
     'Upper emaciated + lower swollen; one foot cold, one hot; dark albuminous urine',
     '4โ€“8 PM; right side;\nwarmth; tight clothing', 'Warm drinks;\nmotion', '30C, 200C'),
    ('Helleborus Niger', 'Anasarca, ascites,\nhydrocephalus',
     'Stupor and apathy; dark scanty urine; boring head into pillow; post-scarlatina',
     'Evening; night;\ncold air; uncovering', 'Warmth;\nwrapping up', '6C, 30C'),
    ('Bryonia Alba', 'Anasarca, ascites,\nhydrothorax',
     'Great thirst; constipation; oedema worse in daytime; irritable, wants to be alone',
     'Motion; heat;\nmorning', 'Rest; pressure;\nlying on painful side', '6C, 30C, 200C'),
    ('Rhus Tox', 'Inflammatory oedema\n(post-rheumatic)',
     'Restlessness; red hot blistered swelling; oozing of serous fluid from ulcers',
     'Rest; damp cold;\ninitial motion', 'Continued motion;\nwarmth; dry', '6C, 30C'),
    ('Colchicum', 'Post-scarlatinal\ndropsy, hydropericardium',
     'Dark urine; lower limbs oedematous and cold; rheumatic/gouty background',
     'Evening; damp cold;\nmotion; touch', 'Rest; warmth;\nsitting up', '6C, 30C'),
    ('Acetic Acid', 'Anasarca with\ndebility, emaciation',
     'Intense thirst; profuse sweat; emaciation; waxy pale face; abdominal dropsy',
     'Cold applications;\nnight', 'Warmth; rest', '6C, 30C'),
    ('Pulsatilla', 'Premenstrual,\npregnancy, ankle',
     'Heaviness in limbs; no thirst; mild weeping disposition; hormonal cyclical',
     'Warmth; evening;\nrich fatty food', 'Open air; cold;\nmotion; sympathy', '30C, 200C'),
    ('Calcarea Carb', 'Constitutional;\nchronic dropsy',
     'Aggravated by bathing; fat flabby fair; cold damp feet; sour head sweat',
     'Cold; dampness;\nexertion; bathing', 'Dry weather;\nlying on painful side', '30C, 200C, 1M'),
]

tbl = sl.shapes.add_table(len(master_rows), 6,
    Inches(0.12), Inches(0.88), Inches(13.09), Inches(6.5)).table
for i, cw in enumerate([1.5, 1.7, 3.8, 1.9, 1.7, 2.49]):
    tbl.columns[i].width = Inches(cw)
for r_i, rd in enumerate(master_rows):
    hdr = r_i == 0
    bg = C_GOLD if hdr else (C_DARKBLUE if r_i % 2 == 1 else C_MID)
    tc = C_BG if hdr else C_WHITE
    sz = 10 if hdr else 9
    for c_i, txt in enumerate(rd):
        cell = tbl.cell(r_i, c_i)
        set_cell_bg(cell, bg)
        set_cell_text(cell, txt, size=sz, bold=hdr or c_i == 0, color=tc)
ref_bar(sl, '๐Ÿ“– Boericke W. Pocket Manual of Materia Medica 9e | Allen HC. Keynotes | Kent JT. Repertory | Clarke JH. Dictionary of Practical Materia Medica')

# โ”€โ”€ SLIDE 49: REPERTORY TABLE โ€” Oedema locations
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'REPERTORY OF HOMEOPATHIC REMEDIES IN OEDEMA โ€” KENT\'S / BOERICKE\'S')

add_rect(sl, 0.2, 0.88, 12.93, 0.45, RGBColor(0x1A, 0x1A, 0x4A))
add_textbox(sl,
    '๐Ÿ“Œ Repertory rubric: DROPSY / OEDEMA โ€” listed under: Generals | Extremities | Abdomen | Face | Chest '
    '(Kent\'s Repertory, Volume VII) | Grades: Bold = Grade 3 (highest) | Italics = Grade 2 | Plain = Grade 1',
    0.3, 0.9, 12.7, 0.4, size=10, color=C_LGRAY)

rep_rows = [
    ('RUBRIC', 'GRADE 3 (BOLD)', 'GRADE 2 (ITALICS)', 'GRADE 1'),
    ('Dropsy โ€” General (Anasarca)', 'Apis, Arsenicum, Apocynum', 'Digitalis, Lycopodium, Helleborus', 'Bryonia, Colchicum, Acetic Acid'),
    ('Dropsy โ€” Cardiac origin', 'Digitalis, Apocynum', 'Strophanthus, Cactus', 'Arsenicum, Convallaria'),
    ('Dropsy โ€” Renal origin (Nephrotic)', 'Apis, Arsenicum', 'Helleborus, Terebinthina', 'Colchicum, Mercurius'),
    ('Dropsy โ€” Hepatic / Ascites', 'Lycopodium, Arsenicum', 'Muriatic Acid, Cardus Mar', 'Chelidonium, China, Sulphur'),
    ('Oedema โ€” Lower limbs / Ankles', 'Apis, Arsenicum, Apocynum', 'Pulsatilla, Ledum, Rhus Tox', 'Hamamelis, Ruta, Arnica'),
    ('Oedema โ€” Face / Periorbital', 'Apis, Arsenicum', 'Natrum Mur, Kali Carb', 'Phosphorus, Helleborus'),
    ('Oedema โ€” from allergic reaction\n(Angioneurotic)', 'Apis', 'Natrum Mur, Urtica Urens', 'Rhus Tox, Astacus'),
    ('Oedema โ€” Pitting', 'Apis, Arsenicum', 'Digitalis, Lycopodium', 'Natrum Mur, Ferrum Met'),
    ('Oedema โ€” Non-pitting\n(Myxoedema / Lymphoedema)', 'Calcarea Carb, Graphites', 'Natrum Mur, Silicea', 'Thyroidinum, Conium'),
    ('Oedema โ€” Post-scarlatinal', 'Apis, Helleborus', 'Colchicum, Bryonia', 'Dulcamara, Terebinthina'),
    ('Oedema โ€” Premenstrual / Cyclical', 'Pulsatilla', 'Natrum Mur, Sepia', 'Lachesis, Folliculinum'),
    ('Dropsy โ€” from abuse of alcohol\n(Hepatic)', 'Lycopodium, Nux Vomica', 'Arsenic, Muriatic Acid', 'Sulphur, Lachesis'),
    ('Oedema โ€” Pregnancy', 'Apis, Pulsatilla', 'Natrum Mur, Kali Carb', 'Bryonia, Sepia'),
]

tbl = sl.shapes.add_table(len(rep_rows), 4,
    Inches(0.12), Inches(1.4), Inches(13.09), Inches(5.7)).table
for i, cw in enumerate([3.1, 3.33, 3.33, 3.33]):
    tbl.columns[i].width = Inches(cw)
for r_i, rd in enumerate(rep_rows):
    hdr = r_i == 0
    bg = C_GOLD if hdr else (C_DARKBLUE if r_i % 2 == 1 else C_MID)
    tc = C_BG if hdr else C_WHITE
    for c_i, txt in enumerate(rd):
        cell = tbl.cell(r_i, c_i)
        set_cell_bg(cell, bg)
        bold = hdr or c_i == 0
        color = tc if not (c_i == 1 and not hdr) else C_YELLOW
        set_cell_text(cell, txt, size=9.5 if not hdr else 10, bold=bold, color=color)
ref_bar(sl, '๐Ÿ“– Kent JT. Repertory of the Homeopathic Materia Medica | Boericke W. Pocket Manual 9e | Murphy R. Lotus Materia Medica')

# โ”€โ”€ SLIDE 50: References
sl = add_slide()
add_rect(sl, 0, 0, 13.33, 7.5, C_BG)
add_title_bar(sl, 'REFERENCES')

ref_col1 = [
    ('HOMEOPATHIC MATERIA MEDICA', C_GOLD, [
        '1. Boericke W. Pocket Manual of Homoeopathic Materia Medica, 9th Edition.',
        '2. Allen HC. Keynotes and Characteristics with Comparisons of Some of the Leading Remedies.',
        '3. Clarke JH. A Dictionary of Practical Materia Medica (3 Vols.).',
        '4. Kent JT. Repertory of the Homeopathic Materia Medica.',
        '5. Kent JT. Lectures on Homeopathic Materia Medica.',
        '6. Murphy R. Lotus Materia Medica, 3rd Edition.',
        '7. Hpathy.com. Homeopathy for Dropsical Affections / Oedema. Dr. Manish Bhatia.',
        '8. kavithakhomeo.com. Water Retention and Homeopathy.',
    ]),
    ('CONVENTIONAL MEDICINE REFERENCES', C_HEADER, [
        '9. Harrison\'s Principles of Internal Medicine, 22nd Edition (2025). McGraw-Hill.',
        '10. Goldman-Cecil Medicine, 26th Edition. Elsevier.',
        '11. Brenner and Rector\'s The Kidney, 10th Edition. Elsevier.',
        '12. Braunwald\'s Heart Disease, 12th Edition. Elsevier.',
        '13. Comprehensive Clinical Nephrology, 7e (Feehally et al.). Elsevier.',
        '14. Grainger & Allison\'s Diagnostic Radiology. Elsevier.',
        '15. Robbins & Kumar Basic Pathology, 11e. Elsevier.',
    ]),
    ('JOURNAL / ONLINE REFERENCES', C_GREEN, [
        '16. Ellison DH, Felker GM. Diuretic Treatment in HF. NEJM 2017;377:1964.',
        '17. Ponikowski P et al. 2016 ESC Guidelines โ€” Heart Failure. Eur Heart J 2016.',
        '18. KDIGO 2021 Glomerular Diseases Guideline.',
        '19. WHO. Lymphatic Filariasis Fact Sheet, 2022.',
        '20. similia.io. Arsenicum Album: Complete Remedy Profile for Practitioners.',
    ]),
]

for col_i, (section, hcol, refs) in enumerate(ref_col1):
    x = 0.2 + col_i * 4.37
    add_rect(sl, x, 0.88, 4.1, 0.42, hcol)
    add_textbox(sl, section, x + 0.1, 0.9, 3.9, 0.38, size=10, bold=True, color=C_BG)
    for ri, ref in enumerate(refs):
        y = 1.38 + ri * 0.74
        add_textbox(sl, ref, x + 0.05, y, 4.0, 0.7, size=9, color=C_LGRAY)


prs.save(OUT)
print(f'โœ… Saved: {OUT}')
print(f'Total slides: {len(prs.slides)}')
Running Command

cd /tmp/workspace/oedema-ppt && python3 build_homeo_ppt.py 2>&1

Running Command

ls -lh /tmp/workspace/oedema-ppt/OEDEMA_HOMEOPATHIC_PAYAL_PARMAR.pptx

Your corrected presentation with Homeopathic Materia Medica is ready!

OEDEMA HOMEOPATHIC PAYAL PARMAR

Presentation ยท PPTX


What's New โ€” 15 Added Slides (Total: 50 Slides)

All original 35 slides kept. New slides added from Slide 36 onward:

๐Ÿ”ฌ INVESTIGATIONS (Slides 36โ€“39)

SlideContent
36Section Divider
37Master Investigations Table โ€” 13 categories: urine, renal, cardiac markers, thyroid, haematology, imaging (CXR, Echo, USG, Doppler), filariasis screen
38Differential Flowchart โ€” Cardiac vs Renal vs Hepatic investigations side by side (3-column)
39Nephrotic vs Nephritic Comparison Table โ€” 14-row detailed comparison

๐ŸŒฟ HOMEOPATHIC MATERIA MEDICA (Slides 40โ€“50)

SlideContent
40Section Divider โ€” Homeopathic Materia Medica (with classical sources)
41Remedy Selection Principle + Overview grid of remedies grouped by cause (cardiac/renal/hepatic/inflammatory/nutritional/lymphatic)
42APIS MELLIFICA โ€” Keynotes, indications (nephrotic/angioneurotic/ascites), aggravation (heat), amelioration (cold), potency, relations
43ARSENICUM ALBUM โ€” Waxy skin, restless anxiety, after-midnight aggravation, cardiac + renal dropsy, potency 30Cโ€“1M
44APOCYNUM CANNABINUM + DIGITALIS PURPUREA โ€” Cardiac dropsy, thirst distresses heart (Apocynum), slow feeble pulse + scrotum oedema (Digitalis)
45LYCOPODIUM + HELLEBORUS NIGER โ€” Hepatic ascites (upper emaciated + lower swollen) + anasarca with stupor
46BRYONIA + RHUS TOX + DULCAMARA + COLCHICUM โ€” Inflammatory oedema remedies in 4-column detail
47ACETIC ACID + CALCAREA CARB + NATRUM MUR + SULPHUR + PULSATILLA โ€” Nutritional/constitutional/hormonal oedema
48Master Comparison Table โ€” All 12 remedies, type, keynotes, worse, better, potency in one table
49Repertory Table โ€” Kent's/Boericke's rubrics: Dropsy (General/Cardiac/Renal/Hepatic), Oedema (ankle/face/pitting/non-pitting/pregnancy/premenstrual) with Grade 1/2/3 remedies
50References โ€” 20 references: Boericke, Allen, Clarke, Kent, Murphy, hpathy.com + conventional medical textbooks

Sources used: Boericke's Pocket Manual of Homoeopathic Materia Medica (9e) - Allen's Keynotes and Characteristics - Clarke's Dictionary of Practical Materia Medica - Kent's Repertory - Murphy's Lotus Materia Medica - hpathy.com

CAN YOU MAKE LIKE FOR EXAMPLE IN CARDIAC OEDEMA JUST FOR EXAMPLE WE START WITH RIGHT HEART FAILURE SO WE ALREADY HAVE PATHO PHYSIOLOGY IN CHART FORM U HAVE TO ADD WHICH INVESTIGATION WHY TO ADVISE FINDINGS IN RELATION WITH PATHOPHYSIOLOGY AND WHEN TO ADVISE AND ALSO MENTION IMPORTANT HOMEOPATHIC REMEDIES WHICH ARE GONNA USE IN THAT CONDITION IN RELATION TO PATHOPHYSIOLOGY AND WHERE HOW ITS GONNA ACT AND IMPORTANT SYMPTOMS AND WHY THAT SYMPTOM OCCURS AND COMPARE AND CONTRAST ATLEAST 4-5 REMEDIES FOR EACH IN DETAIL

Searching the Web

homeopathic remedies right heart failure oedema Digitalis Apocynum Strophanthus Cactus mechanism cardiac pathophysiology keynotes compare

Searching the Web

homeopathic remedies nephrotic syndrome renal oedema Apis Arsenicum Helleborus Terebinthina symptoms pathophysiology compare contrast

Searching the Web

homeopathic remedies hepatic oedema cirrhosis ascites Lycopodium Muriatic acid Cardus marianus Chelidonium China comparison keynotes

Writing File

~/oedema-ppt/build_integrated_ppt.py

"""
OEDEMA INTEGRATED PPT
For each condition:
  1. Pathophysiology flowchart (already exists โ€“ these are NEW slides we ADD)
  2. Investigations linked to pathophysiology (why / when / expected findings)
  3. Homeopathic Materia Medica โ€“ 4-5 remedies per condition
     - Where it acts (organ/mechanism)
     - Key symptoms + WHY they occur (linked to patho)
     - Compare & contrast table
"""
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
from pptx.oxml.ns import qn
from lxml import etree

SRC = '/tmp/workspace/attachments/8fefbaa9-e98f-43f4-8e0b-a4fef60ca73e/OEDEMA PAYAL PARMAR.pptx'
OUT = '/tmp/workspace/oedema-ppt/OEDEMA_INTEGRATED_FINAL.pptx'

prs = Presentation(SRC)

# โ”€โ”€โ”€ COLOURS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
C_BG       = RGBColor(0x0D, 0x1B, 0x2A)
C_DKBLUE   = RGBColor(0x02, 0x36, 0x5E)
C_MID      = RGBColor(0x02, 0x4E, 0x7C)
C_TEAL     = RGBColor(0x00, 0xB4, 0xD8)
C_WHITE    = RGBColor(0xFF, 0xFF, 0xFF)
C_YELLOW   = RGBColor(0xFF, 0xD6, 0x00)
C_GOLD     = RGBColor(0xFF, 0xA5, 0x00)
C_GREEN    = RGBColor(0x06, 0xD6, 0xA0)
C_ORANGE   = RGBColor(0xFF, 0x77, 0x22)
C_PINK     = RGBColor(0xFF, 0x4D, 0x6D)
C_LGRAY    = RGBColor(0xD0, 0xEA, 0xFF)
C_PURPLE   = RGBColor(0x9B, 0x59, 0xB6)
C_LIME     = RGBColor(0xAA, 0xFF, 0x00)
C_CREAM    = RGBColor(0xFF, 0xF0, 0xC8)

def add_slide():
    layout = prs.slide_layouts[6]  # Blank
    return prs.slides.add_slide(layout)

def rect(sl, l, t, w, h, rgb, line=False):
    s = sl.shapes.add_shape(1, Inches(l), Inches(t), Inches(w), Inches(h))
    s.fill.solid(); s.fill.fore_color.rgb = rgb
    if not line: s.line.fill.background()
    else: s.line.color.rgb = rgb
    return s

def tb(sl, text, l, t, w, h, sz=11, bold=False, color=C_WHITE,
       align=PP_ALIGN.LEFT, italic=False):
    x = sl.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h))
    x.text_frame.word_wrap = True
    tf = x.text_frame; tf.clear()
    p = tf.paragraphs[0]; p.alignment = align
    r = p.add_run(); r.text = text
    r.font.size = Pt(sz); r.font.bold = bold
    r.font.italic = italic; r.font.color.rgb = color
    return x

def hdr(sl, title, subtitle=''):
    rect(sl, 0, 0, 13.33, 7.5, C_BG)
    rect(sl, 0, 0, 13.33, 0.82, C_DKBLUE)
    tb(sl, title, 0.25, 0.06, 12.8, 0.48, sz=20, bold=True, color=C_TEAL)
    if subtitle:
        tb(sl, subtitle, 0.25, 0.52, 12.8, 0.28, sz=9.5, color=C_LGRAY, italic=True)

def ref(sl, text):
    rect(sl, 0, 7.18, 13.33, 0.3, RGBColor(0x01, 0x15, 0x28))
    tb(sl, text, 0.25, 7.19, 12.9, 0.27, sz=8.5, color=C_LGRAY)

def cellbg(cell, rgb):
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    sf = etree.SubElement(tcPr, qn('a:solidFill'))
    sg = etree.SubElement(sf, qn('a:srgbClr'))
    sg.set('val', f'{rgb[0]:02X}{rgb[1]:02X}{rgb[2]:02X}')

def celltxt(cell, text, sz=9.5, bold=False, color=C_WHITE, align=PP_ALIGN.LEFT):
    tf = cell.text_frame; tf.word_wrap = True; tf.clear()
    p = tf.paragraphs[0]; p.alignment = align
    r = p.add_run(); r.text = text
    r.font.size = Pt(sz); r.font.bold = bold; r.font.color.rgb = color

def mktable(sl, rows_data, l, t, w, h, col_widths, hdr_bg=C_TEAL, hdr_fg=C_BG):
    n_rows = len(rows_data); n_cols = len(rows_data[0])
    tbl = sl.shapes.add_table(n_rows, n_cols, Inches(l), Inches(t), Inches(w), Inches(h)).table
    for i, cw in enumerate(col_widths):
        tbl.columns[i].width = Inches(cw)
    for ri, rd in enumerate(rows_data):
        is_hdr = ri == 0
        bg = hdr_bg if is_hdr else (C_DKBLUE if ri % 2 == 1 else C_MID)
        fg = hdr_fg if is_hdr else C_WHITE
        sz = 10 if is_hdr else 9.5
        for ci, txt in enumerate(rd):
            cell = tbl.cell(ri, ci)
            cellbg(cell, bg)
            celltxt(cell, txt, sz=sz, bold=is_hdr, color=fg)
    return tbl

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  SECTION DIVIDER: INTEGRATED CLINICO-HOMEOPATHIC APPROACH
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, C_BG)
rect(sl, 0, 2.9, 13.33, 0.07, C_TEAL)
tb(sl, '๐Ÿ”—  INTEGRATED APPROACH', 0.5, 1.6, 12.3, 0.9, sz=36, bold=True,
   color=C_TEAL, align=PP_ALIGN.CENTER)
tb(sl, 'Pathophysiology  โ†’  Investigations  โ†’  Homeopathic Materia Medica',
   0.5, 3.05, 12.3, 0.55, sz=18, color=C_YELLOW, align=PP_ALIGN.CENTER)
tb(sl, 'Each condition explained with: WHY the investigation is needed | WHAT the finding means in context of pathophysiology\n'
        'Which homeopathic remedy acts | WHERE it acts | WHY that symptom occurs | Compare & Contrast of 4โ€“5 remedies',
   0.5, 3.75, 12.3, 0.8, sz=13, color=C_LGRAY, align=PP_ALIGN.CENTER, italic=True)

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  RIGHT HEART FAILURE (RHF) OEDEMA
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

# โ”€โ”€ RHF Slide 1: Section header
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, RGBColor(0x08, 0x10, 0x1A))
rect(sl, 0, 2.8, 13.33, 0.07, C_PINK)
tb(sl, 'โค๏ธ  RIGHT HEART FAILURE โ€” OEDEMA', 0.5, 1.7, 12.3, 0.9, sz=34, bold=True,
   color=C_PINK, align=PP_ALIGN.CENTER)
tb(sl, 'Pathophysiology  โ€ข  Investigations  โ€ข  Homeopathic Materia Medica',
   0.5, 2.95, 12.3, 0.55, sz=16, color=C_LGRAY, align=PP_ALIGN.CENTER)

# โ”€โ”€ RHF Slide 2: Pathophysiology flowchart + investigations linked to each step
sl = add_slide()
hdr(sl, 'RHF OEDEMA โ€” PATHOPHYSIOLOGY LINKED TO INVESTIGATIONS',
    'Each step of the pathophysiological cascade and which investigation it triggers โ€” WHY and WHEN to order it')

# Pathophysiology chain (left side, vertical)
patho_steps = [
    ('โ†“ Right Ventricular Output', C_PINK,  0.2, 0.95),
    ('โ†‘ Systemic Venous Pressure', C_ORANGE, 0.2, 1.95),
    ('โ†‘ Capillary Hydrostatic Pressure', C_GOLD, 0.2, 2.95),
    ('RAAS Activation (Reninโ†’AngIIโ†’Aldo)', RGBColor(0xA0,0x00,0xA0), 0.2, 3.95),
    ('Naโบ & Hโ‚‚O Retention by Kidneys', C_TEAL, 0.2, 4.95),
    ('OEDEMA FORMATION (Peripheral)', C_GREEN, 0.2, 5.95),
]
for label, col, lx, ly in patho_steps:
    rect(sl, lx, ly, 3.5, 0.72, col)
    tb(sl, label, lx+0.1, ly+0.1, 3.3, 0.55, sz=10.5, bold=True, color=C_BG)

# Arrows between patho steps
for i in range(5):
    tb(sl, 'โ–ผ', 0.8, 1.73 + i*1.0, 1.5, 0.25, sz=13, bold=True, color=C_WHITE, align=PP_ALIGN.CENTER)

# Investigation boxes (right side, linked by arrows)
inv_data = [
    ('ECG / Echocardiography',
     'WHY: โ†“ RV output โ†’ identify RV dysfunction, tricuspid regurgitation, pulmonary HTN\n'
     'WHEN: First investigation ordered in any suspected cardiac oedema\n'
     'FINDINGS: RV dilatation, paradoxical septal motion, TR, โ†“ RVEF; '
     'ECG: Right axis deviation, P-pulmonale, RBBB',
     C_PINK, 4.0, 0.88),

    ('JVP Assessment + CVP',
     'WHY: โ†‘ Systemic venous P โ†’ JVP raised; reflects right atrial pressure\n'
     'WHEN: Bedside โ€” first clinical examination finding\n'
     'FINDINGS: JVP elevated (>4 cm above sternal angle); Kussmaul\'s sign in constrictive',
     C_ORANGE, 4.0, 1.88),

    ('BNP / NT-proBNP',
     'WHY: Ventricular wall stretch from fluid overload โ†’ BNP released\n'
     'WHEN: When cardiac oedema is suspected; differentiates cardiac from non-cardiac\n'
     'FINDINGS: BNP >100 pg/mL = cardiac; NT-proBNP >300 pg/mL; higher = worse prognosis',
     C_GOLD, 4.0, 2.88),

    ('Serum Electrolytes + Renin/Aldosterone',
     'WHY: RAAS activation โ†’ Naโบ retention, Kโบ loss, elevated aldosterone\n'
     'WHEN: At baseline and to monitor diuretic treatment\n'
     'FINDINGS: Hyponatraemia (dilutional), hypokalaemia; โ†‘ serum aldosterone; โ†‘ renin',
     RGBColor(0xA0,0x00,0xA0), 4.0, 3.88),

    ('Urine Naโบ + Urine Output (24hr)',
     'WHY: Kidneys retain Naโบ/Hโ‚‚O โ†’ urine Naโบ is low; shows renal response to RAAS\n'
     'WHEN: Confirms renal retention; guides diuretic response\n'
     'FINDINGS: Urine Naโบ <20 mEq/L; oliguria (UO <400 ml/day); โ†‘ urine osmolality',
     C_TEAL, 4.0, 4.88),
]
for title, detail, col, lx, ly in inv_data:
    rect(sl, lx, ly, 9.1, 0.82, col)
    tb(sl, title, lx+0.1, ly+0.04, 9.0, 0.28, sz=10.5, bold=True, color=C_BG)
    rect(sl, lx, ly+0.3, 9.1, 0.52, C_DKBLUE)
    tb(sl, detail, lx+0.1, ly+0.32, 8.9, 0.48, sz=9, color=C_WHITE)

# Additional
rect(sl, 4.0, 5.88, 9.1, 0.82, C_GREEN)
tb(sl, 'Chest X-Ray (CXR)', 4.1, 5.9, 9.0, 0.28, sz=10.5, bold=True, color=C_BG)
rect(sl, 4.0, 6.18, 9.1, 0.52, C_DKBLUE)
tb(sl, 'WHY: Oedema โ†’ cardiomegaly, pleural effusion, Kerley B lines | FINDINGS: CTR>0.5, bilateral pleural effusions, '
        'engorged pulmonary vessels | WHEN: With every acute presentation', 4.1, 6.2, 8.9, 0.48, sz=9, color=C_WHITE)

ref(sl, '๐Ÿ“– Braunwald\'s Heart Disease 12e | Harrison\'s Principles of Internal Medicine 22e | Fuster & Hurst\'s The Heart 15e')

# โ”€โ”€ RHF Slide 3: Additional investigations table (Liver/Renal impairment from congestion)
sl = add_slide()
hdr(sl, 'RHF OEDEMA โ€” SECONDARY INVESTIGATION FINDINGS (Congestive Effects)',
    'Raised JVP โ†’ backward pressure โ†’ hepatic/renal congestion โ†’ these investigations reflect it')

rect(sl, 0.2, 0.9, 12.93, 0.42, RGBColor(0x4A,0x00,0x1A))
tb(sl, '๐Ÿ”ด KEY CONCEPT: RHF causes backward congestion โ†’ โ†‘ venous pressure โ†’ hepatic venous congestion (congestive hepatopathy) '
       'โ†’ raised bilirubin + AST/ALT. Also โ†’ renal venous HTN โ†’ cardiorenal syndrome โ†’ โ†‘ creatinine.',
   0.3, 0.92, 12.7, 0.38, sz=10, color=C_WHITE)

rows = [
    ('INVESTIGATION', 'PATHOPHYSIOLOGICAL LINK', 'EXPECTED FINDING', 'CLINICAL SIGNIFICANCE'),
    ('Liver Function Tests\n(LFT: ALT/AST/Bilirubin)', 'โ†‘ Hepatic venous P โ†’ Zone 3 centrilobular necrosis (congestive hepatopathy)',
     'โ†‘ AST/ALT (mild-moderate); โ†‘ bilirubin\nAlkaline phosphatase โ†‘\nNot like viral hepatitis โ€” ALT usually <200', 'Confirms congestive hepatopathy; "cardiac hepatitis" in acute failure'),
    ('Serum Albumin', 'Hepatic congestion โ†’ โ†“ albumin synthesis; malabsorption', 'Low-normal albumin (2.8โ€“3.5 g/dL)\nSevere CCF: may be <3 g/dL', 'Worsens oedema if albumin falls โ€” reduces oncotic pressure too'),
    ('Renal Function (eGFR,\nCreatinine, BUN/Cr ratio)', 'โ†“ Cardiac output โ†’ โ†“ RBF โ†’ Cardiorenal Syndrome type 1',
     'Creatinine โ†‘; BUN:Cr >20 (pre-renal)\neGFR โ†“; Urine Na <20 mEq/L', 'Cardiorenal syndrome โ€” guides diuretic intensity and monitoring'),
    ('Uric Acid', 'Renal hypoperfusion โ†’ โ†“ uric acid excretion; diuretic use โ†’ โ†‘', 'โ†‘ Serum urate (>7 mg/dL)', 'Marker of renal underperfusion; risk of gout flare with diuretics'),
    ('Haematology (CBC)', 'Congestion โ†’ dilutional anaemia; poor erythropoiesis', 'Normocytic anaemia; raised WBC if infection; raised HCT if dehydrated', 'Anaemia worsens cardiac output; infection can precipitate acute decompensation'),
    ('Thyroid Function (TSH)', 'Hypothyroidism = common cause; hyperthyroid โ†’ AF โ†’ CCF', 'TSH โ†‘ โ†’ hypothyroid CCF\nTSH โ†“ โ†’ hyperthyroid AF-induced CCF', 'Thyroid is reversible cause โ€” always screen in new CCF'),
    ('USG Abdomen (Hepatic\nVeins + IVC Doppler)', 'โ†‘ RAP โ†’ Hepatic venous congestion โ†’ loss of pulsatility',
     'Dilated IVC >21mm, <50% collapse\nHepatic veins dilated; โ†‘ RI\nAscites if severe', 'Confirms raised RAP; hepatic vein Doppler shows blunted waveform in CCF'),
    ('D-Dimer + DVT Screen', 'Immobility + venous stasis + CCF = Virchow\'s triad โ†’ DVT risk',
     'D-Dimer โ†‘; Wells score >2 โ†’ Doppler\nDeep vein non-compressible = DVT', 'DVT can precipitate/worsen RHF by causing acute pulmonary embolism'),
]
mktable(sl, rows, 0.18, 1.4, 12.97, 5.65,
        [2.1, 3.6, 3.3, 3.97], hdr_bg=C_PINK, hdr_fg=C_BG)
ref(sl, '๐Ÿ“– Braunwald\'s Heart Disease 12e | Goldman-Cecil Medicine | Comprehensive Clinical Nephrology 7e | Harrison\'s 22e')

# โ”€โ”€ RHF Slide 4: Homeopathic Remedies Section Header
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, C_BG)
rect(sl, 0, 2.85, 13.33, 0.07, C_GOLD)
tb(sl, '๐ŸŒฟ  HOMEOPATHIC MATERIA MEDICA', 0.5, 1.7, 12.3, 0.9, sz=30, bold=True,
   color=C_GOLD, align=PP_ALIGN.CENTER)
tb(sl, 'RIGHT HEART FAILURE โ€” CARDIAC OEDEMA', 0.5, 2.65, 12.3, 0.55, sz=20, bold=True,
   color=C_PINK, align=PP_ALIGN.CENTER)
tb(sl, 'Remedies acting on the cardiovascular-renal axis\nWhere they act | Why symptoms occur | Pathophysiology-linked keynotes',
   0.5, 3.35, 12.3, 0.7, sz=14, color=C_LGRAY, align=PP_ALIGN.CENTER, italic=True)
tb(sl, 'Key remedies: Digitalis Purpurea โ€ข Apocynum Cannabinum โ€ข Arsenicum Album โ€ข Strophanthus Hispidus โ€ข Cactus Grandiflorus',
   0.5, 4.2, 12.3, 0.55, sz=13, color=C_TEAL, align=PP_ALIGN.CENTER)

# โ”€โ”€ RHF Slide 5: DIGITALIS + APOCYNUM โ€” detailed with patho link
sl = add_slide()
hdr(sl, 'RHF HOMEOPATHIC REMEDY โ€” DIGITALIS PURPUREA (Foxglove)',
    'Acts on: Cardiac muscle (vagal stimulation) | Renal tubules | Vascular tone')

# Left: mechanism + symptoms linked to patho
rect(sl, 0.2, 0.9, 6.3, 0.42, C_PINK)
tb(sl, 'โš™๏ธ WHERE & HOW IT ACTS (Pathophysiology Link)', 0.3, 0.92, 6.1, 0.38, sz=11.5, bold=True, color=C_BG)
mech_text = (
    'Digitalis (in homeopathic potency) stimulates the VAGUS nerve โ†’ slows conduction through AV node '
    'โ†’ improves diastolic filling time โ†’ โ†‘ stroke volume.\n\n'
    'Acts on RENAL TUBULES โ†’ enhances Naโบ excretion (diuretic effect in homeopathic doses).\n\n'
    'In RHF: โ†“ cardiac output โ†’ slow, weak, irregular pulse โ†’ Digitalis symptom picture matches exactly.\n\n'
    'Note: In crude/pharmacological dose, Digitalis glycosides (digoxin) are positive inotropes; '
    'in ultra-dilute homeopathic potency, the SIMILAR symptom picture (slow feeble heart, dropsy) guides prescription.'
)
rect(sl, 0.2, 1.38, 6.3, 2.5, C_DKBLUE)
tb(sl, mech_text, 0.3, 1.4, 6.1, 2.45, sz=9.5, color=C_WHITE)

rect(sl, 0.2, 3.95, 6.3, 0.42, C_PINK)
tb(sl, '๐Ÿ”‘ KEY SYMPTOMS & WHY THEY OCCUR', 0.3, 3.97, 6.1, 0.38, sz=11.5, bold=True, color=C_BG)
symptoms = [
    ('Slow, feeble, intermittent pulse', 'โ†“ RV output โ†’ โ†“ CO โ†’ baroreceptor response; vagal dominance โ†’ bradycardia'),
    ('Feels heart will stop on motion', 'Exertion โ†’ โ†‘ demand on failing heart โ†’ palpitation/arrest fear'),
    ('Scanty, dark urine', 'โ†“ renal perfusion from โ†“ CO โ†’ oliguria; dark = concentrated + bilirubin (congestive hepatopathy)'),
    ('Scrotum + penis oedema', 'โ†‘ systemic venous P โ†’ dependent lymphatic congestion in loose genitalia'),
    ('Desire for deep breath / dyspnoea', 'Pulmonary venous congestion + pleural effusion โ†’ reduced lung compliance'),
    ('Faintness on slightest motion', 'โ†“ CO โ†’ cerebral hypoperfusion; orthostatic hypotension on exertion'),
]
for i, (sym, why) in enumerate(symptoms):
    y = 4.44 + i * 0.5
    rect(sl, 0.2, y, 6.3, 0.45, C_DKBLUE if i%2==0 else C_MID)
    tb(sl, f'โ€ข {sym}', 0.3, y+0.03, 3.3, 0.38, sz=9.5, bold=True, color=C_PINK)
    tb(sl, why, 3.6, y+0.03, 2.8, 0.38, sz=9, color=C_LGRAY)

# Right: APOCYNUM CANNABINUM
rect(sl, 6.8, 0.9, 6.3, 0.42, C_GREEN)
tb(sl, '๐ŸŒฟ APOCYNUM CANNABINUM (Indian Hemp)', 6.9, 0.92, 6.1, 0.38, sz=11.5, bold=True, color=C_BG)
apo_mech = (
    'Acts on HEART (โ†“ pulse rate, โ†‘ BP), SEROUS MEMBRANES, and KIDNEYS (diuretic).\n\n'
    'Cymarin (active principle) โ†’ lowers pulse rate + causes diuresis โ†’ ideal for CHF dropsy.\n\n'
    'RHF pathophysiology: โ†“ CO โ†’ venous congestion โ†’ serous effusions (ascites, hydrothorax) '
    'โ†’ Apocynum acts on this exact cascade.\n\n'
    'Unlike Digitalis (vagal effect on AV node), Apocynum acts primarily on CARDIAC MUSCLE '
    'directly reducing rate and increasing renal output โ†’ drains effusions.'
)
rect(sl, 6.8, 1.38, 6.3, 2.5, C_DKBLUE)
tb(sl, apo_mech, 6.9, 1.4, 6.1, 2.45, sz=9.5, color=C_WHITE)

rect(sl, 6.8, 3.95, 6.3, 0.42, C_GREEN)
tb(sl, '๐Ÿ”‘ KEY SYMPTOMS & WHY THEY OCCUR', 6.9, 3.97, 6.1, 0.38, sz=11.5, bold=True, color=C_BG)
apo_syms = [
    ('Great thirst โ€” but drinking distresses heart', 'Naโบ retention โ†’ thirst; but fluid โ†’ โ†‘ preload โ†’ palpitation/distress'),
    ('"Gone" feeling at pit of stomach', 'Splanchnic venous congestion โ†’ epigastric fullness/emptiness'),
    ('Diminished pulse frequency (keynote)', 'Cardiac depression from poor output โ†’ vagal dominance โ†’ slow rate'),
    ('Scanty turbid urine', 'โ†“ RBF + RAAS โ†’ oliguria; turbid = protein + RBCs (cardiorenal syndrome)'),
    ('Ascites + hydrothorax + anasarca', 'โ†‘ systemic venous P โ†’ transudation into all serous cavities'),
    ('Cannot tolerate food; nausea + vomiting', 'Mesenteric venous congestion โ†’ GI stasis โ†’ nausea (cardiorenal axis)'),
]
for i, (sym, why) in enumerate(apo_syms):
    y = 4.44 + i * 0.5
    rect(sl, 6.8, y, 6.3, 0.45, C_DKBLUE if i%2==0 else C_MID)
    tb(sl, f'โ€ข {sym}', 6.9, y+0.03, 3.3, 0.38, sz=9.5, bold=True, color=C_GREEN)
    tb(sl, why, 10.2, y+0.03, 2.8, 0.38, sz=9, color=C_LGRAY)

rect(sl, 0.2, 7.17, 13.0, 0.25, RGBColor(0x01,0x15,0x28))
tb(sl, '๐Ÿ“– Boericke W. Pocket Manual of Materia Medica 9e | Allen HC. Keynotes | hpathy.com Heart Therapeutics | homeopathicmd.com', 0.3, 7.18, 12.9, 0.22, sz=8.5, color=C_LGRAY)

# โ”€โ”€ RHF Slide 6: ARSENICUM + STROPHANTHUS + CACTUS โ€” mechanisms
sl = add_slide()
hdr(sl, 'RHF HOMEOPATHIC REMEDIES โ€” ARSENICUM ALBUM, STROPHANTHUS & CACTUS GRANDIFLORUS',
    'Where they act | Pathophysiology link | Why each symptom occurs')

remedies = [
    ('ARSENICUM ALBUM', C_TEAL, [
        ('Organ of Action', 'Heart, kidneys, serous membranes, vasculature โ€” all affected in RHF'),
        ('Patho Link', 'โ†“ CO โ†’ tissue hypoxia โ†’ anxiety + restlessness (hallmark); skin waxy from โ†“ perfusion'),
        ('Burning in oedematous parts', 'Serum proteins in interstitium โ†’ inflammatory mediators โ†’ burning sensation'),
        ('Thirst โ€” small sips frequently', 'RAAS โ†’ ADH โ†’ thirst; but โ†‘ fluid worsens congestion โ†’ small sips only'),
        ('Worse 1โ€“2 AM', 'Cardiac output is lowest at night; vagal tone peaks โ†’ nocturnal worsening'),
        ('Aggravation cold, better heat', 'Peripheral vasoconstriction โ†’ โ†‘ afterload โ†’ worsens failing heart; warmth โ†“ afterload'),
        ('Potency', '30Cโ€“200C; constitutional; especially post-myocardial failure with restlessness'),
    ]),
    ('STROPHANTHUS HISPIDUS', C_GOLD, [
        ('Organ of Action', 'Direct cardiac muscle (like Digitalis but SAFER โ€” no cumulative effect); renal tubules'),
        ('Patho Link', 'Acts on failing heart with dilatation โ†’ โ†‘ cardiac contractility without affecting vascular tone'),
        ('No gastric distress (vs Digitalis)', 'Strophanthin does not cross BBB or cause GI vagal stimulation โ†’ safer'),
        ('Greater diuretic effect than Digitalis', 'Directly increases renal blood flow + tubular Naโบ excretion โ†’ drains oedema'),
        ('Safe for elderly / debilitated', 'โ†“ vaso-motor effects โ†’ doesn\'t drop BP suddenly; preferred in aged cardiac patients'),
        ('Cardiac dropsy from alcoholic heart', 'Alcoholic cardiomyopathy โ†’ dilated ventricles โ†’ Strophanthus picture'),
        ('Potency', 'Mother tincture or 3X; 7 drops tincture; for cardiac insufficiency with dropsy'),
    ]),
    ('CACTUS GRANDIFLORUS', C_ORANGE, [
        ('Organ of Action', 'Cardiac musculature (myocardium + endocardium) + pulmonary vessels'),
        ('Patho Link', 'Constriction/spasm of heart โ†’ as if iron hand clutching โ†’ simulates tamponade/pericarditis patho'),
        ('Constriction sensation in heart', 'Cardiac dilatation + โ†‘ end-diastolic volume โ†’ stretch pain sensation'),
        ('Oedema of hands + feet + heart', 'Pulmonary venous HTN (LHF component) โ†’ swelling begins distally'),
        ('Palpitations on lying left side', 'Altered cardiac geometry when lying left โ†’ changes stroke volume โ†’ awareness'),
        ('Haemorrhagic tendency', 'Endothelial stretch from โ†‘ pressure โ†’ microvascular extravasation'),
        ('Potency', '6Cโ€“30C; cardiac oedema with constriction feeling, pericardial effusion'),
    ]),
]

for col_i, (name, hcol, items) in enumerate(remedies):
    x = 0.2 + col_i * 4.37
    rect(sl, x, 0.9, 4.1, 0.45, hcol)
    tb(sl, name, x+0.08, 0.92, 3.95, 0.4, sz=11, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, (label, detail) in enumerate(items):
        y = 1.42 + ri * 0.86
        rect(sl, x, y, 4.1, 0.79, C_DKBLUE if ri%2==0 else C_MID)
        tb(sl, label, x+0.1, y+0.03, 3.9, 0.28, sz=9.5, bold=True, color=hcol)
        tb(sl, detail, x+0.1, y+0.3, 3.9, 0.47, sz=9, color=C_WHITE)

ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | Allen HC. Keynotes | hpathy.com | homeopathicmd.com CVD Homeopathy')

# โ”€โ”€ RHF Slide 7: Compare & Contrast Table โ€” all 5 remedies
sl = add_slide()
hdr(sl, 'RHF OEDEMA โ€” COMPARE & CONTRAST: 5 HOMEOPATHIC REMEDIES',
    'Select the remedy matching the TOTALITY of symptoms โ€” not just the oedema alone')

rows = [
    ('FEATURE', 'DIGITALIS', 'APOCYNUM', 'ARSENICUM', 'STROPHANTHUS', 'CACTUS'),
    ('Source', 'Foxglove\n(Digitalis purpurea)', 'Indian Hemp\n(Apocynum cannabinum)', 'Arsenic trioxide\n(Asโ‚‚Oโ‚ƒ)', 'Strophanthus hispidus\n(West African vine)', 'Night-blooming cactus\n(Selenicereus)'),
    ('Primary cardiac action', 'Vagal stimulation\nโ†’ โ†“ heart rate', 'Direct myocardial\n+ diuretic', 'Peripheral vascular\n+ cardiac muscle', 'Direct cardiac muscle\n(no vagal effect)', 'Myocardial spasm\n+ constriction'),
    ('Pulse character', 'Slow, feeble,\ninterMITTENT (stops)\nworse on motion', 'Slow, diminished\nfrequency โ€” keynote;\nirregular', 'Rapid, weak,\nirregular;\nworse midnight', 'Slow, weak;\nno gastric issues', 'Feeble, irregular;\nconstricted feeling'),
    ('Urine character', 'Scanty, dark\n(conc. bilirubin+protein)', 'Scanty, turbid, hot;\nthirst with distress', 'Scanty, albuminous;\nโ†‘ burning on pass', 'Markedly increased\n(diuretic effect)', 'Decreased; dark;\noedema persists'),
    ('Thirst', 'Not prominent', 'GREAT thirst but\ndrinking causes\ndistress to heart', 'Thirst โ€” small sips\nfrequently', 'Not prominent', 'Not prominent'),
    ('Oedema location', 'Scrotum, penis,\nlower limbs;\nascites', 'Ascites, hydrothorax,\nanasarca; ankles', 'Face (periorbital);\nabdomen; generalised', 'Generalised dropsy;\ncardiac',  'Hands + feet;\npericard. effusion'),
    ('Dyspnoea', 'Desire for deep breath;\ncannot lie down', 'Difficult breathing;\nworse lying on back', 'Worse after midnight;\nwants to sit up', 'Panting; rapid;\nshort breath', 'Suffocative cough;\ncardiac asthma'),
    ('Mental state', 'Great sadness,\nmelancholy; fear', 'Drowsy; stupor;\nconfusion', 'Restless, anxious;\nfear of death;\ncannot be alone', 'Despondent;\nweak; prostrated', 'Sadness;\nmelancholy;\ngloomy'),
    ('Modalities', 'Worse: motion\nBetter: rest, empty stomach', 'Worse: cold\nBetter: warmth (mild)', 'Worse: midnight,cold\nBetter: heat, company', 'Worse: exertion\nBetter: rest', 'Worse: lying L side\nBetter: open air'),
    ('Potency range', '3X trituration;\n6Cโ€“30C', 'Mother tincture;\n3Xโ€“6X', '30C, 200C, 1M', 'Mother tincture;\n3X (7 drops)', '6Cโ€“30C'),
    ('Best for', 'Valvular heart disease;\nmitral regurgitation', 'Cardiac + renal\ndropsy; AF-related', 'Post-cardiac failure\nwith anxiety; renal\noedema also', 'Alcoholic heart;\naged patients;\nsafer than Digitalis', 'Pericardial effusion;\nCHF with constriction'),
]
mktable(sl, rows, 0.12, 0.9, 13.09, 6.5,
        [1.6, 2.28, 2.28, 2.28, 2.28, 2.37],
        hdr_bg=C_GOLD, hdr_fg=C_BG)
ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | Allen HC. Keynotes | Clarke JH. Dictionary Practical MM | Kent JT. Repertory | hpathy.com')

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  NEPHROTIC SYNDROME โ€” RENAL OEDEMA
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

# โ”€โ”€ Section header
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, RGBColor(0x08, 0x10, 0x1A))
rect(sl, 0, 2.8, 13.33, 0.07, C_TEAL)
tb(sl, '๐Ÿซ˜  NEPHROTIC SYNDROME โ€” RENAL OEDEMA', 0.5, 1.7, 12.3, 0.9, sz=30, bold=True,
   color=C_TEAL, align=PP_ALIGN.CENTER)
tb(sl, 'Pathophysiology  โ€ข  Investigations  โ€ข  Homeopathic Materia Medica',
   0.5, 2.95, 12.3, 0.55, sz=16, color=C_LGRAY, align=PP_ALIGN.CENTER)

# โ”€โ”€ Nephrotic Slide 1: Patho + Investigations
sl = add_slide()
hdr(sl, 'NEPHROTIC SYNDROME โ€” PATHOPHYSIOLOGY LINKED TO INVESTIGATIONS',
    'GBM damage โ†’ proteinuria โ†’ hypoalbuminaemia โ†’ โ†“ oncotic pressure โ†’ oedema')

# Left โ€” patho steps
neph_patho = [
    ('GBM Damage / Podocyte Injury', C_TEAL, 0.2, 0.95),
    ('Massive Proteinuria (โ‰ฅ3.5 g/day)', C_ORANGE, 0.2, 1.95),
    ('Hypoalbuminaemia (<3 g/dL)', C_GOLD, 0.2, 2.95),
    ('โ†“ Plasma Oncotic Pressure', C_PINK, 0.2, 3.95),
    ('Fluid shift to interstitium', RGBColor(0xA0,0x00,0xA0), 0.2, 4.95),
    ('OEDEMA โ€” generalised / periorbital', C_GREEN, 0.2, 5.95),
]
for label, col, lx, ly in neph_patho:
    rect(sl, lx, ly, 3.5, 0.72, col)
    tb(sl, label, lx+0.1, ly+0.1, 3.3, 0.55, sz=10.5, bold=True, color=C_BG)
for i in range(5):
    tb(sl, 'โ–ผ', 0.8, 1.73 + i*1.0, 1.5, 0.25, sz=13, bold=True, color=C_WHITE, align=PP_ALIGN.CENTER)

# Right โ€” investigations linked
neph_inv = [
    ('Urine Protein (Dipstick / 24hr / PCR)',
     'WHY: GBM damage โ†’ protein leaks into urine โ†’ confirms nephrotic range\n'
     'WHEN: FIRST test in any patient with periorbital/generalised oedema\n'
     'FINDINGS: Dipstick โ‰ฅ3+; 24hr protein โ‰ฅ3.5 g/day; PCR >300 mg/mmol', C_TEAL),
    ('Urine Microscopy',
     'WHY: Podocyte injury โ†’ oval fat bodies + fatty casts (lipiduria) in urine\n'
     'WHEN: Alongside dipstick; differentiates nephrotic from nephritic\n'
     'FINDINGS: Oval fat bodies; fatty casts; lipiduria (Maltese cross on polarised light)', C_ORANGE),
    ('Serum Albumin + Total Protein',
     'WHY: Protein loss in urine โ†’ liver cannot compensate synthesis โ†’ albumin falls\n'
     'WHEN: To quantify oncotic pressure deficit; guides albumin infusion decision\n'
     'FINDINGS: Albumin <3.0 g/dL (may be as low as 1.5 g/dL in severe nephrotic)', C_GOLD),
    ('Serum Lipid Profile (Cholesterol, TG)',
     'WHY: โ†“ Oncotic P โ†’ โ†‘ hepatic lipoprotein synthesis (compensatory) โ†’ hyperlipidaemia\n'
     'WHEN: Part of nephrotic workup; elevated lipids confirm nephrotic state\n'
     'FINDINGS: Total cholesterol >250 mg/dL; โ†‘ LDL; lipiduria (fat droplets in urine)', C_PINK),
    ('Serum Creatinine + eGFR',
     'WHY: Nephrotic โ†’ RAAS activation โ†’ renal vasoconstriction โ†’ GFR may fall\n'
     'WHEN: Baseline + monitoring; creatinine rise = progression to nephrotic-nephritic overlap\n'
     'FINDINGS: Early: normal; later: โ†‘ creatinine if sclerosis/acute on chronic', RGBColor(0xA0,0x00,0xA0)),
    ('Renal Biopsy',
     'WHY: Identify histological type โ†’ guides specific treatment\n'
     'WHEN: Adults (always); children if steroid-resistant after 4โ€“8 weeks\n'
     'FINDINGS: MCD (effacement), FSGS (segmental sclerosis), Membranous GN (spikes), Diabetic (KW nodules)', C_GREEN),
]
for idx, (title, detail, col) in enumerate(neph_inv):
    ly = 0.88 + idx * 1.06
    rect(sl, 3.88, ly, 9.22, 0.36, col)
    tb(sl, title, 3.98, ly+0.03, 9.1, 0.3, sz=10.5, bold=True, color=C_BG)
    rect(sl, 3.88, ly+0.36, 9.22, 0.65, C_DKBLUE)
    tb(sl, detail, 3.98, ly+0.38, 9.1, 0.62, sz=9, color=C_WHITE)

ref(sl, '๐Ÿ“– Brenner & Rector\'s The Kidney 10e | Comprehensive Clinical Nephrology 7e | Harrison\'s 22e | Robbins & Kumar Pathology')

# โ”€โ”€ Nephrotic Slide 2: Homeopathic remedies
sl = add_slide()
hdr(sl, 'NEPHROTIC SYNDROME โ€” HOMEOPATHIC MATERIA MEDICA (4 KEY REMEDIES)',
    'Each remedy linked to the pathophysiological mechanisms of nephrotic syndrome')

rem_data = [
    ('APIS MELLIFICA', C_TEAL, [
        ('Acts on', 'Glomerular basement membrane + serous membranes + skin'),
        ('Patho Link', 'GBM injury โ†’ protein leak โ†’ bag-like periorbital puffiness; Apis simulates GBM inflammation (stinging/burning = podocyte injury pattern)'),
        ('Periorbital puffiness (AM)', 'Fluid redistribution: lying flat โ†’ face dependent โ†’ oedema accumulates periorbital at night, most visible AM'),
        ('Albuminuria + milky urine', 'GBM damage โ†’ albumin + protein in filtrate โ†’ turbid, milky urine'),
        ('No thirst despite oedema', 'Total body Naโบ โ†‘ but intravascular depletion; paradoxically no thirst (unique to Apis)'),
        ('Stinging-burning in oedematous parts', 'Protein-rich interstitial fluid โ†’ inflammatory cytokines โ†’ stinging sensation at skin level'),
        ('Potency', '30C for acute; 200C if chronic; worse heat โ†’ cold applications โ†’ characteristic Apis'),
    ]),
    ('ARSENICUM ALBUM', C_ORANGE, [
        ('Acts on', 'Kidneys (tubular + glomerular), cardiovascular system, serous membranes'),
        ('Patho Link', 'Proteinuria + hypoalbuminaemia โ†’ fluid in peritoneum + face; Arsenicum covers the waxy, pale, oedematous look of nephrotic patient'),
        ('Puffiness of face + eyelids', 'Hypoalbuminaemia โ†’ โ†“ oncotic P โ†’ periorbital loose tissue fills first โ†’ puffiness'),
        ('Waxy, transparent skin', 'Severe hypoalbuminaemia + anaemia โ†’ pallid, waxy appearance (mimics nephrotic facies)'),
        ('Ascites + anasarca', 'Progressive oncotic pressure deficit โ†’ serous cavity effusion; Arsenicum = all cavities'),
        ('Restlessness + anxiety', 'Hypovolaemia (despite oedema) โ†’ sympathetic activation โ†’ restlessness, fear of death'),
        ('Potency', '30Cโ€“200C; suitable when oedema + extreme weakness + anxiety present'),
    ]),
    ('APOCYNUM CANNABINUM', C_GREEN, [
        ('Acts on', 'Serous membranes, kidney (diuretic), cardiac muscle (slows pulse)'),
        ('Patho Link', 'NS โ†’ โ†“ albumin โ†’ serous effusions (ascites, hydrothorax); RAAS โ†’ oliguria; Apocynum directly counters these via diuretic action'),
        ('Thirst with scanty urine', 'RAAS โ†’ ADH โ†’ thirst; but kidneys in Naโบ-retaining mode โ†’ oliguria; Apocynum diuresis corrects this'),
        ('Ascites + hydrothorax + anasarca', 'Oncotic P deficit โ†’ transudation into all serous cavities; Apocynum targets all simultaneously'),
        ('Nausea + vomiting + drowsiness', 'Uraemic tendency in severe NS โ†’ GI symptoms; splanchnic venous congestion from low albumin'),
        ('Cannot tolerate food', 'Hypoproteinaemia โ†’ GI mucosal oedema โ†’ absorption impaired โ†’ intolerance to food'),
        ('Potency', 'Mother tinctureโ€“6X for acute NS; note: use freshly prepared'),
    ]),
    ('TEREBINTHINA (Turpentine)', C_PURPLE, [
        ('Acts on', 'Renal parenchyma โ€” glomeruli + tubules; urinary tract epithelium'),
        ('Patho Link', 'Direct renal action โ†’ clears albuminuria + haematuria early; indicated in ACUTE onset NS/nephritis'),
        ('Smoky, cloudy urine + albuminuria', 'Glomerular injury โ†’ RBCs + albumin โ†’ smoky appearance; Terebinthina = exact picture'),
        ('Burning, drawing pain around kidney', 'Renal parenchymal inflammation (capsular stretch) โ†’ loin pain characteristic'),
        ('Drowsiness prominent', 'Early uraemia from reduced GFR โ†’ cerebral depression โ†’ drowsiness (not yet coma)'),
        ('Tenesmus of bladder + scanty urine', 'Urinary tract oedema/congestion โ†’ dysuria + frequency + suppression tendency'),
        ('Potency', '6Cโ€“30C; specifically for ACUTE nephritis/NS with smoky urine and burning loin pain'),
    ]),
]
for col_i, (name, hcol, items) in enumerate(rem_data):
    x = 0.18 + col_i * 3.28
    rect(sl, x, 0.9, 3.1, 0.42, hcol)
    tb(sl, name, x+0.08, 0.92, 2.95, 0.38, sz=10.5, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, (label, detail) in enumerate(items):
        y = 1.38 + ri * 0.88
        rect(sl, x, y, 3.1, 0.82, C_DKBLUE if ri%2==0 else C_MID)
        tb(sl, label, x+0.08, y+0.03, 2.95, 0.28, sz=9.5, bold=True, color=hcol)
        tb(sl, detail, x+0.08, y+0.3, 2.95, 0.5, sz=8.5, color=C_WHITE)
ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | ijrrjournal.com NS Homeopathy | homeopathydoctors.in | Allen HC. Keynotes')

# โ”€โ”€ Nephrotic Slide 3: Compare & Contrast
sl = add_slide()
hdr(sl, 'NEPHROTIC SYNDROME โ€” COMPARE & CONTRAST: 4 HOMEOPATHIC REMEDIES',
    'Differentiate by: type of oedema onset | urine character | constitutional picture | modalities')

rows = [
    ('FEATURE', 'APIS MELLIFICA', 'ARSENICUM ALBUM', 'APOCYNUM CANNABINUM', 'TEREBINTHINA'),
    ('Source', 'Honey bee (Apis mellifera)', 'Arsenic trioxide (Asโ‚‚Oโ‚ƒ)', 'Indian Hemp root', 'Oil of Turpentine'),
    ('Stage of NS', 'Acute / sub-acute; inflammatory phase', 'Any stage; worse in advanced', 'Acute with serous effusions', 'EARLY / acute stage; albuminuria onset'),
    ('Oedema pattern', 'Periorbital + feet; shiny, pitting, bag-like', 'Face + abdomen; waxy pale; ascites + anasarca', 'Ascites + hydrothorax + generalised anasarca', 'Renal region tender; generalised when severe'),
    ('Urine', 'Albuminuria; milky; scanty; burning on urination', 'Albuminous; dark; scanty; oozing ulcers on legs', 'Scanty, turbid, hot; โ†“ frequency but โ†‘ desire', 'SMOKY/cloudy; albuminuria; RBCs; tenesmus'),
    ('Thirst', 'NO thirst (pathognomonic)', 'Small sips frequently', 'Great thirst but water distresses; nausea', 'Moderate; not a prominent feature'),
    ('Skin appearance', 'Rosy-red; shiny; bag-like; translucent', 'Waxy, pale, transparent', 'Puffy, pale, dull', 'Not prominent (renal focus)'),
    ('Pain', 'Stinging-burning in oedema', 'Burning pain; better heat', 'Epigastric โ€” "gone feeling"', 'BURNING drawing pain in loins/kidneys โ€” KEY'),
    ('Associated features', 'Urticaria; fever; oliguria; no thirst; intolerant of heat', 'Weakness; restlessness; anxiety; fear of death', 'Nausea/vomiting; drowsy; cannot eat; slow pulse', 'Drowsiness; tenesmus; haematuria; ascites when advanced'),
    ('Worse', 'Heat; touch; right side; afternoon', 'After midnight; cold; exertion', 'Cold; uncovering', 'Cold; night; lying down'),
    ('Better', 'Cold; open air; uncovering', 'Warmth; company; hot drinks', 'Warmth; mild', 'Motion; warmth'),
    ('Potency', '30C acute; 200C chronic', '30Cโ€“200Cโ€“1M', 'MTโ€“6X', '6Cโ€“30C'),
    ('Differentiating keynote', '"Bag-like puffiness" + NO THIRST + worse heat', 'Waxy skin + anxiety + midnight aggravation', 'Thirst DISTRESSES HEART + serous effusions', 'SMOKY urine + burning kidney pain + drowsy'),
]
mktable(sl, rows, 0.12, 0.9, 13.09, 6.5,
        [2.0, 2.77, 2.77, 2.77, 2.78],
        hdr_bg=C_TEAL, hdr_fg=C_BG)
ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | Allen HC. Keynotes and Characteristics | Kent JT. Repertory | Clarke JH. Dict. of Practical MM')

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  HEPATIC OEDEMA (CIRRHOSIS / ASCITES)
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

# โ”€โ”€ Section header
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, RGBColor(0x08, 0x10, 0x1A))
rect(sl, 0, 2.8, 13.33, 0.07, C_GREEN)
tb(sl, '๐Ÿซ  HEPATIC OEDEMA โ€” CIRRHOSIS & ASCITES', 0.5, 1.7, 12.3, 0.9, sz=30, bold=True,
   color=C_GREEN, align=PP_ALIGN.CENTER)
tb(sl, 'Pathophysiology  โ€ข  Investigations  โ€ข  Homeopathic Materia Medica',
   0.5, 2.95, 12.3, 0.55, sz=16, color=C_LGRAY, align=PP_ALIGN.CENTER)

# โ”€โ”€ Hepatic Slide 1: Patho + Investigations
sl = add_slide()
hdr(sl, 'HEPATIC OEDEMA (CIRRHOSIS) โ€” PATHOPHYSIOLOGY LINKED TO INVESTIGATIONS',
    'Fibrosis โ†’ portal HTN โ†’ โ†“ albumin โ†’ vasodilation โ†’ RAAS โ†’ Naโบ retention โ†’ ascites + peripheral oedema')

hep_patho = [
    ('Hepatic Fibrosis + Nodule Formation', C_GREEN, 0.2, 0.95),
    ('โ†‘ Portal Venous Resistance โ†’ Portal HTN', C_ORANGE, 0.2, 1.95),
    ('Splanchnic Vasodilation (โ†‘ NO)', C_GOLD, 0.2, 2.95),
    ('โ†“ Effective Arterial Volume โ†’ RAAS โ†‘', C_PINK, 0.2, 3.95),
    ('โ†“ Albumin Synthesis by Liver', RGBColor(0xA0,0x00,0xA0), 0.2, 4.95),
    ('ASCITES + Peripheral Oedema', C_TEAL, 0.2, 5.95),
]
for label, col, lx, ly in hep_patho:
    rect(sl, lx, ly, 3.5, 0.72, col)
    tb(sl, label, lx+0.1, ly+0.1, 3.3, 0.55, sz=10, bold=True, color=C_BG)
for i in range(5):
    tb(sl, 'โ–ผ', 0.8, 1.73 + i*1.0, 1.5, 0.25, sz=13, bold=True, color=C_WHITE, align=PP_ALIGN.CENTER)

hep_inv = [
    ('LFT Panel (ALT/AST/Bilirubin/ALP/GGT)',
     'WHY: Hepatic fibrosis โ†’ hepatocyte injury โ†’ raised enzymes; โ†“ synthetic function\n'
     'WHEN: First investigation in suspected liver disease\n'
     'FINDINGS: โ†‘ Bilirubin; โ†‘ AST/ALT (usually AST>ALT in cirrhosis); โ†‘ ALP; โ†‘ GGT; โ†“ albumin; prolonged PT/INR', C_GREEN),
    ('Serum Albumin + PT/INR (Synthetic Function)',
     'WHY: Cirrhotic hepatocytes fail to synthesise albumin + clotting factors โ†’ โ†“ oncotic P โ†’ ascites\n'
     'WHEN: At presentation and monthly monitoring\n'
     'FINDINGS: Albumin <3.5 g/dL; INR >1.5; Low platelet (hypersplenism); Low fibrinogen', C_ORANGE),
    ('USG Abdomen + Portal Doppler',
     'WHY: Portal HTN โ†’ enlarged portal vein, splenomegaly, ascites, collateral vessels\n'
     'WHEN: Once clinical ascites suspected (fluid thrill, shifting dullness)\n'
     'FINDINGS: Portal vein >13mm; Splenomegaly; Reversal of portal flow (advanced); Ascites; Hepatic vein blunting', C_GOLD),
    ('SAAG (Serum-Ascites Albumin Gradient)',
     'WHY: Differentiates portal HTN (transudate) from other causes (exudate) of ascites\n'
     'WHEN: Always on FIRST diagnostic paracentesis\n'
     'FINDINGS: SAAG โ‰ฅ1.1 g/dL = Portal HTN (cirrhosis, CCF, Budd-Chiari); <1.1 = Malignancy, TB peritonitis', C_PINK),
    ('CBC + Haematology (Platelets + CBC)',
     'WHY: Splenomegaly (portal HTN) โ†’ sequestration โ†’ pancytopenia; anaemia from malnutrition\n'
     'WHEN: Baseline; platelets predict variceal bleeding risk\n'
     'FINDINGS: Thrombocytopenia (<150,000); Anaemia (normocytic); Leucopenia; โ†‘ ESR; Prolonged PT', RGBColor(0xA0,0x00,0xA0)),
    ('Endoscopy (OGD) / Elastography',
     'WHY: Portal HTN โ†’ oesophageal varices (bleeding risk); elastography grades fibrosis\n'
     'WHEN: All cirrhosis patients for variceal screening; elastography to grade fibrosis stage\n'
     'FINDINGS: Grade Iโ€“IV varices; Fibroscan >12 kPa = cirrhosis; >20 kPa = high variceal risk', C_TEAL),
]
for idx, (title, detail, col) in enumerate(hep_inv):
    ly = 0.88 + idx * 1.065
    rect(sl, 3.88, ly, 9.22, 0.35, col)
    tb(sl, title, 3.98, ly+0.03, 9.1, 0.3, sz=10.5, bold=True, color=C_BG)
    rect(sl, 3.88, ly+0.35, 9.22, 0.66, C_DKBLUE)
    tb(sl, detail, 3.98, ly+0.37, 9.1, 0.62, sz=9, color=C_WHITE)
ref(sl, '๐Ÿ“– Sleisenger & Fordtran\'s Gastrointestinal and Liver Disease | Harrison\'s 22e | Brenner & Rector\'s Kidney | Grainger & Allison Radiology')

# โ”€โ”€ Hepatic Slide 2: Homeopathic remedies
sl = add_slide()
hdr(sl, 'HEPATIC OEDEMA โ€” HOMEOPATHIC MATERIA MEDICA (5 KEY REMEDIES)',
    'Remedies linked to cirrhotic ascites, portal HTN, hepatic failure โ€” where they act + why symptoms occur')

rem_hep = [
    ('LYCOPODIUM\nCLAVATUM', C_GREEN, [
        ('Acts on', 'Liver (right lobe predominance) + digestive system + kidneys + lymphatics'),
        ('Patho Link', 'Cirrhosis โ†’ right lobe atrophy โ†’ Lycopodium is RIGHT-sided; liver congestion โ†’ portal HTN โ†’ ascites'),
        ('Upper body emaciated + lower body swollen', 'Protein malnutrition (โ†“ albumin) โ†’ muscle wasting above; portal HTN โ†’ fluid below'),
        ('One foot cold, other hot', 'Asymmetric vascular tone from portal HTN โ†’ unequal peripheral perfusion โ€” KEYNOTE'),
        ('Dark, albuminous urine', 'Cardiorenal/hepatorenal axis โ†’ โ†“ renal perfusion โ†’ concentrated urine + albumin leak'),
        ('4โ€“8 PM aggravation', 'Hepatic glycogen depletion (end of metabolic cycle) โ†’ worsening of all symptoms 4โ€“8 PM'),
        ('Potency', '30C constitutional; 200C for chronic cirrhotic ascites'),
    ]),
    ('CARDUS MARIANUS\n(Milk Thistle)', C_ORANGE, [
        ('Acts on', 'Hepatic parenchyma + portal venous system + biliary tract'),
        ('Patho Link', 'Silymarin principle โ†’ hepatoprotective โ†’ reduces portal pressure; indicated in alcoholic/toxic cirrhosis'),
        ('Soreness in liver region', 'Hepatic capsular stretch from hepatomegaly + portal congestion โ†’ pain'),
        ('Jaundice + biliary symptoms', 'Cholestasis from fibrosis โ†’ โ†‘ bilirubin โ†’ jaundice; Cardus acts on bile flow'),
        ('Dropsical conditions from liver', 'Reduced albumin + portal HTN โ†’ ascites; specific hepatic focus distinguishes from Lycopodium'),
        ('Varicose veins + haemorrhage', 'Portal HTN โ†’ varices; Cardus has haemostatic action on portal venous system'),
        ('Potency', 'Mother tincture 10โ€“20 drops + 3Xโ€“6C; abuse of alcohol; beer especially'),
    ]),
    ('CHELIDONIUM\nMAJUS', RGBColor(0xFF,0xC0,0x00), [
        ('Acts on', 'Liver, bile ducts, gallbladder, right lung'),
        ('Patho Link', 'Bile stasis (cholestasis from fibrosis) โ†’ Chelidonium most specific liver remedy; right hypochondrium pain'),
        ('Right-sided all complaints', 'Right lobe affected first in cirrhosis; right shoulder pain (referred from liver); right-sided pattern throughout'),
        ('Yellow skin + clay-coloured stools', 'Biliary obstruction/cholestasis โ†’ bilirubin โ†‘ โ†’ jaundice; acholic stools from bile flow stoppage'),
        ('Tongue yellow, coated', 'Hepatic dysfunction โ†’ bile reflux โ†’ yellow coated tongue (direct hepatic sign)'),
        ('Worse 4 AM and 4 PM', 'Bile flow varies diurnally; liver most active at 4 AM โ†’ pain peaks; coincides with Lycopodium 4 PM pattern'),
        ('Potency', '6X tincture or 3Cโ€“6C; acute liver pathology; always consider alongside Lycopodium'),
    ]),
    ('MURIATIC ACID', C_PURPLE, [
        ('Acts on', 'Mucous membranes, liver (parenchyma in decompensated cirrhosis), rectal sphincters'),
        ('Patho Link', 'Decompensated cirrhosis โ†’ hepatic encephalopathy (drowsiness), malabsorption, severe emaciation โ†’ Muriatic Acid picture'),
        ('Drowsiness + emaciation', 'Hepatic encephalopathy (โ†‘ ammonia from liver failure) + protein catabolism โ†’ stupor + muscle wasting'),
        ('Involuntary stool + watery diarrhoea', 'Hepatic failure โ†’ gut mucosal oedema + portal colopathy โ†’ anal sphincter weakness'),
        ('Dry mouth + aphthae', 'Dehydration + poor hepatic glycogen โ†’ oral mucosal changes; aphthae in severe portal disease'),
        ('Weak, irritable stomach', 'Portal hypertensive gastropathy + gastric mucosal congestion โ†’ poor digestion'),
        ('Potency', '6Cโ€“30C; end-stage cirrhosis with encephalopathy; emaciation + drowsiness are key guides'),
    ]),
    ('NATRUM SULPH\n(Nat-s)', C_TEAL, [
        ('Acts on', 'Liver, pancreas, spleen, kidneys โ€” organs of fluid/salt metabolism'),
        ('Patho Link', 'Natrum Sulph is the BIOCHEMIC liver remedy; acts on liver Naโบ/fluid balance; indicated in liver-driven oedema with watery diarrhoea'),
        ('Bilious vomiting + yellow-green diarrhoea', 'Cholestasis + portal congestion โ†’ bile in GI tract โ†’ bilious character'),
        ('Asthmatic breathing at 4โ€“5 AM', 'Hepatic dysfunction โ†’ fluid redistribution at night โ†’ pulmonary oedema at 4 AM โ€” portal-pulmonary axis'),
        ('Worse in damp weather', 'Natrum Sulph = water + salt balance; damp weather โ†’ โ†‘ fluid retention โ†’ worsens hepatic oedema'),
        ('Ascites with flatulence', 'Portal HTN โ†’ mesenteric venous congestion โ†’ gaseous distension + ascites together'),
        ('Potency', '6X biochemic dose; 30Cโ€“200C constitutional; particularly for cirrhosis after trauma or damp exposure'),
    ]),
]
for col_i, (name, hcol, items) in enumerate(rem_hep):
    x = 0.18 + col_i * 2.6
    rect(sl, x, 0.9, 2.45, 0.42, hcol)
    tb(sl, name, x+0.05, 0.92, 2.35, 0.38, sz=9.5, bold=True, color=C_BG, align=PP_ALIGN.CENTER)
    for ri, (label, detail) in enumerate(items):
        y = 1.38 + ri * 0.88
        rect(sl, x, y, 2.45, 0.82, C_DKBLUE if ri%2==0 else C_MID)
        tb(sl, label, x+0.07, y+0.03, 2.3, 0.26, sz=9, bold=True, color=hcol)
        tb(sl, detail, x+0.07, y+0.3, 2.3, 0.5, sz=8.5, color=C_WHITE)
ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | homoeopathicjournal.com Liver Cirrhosis | pmc.ncbi.nlm.nih.gov Viral Hepatitis Homeopathy | hpathy.com Ascites')

# โ”€โ”€ Hepatic Slide 3: Compare & Contrast
sl = add_slide()
hdr(sl, 'HEPATIC OEDEMA โ€” COMPARE & CONTRAST: 5 HOMEOPATHIC REMEDIES',
    'Differentiate by: specific organ emphasis | characteristic symptoms | constitutional picture')

rows = [
    ('FEATURE', 'LYCOPODIUM', 'CARDUS MARIANUS', 'CHELIDONIUM', 'MURIATIC ACID', 'NATRUM SULPH'),
    ('Primary organ focus', 'Liver (right lobe) + GI + kidneys', 'Liver + portal system + bile', 'Liver + bile ducts + right lung', 'Decompensated liver + mucous membranes', 'Liver + pancreas + fluid balance'),
    ('Ascites character', 'Lower body swollen; upper emaciated; right predominance', 'Dropsical conditions from liver + portal venous', 'Ascites secondary to biliary obstruction', 'Severe ascites in decompensated; watery stools', 'Ascites + flatulence; worse damp weather'),
    ('Pain pattern', 'Shooting right โ†’ left abdomen', 'Soreness in liver region; left lobe region also', 'Right hypochondrium โ†’ right shoulder (referred)', 'Less pain; more stupor + weakness', 'Painful liver; left-sided chest also'),
    ('Jaundice', 'Can occur in hepatic cirrhosis', 'Jaundice + biliary symptoms', 'PROMINENT jaundice; clay stools; KEYNOTE', 'Present in severe liver failure', 'Bilious โ€” yellowish coloured'),
    ('Stool character', 'Constipation alternating diarrhoea; hard; incomplete', 'Alternating diarrhoea + constipation', 'Light-coloured/clay stools from bile obstruction', 'Watery, involuntary; sphincter weakness', 'Bilious diarrhoea; yellowish-green; 4โ€“5 AM'),
    ('Urine', 'Dark, albuminous; red sand sediment', 'Dark; may show haematuria in advanced', 'Dark, bilious; profuse flow; clear after pain', 'Turbid; decreased; uraemic tendency', 'Dark; โ†‘ or โ†“; bilious character'),
    ('Worse time', '4โ€“8 PM (most characteristic)', 'Not time-specific; worse exertion', '4 AM and 4 PM', 'Night; damp cold', '4โ€“5 AM; damp weather; wet seasons'),
    ('Mental state', 'Cowardly, anticipatory anxiety; intellectual decline', 'Irritable; morose; worse emotional stress', 'Not prominent; physically focused', 'Unconscious-like stupor; does not speak', 'Suicidal tendency in chronic disease; melancholy'),
    ('Best suited for', 'Alcoholic cirrhosis; functional liver decline; dropsy', 'Beer/alcohol-related; varicose veins; portal HTN', 'Biliary cirrhosis; RUQ pain; jaundice', 'End-stage cirrhosis; hepatic encephalopathy', 'Damp-climate cirrhosis; bilious type; traumatic liver injury'),
    ('Compare to', 'Chelidonium (both right-sided liver) โ€” Lyco more constitutional', 'Carduus more portal-specific; Chelidonium more bile-specific', 'Lycopodium shares right-side; Chelidonium adds jaundice', 'China (also emaciation + dropsy but not as collapsed)', 'Lycopodium (4PM); Sulphur (skin + liver)'),
    ('Potency', '30Cโ€“200C', 'MT or 3Xโ€“6C', '6Xโ€“6Cโ€“30C', '6Cโ€“30C', '6X biochemic; 30Cโ€“200C'),
]
mktable(sl, rows, 0.12, 0.9, 13.09, 6.5,
        [1.8, 2.25, 2.25, 2.25, 2.25, 2.29],
        hdr_bg=C_GREEN, hdr_fg=C_BG)
ref(sl, '๐Ÿ“– Boericke W. Pocket Manual 9e | Clarke JH. Dictionary of Practical Materia Medica | Kent JT. Repertory | homoeopathicjournal.com')

# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
#  REFERENCES
# โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
sl = add_slide()
rect(sl, 0, 0, 13.33, 7.5, C_BG)
rect(sl, 0, 0, 13.33, 0.78, C_DKBLUE)
tb(sl, 'REFERENCES', 0.3, 0.1, 12.7, 0.6, sz=22, bold=True, color=C_TEAL)

ref_data = [
    ('HOMEOPATHIC MM & REPERTORY', C_GOLD, [
        '1. Boericke W. Pocket Manual of Homoeopathic Materia Medica, 9th Edition.',
        '2. Allen HC. Keynotes and Characteristics with Comparisons of the Leading Remedies.',
        '3. Clarke JH. A Dictionary of Practical Materia Medica (3 Volumes).',
        '4. Kent JT. Repertory of the Homeopathic Materia Medica.',
        '5. Murphy R. Lotus Materia Medica, 3rd Edition.',
        '6. hpathy.com โ€“ Dropsical Affections/Oedema; Ascites (Dr. Manish Bhatia).',
        '7. homoeopathicjournal.com โ€“ Liver Cirrhosis with Homeopathic Perspective.',
        '8. ijrrjournal.com โ€“ Nephrotic Syndrome with Utility of Homoeopathy (2023).',
        '9. homeopathicmd.com โ€“ Homeopathy for Cardiovascular Diseases.',
    ]),
    ('CONVENTIONAL MEDICINE', C_TEAL, [
        '10. Harrison\'s Principles of Internal Medicine, 22nd Edition (2025). McGraw-Hill.',
        '11. Braunwald\'s Heart Disease: A Textbook of CV Medicine, 12e. Elsevier.',
        '12. Fuster & Hurst\'s The Heart, 15th Edition. McGraw-Hill.',
        '13. Brenner & Rector\'s The Kidney, 10th Edition. Elsevier.',
        '14. Comprehensive Clinical Nephrology, 7th Edition (Feehally et al.). Elsevier.',
        '15. Sleisenger & Fordtran\'s Gastrointestinal and Liver Disease. Elsevier.',
        '16. Robbins & Kumar Basic Pathology, 11e. Elsevier.',
        '17. Grainger & Allison\'s Diagnostic Radiology. Elsevier.',
        '18. Goldman-Cecil Medicine, 26e. Elsevier.',
    ]),
    ('JOURNAL REFERENCES', C_GREEN, [
        '19. Ellison DH, Felker GM. Diuretic Treatment in Heart Failure. NEJM 2017;377:1964.',
        '20. Edema formation in CHF & underlying mechanisms. PMC9553007 (PMC 2022).',
        '21. Nephrotic Syndrome: Oedema Formation & Treatment With Diuretics. PMC6341062.',
        '22. Successful Treatment of Chronic Viral Hepatitis With High-dilution Medicine. PMC3833483.',
        '23. Ponikowski P et al. 2016 ESC Guidelines โ€” Heart Failure. Eur Heart J.',
        '24. KDIGO 2021 Clinical Practice Guideline โ€“ Glomerular Diseases.',
        '25. WHO. Lymphatic Filariasis Fact Sheet, 2022.',
    ]),
]
for col_i, (section, hcol, refs) in enumerate(ref_data):
    x = 0.2 + col_i * 4.37
    rect(sl, x, 0.88, 4.1, 0.4, hcol)
    tb(sl, section, x+0.1, 0.9, 3.9, 0.35, sz=9.5, bold=True, color=C_BG)
    for ri, r in enumerate(refs):
        y = 1.35 + ri * 0.67
        tb(sl, r, x+0.07, y, 4.0, 0.63, sz=8.5, color=C_LGRAY)

# โ”€โ”€ SAVE
prs.save(OUT)
print(f'โœ…  Saved: {OUT}')
print(f'Total slides: {len(prs.slides)}')
Your credits are exhausted. You can purchase a top-up or subscribe to a plan to continue using Orris. If you're already subscribed, your daily credits will reset tomorrow.
This is a shared conversation. Sign in to Orris to start your own chat.