teach me glaucoma chapter in detail from khurana and parson teach me everything in detail i should know everything be the best get a+
| # | Section |
|---|---|
| 1-2 | Definition, Classification |
| 3 | Epidemiology (with numbers) |
| 4 | Pathogenesis of optic neuropathy |
| 5 | POAG - Risk factors, diagnosis, disc changes, VF defects, imaging, management |
| 6 | All glaucoma drugs (mechanism, IOP reduction %, side effects) |
| 7-8 | Laser & surgical therapy |
| 9 | NTG - all distinct features vs POAG |
| 10 | PACG - acute attack management (emergency protocol) |
| 11 | Pseudoexfoliation (PXG) |
| 12 | Pigmentary Glaucoma |
| 13 | Neovascular Glaucoma ("100-day") |
| 14 | Inflammatory & Steroid-induced |
| 15 | Lens-related glaucoma (4 types) |
| 16-17 | Secondary angle-closure; Angle recession |
| 18 | Primary Congenital Glaucoma (Buphthalmos) |
| 19-21 | Ghost cell, ICE syndrome, Malignant glaucoma |
| 22 | Ocular hypertension (OHTS data) |
| 23 | Quick comparison table |
| 24 | 30 high-yield A+ exam points |
where is it
Generate a PDF study guide of these notes
ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/glauβ¦
~/glaucoma-notes/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
OUTPUT = "/home/daytona/workspace/glaucoma-notes/Glaucoma_Study_Guide.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2.5*cm, bottomMargin=2.5*cm,
title="Glaucoma - Complete Study Guide",
author="Orris Medical Education"
)
styles = getSampleStyleSheet()
# Custom styles
BLUE = colors.HexColor("#1a3a5c")
LIGHT_BLUE = colors.HexColor("#2e6da4")
ACCENT = colors.HexColor("#e8f0f7")
HIGHLIGHT = colors.HexColor("#fff3cd")
RED = colors.HexColor("#c0392b")
GREEN = colors.HexColor("#1e8449")
ORANGE = colors.HexColor("#d35400")
title_style = ParagraphStyle("Title", parent=styles["Title"],
fontSize=22, textColor=BLUE, spaceAfter=4, alignment=TA_CENTER,
fontName="Helvetica-Bold")
subtitle_style = ParagraphStyle("Subtitle", parent=styles["Normal"],
fontSize=11, textColor=LIGHT_BLUE, spaceAfter=10, alignment=TA_CENTER,
fontName="Helvetica-Oblique")
h1_style = ParagraphStyle("H1", parent=styles["Heading1"],
fontSize=14, textColor=colors.white, spaceAfter=6, spaceBefore=14,
fontName="Helvetica-Bold", backColor=BLUE,
borderPad=6, leading=18)
h2_style = ParagraphStyle("H2", parent=styles["Heading2"],
fontSize=12, textColor=BLUE, spaceAfter=4, spaceBefore=10,
fontName="Helvetica-Bold", borderPad=2,
borderColor=LIGHT_BLUE, borderWidth=0, leading=16)
h3_style = ParagraphStyle("H3", parent=styles["Heading3"],
fontSize=11, textColor=LIGHT_BLUE, spaceAfter=3, spaceBefore=8,
fontName="Helvetica-Bold", leading=14)
body_style = ParagraphStyle("Body", parent=styles["Normal"],
fontSize=9.5, spaceAfter=4, spaceBefore=1,
fontName="Helvetica", leading=14, alignment=TA_JUSTIFY)
bullet_style = ParagraphStyle("Bullet", parent=styles["Normal"],
fontSize=9.5, spaceAfter=2, spaceBefore=1,
fontName="Helvetica", leading=13, leftIndent=14,
bulletIndent=4)
tip_style = ParagraphStyle("Tip", parent=styles["Normal"],
fontSize=9.5, spaceAfter=6, spaceBefore=4,
fontName="Helvetica-Oblique", leading=13,
backColor=HIGHLIGHT, borderPad=5,
textColor=colors.HexColor("#7d4e00"), leftIndent=8, rightIndent=8)
key_style = ParagraphStyle("Key", parent=styles["Normal"],
fontSize=9.5, spaceAfter=6, spaceBefore=4,
fontName="Helvetica-Bold", leading=13,
backColor=colors.HexColor("#fce8e8"), borderPad=5,
textColor=RED, leftIndent=8, rightIndent=8)
code_style = ParagraphStyle("Code", parent=styles["Normal"],
fontSize=9, spaceAfter=4, spaceBefore=4,
fontName="Courier", leading=13,
backColor=ACCENT, borderPad=6,
leftIndent=10, rightIndent=10)
story = []
def h1(text):
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(f" {text}", h1_style))
def h2(text):
story.append(Paragraph(text, h2_style))
story.append(HRFlowable(width="100%", thickness=1, color=LIGHT_BLUE, spaceAfter=2))
def h3(text):
story.append(Paragraph(text, h3_style))
def body(text):
story.append(Paragraph(text, body_style))
def bullet(text, level=1):
indent = 14 * level
s = ParagraphStyle("BulletL", parent=bullet_style, leftIndent=indent, bulletIndent=indent-10)
story.append(Paragraph(f"\u2022 {text}", s))
def tip(text):
story.append(Paragraph(f"✎ TIP: {text}", tip_style))
def key(text):
story.append(Paragraph(f"⚠ KEY: {text}", key_style))
def sp(n=1):
story.append(Spacer(1, 0.25*cm * n))
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
if col_widths is None:
col_widths = [16*cm / len(headers)] * len(headers)
t = Table(data, colWidths=col_widths, repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("BOTTOMPADDING", (0,0), (-1,0), 6),
("TOPPADDING", (0,0), (-1,0), 6),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, ACCENT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("TOPPADDING", (0,1), (-1,-1), 4),
("BOTTOMPADDING", (0,1), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#b0c4de")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("WORDWRAP", (0,0), (-1,-1), True),
]))
story.append(t)
sp()
# ββ COVER PAGE ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(Spacer(1, 3*cm))
story.append(Paragraph("GLAUCOMA", title_style))
story.append(Paragraph("Complete Study Guide", ParagraphStyle("Sub2", parent=subtitle_style, fontSize=15, spaceAfter=6)))
story.append(Paragraph("Based on Kanski's Clinical Ophthalmology, 10th Edition", subtitle_style))
story.append(Spacer(1, 0.5*cm))
story.append(HRFlowable(width="80%", thickness=2, color=BLUE, hAlign="CENTER"))
story.append(Spacer(1, 0.4*cm))
story.append(Paragraph("Ophthalmology | MBBS Β· MS Β· USMLE Β· PLAB Exams", ParagraphStyle("tag", parent=styles["Normal"],
fontSize=10, textColor=LIGHT_BLUE, alignment=TA_CENTER, fontName="Helvetica-Oblique")))
story.append(Spacer(1, 5*cm))
# TOC box
toc_data = [
["Section", "Topic"],
["1-2", "Definition, Classification"],
["3", "Epidemiology"],
["4", "Pathogenesis of Optic Neuropathy"],
["5", "Primary Open-Angle Glaucoma (POAG)"],
["6", "Medical Therapy β All Drug Classes"],
["7-8", "Laser & Surgical Therapy"],
["9", "Normal-Tension Glaucoma (NTG)"],
["10", "Primary Angle-Closure Glaucoma (PACG) β Acute Attack"],
["11", "Pseudoexfoliation Syndrome & Glaucoma"],
["12", "Pigmentary Glaucoma"],
["13", "Neovascular Glaucoma ('100-Day')"],
["14", "Inflammatory & Steroid-Induced Glaucoma"],
["15", "Lens-Related Glaucoma"],
["16-18", "Secondary Angle-Closure, Angle Recession, Congenital Glaucoma"],
["19-21", "Ghost Cell, ICE Syndrome, Malignant Glaucoma"],
["22", "Ocular Hypertension (OHT)"],
["23", "Quick Comparison Table"],
["24", "30 High-Yield A+ Exam Points"],
]
toc_t = Table(toc_data, colWidths=[2*cm, 13*cm], repeatRows=1)
toc_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, ACCENT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#b0c4de")),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(toc_t)
story.append(PageBreak())
# ββ SECTION 1-2: DEFINITION & CLASSIFICATION ββββββββββββββββββββββββββββββββ
h1("1. DEFINITION & OVERVIEW")
body("Glaucoma is NOT a single disease. It is a group of conditions sharing a common final pathway: <b>chronic progressive optic neuropathy</b> causing characteristic morphological changes at the optic nerve head (ONH), RNFL thinning, progressive retinal ganglion cell (RGC) death by <b>apoptosis</b> (not necrosis), and visual field loss.")
sp()
key("Intraocular pressure (IOP) is the KEY modifiable risk factor. Normal IOP = 10β21 mmHg.")
body("<b>Goal of treatment:</b> Slow progression throughout the patient's lifetime to preserve visual function and quality of life.")
h1("2. CLASSIFICATION")
h2("Primary vs Secondary; Open-Angle vs Angle-Closure")
class_data = [
["Category", "Types"],
["Congenital (Developmental)", "Primary Congenital Glaucoma (trabeculodysgenesis); Syndrome-associated"],
["Primary Open-Angle", "POAG; Normal-Tension Glaucoma (NTG)"],
["Primary Angle-Closure", "PACS β PAC β PACG (spectrum)"],
["Secondary Open-Angle", "Pseudoexfoliation (PXG); Pigmentary; Steroid-induced; NVG (early); Angle recession; Ghost cell; ICE syndrome"],
["Secondary Angle-Closure", "NVG (late); Inflammatory (seclusio pupillae); Phacomorphic; Malignant; Lens subluxation; Elevated episcleral venous pressure (Sturge-Weber, CCF)"],
]
make_table(class_data[0], class_data[1:], [4*cm, 12*cm])
h1("3. EPIDEMIOLOGY")
epi_data = [
["Type / Fact", "Data"],
["Global prevalence", "2β3% of people >40 years; up to 50% undiagnosed"],
["World ranking", "2nd leading cause of blindness worldwide"],
["POAG", "Most common in White, Hispanic/Latino, and Black populations"],
["Black populations", "4x more common, earlier onset, harder to control"],
["PACG", "Up to HALF of all cases globally; especially prevalent in Asians"],
["NTG", "30β65% of OAG patients have IOP in normal range at first assessment; more common in Japanese"],
["PXG", "Most common secondary OAG worldwide; 5% prevalence at age 75β85"],
]
make_table(epi_data[0], epi_data[1:], [5*cm, 11*cm])
story.append(PageBreak())
# ββ SECTION 4: PATHOGENESIS ββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("4. PATHOGENESIS OF GLAUCOMATOUS OPTIC NEUROPATHY")
h2("Mechanisms of RGC Death")
bullet("<b>Direct mechanical damage</b> to nerve fibres at the lamina cribrosa (LC) β IOP deforms the LC, compressing axons as they pass through")
bullet("<b>Ischaemic damage</b> β compression of blood vessels supplying the ONH; reduced ocular perfusion pressure")
sp()
h3("Common Pathways (both mechanisms lead to):")
bullet("Reduction in axoplasmic flow")
bullet("Interference with nutrient delivery / metabolite removal")
bullet("Deprivation of neuronal growth factors")
bullet("Oxidative injury")
bullet("Immune-mediated damage")
bullet("CaΒ²βΊ influx into RGC bodies β β intracellular nitric oxide (preterminal event)")
bullet("Glutamine metabolism intrinsically involved")
bullet("Secondary: astrocyte/glial cell proliferation + ECM alterations of LC β ONH remodelling")
sp()
key("RGC death in glaucoma occurs predominantly by APOPTOSIS, not necrosis.")
story.append(PageBreak())
# ββ SECTION 5: POAG ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("5. PRIMARY OPEN-ANGLE GLAUCOMA (POAG)")
h2("Definition")
body("Chronic, progressive optic neuropathy of adult onset. Characterized by: RNFL thinning, glaucomatous optic nerve damage, visual field loss, <b>open</b> anterior chamber angle, and absence of secondary causes. IOP is a key modifiable risk factor.")
h2("Risk Factors")
rf_data = [
["Risk Factor", "Details"],
["Elevated IOP", "Higher IOP = higher risk; asymmetry β₯4 mmHg significant"],
["Age", "More common in older individuals"],
["Race", "Black > White > Asian; 4Γ higher, earlier onset, harder to control in Black people"],
["Family history", "Siblings ~4Γ risk; offspring ~2Γ population risk"],
["Myopia", "Associated with increased incidence; more susceptible to damage"],
["Thin CCT", "Underestimates true IOP; independent structural risk factor"],
["Large optic disc", "More vulnerable to damage"],
["Low ocular perfusion pressure", "Arterial BP minus IOP; increased risk when low"],
["Translaminar pressure gradient", "IOP vs orbital CSF pressure difference"],
["Vascular disease", "HTN, DM, cardiovascular disease, migraine, vasospasm"],
["Anti-VEGF therapy", "Repeat injections β sustained IOP elevation (bevacizumab > ranibizumab)"],
["CaΒ²βΊ-channel blockers", "Higher glaucoma prevalence as monotherapy (meta-analysis)"],
["Genetics", "MYOC (myocilin), OPTN (optineurin); 127 associated loci"],
]
make_table(rf_data[0], rf_data[1:], [5*cm, 11*cm])
tip("If a single family member develops glaucoma before age 35, chance of MYOC mutation is up to 33%.")
h2("Diagnosis β IOP Measurement")
bullet("<b>Goldmann Applanation Tonometry (GAT)</b> = gold standard")
bullet("Normal: 10β21 mmHg")
bullet("<b>Central Corneal Thickness (CCT)</b> must always be measured β thin CCT underestimates IOP; normal CCT ~555 Β΅m")
bullet("Every 10 Β΅m deviation alters GAT reading by ~0.3β0.5 mmHg")
bullet("OHTS: CCT is a powerful independent predictor of glaucoma conversion")
h2("Van Herick Method (Slit-Lamp Angle Screening)")
vh_data = [
["AC depth : Corneal thickness", "Grade", "Interpretation"],
["β₯ 1", "4", "Wide open"],
["1/4 β 1/2", "3", "Incapable of closure"],
["= 1/4", "2", "Gonioscopy recommended"],
["< 1/4", "1", "Dangerously narrow β gonioscopy will confirm"],
]
make_table(vh_data[0], vh_data[1:], [6*cm, 2*cm, 8*cm])
h2("Optic Disc Changes in Glaucoma")
body("<b>ISNT Rule</b> β normal neuroretinal rim width: Inferior > Superior > Nasal > Temporal")
sp()
disc_data = [
["Sign", "Description / Significance"],
["Vertical cup elongation", "Earliest sign of glaucomatous cupping"],
["Focal notching", "Especially inferior/superior poles; rim tissue loss"],
["Drance haemorrhage", "Splinter/flame haemorrhage at disc margin; indicates ACTIVE damage; more common in NTG"],
["RNFL defects", "Wedge-shaped areas of reduced reflectance (red-free light); appear before VF loss"],
["Vessel changes", "Nasalization, bayoneting over rim, baring of circumlinear vessel"],
["Progressive cupping", "C/D ratio >0.6 suspicious; asymmetry β₯0.2 suspicious"],
["Laminar dot sign", "Exposure of lamina cribrosa pores in advanced cupping"],
["Beta-zone PPA", "Parapapillary atrophy in beta zone; associated with glaucoma"],
]
make_table(disc_data[0], disc_data[1:], [5.5*cm, 10.5*cm])
h2("Visual Field Defects β Progression Sequence")
vf_data = [
["Stage", "Defect"],
["Earliest", "β Variability; small paracentral depressions (often superonasally); more common in NTG"],
["Early", "Nasal step β sensitivity difference above/below horizontal midline in nasal field"],
["Early", "Temporal wedge"],
["Moderate", "Arcuate (Bjerrum) scotoma β extends from blind spot, 10β20Β° from fixation"],
["Advanced", "Ring scotoma β superior + inferior arcuate defects coalesce"],
["End-stage", "Small central island + temporal island; monitor with 10-2 pattern"],
]
make_table(vf_data[0], vf_data[1:], [3.5*cm, 12.5*cm])
tip("Perimetry patterns: 24-2 (standard), 30-2 (alternative), 10-2 (central 10Β° β advanced disease).")
h2("Hodapp-Parrish-Anderson Criteria for Glaucomatous VF Damage")
body("Minimum criteria (at least one, on β₯2 consecutive occasions):")
bullet("GHT (Glaucoma Hemifield Test) outside normal limits")
bullet("Cluster of β₯3 non-edge points depressed on PSD at P<5%, with β₯1 point at P<1%")
bullet("Corrected PSD in <5% of normals")
h2("Imaging in Glaucoma")
img_data = [
["Modality", "Key Points"],
["OCT (gold standard)", "Measures RNFL thickness; TSNIT graph (Temporal-Superior-Nasal-Inferior-Temporal); superior & inferior sectors affected first; detects damage before VF loss (pre-perimetric); do NOT use in isolation"],
["HRT (Heidelberg)", "3D confocal SLO; Moorfields Regression Analysis; largely superseded by OCT"],
["GDx (Scanning laser polarimetry)", "Measures RNFL birefringence; also superseded by OCT"],
]
make_table(img_data[0], img_data[1:], [4*cm, 12*cm])
key("Pre-perimetric glaucoma = structural OCT/disc changes present, but NO visual field defect on SAP yet.")
h2("Management of POAG β Target IOP")
bullet("Individualize based on: severity, baseline IOP, CCT, rate of progression, age/life expectancy")
bullet("<b>AGIS trial</b>: IOP <18 mmHg at ALL visits β significant field progression unlikely")
bullet("<b>EMGT progression risk factors</b>: (a) higher baseline IOP, (b) magnitude of initial reduction, (c) pseudoexfoliation, (d) bilateral disease, (e) worse mean deviation, (f) older age")
sp()
tip("Natural history without treatment (EMGT): High-tension β1.31 dB/yr | NTG β0.36 dB/yr | PXG β3.13 dB/yr (fastest)")
tip("OHTS: Untreated OHT β 9.5% 5-year risk of POAG; Treated β 4.4% risk.")
story.append(PageBreak())
# ββ SECTION 6: MEDICAL THERAPY βββββββββββββββββββββββββββββββββββββββββββββββ
h1("6. MEDICAL THERAPY FOR GLAUCOMA")
drug_data = [
["Drug Class", "Drugs", "Mechanism", "IOP β", "Key Side Effects / Notes"],
["Prostaglandin analogues\n(1st LINE)", "Latanoprost\nBimatoprost\nTravoprost\nTafluprost",
"β Uveoscleral outflow", "25β35%",
"Iris/periorbital pigmentation, hypertrichosis (eyelashes), CME in aphakic/pseudophakic, CI: pregnancy, uveitis. Once daily (evening)."],
["Beta-blockers\n(1st or 2nd line)", "Timolol (non-selective)\nBetaxolol (Ξ²β-selective)",
"β Aqueous production", "20β25%",
"Bronchospasm (CI: asthma/COPD), bradycardia, depression. Betaxolol safer in respiratory disease + neuroprotective. AVOID at bedtime in NTG."],
["Alpha-2 agonists", "Brimonidine\nApraclonidine",
"β Aqueous production +\nβ Uveoscleral outflow", "20β25%",
"Allergy/ocular hyperaemia, systemic hypotension, dry mouth. CI: children (apnea). Brimonidine may be neuroprotective."],
["Carbonic anhydrase inhibitors (CAI)", "Dorzolamide, Brinzolamide (topical)\nAcetazolamide (oral/IV)",
"β Aqueous production\n(inhibits CA-II in ciliary epithelium)", "15β20%",
"Topical: stinging. Systemic: metabolic acidosis, paresthesias, renal stones, aplastic anemia. CI: sulfa allergy."],
["Miotics (cholinergics)", "Pilocarpine",
"β Conventional outflow (contracts ciliary muscle β opens TM)", "20β25%",
"Miosis (poor night vision), accommodative spasm, brow ache, RD risk (myopes). Works by opening TM β NOT uveoscleral."],
["Rho kinase inhibitors", "Netarsudil",
"β Conventional outflow +\nβ Episcleral venous pressure", "~15β20%",
"Conjunctival hyperaemia, cornea verticillata. Once daily."],
]
t = Table(drug_data, colWidths=[3.2*cm, 3*cm, 3.3*cm, 1.5*cm, 5*cm], repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, ACCENT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 7.5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#b0c4de")),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(t)
sp()
tip("Fixed combinations (improve compliance): Timolol + Dorzolamide (Cosopt); Timolol + Brimonidine; Timolol + Latanoprost (Xalacom)")
body("<b>Initial treatment:</b> Prostaglandin analogue OR beta-blocker. Review at 4β8 weeks.")
story.append(PageBreak())
# ββ SECTIONS 7-8: LASER & SURGERY βββββββββββββββββββββββββββββββββββββββββββ
h1("7. LASER THERAPY")
laser_data = [
["Procedure", "Indication", "Mechanism / Notes"],
["SLT (Selective Laser Trabeculoplasty)", "POAG, OHT β 1st line or adjunct", "532 nm Q-switched Nd:YAG; selectively targets pigmented TM cells; REPEATABLE; IOP β ~25%"],
["ALT (Argon Laser Trabeculoplasty)", "POAG", "Thermal burns to TM; NOT repeatable; largely replaced by SLT"],
["LPI (Laser Peripheral Iridotomy)", "PACG, narrow angles (prophylactic in PACS/PAC)", "Creates hole in peripheral iris β equalizes AC/PC pressure β eliminates pupillary block. ALSO treat fellow eye prophylactically."],
["ALPI (Argon Laser Peripheral Iridoplasty)", "Plateau iris syndrome", "Peripheral iris contraction β opens angle mechanically; used when LPI fails to open angle"],
]
make_table(laser_data[0], laser_data[1:], [4.5*cm, 4.5*cm, 7*cm])
h1("8. SURGICAL THERAPY")
surg_data = [
["Procedure", "Notes"],
["Trabeculectomy", "Gold standard filtering surgery; creates fistula into subconjunctival space; enhanced with MMC or 5-FU (antimetabolites) for high-risk cases. Target IOP often <12 mmHg."],
["Tube shunts (GDDs)", "Ahmed, Baerveldt, Molteno; for failed trabeculectomy, NVG, ICE syndrome, inflammatory glaucoma"],
["MIGS", "iStent, Hydrus, GATT, Kahook dual blade; ab interno approach; lower risk; mild-moderate glaucoma"],
["Cyclodiode", "Diode laser to ciliary body; destroys aqueous production; LAST RESORT for refractory/blind painful eye"],
["Goniotomy / Trabeculotomy", "For primary congenital glaucoma; goniotomy requires clear cornea; trabeculotomy when cornea cloudy"],
]
make_table(surg_data[0], surg_data[1:], [4.5*cm, 11.5*cm])
story.append(PageBreak())
# ββ SECTION 9: NTG βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("9. NORMAL-TENSION GLAUCOMA (NTG)")
body("Also called: Low-tension glaucoma, Normal-pressure glaucoma.")
body("Glaucomatous optic neuropathy + VF loss with IOP consistently <b>β€21 mmHg</b> on diurnal testing, open angle, no secondary cause.")
sp()
key("30β65% of open-angle glaucoma patients have IOP in the normal range at first assessment.")
h2("Additional/Distinct Risk Factors")
bullet("Nocturnal systemic hypotension β dips >20% below daytime mean BP (EMGT confirmed)")
bullet("Abnormal vasoregulation β migraine, Raynaud phenomenon")
bullet("Obstructive sleep apnoea")
bullet("OPTN gene mutations (optineurin)")
bullet("Low CCT (explains some 'NTG' cases with true elevated IOP)")
bullet("Japanese race | Older age | Female sex (some studies)")
bullet("Low serum retinol | Thyroid disease")
bullet("Autoantibodies (higher levels in some NTG patients)")
h2("NTG vs POAG Disc Differences")
ntg_data = [
["Feature", "NTG", "POAG"],
["Focal notching", "More common", "Less common"],
["Disc haemorrhages", "More frequent (Drance)", "Less frequent"],
["VF defects", "Closer to fixation; paracentral", "More peripheral initially"],
["Cup shape", "More vertical elongation", "May be concentric"],
]
make_table(ntg_data[0], ntg_data[1:], [5*cm, 5.5*cm, 5.5*cm])
h2("Management of NTG")
bullet("IOP reduction (30% below baseline) remains mainstay even with 'normal' IOP")
bullet("Prostaglandins as 1st line")
bullet("<b>Brimonidine</b> β may have neuroprotective effect in addition to IOP lowering")
bullet("<b>Betaxolol</b> β beta-blocker of choice (Ξ²β-selective, neuroprotective, CaΒ²βΊ-channel blocking properties)")
bullet("Beta-blockers with caution, especially at bedtime (avoid nocturnal BP dips)")
bullet("SLT as initial option; surgery if progression despite IOP in low teens (use antimetabolite-enhanced trabeculectomy)")
bullet("Control systemic vascular disease (DM, HTN, hyperlipidaemia)")
bullet("<b>Sleep head-up position (30Β°)</b> β IOP ~20% lower; helpful in ~1/3 of patients")
bullet("Calcium-channel blockers for vasospasm")
bullet("Reduce antihypertensives (especially bedtime doses) if nocturnal hypotension detected")
tip("No proven neuroprotective agents yet. Memantine failed in trials. Ginkgo biloba 40 mg TID may help in selected cases.")
story.append(PageBreak())
# ββ SECTION 10: PACG βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("10. PRIMARY ANGLE-CLOSURE GLAUCOMA (PACG)")
h2("Overview & Terminology")
body("Angle closure = occlusion of TM by peripheral iris (iridotrabecular contact - ITC).")
key("PACG may account for up to HALF of all glaucoma globally. More common in Asians. Females > Males. Progresses RAPIDLY β more likely to cause visual loss than POAG.")
term_data = [
["Term", "Definition"],
["PACS (Suspect)", "Narrow/occludable angle on gonioscopy; NO ITC, NO damage"],
["PAC (Primary Angle Closure)", "ITC present (PAS or appositional closure) but NO optic nerve damage"],
["PACG", "ITC in β₯3 quadrants + glaucomatous optic neuropathy"],
]
make_table(term_data[0], term_data[1:], [4*cm, 12*cm])
h2("Mechanisms of Angle Closure")
bullet("<b>Relative pupillary block (most common)</b>: Aqueous cannot flow through pupil β pressure differential β anterior bowing of iris (iris bombΓ©) β peripheral iris occludes angle. Relieved by LPI.")
bullet("<b>Plateau iris syndrome</b>: Anteriorly positioned ciliary processes push peripheral iris forward β angle closure despite patent LPI. Treat with ALPI.")
bullet("<b>Phacomorphic</b>: Enlarged/swollen lens pushes iris-lens diaphragm forward β angle closure")
bullet("<b>Ciliary block (malignant glaucoma)</b>: Aqueous misdirected posteriorly β entire lens-iris diaphragm pushed forward")
h2("Risk Factors for PACG")
bullet("Female sex | Asian (Far Eastern/Indian) ethnicity")
bullet("Hypermetropia β short axial length, shallow AC; up to 1 in 6 hypermetropes (β₯1D) have PACS")
bullet("Short axial length / Nanophthalmos (<20 mm = very high risk)")
bullet("Increasing age (lens thickens β shallower AC) | Family history")
h2("Precipitating Factors for Acute Attack")
bullet("Darkened room (watching TV in dark)")
bullet("Pharmacological mydriasis | Semi-prone position (reading)")
bullet("Acute emotional stress")
bullet("Systemic drugs: anticholinergics, sympathomimetics (inhalers, motion sickness patches, cold remedies)")
bullet("<b>Topiramate</b> and sulfa derivatives (ciliary body effusion mechanism)")
h2("Clinical Features of ACUTE Primary Angle Closure (APAC)")
apac_data = [
["Feature", "Description"],
["Symptoms", "Unilateral painful red eye; markedly decreased VA; haloes ('rainbow around lights'); 'smoke-filled room' blurring; headache, nausea, vomiting, abdominal pain"],
["VA", "Usually 6/60 to hand movements (HM)"],
["IOP", "Very high: 50β80 mmHg"],
["Conjunctiva", "Violaceous circumcorneal (ciliary) injection"],
["Cornea", "Epithelial oedema (hazy)"],
["Anterior chamber", "Shallow; aqueous flare present"],
["Pupil", "MID-DILATED, VERTICALLY OVAL, NON-REACTIVE β CLASSIC SIGN"],
["Fellow eye", "Typically shows an occludable angle"],
]
make_table(apac_data[0], apac_data[1:], [3.5*cm, 12.5*cm])
h2("Management of APAC β Emergency Protocol")
key("Goal: Rapidly lower IOP, then perform Laser Peripheral Iridotomy (LPI)")
sp()
tx_data = [
["Drug / Treatment", "Route", "Action"],
["Acetazolamide 500 mg", "IV or oral", "β Aqueous production"],
["Timolol 0.5%", "Topical", "β Aqueous production"],
["Brimonidine 0.2%", "Topical", "β Aqueous production"],
["Dorzolamide", "Topical", "β Aqueous production"],
["Mannitol 1β2 g/kg", "IV infusion", "Osmotic dehydration of vitreous; use if above insufficient"],
["Glycerol", "Oral", "Osmotic agent; alternative to mannitol"],
["Pilocarpine 2β4%", "Topical", "Apply AFTER IOP starts to fall (<40 mmHg); pulls iris away from angle"],
["Topical steroids", "Topical", "Reduce inflammation"],
]
make_table(tx_data[0], tx_data[1:], [5*cm, 3*cm, 8*cm])
tip("Definitive treatment: LPI in affected eye + prophylactic LPI in fellow eye. Lens extraction (cataract surgery) increasingly recognized as definitive treatment.")
story.append(PageBreak())
# ββ SECTION 11: PXG ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("11. PSEUDOEXFOLIATION SYNDROME (PXS) & GLAUCOMA (PXG)")
pxg_data = [
["Feature", "Details"],
["Definition", "Grey-white fibrillary material (abnormal ECM metabolism) deposited on lens capsule, zonules, iris, TM, conjunctiva, and systemic organs"],
["Prevalence", "Rare <50 years; 5% at age 75β85; more common in women and Scandinavians"],
["Glaucoma risk", "Incidence of glaucoma at PXS diagnosis: 15β30%; cumulative risk of treatment needed: up to 60% at 5 years"],
["Progression", "PXG progresses MORE RAPIDLY than POAG; more likely to cause significant visual loss"],
["Systemic associations", "High-tone hearing loss; cardiovascular disorders β PXS is a SYSTEMIC disorder"],
["Genetics", "LOXL1 gene (chromosome 15) β cross-linking of tropoelastin/collagen; SNPs in nearly all PXS patients in some populations"],
["Clinical signs", "Bull's-eye pattern on anterior lens capsule; pigment ruff loss; iris transillumination; poor pupil dilation; heavy TM pigmentation (Sampaolesi line); high IOP"],
["Surgical risk", "Increased zonular fragility β risk of lens subluxation and vitreous prolapse during cataract surgery"],
["Distinguish from", "True capsular exfoliation (glassblower's cataract β from chronic infrared exposure)"],
]
make_table(pxg_data[0], pxg_data[1:], [4.5*cm, 11.5*cm])
# ββ SECTION 12: PIGMENTARY GLAUCOMA βββββββββββββββββββββββββββββββββββββββββ
h1("12. PIGMENTARY DISPERSION SYNDROME & PIGMENTARY GLAUCOMA")
body("<b>Classic patient:</b> Young myopic <b>male</b>, 20β40 years, deep anterior chamber.")
bullet("<b>Mechanism:</b> Mid-peripheral iris rubs against zonular fibres β liberation of iris pigment β deposits in angle (TM), corneal endothelium, posterior lens capsule")
bullet("<b>Krukenberg spindle</b> β vertical pigment deposit on corneal endothelium (CLASSIC)")
bullet("<b>Radial midperipheral iris transillumination defects</b> β spokes of a wheel pattern")
bullet("Dense trabecular pigmentation (Scheie strip)")
bullet("<b>Reverse pupillary block</b> β aqueous moves backwards β posterior bowing of iris")
bullet("Exercise and pupil dilation can release pigment β acute IOP spikes with symptoms")
sp()
bullet("Treatment: Pilocarpine (miosis reduces iris-zonule contact); standard drops; LPI (for reverse pupillary block); SLT/ALT (effective due to dense TM pigmentation)")
# ββ SECTION 13: NVG ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("13. NEOVASCULAR GLAUCOMA (NVG) β '100-DAY GLAUCOMA'")
h2("Pathogenesis")
body("Severe diffuse chronic <b>retinal ischaemia</b> β hypoxic retina produces <b>VEGF</b> β aggressive iris neovascularization (rubeosis iridis) β fibrovascular membrane across angle β progressive angle closure β very high IOP.")
h2("Causes (in order of frequency)")
nvg_data = [
["Cause", "Frequency", "Key Notes"],
["Ischaemic CRVO", "35β50%", "'100-day glaucoma' β NVG typically 3 months after occlusion (range 4 weeks to 2 years). Predictors: VA <6/60, RAPD, extensive capillary non-perfusion on FFA"],
["Diabetes mellitus", "10β15% (was 30%)", "Reduced due to retinal screening + PRP. PPV in diabetics can precipitate NVG (7% overall)"],
["Arterial disease", "Less common", "CRAO, Ocular Ischaemic Syndrome"],
["Miscellaneous", "Rare", "Intraocular tumours, long-standing RD, chronic intraocular inflammation"],
]
make_table(nvg_data[0], nvg_data[1:], [4*cm, 3*cm, 9*cm])
h2("Management")
nvg_tx = [
["Step", "Treatment"],
["Anti-VEGF (intravitreal)", "Bevacizumab / Ranibizumab β rapid regression of NV; allows time for PRP; buys time for surgery"],
["PRP (Panretinal Photocoagulation)", "Treats causal retinal ischaemia; prevents/regresses NV if cornea clear"],
["IOP control", "Topical aqueous suppressants"],
["Surgery", "Tube shunt (Ahmed valve) preferred over trabeculectomy; cyclodiode for blind painful eyes"],
]
make_table(nvg_tx[0], nvg_tx[1:], [5*cm, 11*cm])
story.append(PageBreak())
# ββ SECTION 14: INFLAMMATORY & STEROID ββββββββββββββββββββββββββββββββββββββ
h1("14. INFLAMMATORY & STEROID-INDUCED GLAUCOMA")
h2("Posner-Schlossman Syndrome (PSS)")
bullet("Recurrent unilateral episodes of <b>mild iridocyclitis + markedly elevated IOP</b>")
bullet("IOP >40 mmHg, disproportionately high relative to mild inflammation")
bullet("Open angle WITHOUT posterior synechiae")
bullet("Associated with <b>CMV infection</b> in some cases")
bullet("Treatment: topical steroids + aqueous suppressants")
h2("Steroid-Induced Glaucoma")
strd_data = [
["Feature", "Details"],
["Incidence", "~1 in 3 individuals ('steroid responders') develop IOP elevation"],
["Mechanism", "β Resistance to aqueous outflow β altered ECM/endothelial cell function in TM"],
["Onset", "Typically 2β4 weeks after starting potent topical steroid"],
["Duration (intravitreal triamcinolone)", "IOP rise lasts 2β4 months"],
["Duration (Ozurdex implant)", "IOP rise lasts up to 6 months"],
["Clinical picture", "Resembles chronic OAG; normal-appearing angle; no symptoms (usually)"],
["Risk factors", "Established glaucoma/OHT; family history; HIGH MYOPIA; young age/childhood; connective tissue disease (esp. RA)"],
["Treatment", "Discontinue steroid β normalizes in days (acute) or 1β4 weeks (chronic). Use less potent steroid: fluorometholone 0.1%, rimexolone 1%, loteprednol etabonate"],
]
make_table(strd_data[0], strd_data[1:], [5*cm, 11*cm])
tip("In 3% of patients, elevated IOP may persist despite stopping all steroids.")
# ββ SECTION 15: LENS-RELATED βββββββββββββββββββββββββββββββββββββββββββββββββ
h1("15. LENS-RELATED GLAUCOMA")
lens_data = [
["Type", "Mechanism", "Key Clinical Feature"],
["Phacolytic", "Mature/hypermature cataract β lens proteins leak through intact capsule β macrophages + protein block TM", "High IOP, flare (NO KP/PAS), open angle; white fluffy material in AC"],
["Phacomorphic", "Large/swollen intumescent lens β pushes iris forward β angle closure", "Mid-dilated pupil, shallow AC; one eye usually normal; lens obvious"],
["Lens particle", "Post-traumatic or surgical lens particles blocking TM", "After trauma or cataract surgery complication"],
["Phacoanaphylactic", "Granulomatous uveitis to lens proteins (after capsule rupture)", "Mutton-fat KPs, posterior synechiae, history of trauma/surgery"],
]
make_table(lens_data[0], lens_data[1:], [3.5*cm, 6*cm, 6.5*cm])
story.append(PageBreak())
# ββ SECTIONS 16-18 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("16. SECONDARY ANGLE-CLOSURE GLAUCOMA")
h2("With Pupillary Block")
bullet("Seclusio pupillae (360Β° posterior synechiae from recurrent iridocyclitis)")
bullet("Subluxated lens")
bullet("Phacomorphic glaucoma")
bullet("Capsular block syndrome (360Β° iris-capsule adhesion in pseudophakic eye)")
bullet("Aphakic pupillary block | ACL implant without patent iridotomy")
h2("Without Pupillary Block")
bullet("Advanced NVG with PAS | Chronic anterior uveitis")
bullet("Cilio-choroidal effusion | Ciliary body/iris cyst or tumour")
bullet("Contraction of retrolenticular fibrovascular tissue (PVR, ROP)")
bullet("<b>Malignant glaucoma</b> (ciliolenticular block)")
h2("Elevated Episcleral Venous Pressure (Open Angle, raised EVP)")
bullet("<b>Carotid-cavernous fistula</b>")
bullet("<b>Sturge-Weber syndrome</b> (encephalofacial angiomatosis)")
bullet("Obstruction of superior vena cava")
h1("17. ANGLE RECESSION GLAUCOMA")
bullet("Follows blunt ocular trauma β tear between circular and longitudinal fibres of ciliary muscle")
bullet("Irregular widening of ciliary body band on gonioscopy")
bullet("Develops <b>years to decades</b> after trauma; risk proportional to extent of recession")
bullet("Recession >180Β° significantly increases glaucoma risk")
bullet("Open angle; delayed presentation")
bullet("Treatment: medical therapy; laser usually ineffective; trabeculectomy with antimetabolite")
h1("18. PRIMARY CONGENITAL GLAUCOMA (PCG)")
h2("Overview")
bullet("Also called: Primary Infantile Glaucoma, Trabeculodysgenesis")
bullet("Autosomal recessive; <b>CYP1B1 gene</b> (cytochrome P450 enzyme) most common genetic cause")
bullet("Trabecular meshwork fails to develop properly β β resistance to outflow")
bullet("Infant's eye is elastic β enlarges with raised IOP β <b>Buphthalmos</b> ('ox eye')")
h2("Clinical Features")
pcg_data = [
["Sign", "Details"],
["Buphthalmos", "Enlarged eye β may appear beautiful; parents may notice first"],
["Epiphora (watering)", "Often FIRST symptom noticed by parents"],
["Photophobia + Blepharospasm", "Due to corneal oedema"],
["Corneal oedema/cloudiness", "Diffuse haziness"],
["Haab's striae", "Curvilinear healed breaks in Descemet's membrane (horizontal/curvilinear) β PATHOGNOMONIC"],
["Corneal diameter", ">12 mm before age 1 year is highly suspicious (normal at birth: ~10β10.5 mm)"],
["Optic disc cupping", "C/D >0.3 in infant suspicious; CUPPING MAY REVERSE after IOP normalization"],
]
make_table(pcg_data[0], pcg_data[1:], [4.5*cm, 11.5*cm])
key("Normal infant IOP = 10β12 mmHg. Use Perkins/Tono-Pen/iCare. Ketamine preferred for anaesthesia (lowers IOP less than other agents).")
h2("Treatment β SURGERY IS ALWAYS REQUIRED (80β90% success)")
surg_pcg = [
["Procedure", "Notes"],
["Goniotomy", "1st choice; under direct gonioscopic visualization; incision at midpoint of TM; requires CLEAR cornea"],
["Trabeculotomy", "When corneal clouding prevents view; Harms trabeculotome into Schlemm canal β rotated into AC"],
["360Β° Trabeculotomy (GATT)", "Illuminated canaloplasty device + 6-0 Prolene suture; IOP ~5 mmHg lower than standard at 2 years"],
["Trabeculectomy / Tube shunt", "If angle surgery fails"],
["Cyclodiode", "Last resort"],
]
make_table(surg_pcg[0], surg_pcg[1:], [5*cm, 11*cm])
tip("Also manage aggressively: Amblyopia treatment + Refractive error correction.")
story.append(PageBreak())
# ββ SECTIONS 19-21 βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("19. GHOST CELL GLAUCOMA")
bullet("Degenerate erythrocytes (ghost cells) block TM pores after vitreous haemorrhage")
bullet("~2 weeks after vitreous haemorrhage: Hgb leaks out β RBCs become pale, rigid, deformable-lost ghost cells")
bullet("Ghost cells pass through anterior hyaloid face defect into AC")
bullet("AC: <b>reddish-brown or khaki particles</b> β do NOT confuse with leucocytes (don't treat for uveitis!)")
bullet("Treatment: aqueous suppressants β AC irrigation if medical Rx fails β PPV for persistent vitreous haemorrhage")
h1("20. ICE (IRIDOCORNEAL ENDOTHELIAL) SYNDROME")
ice_data = [
["Feature", "Details"],
["Patient profile", "Middle-aged WOMAN; ONE eye typically affected"],
["Three variants", "1. Chandler syndrome (most common) β corneal oedema predominant\n2. Progressive (Essential) Iris Atrophy β iris holes, ectropion uveae, corectopia\n3. Iris Naevus (Cogan-Reese) syndrome β pedunculated iris nodules"],
["Pathological basis", "Abnormal corneal endothelial cells (ICE cells) with epithelial characteristics; migrate over TM and iris β PAS, secondary glaucoma, iris changes"],
["Etiology", "Possibly viral (EBV/HSV)"],
["Key distinguishing features", "UNILATERAL; NO family history (distinguishes from Axenfeld-Rieger syndrome which is bilateral and hereditary)"],
["Treatment", "Medical/surgical glaucoma treatment; corneal transplant for endothelial failure"],
]
make_table(ice_data[0], ice_data[1:], [4.5*cm, 11.5*cm])
h1("21. MALIGNANT GLAUCOMA (Aqueous Misdirection)")
bullet("Also called: Ciliolenticular block, Ciliovitreal block")
bullet("<b>Aqueous is misdirected posteriorly</b> into the vitreous β entire lens-iris diaphragm pushed FORWARD β flat/shallow AC with very HIGH IOP")
bullet("Can occur: spontaneously in angle-closure eyes; after any intraocular surgery (especially trabeculectomy in angle-closure eye); after LPI")
key("Treatment: Atropine + cyclopentolate (mydriatics) + aqueous suppressants. NEVER use miotics (worsen it). Nd:YAG to posterior capsule/anterior hyaloid. PPV in refractory cases.")
# ββ SECTION 22: OHT ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
h1("22. OCULAR HYPERTENSION (OHT)")
bullet("IOP >21 mmHg, open angle, NO optic nerve damage, NO visual field loss")
bullet("NOT glaucoma β but major risk factor for POAG")
bullet("<b>OHTS trial</b>: Untreated = 9.5% cumulative 5-year POAG risk; Treated (β₯20% IOP reduction, target β€24 mmHg) = 4.4% risk")
bullet("Only HIGH-RISK individuals should be treated; treat ALL patients with IOP β₯30 mmHg (>40% 5-year risk)")
bullet("OHT also increases risk of <b>retinal venous occlusion</b>")
bullet("<b>Thin CCT</b> = higher true IOP + higher independent glaucoma risk")
story.append(PageBreak())
# ββ SECTION 23: COMPARISON TABLE βββββββββββββββββββββββββββββββββββββββββββββ
h1("23. QUICK COMPARISON TABLE")
comp_data = [
["Feature", "POAG", "NTG", "PACG (Acute)", "PCG"],
["IOP", "Elevated", "β€21 mmHg", "50β80 mmHg", "Elevated"],
["AC angle", "Open", "Open", "Closed", "Dysgenetic (open)"],
["Symptoms", "NONE (silent)", "None", "Severe pain, red eye, vomiting", "Watering, photophobia, buphthalmos"],
["Pupil", "Normal", "Normal", "Mid-dilated, oval, NON-reactive", "NA"],
["Key sign", "Cupping + VF loss", "Focal notch, disc haemorrhage", "Ciliary flush, hazy cornea", "Haab striae, corneal haze"],
["Treatment", "Drops β laser β surgery", "Reduce IOP 30%, betaxolol, Ca blockers, head-up sleep", "Emergency: IV acetazolamide, osmotic agents β LPI", "Surgery: goniotomy / trabeculotomy"],
["Key genes", "MYOC, OPTN", "OPTN", "β", "CYP1B1"],
]
t = Table(comp_data, colWidths=[3*cm, 3.25*cm, 3.25*cm, 3.25*cm, 3.25*cm], repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), BLUE),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, ACCENT]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#b0c4de")),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(t)
sp()
story.append(PageBreak())
# ββ SECTION 24: HIGH-YIELD EXAM POINTS ββββββββββββββββββββββββββββββββββββββ
h1("24. HIGH-YIELD A+ EXAM POINTS β 30 Must-Know Facts")
hype_data = [
["#", "High-Yield Fact"],
["1", "Glaucoma is the 2nd leading cause of blindness worldwide; up to 50% undiagnosed"],
["2", "IOP is NOT required for diagnosis β NTG patients have normal IOP"],
["3", "Lamina cribrosa is the site of initial mechanical damage to RGCs"],
["4", "RGC death in glaucoma = APOPTOSIS (not necrosis)"],
["5", "POAG in Black populations: 4Γ more common, earlier onset, harder to control"],
["6", "CCT affects GAT readings AND is an independent risk factor; thin CCT = underestimated IOP"],
["7", "ISNT rule for neuroretinal rim: Inferior > Superior > Nasal > Temporal"],
["8", "Drance haemorrhage (disc haemorrhage) = active damage; more common in NTG; indicates progression"],
["9", "Pre-perimetric glaucoma = structural changes (OCT/disc) WITHOUT VF defect on SAP"],
["10", "OHTS trial: IOP reduction β₯20% β 4.4% vs 9.5% 5-year conversion from OHT to POAG"],
["11", "AGIS trial: Keep IOP <18 mmHg at ALL visits to prevent progression"],
["12", "EMGT: PXG progresses fastest (β3.13 dB/year); NTG slowest (β0.36 dB/year)"],
["13", "PXG = most common secondary OAG worldwide; LOXL1 gene; progresses faster than POAG"],
["14", "NVG = '100-day glaucoma' after ischaemic CRVO; treat with anti-VEGF + PRP"],
["15", "Acute APAC: Mid-dilated OVAL NON-REACTIVE pupil + IOP 50β80 mmHg + violaceous circumcorneal injection"],
["16", "PACG: Females > Males; Asian ethnicity; hypermetropes; short axial length"],
["17", "Pupillary block = most common PACG mechanism β LPI is the treatment"],
["18", "Plateau iris = LPI doesn't open angle β ALPI needed"],
["19", "Prostaglandin analogues = 1st-line medical therapy; act via uveoscleral outflow"],
["20", "Pilocarpine works by opening TM (conventional outflow), NOT uveoscleral; CI in lens subluxation"],
["21", "Steroid-induced glaucoma: 1/3 respond; looks like OAG; onset 2β4 weeks; stop steroid"],
["22", "Buphthalmos + Haab's striae + epiphora = primary congenital glaucoma triad"],
["23", "PCG: SURGERY first (goniotomy/trabeculotomy); CYP1B1 gene; normal infant IOP = 10β12 mmHg"],
["24", "Ghost cells: khaki/reddish-brown cells in AC after vitreous haemorrhage ~2 weeks later"],
["25", "ICE syndrome: Middle-aged woman, ONE eye, three types; ICE cells from corneal endothelium"],
["26", "Malignant glaucoma: Flat AC + high IOP; treat with ATROPINE; NEVER miotics"],
["27", "Pigmentary glaucoma: Young myopic male; Krukenberg spindle; radial iris transillumination defects"],
["28", "Trabeculectomy = gold standard surgery; enhanced with MMC/5-FU; target IOP often <12 mmHg"],
["29", "SLT is REPEATABLE; ALT is NOT repeatable"],
["30", "Seclusio pupillae = 360Β° posterior synechiae β iris bombΓ© β angle closure; treat with LPI"],
]
t = Table(hype_data, colWidths=[1*cm, 15*cm], repeatRows=1)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), RED),
("TEXTCOLOR", (0,0), (-1,0), colors.white),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("ROWBACKGROUNDS", (0,1), (-1,-1), [colors.white, colors.HexColor("#fce8e8")]),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8.5),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#e0a0a0")),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("BACKGROUND", (0, 1), (0, -1), colors.HexColor("#c0392b")),
("TEXTCOLOR", (0, 1), (0, -1), colors.white),
("FONTNAME", (0, 1), (0, -1), "Helvetica-Bold"),
("ALIGN", (0, 1), (0, -1), "CENTER"),
]))
story.append(t)
sp()
# Footer
story.append(HRFlowable(width="100%", thickness=1, color=BLUE))
story.append(Paragraph("Source: Kanski's Clinical Ophthalmology: A Systematic Approach, 10th Edition | Generated by Orris Medical Education",
ParagraphStyle("Footer", parent=styles["Normal"], fontSize=7.5, textColor=LIGHT_BLUE, alignment=TA_CENTER)))
# Build
doc.build(story)
print(f"PDF generated: {OUTPUT}")
cd /home/daytona/workspace/glaucoma-notes && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/glaucoma-notes/Glaucoma_Study_Guide.pdf
Glaucoma Study Guide
PDF Document Β· PDF