Give me every possible detail about mechanism types and what not features symptoms everything about edema from the standard practical textbook of medicine (hutchinson)
| Force | Direction | Effect |
|---|---|---|
| Capillary hydrostatic pressure | Outward (vascular → interstitium) | Promotes edema |
| Plasma colloid osmotic (oncotic) pressure | Inward (interstitium → vascular) | Opposes edema |
| Interstitial oncotic pressure | Outward | Promotes edema |
| Interstitial hydrostatic pressure | Inward | Opposes edema |
| Mechanism | Clinical Condition |
|---|---|
| Increased hydrostatic pressure | Congestive heart failure, constrictive pericarditis |
| Hypoalbuminemia | Cirrhosis, nephrotic syndrome, malnutrition, protein-losing enteropathy |
| Sodium/water retention | Renal failure (acute or chronic), drugs (NSAIDs, CCBs, corticosteroids) |
| Venous pooling | Inferior vena cava obstruction, bilateral DVT |
| Increased venous pressure | Hepatic vein thrombosis (Budd-Chiari) |
| Mechanism | Clinical Condition |
|---|---|
| Venous obstruction | Deep vein thrombosis (unilateral leg edema), venous insufficiency |
| Lymphatic obstruction | Filariasis, malignancy, post-mastectomy lymphedema |
| Inflammatory/allergic | Cellulitis, contact dermatitis, angioedema, insect bites |
| Lipedema | Bilateral lower limb fat deposition (non-pitting) |
| Distribution | Likely Cause |
|---|---|
| Bilateral dependent (ankles/legs) | Cardiac failure, hypoproteinemia, venous insufficiency, pregnancy |
| Sacral edema (bedridden patient) | Cardiac failure, hypoproteinemia |
| Periorbital (especially morning) | Nephrotic syndrome, hypothyroidism, angioedema |
| Unilateral leg edema | DVT, cellulitis, lymphatic obstruction, venous insufficiency |
| Ascites + peripheral edema | Cirrhosis, right heart failure, Budd-Chiari, constrictive pericarditis |
| Facial + laryngeal + urticarial | Angioedema (allergic, hereditary, ACE inhibitor-induced) |
| Arm edema post-mastectomy | Lymphedema from axillary node dissection/irradiation |
| Massive leg/genital edema | Elephantiasis (filariasis) |
| Non-pitting, pretibial | Myxedema (hypothyroidism) |
| Feature | Pitting Edema | Non-Pitting Edema |
|---|---|---|
| Pressure test | Pit remains after pressure release | No pit on pressure |
| Mechanism | Free mobile interstitial fluid | Protein deposits, fibrosis, or cellular infiltration |
| Causes | Cardiac, renal, hepatic, venous, hypoproteinemia | Lymphedema (chronic), myxedema, lipedema |
| Grade | Depth of Pit | Time to Rebound |
|---|---|---|
| 1+ | 2 mm | Immediate |
| 2+ | 4 mm | <15 seconds |
| 3+ | 6 mm | 15-60 seconds |
| 4+ | 8 mm | >60 seconds |
Note: "A Standard Practical Textbook of Medicine" by Hutchinson is not available in our textbook library database. The above is drawn from the most authoritative equivalent sources available.
Save this is memory
.txt, .md, or .docx file in the sandbox so you can download it directly.Yes make a pdf out of it
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or doesn't exist"
mkdir -p /home/daytona/workspace/edema-notes
~/edema-notes/edema_notes.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
OUTPUT = "/home/daytona/workspace/edema-notes/Edema_Complete_Notes.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2.2*cm,
title="Edema – Complete Clinical & Pathological Reference",
author="Orris Medical Library"
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
'CustomTitle', parent=styles['Title'],
fontSize=22, textColor=colors.HexColor('#1a3a5c'),
spaceAfter=6, spaceBefore=0, alignment=TA_CENTER,
fontName='Helvetica-Bold'
)
subtitle_style = ParagraphStyle(
'Subtitle', parent=styles['Normal'],
fontSize=10, textColor=colors.HexColor('#5a7a9a'),
spaceAfter=14, alignment=TA_CENTER, fontName='Helvetica-Oblique'
)
h1_style = ParagraphStyle(
'H1', parent=styles['Heading1'],
fontSize=14, textColor=colors.white,
fontName='Helvetica-Bold', spaceBefore=14, spaceAfter=4,
backColor=colors.HexColor('#1a3a5c'), leftIndent=-0.3*cm,
rightIndent=-0.3*cm, borderPadding=(5, 8, 5, 8)
)
h2_style = ParagraphStyle(
'H2', parent=styles['Heading2'],
fontSize=11, textColor=colors.HexColor('#1a3a5c'),
fontName='Helvetica-Bold', spaceBefore=10, spaceAfter=3,
borderPadding=(2,0,2,0)
)
h3_style = ParagraphStyle(
'H3', parent=styles['Heading3'],
fontSize=10, textColor=colors.HexColor('#2e6da4'),
fontName='Helvetica-BoldOblique', spaceBefore=7, spaceAfter=2
)
body_style = ParagraphStyle(
'Body', parent=styles['Normal'],
fontSize=9.5, leading=14, spaceAfter=5,
fontName='Helvetica', alignment=TA_JUSTIFY
)
bullet_style = ParagraphStyle(
'Bullet', parent=styles['Normal'],
fontSize=9.5, leading=13, spaceAfter=3,
leftIndent=14, firstLineIndent=-10,
fontName='Helvetica'
)
source_style = ParagraphStyle(
'Source', parent=styles['Normal'],
fontSize=8, textColor=colors.HexColor('#666666'),
fontName='Helvetica-Oblique', spaceAfter=4, spaceBefore=2
)
table_header_style = ParagraphStyle(
'TH', parent=styles['Normal'],
fontSize=9, fontName='Helvetica-Bold', textColor=colors.white
)
table_cell_style = ParagraphStyle(
'TC', parent=styles['Normal'],
fontSize=9, fontName='Helvetica', leading=12
)
def h1(text): return Paragraph(text, h1_style)
def h2(text): return Paragraph(text, h2_style)
def h3(text): return Paragraph(text, h3_style)
def body(text): return Paragraph(text, body_style)
def bullet(text): return Paragraph(f"• {text}", bullet_style)
def src(text): return Paragraph(text, source_style)
def sp(n=1): return Spacer(1, n * 0.3 * cm)
def rule(): return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#cccccc'), spaceAfter=4, spaceBefore=4)
def make_table(headers, rows, col_widths=None):
header_row = [Paragraph(h, table_header_style) for h in headers]
data = [header_row]
for row in rows:
data.append([Paragraph(str(c), table_cell_style) for c in row])
tbl = Table(data, colWidths=col_widths, repeatRows=1)
tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f0f5fa'), colors.white]),
('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4d8')),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('LEFTPADDING', (0,0), (-1,-1), 6),
('RIGHTPADDING', (0,0), (-1,-1), 6),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING', (0,0), (-1,-1), 4),
]))
return tbl
# ── BUILD CONTENT ──────────────────────────────────────────────────────────────
story = []
# Title block
story += [
sp(1),
Paragraph("EDEMA", title_style),
Paragraph("Complete Clinical & Pathological Reference", subtitle_style),
Paragraph("Sources: Harrison's 22E · Robbins & Kumar Basic Pathology · Ganong's Physiology · Goldman-Cecil Medicine", source_style),
HRFlowable(width="100%", thickness=2, color=colors.HexColor('#1a3a5c'), spaceAfter=10),
sp(1),
]
# 1 DEFINITION
story += [
h1("1. Definition"),
sp(),
body("Edema is the excess accumulation of interstitial fluid within tissues that becomes clinically evident. Approximately two-thirds of total body water is intracellular; one-third is extracellular. Of the extracellular fraction, roughly one-quarter is intravascular (plasma, ~5% of body weight) and three-quarters is interstitial fluid (~15% of body weight). Edema represents a pathological increase in that interstitial fraction."),
sp(),
bullet("Edema fluid may be <b>protein-poor (transudate)</b> – from hydrostatic or osmotic imbalance"),
bullet("Or <b>protein-rich (exudate)</b> – from increased vascular permeability (inflammatory edema)"),
sp(),
h2("Special Terminology"),
bullet("<b>Hydrothorax</b> – fluid in the pleural cavity"),
bullet("<b>Hydropericardium</b> – fluid in the pericardial cavity"),
bullet("<b>Hydroperitoneum (Ascites)</b> – fluid in the peritoneal cavity"),
bullet("<b>Anasarca</b> – severe, generalized edema with profound swelling of subcutaneous tissues and fluid in body cavities"),
bullet("<b>Lymphedema</b> – edema specifically from impaired lymphatic drainage"),
sp(),
]
# 2 STARLING FORCES
story += [
h1("2. Normal Fluid Exchange – Starling Forces"),
sp(),
body("Fluid movement between vascular and interstitial compartments is governed by opposing forces:"),
sp(),
make_table(
["Force", "Direction", "Effect"],
[
["Capillary hydrostatic pressure", "Outward (vascular → interstitium)", "Promotes edema"],
["Plasma colloid osmotic (oncotic) pressure", "Inward (interstitium → vascular)", "Opposes edema"],
["Interstitial oncotic pressure", "Outward", "Promotes edema"],
["Interstitial hydrostatic pressure", "Inward", "Opposes edema"],
],
col_widths=[6*cm, 6.5*cm, 4.5*cm]
),
sp(),
body("Normally, fluid outflow at the arteriolar end is nearly balanced by inflow at the venular end. The small net outflow of fluid into the interstitium is returned to the circulation via lymphatic vessels through the thoracic duct. When this balance is disrupted – or when lymphatic drainage capacity is exceeded – edema results."),
src("Harrison's Ch. 42; Robbins Basic Pathology Ch. 3"),
sp(),
]
# 3 MECHANISMS
story += [
h1("3. Mechanisms of Edema Formation"),
sp(),
h2("3.1 Increased Hydrostatic Pressure"),
body("Increased intracapillary pressure pushes more fluid into the interstitium. Mainly caused by disorders impairing venous return."),
sp(),
h3("Causes:"),
bullet("<b>Congestive heart failure (CHF):</b> Reduced cardiac output → venous pooling → increased capillary hydrostatic pressure. Reduced cardiac output also causes renal hypoperfusion → RAAS activation → secondary hyperaldosteronism → Na/water retention. The failing heart cannot increase output in response, creating a vicious cycle."),
bullet("<b>Constrictive pericarditis</b> – impairs ventricular filling"),
bullet("<b>Liver cirrhosis</b> – portal hypertension increases splanchnic hydrostatic pressure"),
bullet("<b>Venous obstruction/compression</b> – DVT, external mass"),
bullet("<b>Lower extremity inactivity with prolonged dependency</b> – loss of muscle pump"),
bullet("<b>Arteriolar dilation</b> – heat, neurohumoral dysregulation → increases downstream capillary pressure"),
sp(),
h2("3.2 Reduced Plasma Osmotic (Oncotic) Pressure – Hypoproteinemia"),
body("Albumin accounts for almost half of total plasma protein and is the dominant contributor to colloid osmotic pressure. When albumin falls, the osmotic force drawing fluid back into capillaries is weakened, causing net outflow into the interstitium."),
sp(),
h3("Causes of hypoalbuminemia:"),
bullet("<b>Nephrotic syndrome</b> – glomerular damage → albumin passes into urine (the most important cause of albuminuria)"),
bullet("<b>Severe liver disease (cirrhosis)</b> – reduced albumin synthesis"),
bullet("<b>Protein malnutrition (kwashiorkor)</b> – dietary protein deficiency"),
bullet("<b>Protein-losing gastroenteropathy</b> – enteric protein loss"),
sp(),
body("<b>Vicious cycle:</b> Low albumin → edema + reduced intravascular volume → renal hypoperfusion → secondary hyperaldosteronism → more salt and water retention → worsens edema (the retained fluid leaks out because the primary defect – low albumin – persists)."),
sp(),
h2("3.3 Lymphatic Obstruction"),
body("When lymphatic drainage is compromised, fluid accumulates in the interstitium."),
bullet("<b>Filariasis</b> – Wuchereria bancrofti causes fibrosis of inguinal lymphatics → elephantiasis (massive lower limb and genital edema)"),
bullet("<b>Neoplastic infiltration</b> – e.g., breast cancer → peau d'orange (orange-peel skin)"),
bullet("<b>Post-surgical/post-irradiation lymphedema</b> – axillary node dissection or irradiation in breast cancer → severe arm lymphedema"),
bullet("<b>Inflammatory lymphatic obstruction</b>"),
sp(),
h2("3.4 Increased Vascular Permeability (Inflammatory Edema)"),
body("Chemical mediators (histamine, bradykinin, leukotrienes, substance P) cause gaps in capillary endothelial junctions → protein-rich fluid escapes (exudate). Occurs in acute inflammation, burns, allergic reactions, anaphylaxis, sepsis."),
sp(),
h2("3.5 Sodium and Water Retention"),
body("Excessive renal retention of salt and associated water leads to edema by expanding intravascular volume (↑ hydrostatic pressure) and diluting plasma proteins (↓ osmotic pressure). Seen in poststreptococcal glomerulonephritis, acute and chronic renal failure, and states of secondary hyperaldosteronism (CHF, cirrhosis, nephrotic syndrome)."),
sp(),
h2("3.6 Damage to / Dysfunction of Capillary Endothelial Barrier"),
body("Toxins, infections, burns, immune reactions causing direct endothelial injury increase permeability."),
sp(),
h2("3.7 Increased Interstitial Oncotic Pressure"),
body("Accumulation of osmotically active substances in the interstitium draws water out of capillaries. Classic example: myxedema (hypothyroidism) with accumulation of glycosaminoglycans."),
sp(),
]
# 4 EABV
story += [
h1("4. The Effective Arterial Blood Volume (EABV) Concept"),
sp(),
body("A unifying concept in generalized edema is reduction of effective arterial blood volume (EABV) – the volume effectively perfusing the tissues. Even if total body water is expanded, the body perceives a 'volume deficit' and activates fluid-retaining mechanisms."),
sp(),
h3("Causes of reduced EABV:"),
bullet("Reduced cardiac output (heart failure)"),
bullet("Pooling of blood in splanchnic veins (cirrhosis)"),
bullet("Hypoalbuminemia"),
bullet("Reduced systemic vascular resistance (sepsis, AV fistulas)"),
sp(),
h3("Body's response to reduced EABV:"),
bullet("<b>RAAS activation</b> – angiotensin II acts on efferent arterioles → enhanced proximal tubule Na and water reabsorption; aldosterone → distal tubule Na reabsorption"),
bullet("<b>Sympathetic nervous system activation</b> – renal vasoconstriction + enhanced proximal tubule Na transport"),
bullet("<b>ADH (arginine vasopressin) release</b> – increases collecting duct water permeability"),
bullet("<b>Decreased natriuretic peptide effect</b> – ANP/BNP normally promote natriuresis; their effectiveness is blunted in severe edematous states"),
src("Harrison's Ch. 42"),
sp(),
]
# 5 CAUSES TABLE
story += [
h1("5. Causes of Edema – Complete Classification"),
sp(),
h2("Generalized Edema"),
make_table(
["Mechanism", "Clinical Condition"],
[
["Increased hydrostatic pressure", "Congestive heart failure, constrictive pericarditis"],
["Hypoalbuminemia", "Cirrhosis, nephrotic syndrome, malnutrition, protein-losing enteropathy"],
["Sodium/water retention", "Renal failure (acute or chronic), drugs (NSAIDs, CCBs, corticosteroids)"],
["Venous pooling", "Inferior vena cava obstruction, bilateral DVT"],
["Increased venous pressure", "Hepatic vein thrombosis (Budd-Chiari), constrictive pericarditis"],
],
col_widths=[7*cm, 10*cm]
),
sp(),
h2("Localized Edema"),
make_table(
["Mechanism", "Clinical Condition"],
[
["Venous obstruction", "Deep vein thrombosis (unilateral leg edema), venous insufficiency"],
["Lymphatic obstruction", "Filariasis, malignancy, post-mastectomy lymphedema"],
["Inflammatory / Allergic", "Cellulitis, contact dermatitis, angioedema, insect bites"],
["Lipedema", "Bilateral lower limb fat deposition (non-pitting)"],
],
col_widths=[7*cm, 10*cm]
),
sp(),
]
# 6 DISEASE-SPECIFIC
story += [
h1("6. Disease-Specific Edema Mechanisms"),
sp(),
h2("Cardiac Edema (Heart Failure)"),
bullet("Right heart failure → systemic venous hypertension → dependent (peripheral) edema"),
bullet("Left heart failure → pulmonary venous hypertension → pulmonary edema"),
bullet("Secondary RAAS activation worsens fluid retention in both"),
bullet("Edema is bilateral, symmetric, dependent (ankles/legs when ambulatory; sacral when bedridden)"),
sp(),
h2("Renal Edema (Nephrotic Syndrome)"),
bullet("Loss of albumin → reduced oncotic pressure"),
bullet("Often first appears as <b>periorbital edema</b> (loose connective tissue of eyelids) – characteristically worse in the morning"),
bullet("Can progress to ascites, pleural effusions, generalized anasarca"),
bullet("Sodium retention also contributes"),
sp(),
h2("Hepatic Edema (Cirrhosis)"),
bullet("Hypoalbuminemia (reduced synthesis)"),
bullet("Portal hypertension → splanchnic venous pooling"),
bullet("Reduced EABV → RAAS activation → sodium retention"),
bullet("Predominantly <b>ascites</b> (from portal hypertension); peripheral edema also occurs"),
sp(),
h2("Nutritional Edema (Kwashiorkor)"),
bullet("Protein malnutrition → hypoalbuminemia → generalized edema, often masking wasted appearance"),
sp(),
h2("Hypothyroid Edema (Myxedema)"),
bullet("Non-pitting edema"),
bullet("Accumulation of hydrophilic glycosaminoglycans (hyaluronic acid, chondroitin sulfate) in interstitium"),
bullet("Draws water osmotically"),
bullet("Characteristically involves face, hands, feet, and pretibial areas"),
sp(),
h2("Drug-Induced Edema"),
bullet("<b>Calcium channel blockers (CCBs)</b> – arteriolar dilation → increased capillary hydrostatic pressure"),
bullet("<b>NSAIDs</b> – prostaglandin inhibition → sodium retention"),
bullet("<b>Corticosteroids</b> – mineralocorticoid effect → sodium retention"),
bullet("<b>Thiazolidinediones (pioglitazone)</b> – sodium retention"),
sp(),
h2("Idiopathic Edema"),
bullet("Occurs mainly in women of reproductive age"),
bullet("Associated with upright posture – exacerbated by standing"),
bullet("Mechanism: increased capillary permeability and aldosterone hypersecretion in response to orthostatic fluid shifts"),
sp(),
]
# 7 MORPHOLOGY
story += [
h1("7. Morphology / Pathology of Edema"),
sp(),
h2("Subcutaneous (Peripheral) Edema"),
bullet("Most pronounced in <b>dependent parts</b> – greatest distance below the heart where hydrostatic pressures are highest"),
bullet("<b>Pitting edema</b> – finger pressure displaces interstitial fluid, leaving a finger-shaped depression"),
bullet("With standing: edema in ankles and legs; with recumbency: edema in sacrum (<b>dependent edema</b>)"),
bullet("Renal/nephrotic edema often first in periorbital loose connective tissue"),
sp(),
h2("Pulmonary Edema"),
bullet("Lungs are often <b>2–3 times their normal weight</b>"),
bullet("Cut surface: frothy, sometimes blood-tinged fluid (air + edema fluid + extravasated red cells)"),
bullet("Microscopy (acute): engorged alveolar capillaries, alveolar septal edema, focal intra-alveolar hemorrhage"),
bullet("Microscopy (chronic): thickened fibrotic septa + <b>hemosiderin-laden macrophages ('heart failure cells')</b>"),
bullet("Most commonly from left ventricular failure; also renal failure, ARDS, inflammatory/infectious disorders"),
sp(),
h2("Brain Edema"),
bullet("Can be localized (abscess, tumor, infarct) or generalized (anoxic injury, hypertensive crisis, metabolic)"),
bullet("Generalized: sulci narrow as gyri swell and flatten against the skull"),
bullet("<b>Vasogenic edema</b> – blood-brain barrier disruption → protein-rich fluid in white matter (tumor, inflammation)"),
bullet("<b>Cytotoxic edema</b> – cellular swelling (ischemia, water intoxication)"),
bullet("Risk of herniation and death"),
src("Robbins Basic Pathology"),
sp(),
]
# 8 CLINICAL FEATURES
story += [
h1("8. Clinical Features and Symptoms"),
sp(),
h2("Subcutaneous Edema"),
bullet("Swelling of affected region (feet, ankles, legs most common)"),
bullet("Pitting on pressure (Grade 1–4)"),
bullet("Heaviness, discomfort, tightness in affected limbs"),
bullet("Skin: shiny and taut; with chronic lymphedema → thickening, hyperkeratosis, fibrosis"),
bullet("Impaired wound healing; increased susceptibility to cellulitis"),
sp(),
h2("Pulmonary Edema"),
bullet("<b>Dyspnea</b> – first on exertion, progressing to rest"),
bullet("<b>Orthopnea</b> – dyspnea worse in recumbent position"),
bullet("<b>Paroxysmal nocturnal dyspnea (PND)</b> – sudden severe breathlessness awakening patient from sleep"),
bullet("<b>Cough</b> – frothy, pink-tinged sputum"),
bullet("<b>Crackles/crepitations</b> – bilateral basal, widespread in severe cases"),
bullet("<b>Wheeze ('cardiac asthma')</b> – bronchial mucosal edema"),
bullet("Tachypnea, hypoxia, accessory muscle use in severe cases"),
bullet("CXR: Kerley B lines, bat-wing perihilar opacification, pleural effusions, cardiomegaly"),
sp(),
h2("Periorbital Edema"),
bullet("Morning puffiness around the eyes"),
bullet("Classic in nephrotic syndrome and hypothyroidism"),
bullet("Also in angioedema (may be severe / anaphylactic)"),
sp(),
h2("Ascites"),
bullet("Abdominal distension, positive fluid thrill, shifting dullness on percussion"),
bullet("Discomfort, reduced appetite from mass effect"),
bullet("Respiratory compromise if massive"),
sp(),
h2("Brain Edema"),
bullet("Headache (raised ICP)"),
bullet("Nausea and vomiting (raised ICP)"),
bullet("Altered consciousness – confusion, drowsiness, coma"),
bullet("Focal neurological signs (herniation syndromes)"),
bullet("Papilledema on fundoscopy"),
sp(),
]
# 9 DISTRIBUTION
story += [
h1("9. Distribution of Edema – Diagnostic Value"),
sp(),
make_table(
["Distribution", "Likely Cause"],
[
["Bilateral dependent (ankles/legs)", "Cardiac failure, hypoproteinemia, venous insufficiency, pregnancy"],
["Sacral edema (bedridden patient)", "Cardiac failure, hypoproteinemia"],
["Periorbital (especially morning)", "Nephrotic syndrome, hypothyroidism, angioedema"],
["Unilateral leg edema", "DVT, cellulitis, lymphatic obstruction, venous insufficiency"],
["Ascites + peripheral edema", "Cirrhosis, right heart failure, Budd-Chiari, constrictive pericarditis"],
["Facial + laryngeal + urticarial", "Angioedema (allergic, hereditary, ACE inhibitor-induced)"],
["Arm edema post-mastectomy", "Lymphedema from axillary node dissection / irradiation"],
["Massive leg/genital edema", "Elephantiasis (filariasis)"],
["Non-pitting, pretibial", "Myxedema (hypothyroidism)"],
],
col_widths=[7.5*cm, 9.5*cm]
),
src("Harrison's Ch. 42 – Distribution of Edema"),
sp(),
]
# 10 APPROACH
story += [
h1("10. Approach to the Patient with Edema (Harrison's Framework)"),
sp(),
h3("Step 1: Is the edema localized or generalized?"),
bullet("If <b>localized</b> → identify local phenomenon (DVT, cellulitis, lymphedema, venous insufficiency)"),
bullet("If <b>generalized</b> → proceed to Step 2"),
sp(),
h3("Step 2: Is there serious hypoalbuminemia (serum albumin <3.0 g/dL)?"),
bullet("If yes → evaluate for: Cirrhosis, severe malnutrition, nephrotic syndrome"),
sp(),
h3("Step 3: Is there evidence of heart failure severe enough to cause generalized edema?"),
bullet("Assess cardiac history, JVP, S3, lung crackles, BNP/NT-proBNP"),
sp(),
h3("Step 4: Is there oliguria or anuria?"),
bullet("Suggests renal failure as the primary mechanism"),
src("Harrison's Ch. 42"),
sp(),
]
# 11 PITTING
story += [
h1("11. Pitting vs. Non-Pitting Edema"),
sp(),
make_table(
["Feature", "Pitting Edema", "Non-Pitting Edema"],
[
["Pressure test", "Pit remains after pressure release", "No pit on pressure"],
["Mechanism", "Free mobile interstitial fluid", "Protein deposits, fibrosis, or cellular infiltration"],
["Causes", "Cardiac, renal, hepatic, venous, hypoproteinemia", "Lymphedema (chronic), myxedema, lipedema"],
],
col_widths=[4.5*cm, 6.5*cm, 6*cm]
),
sp(),
body("Note: In early lymphedema, pitting can occur; with chronicity, fibrosis develops making it non-pitting."),
sp(),
h2("Grading of Pitting Edema"),
make_table(
["Grade", "Depth of Pit", "Time to Rebound"],
[
["1+", "2 mm", "Immediate"],
["2+", "4 mm", "<15 seconds"],
["3+", "6 mm", "15–60 seconds"],
["4+", "8 mm", ">60 seconds"],
],
col_widths=[4*cm, 5*cm, 8*cm]
),
sp(),
]
# 12 INVESTIGATIONS
story += [
h1("12. Investigations"),
sp(),
h2("Blood Tests"),
bullet("Serum albumin – hypoproteinemia?"),
bullet("LFTs – cirrhosis?"),
bullet("U&E, creatinine – renal failure?"),
bullet("TFTs – hypothyroidism?"),
bullet("BNP / NT-proBNP – heart failure?"),
bullet("FBC – contributing anemia?"),
bullet("Blood glucose – diabetic nephropathy?"),
sp(),
h2("Urine"),
bullet("Urinalysis: protein (nephrotic syndrome?), casts"),
bullet("24-hour urinary protein or spot protein:creatinine ratio"),
sp(),
h2("Imaging"),
bullet("Chest X-ray: cardiomegaly, pulmonary vascular congestion, Kerley B lines, pleural effusions"),
bullet("Echocardiogram: cardiac function, pericardial effusion"),
bullet("Abdominal ultrasound: ascites, hepatic structure, portal vein"),
bullet("Doppler ultrasound of legs: DVT?"),
bullet("Lymphoscintigraphy: lymphatic drainage assessment"),
sp(),
]
# 13 TREATMENT
story += [
h1("13. Treatment Principles"),
sp(),
body("Treatment targets the <b>underlying cause</b> – this is the primary first step. More general treatments include restricting dietary sodium to minimize fluid retention and using appropriate diuretic therapy."),
sp(),
h2("General Measures"),
bullet("Restrict dietary sodium"),
bullet("Elevate affected limbs (reduce hydrostatic pressure)"),
bullet("Compression stockings (venous and lymphedema)"),
sp(),
h2("Diuretics"),
bullet("<b>Loop diuretics (furosemide)</b> – first-line for cardiac, renal, hepatic edema"),
bullet("<b>Thiazide diuretics</b> – mild cardiac edema; synergistic with loop diuretics"),
bullet("<b>Potassium-sparing / Aldosterone antagonists (spironolactone)</b> – particularly useful in cirrhosis and heart failure (mortality benefit in HF)"),
sp(),
h2("Specific Treatments"),
bullet("<b>Heart failure:</b> ACE inhibitors/ARBs, beta-blockers, diuretics, afterload reduction"),
bullet("<b>Nephrotic syndrome:</b> treat underlying glomerulopathy; ACE inhibitors (reduce proteinuria); corticosteroids/immunosuppressants per etiology"),
bullet("<b>Cirrhosis/ascites:</b> salt restriction, spironolactone ± furosemide, therapeutic paracentesis, TIPS"),
bullet("<b>Lymphedema:</b> manual lymphatic drainage, compression, pneumatic compression devices; diuretics not effective"),
bullet("<b>Myxedema:</b> thyroid hormone replacement (edema resolves)"),
bullet("<b>Angioedema:</b> epinephrine, antihistamines, corticosteroids; hereditary – C1-esterase inhibitor concentrate, icatibant, tranexamic acid"),
src("Ganong's Medical Physiology; Goldman-Cecil Medicine; Harrison's Ch. 42"),
sp(),
]
# Sources footer
story += [
HRFlowable(width="100%", thickness=1.5, color=colors.HexColor('#1a3a5c'), spaceBefore=10, spaceAfter=6),
Paragraph("<b>Sources</b>", h2_style),
bullet("Harrison's Principles of Internal Medicine, 22nd Ed. (2025) – Chapter 42: Edema"),
bullet("Robbins & Kumar Basic Pathology – Chapter 3: Hemodynamic Disorders, Edema"),
bullet("Robbins, Cotran & Kumar Pathologic Basis of Disease – Chapter 4: Edema"),
bullet("Ganong's Review of Medical Physiology, 26th Ed. – Body fluid compartments, Edema"),
bullet("Goldman-Cecil Medicine – Perioperative edema"),
bullet("Brenner & Rector's The Kidney – Idiopathic Edema, Preeclampsia-related Edema"),
sp(2),
]
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/edema-notes && python edema_notes.py
Edema Complete Notes
PDF Document · PDF