I am an ophthalmology resident PG in 2nd year I have my test on glaucoma scheduled on 24th June 2026
What would you like help with? Β· What level of depth do you need?
GLAUCOMA
βββ Congenital (Developmental)
β βββ Primary congenital glaucoma (trabeculodysgenesis)
β βββ Secondary (Sturge-Weber, Neurofibromatosis)
β
βββ Acquired
βββ PRIMARY
β βββ Open-angle: POAG, NTG, OHT
β βββ Angle-closure: Acute PACG, Chronic PACG
β
βββ SECONDARY
βββ Open-angle: Pseudoexfoliation, Pigmentary, Steroid-induced,
β Inflammatory, Traumatic (angle recession)
βββ Angle-closure: Neovascular, Phacomorphic, Phacolytic,
Malignant (ciliolenticular block)
| Pathway | Route | % of Total Outflow |
|---|---|---|
| Conventional (trabecular) | Trabecular meshwork β Schlemm's canal β aqueous veins β episcleral veins | ~80-85% |
| Uveoscleral (non-conventional) | Anterior chamber β ciliary muscle β suprachoroidal space β sclera | ~15-20% |
| Type | Appearance | Association |
|---|---|---|
| Focal ischaemic | Localized sup/inf notching | Localized VF defects, early fixation threat |
| Myopic | Tilted, oblique disc + temporal crescent | Dense sup/inf scotomas; younger males |
| Sclerotic | Shallow saucerized cup, gently sloping NRR | Older patients, systemic vascular disease |
| Concentrically enlarging | Uniform NRR thinning | Diffuse VF loss, high IOP |
| Glaucoma type | Mean MD change/year |
|---|---|
| High tension glaucoma (HTG) | -1.31 dB/year |
| Normal tension glaucoma (NTG) | -0.36 dB/year |
| Pseudoexfoliation glaucoma (PXEG) | -3.13 dB/year (worst) |
| Mechanism | Location | Examples |
|---|---|---|
| Relative pupillary block | At pupil | PACG (most common) - iris-lens apposition blocks aqueous flow |
| Plateau iris | Anterior segment | Anteriorly rotated ciliary processes |
| Phacomorphic | Lens | Intumescent cataract pushing iris forward |
| Neovascular | Angle | Rubeosis iridis from DM/CRVO |
| Malignant | Posterior | Misdirection of aqueous into vitreous |
| Method | Principle | Notes |
|---|---|---|
| Goldmann Applanation Tonometry (GAT) | Force required to flatten 3.06 mm diameter corneal area | Gold standard; affected by CCT and corneal rigidity |
| Non-contact tonometry (NCT) | Air puff flattens cornea | Screening only; less accurate |
| Schiotz indentation | Weight plunger indents cornea | Old method; affected by axial length |
| Perkins (portable GAT) | Same principle as GAT | Used supine, for children/OR |
| Tonopen | Electronic strain gauge | Portable; useful for irregular corneas |
| Pascal Dynamic Contour Tonometry | Contour matching | Less affected by CCT |
| iCare rebound | Rebound, no anesthesia | Good for children and corneal scars |
| Grade | Angle width | Likelihood of closure |
|---|---|---|
| 4 | 35-45Β° | Impossible |
| 3 | 25-35Β° | Unlikely |
| 2 | 20Β° | Possible |
| 1 | <10Β° | Probable |
| 0 | Closed | Present |
| Drug Class | Drug Examples | Mechanism | IOP Reduction | Key Side Effects |
|---|---|---|---|---|
| Prostaglandin analogues (PGA) | Latanoprost, Bimatoprost, Travoprost, Tafluprost | β Uveoscleral outflow (FP receptor agonist) | 25-35% (most potent) | Iris color change (increased pigment), eyelash growth (hypertrichosis), periorbital fat atrophy, hyperemia, UVE |
| Beta-blockers | Timolol (non-selective), Betaxolol (beta-1 selective) | β Aqueous production (beta-2 blockade of ciliary body) | 20-30% | Bradycardia, bronchospasm (CI: asthma), decreased exercise tolerance; betaxolol: cardioselective, safer in COPD/asthma |
| Alpha-2 agonists | Brimonidine (0.2%), Apraclonidine | β Aqueous production + β uveoscleral outflow | 20-25% | Allergy/follicular conjunctivitis (up to 30%), dry mouth, sedation; CI in neonates/infants (apnea, bradycardia - crosses BBB) |
| Carbonic anhydrase inhibitors (CAI) | Topical: Dorzolamide, Brinzolamide; Systemic: Acetazolamide, Methazolamide | β Aqueous production (inhibit CA II/IV in ciliary epithelium) | 15-20% | Topical: burning, stinging, metallic taste; Systemic: paresthesias, GI symptoms, renal stones, hypokalemia, aplastic anemia (rare) |
| Miotics (cholinergics) | Pilocarpine (1-4%), Carbachol | β Conventional outflow (TM tensioning via ciliary muscle contraction) | 20-25% | Brow ache, accommodative spasm, miosis (poor night driving), retinal detachment risk, potential to worsen uveitis |
| Rho-kinase inhibitors | Netarsudil | β Conventional outflow (TM cell contractility); β episcleral venous pressure | 15-20% | Conjunctival hyperemia, corneal verticillata |
| Nitric oxide-donating PGA | Latanoprostene bunod | β Both uveoscleral + conventional outflow | Similar to PGA | Similar to PGA |
| Procedure | Indication | Mechanism |
|---|---|---|
| Laser Peripheral Iridotomy (LPI/PI) | PACG, PACS (prophylaxis), NTG post-primary attack | Creates hole in iris β equalizes pressure between posterior/anterior chamber β opens angle |
| Selective Laser Trabeculoplasty (SLT) | POAG (1st or 2nd line), OHT; NTG | Q-switched Nd:YAG 532 nm β selectively targets pigmented TM cells β β trabecular outflow |
| Argon Laser Trabeculoplasty (ALT) | POAG, older procedure | Burns in TM β scarring β mechanical opening of adjacent areas; not repeatable |
| Laser Iridoplasty (ALPI) | Plateau iris syndrome, when PI fails | Shrinks peripheral iris to open angle |
| Diode laser cyclodestruction (cyclodiode) | Refractory glaucoma | Destroys ciliary body β β aqueous production; last resort |
| YAG laser vitreolysis | Malignant glaucoma | Disrupts vitreous face to redirect aqueous |
| Trial | What it showed |
|---|---|
| OHTS | OHT: 9.5% β 4.4% progression with treatment; thin CCT = strongest predictor |
| EMGT | Natural history: HTG -1.31, NTG -0.36, PXEG -3.13 dB/year; each 1 mmHg reduction = 10% less risk |
| AGIS | IOP consistently <18 mmHg β minimal VF progression |
| CNTGS (Collaborative NTG Study) | 30% IOP reduction slows NTG progression |
| EAGLE | Clear lens extraction > laser PI for PAC with IOP >29 or PACG |
| LiGHT Trial | SLT as first-line superior to or equivalent to drops, possibly superior in preventing progression |
| CIGTS | Surgery vs. meds: surgery better IOP control, meds better initial VF |
| Section | Topic |
|---|---|
| 1-2 | Definition, Classification (full diagram) |
| 3 | Aqueous dynamics, IOP physiology, normal ranges |
| 4 | POAG - risk factors, disc signs, ISNT rule, VF progression, key trials |
| 5 | NTG - vascular pathogenesis, neuroimaging indications, management |
| 6 | PACG spectrum - mechanisms, AACG emergency protocol step-by-step |
| 7 | Secondary glaucomas (PXG, Pigmentary, NVG, Steroid, Phacolytic, Malignant, Angle recession) |
| 8 | Investigations - tonometry types, gonioscopy (Shaffer grading), perimetry, OCT, CCT |
| 9 | All drug classes with mechanism, potency, side effects, contraindications |
| 10 | Laser procedures (LPI, SLT, ALT, cyclodiode) |
| 11 | Surgery - trabeculectomy steps, MMC/5-FU, GDD, MIGS, goniotomy |
| 12 | Special glaucomas (Congenital, Sturge-Weber, Plateau iris) |
| 13-14 | Neuroprotection + All key trials (OHTS, EMGT, AGIS, EAGLE, LiGHT, CNTGS) |
| 15-16 | Mnemonics + 20 high-yield exam summary points |
Make a PDF of this study guide for offline access
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace does not exist"
mkdir -p /home/daytona/workspace/glaucoma-study-guide && python3 -c "import reportlab; print('reportlab ok')" && python3 -c "from reportlab.lib import colors; print('colors ok')"
~/glaucoma-study-guide/build_pdf.py
#!/usr/bin/env python3
"""Glaucoma Study Guide PDF Generator"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.platypus.tableofcontents import TableOfContents
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import datetime
OUTPUT = "/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.pdf"
# ββ Colour palette ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
NAVY = colors.HexColor("#1a3a5c")
TEAL = colors.HexColor("#1a7a7a")
GOLD = colors.HexColor("#d4820a")
LIGHT_BG = colors.HexColor("#eef4fb")
WARN_BG = colors.HexColor("#fff8e1")
WARN_BDR = colors.HexColor("#f0a500")
TABLE_HDR = colors.HexColor("#1a3a5c")
TABLE_ALT = colors.HexColor("#dce8f5")
RED_ALERT = colors.HexColor("#c0392b")
GREEN_OK = colors.HexColor("#1e8449")
LIGHT_GREY= colors.HexColor("#f5f5f5")
MED_GREY = colors.HexColor("#7f8c8d")
# ββ Styles βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
def make_style(name, parent='Normal', **kwargs):
s = ParagraphStyle(name, parent=styles[parent], **kwargs)
return s
# Title
S_TITLE = make_style('MyTitle', 'Title',
fontSize=26, textColor=NAVY, spaceAfter=4,
fontName='Helvetica-Bold', alignment=TA_CENTER)
S_SUBTITLE = make_style('MySubtitle', 'Normal',
fontSize=12, textColor=TEAL, spaceAfter=2, alignment=TA_CENTER)
S_META = make_style('MyMeta', 'Normal',
fontSize=9, textColor=MED_GREY, spaceAfter=14, alignment=TA_CENTER)
# Section heading (numbered)
S_H1 = make_style('MyH1', 'Heading1',
fontSize=14, textColor=colors.white, spaceAfter=6, spaceBefore=14,
fontName='Helvetica-Bold', backColor=NAVY,
leftIndent=-6, rightIndent=-6, borderPadding=(4,6,4,8))
# Sub-heading
S_H2 = make_style('MyH2', 'Heading2',
fontSize=11, textColor=NAVY, spaceAfter=4, spaceBefore=8,
fontName='Helvetica-Bold', borderPadding=(2,0,2,0))
# Sub-sub-heading
S_H3 = make_style('MyH3', 'Heading3',
fontSize=10, textColor=TEAL, spaceAfter=3, spaceBefore=5,
fontName='Helvetica-Bold')
# Body text
S_BODY = make_style('MyBody', 'Normal',
fontSize=9, leading=13, spaceAfter=4, alignment=TA_JUSTIFY,
fontName='Helvetica')
# Bullet
S_BULLET = make_style('MyBullet', 'Normal',
fontSize=9, leading=12, leftIndent=14, firstLineIndent=-10,
spaceAfter=2, fontName='Helvetica')
S_BULLET2 = make_style('MyBullet2', 'Normal',
fontSize=8.5, leading=11, leftIndent=26, firstLineIndent=-10,
spaceAfter=2, fontName='Helvetica', textColor=colors.HexColor("#2c3e50"))
# Highlight / tip box
S_TIP = make_style('MyTip', 'Normal',
fontSize=9, leading=12, backColor=WARN_BG,
leftIndent=8, rightIndent=8, borderPadding=(5,5,5,5),
fontName='Helvetica', spaceAfter=6)
# Code / monospace
S_CODE = make_style('MyCode', 'Code',
fontSize=8, leading=11, fontName='Courier',
backColor=LIGHT_GREY, leftIndent=8, borderPadding=(4,4,4,4))
S_FOOTER = make_style('Footer', 'Normal',
fontSize=7.5, textColor=MED_GREY, alignment=TA_CENTER)
# ββ Helper builders ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def h1(text):
return Paragraph(text, S_H1)
def h2(text):
return Paragraph(f"<b>{text}</b>", S_H2)
def h3(text):
return Paragraph(text, S_H3)
def p(text):
return Paragraph(text, S_BODY)
def b(text, level=1):
style = S_BULLET if level == 1 else S_BULLET2
bullet = "β’" if level == 1 else "β¦"
return Paragraph(f"{bullet} {text}", style)
def tip(text, label="KEY POINT"):
return Paragraph(f"<b>β {label}:</b> {text}", S_TIP)
def sp(h=4):
return Spacer(1, h)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#ccd6e0"), spaceAfter=4, spaceBefore=4)
def make_table(data, col_widths=None, has_header=True):
t = Table(data, colWidths=col_widths, repeatRows=1 if has_header else 0)
style_cmds = [
('FONTNAME', (0,0), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,0), (-1,-1), 8),
('LEADING', (0,0), (-1,-1), 10),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.white, TABLE_ALT]),
('GRID', (0,0), (-1,-1), 0.4, colors.HexColor("#b0c4de")),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('LEFTPADDING', (0,0), (-1,-1), 5),
('RIGHTPADDING', (0,0), (-1,-1), 5),
('TOPPADDING', (0,0), (-1,-1), 4),
('BOTTOMPADDING',(0,0), (-1,-1), 4),
]
if has_header:
style_cmds += [
('BACKGROUND', (0,0), (-1,0), TABLE_HDR),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 8.5),
]
t.setStyle(TableStyle(style_cmds))
return t
# ββ Page template with header/footer βββββββββββββββββββββββββββββββββββββββββ
def on_page(canvas, doc):
canvas.saveState()
w, h = A4
# Header bar
canvas.setFillColor(NAVY)
canvas.rect(0, h - 22*mm, w, 22*mm, fill=1, stroke=0)
canvas.setFillColor(colors.white)
canvas.setFont("Helvetica-Bold", 9)
canvas.drawString(1.5*cm, h - 13*mm, "GLAUCOMA STUDY GUIDE | Ophthalmology PG Year 2")
canvas.setFont("Helvetica", 8)
canvas.drawRightString(w - 1.5*cm, h - 13*mm, f"Exam: 24 June 2026")
# Teal accent line below header
canvas.setFillColor(TEAL)
canvas.rect(0, h - 24*mm, w, 2*mm, fill=1, stroke=0)
# Footer
canvas.setFillColor(MED_GREY)
canvas.setFont("Helvetica", 7.5)
canvas.drawString(1.5*cm, 10*mm, "Sources: Kanski's Clinical Ophthalmology 10e | Wills Eye Manual | Katzung Pharmacology | Goldman-Cecil Medicine")
canvas.drawRightString(w - 1.5*cm, 10*mm, f"Page {doc.page}")
canvas.setFillColor(TEAL)
canvas.rect(0, 8*mm, w, 0.5*mm, fill=1, stroke=0)
canvas.restoreState()
def on_first_page(canvas, doc):
canvas.saveState()
w, h = A4
# Full navy header band
canvas.setFillColor(NAVY)
canvas.rect(0, h - 60*mm, w, 60*mm, fill=1, stroke=0)
canvas.setFillColor(TEAL)
canvas.rect(0, h - 62*mm, w, 2.5*mm, fill=1, stroke=0)
# Footer
canvas.setFillColor(MED_GREY)
canvas.setFont("Helvetica", 7.5)
canvas.drawString(1.5*cm, 10*mm, "Sources: Kanski's Clinical Ophthalmology 10e | Wills Eye Manual | Katzung Pharmacology | Goldman-Cecil Medicine")
canvas.drawRightString(w - 1.5*cm, 10*mm, "Page 1")
canvas.setFillColor(TEAL)
canvas.rect(0, 8*mm, w, 0.5*mm, fill=1, stroke=0)
canvas.restoreState()
# ββ Document βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.8*cm, rightMargin=1.8*cm,
topMargin=3.2*cm, bottomMargin=2.4*cm,
title="Glaucoma Study Guide β Ophthalmology PG Year 2",
author="Orris Medical Assistant",
subject="Glaucoma β Comprehensive Exam Preparation"
)
story = []
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# COVER
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(Spacer(1, 2.5*cm))
story.append(Paragraph("GLAUCOMA", make_style('Cover1','Normal',
fontSize=40, textColor=colors.white, fontName='Helvetica-Bold', alignment=TA_CENTER)))
story.append(Spacer(1, 3*mm))
story.append(Paragraph("COMPREHENSIVE STUDY GUIDE", make_style('Cover2','Normal',
fontSize=16, textColor=TEAL, fontName='Helvetica-Bold', alignment=TA_CENTER, letterSpacing=2)))
story.append(Spacer(1, 6*mm))
story.append(Paragraph("Ophthalmology Postgraduate β Year 2", make_style('CoverSub','Normal',
fontSize=11, textColor=colors.HexColor("#a8c6e0"), alignment=TA_CENTER)))
story.append(Paragraph("Exam Date: 24 June 2026", make_style('CoverDate','Normal',
fontSize=10, textColor=GOLD, alignment=TA_CENTER, fontName='Helvetica-Bold')))
story.append(Spacer(1, 1.8*cm))
# Cover info box
cover_data = [
["16 Sections", "Full Mechanisms", "Key Trials", "Mnemonics"],
["Classification\nPathophysiology", "Pharmacology\nLaser & Surgery", "OHTS Β· EMGT Β· AGIS\nEAGLE Β· LiGHT", "ISNT Β· PALE FISH\nFLASH Β· CAP MO"],
]
cover_tbl = Table(cover_data, colWidths=[3.9*cm]*4)
cover_tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), TEAL),
('BACKGROUND', (0,1), (-1,1), colors.HexColor("#1a2e40")),
('TEXTCOLOR', (0,0), (-1,-1), colors.white),
('ALIGN', (0,0), (-1,-1), 'CENTER'),
('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTNAME', (0,1), (-1,1), 'Helvetica'),
('FONTSIZE', (0,0), (-1,0), 9),
('FONTSIZE', (0,1), (-1,1), 8),
('LEADING', (0,0), (-1,-1), 11),
('TOPPADDING', (0,0), (-1,-1), 7),
('BOTTOMPADDING', (0,0), (-1,-1), 7),
('GRID', (0,0), (-1,-1), 0.5, TEAL),
]))
story.append(cover_tbl)
story.append(Spacer(1, 1.2*cm))
story.append(Paragraph(
"Prepared from: Kanski's Clinical Ophthalmology 10th Ed. | Wills Eye Manual | "
"Katzung's Basic & Clinical Pharmacology 16th Ed. | Goldman-Cecil Medicine | Goodman & Gilman's",
make_style('CoverSrc','Normal', fontSize=8, textColor=colors.HexColor("#7faabf"), alignment=TA_CENTER)))
story.append(PageBreak())
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 1 β DEFINITION & OVERVIEW
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(h1("SECTION 1 β DEFINITION & OVERVIEW"))
story.append(p("<b>Glaucoma</b> is a group of conditions sharing a common <b>chronic progressive optic neuropathy</b> with:"))
for item in [
"Characteristic morphological changes at the optic nerve head (ONH) and RNFL",
"Progressive <b>retinal ganglion cell (RGC) death</b>",
"Associated visual field loss",
"<b>IOP is the key modifiable risk factor</b> (but not the only one)"
]:
story.append(b(item))
story.append(sp())
story.append(tip("Goal of treatment: Slow the rate of progression throughout a patient's lifetime to maintain visual function and quality of life at a sustainable cost.", "GOAL"))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 2 β CLASSIFICATION
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(h1("SECTION 2 β CLASSIFICATION"))
story.append(h2("Primary Glaucomas"))
classif_data = [
["Type", "Open-Angle", "Angle-Closure"],
["Primary", "POAG, NTG, OHT", "Acute PACG, Chronic PACG, PACS"],
["Congenital", "Primary Congenital Glaucoma (PCG)", "Secondary (Sturge-Weber, NF1)"],
["Secondary\nOpen-Angle", "Pseudoexfoliation, Pigmentary,\nSteroid-induced, Inflammatory,\nAngle recession", "β"],
["Secondary\nAngle-Closure", "β", "Neovascular, Phacomorphic,\nPhacolytic, Malignant,\nCiliolenticular block"],
]
story.append(make_table(classif_data, col_widths=[3.2*cm, 7*cm, 7*cm]))
story.append(sp(6))
story.append(h2("Epidemiology (Kanski's 10e)"))
epi_bullets = [
"Affects <b>2β3% of people over 40 years</b>; up to 50% may be undiagnosed",
"<b>2nd leading cause of blindness</b> worldwide",
"POAG: Most common in White, Hispanic, Black individuals (prevalence ~16% in Black >70 yrs)",
"PACG: Up to <b>50% of cases worldwide</b>; high prevalence in <b>Asian descent</b>",
"NTG: More common in Japanese populations; females affected more",
]
for item in epi_bullets:
story.append(b(item))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 3 β AQUEOUS HUMOR DYNAMICS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(h1("SECTION 3 β AQUEOUS HUMOR DYNAMICS & IOP"))
story.append(h2("Aqueous Production"))
story.append(p("Produced by the <b>ciliary body non-pigmented epithelium</b> via:"))
for item in ["<b>Active secretion</b> (NaβΊ/KβΊ ATPase β dominant pathway)", "Ultrafiltration", "Simple diffusion"]:
story.append(b(item))
story.append(h2("Outflow Pathways"))
outflow_data = [
["Pathway", "Route", "% Total Outflow"],
["Conventional (Trabecular)", "TM β Schlemm's canal β aqueous veins β episcleral veins", "~80β85%"],
["Uveoscleral (Non-conventional)", "AC β ciliary muscle β suprachoroidal space β sclera", "~15β20%"],
]
story.append(make_table(outflow_data, col_widths=[4*cm, 9.5*cm, 3*cm]))
story.append(sp(4))
story.append(h2("Normal IOP"))
for item in [
"Normal range: <b>10β21 mmHg</b> (mean ~16 mmHg, SD ~3 mmHg)",
"Diurnal variation: <b>3β5 mmHg</b> (peaks in early morning)",
"Factors raising IOP: supine position, Valsalva, tight neckwear, systemic steroids",
"~50% of POAG patients have <b>normal IOP at any single screening</b>",
]:
story.append(b(item))
story.append(sp(4))
story.append(h2("Ocular Hypertension (OHT)"))
story.append(p("IOP >21 mmHg <b>without</b> glaucomatous ONH or VF damage"))
story.append(tip("OHTS: Untreated OHT β 9.5% cumulative POAG risk at 5 yrs. Treatment (βIOP β₯20%) β 4.4%. Thin CCT is the STRONGEST single predictor of conversion.", "OHTS TRIAL"))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 4 β POAG
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 4 β PRIMARY OPEN-ANGLE GLAUCOMA (POAG)"))
story.append(h2("Definition"))
story.append(p("Chronic, progressive optic neuropathy of <b>adult onset</b> with:"))
for item in [
"RNFL thinning and glaucomatous optic nerve damage",
"Characteristic visual field loss as damage progresses",
"<b>Open</b> anterior chamber angle on gonioscopy",
"No identifiable cause (distinguishes from secondary glaucoma)",
"IOP is a key modifiable risk factor",
]:
story.append(b(item))
story.append(h2("Risk Factors"))
rf_data = [
["Risk Factor", "Details"],
["Raised IOP", "Most important modifiable RF"],
["Thin CCT", "Strongest predictor in OHTS; each 40 ΞΌm thinner β 3Γ risk"],
["Black African descent", "Higher prevalence, earlier onset, faster progression"],
["Age", "Prevalence rises sharply after 60"],
["Family history", "~10Γ increased risk in 1st-degree relatives"],
["High myopia", "Optic disc more susceptible"],
["Obstructive sleep apnea", "Vascular mechanism"],
["Low systemic BP", "Reduced ocular perfusion pressure"],
["Pseudoexfoliation", "Strongest secondary risk factor"],
]
story.append(make_table(rf_data, col_widths=[5.5*cm, 11*cm]))
story.append(sp(6))
story.append(h2("Optic Disc Signs in POAG"))
story.append(h3("ISNT Rule"))
story.append(tip("Normal NRR thickness: Inferior > Superior > Nasal > Temporal. ANY violation of this rule = suspect glaucoma.", "ISNT RULE"))
disc_signs = [
"<b>C/D ratio increase</b> β documented progression is always significant; vertical C/D β₯0.7 suspicious; asymmetry >0.2 between eyes significant",
"<b>Notching of NRR</b> β most commonly inferotemporal β corresponds to arcuate scotoma (Bjerrum area)",
"<b>RNFL defects</b> β wedge-shaped nerve fiber layer dropout (best seen with red-free photography)",
"<b>Disc hemorrhages</b> β flame-shaped at disc margin, usually inferotemporal; risk factor for progression; MORE COMMON in NTG",
"<b>Parapapillary atrophy (PPA)</b> β Beta zone (inner, chorioretinal atrophy) correlates with RNFL loss",
"<b>Nasalization of vessels</b> β 'bayoneting' sign, baring of circumlinear vessels",
"<b>Pallor</b> β should be proportionate to cupping; disproportionate pallor β suspect non-glaucomatous optic neuropathy",
]
for item in disc_signs:
story.append(b(item))
story.append(h2("Morphological Subtypes of Glaucomatous Disc Damage"))
morph_data = [
["Type", "Appearance", "Clinical Association"],
["Focal ischaemic", "Localized sup/inf notching", "Localized VF defects, early fixation threat"],
["Myopic disc", "Tilted/oblique disc + temporal crescent PPA", "Dense sup/inf scotomas; younger males"],
["Sclerotic", "Shallow saucerized cup, gently sloping NRR", "Older patients, systemic vascular disease"],
["Concentrically enlarging", "Uniform NRR thinning (serial monitoring)", "Diffuse VF loss; high IOP at presentation"],
]
story.append(make_table(morph_data, col_widths=[3.8*cm, 6*cm, 6.7*cm]))
story.append(sp(6))
story.append(h2("Visual Field Defects β Chronological Progression"))
vf_prog = [
"1. Isolated <b>paracentral scotoma</b> (within 10Β° of fixation)",
"2. <b>Nasal step</b> (respects horizontal meridian β nasal raphe anatomy)",
"3. <b>Bjerrum/Arcuate scotoma</b> (10β20Β° from fixation, Bjerrum's area)",
"4. <b>Double arcuate (ring) scotoma</b>",
"5. <b>Temporal island</b> + <b>Central island</b> (advanced stage)",
"6. Total field loss (blindness)",
]
for item in vf_prog:
story.append(b(item))
story.append(tip("HFA 24-2 pattern: Standard for glaucoma (24Β° temporal, 30Β° nasal). 10-2 used in advanced disease to monitor central island and split fixation.", "PERIMETRY"))
story.append(h2("Key Clinical Trials for POAG"))
trial_data = [
["Trial", "Key Finding"],
["OHTS", "OHT: thin CCT = strongest predictor; treatment reduces 5-yr risk 9.5%β4.4%"],
["EMGT", "Mean MD loss/yr: HTG -1.31, NTG -0.36, PXEG -3.13 dB; each 1 mmHg reduction β 10% less progression risk"],
["AGIS", "IOP consistently <18 mmHg β minimal VF progression"],
["CIGS", "Surgery better IOP control; medications better initial VF"],
["LiGHT (2019)", "SLT as first-line therapy: superior to or equivalent to drops; may prevent more progression"],
]
story.append(make_table(trial_data, col_widths=[4.5*cm, 12*cm]))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 5 β NTG
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 5 β NORMAL TENSION GLAUCOMA (NTG)"))
story.append(p("<b>NTG (Low-Tension Glaucoma):</b> Glaucomatous ONH and VF changes with IOP consistently <b>β€21 mmHg</b>"))
story.append(h2("Pathogenesis β Beyond IOP"))
for item in [
"Vascular insufficiency β impaired optic nerve head blood flow",
"<b>Nocturnal systemic hypotension</b> (BP dip at night) β strongly implicated",
"Systemic vasospasm: migraine, Raynaud's phenomenon",
"Obstructive sleep apnea",
"Autoimmune mechanisms",
"OPA1 gene mutation (dominant optic atrophy overlap)",
]:
story.append(b(item))
story.append(h2("Distinctive Features vs POAG"))
ntg_diff = [
["Feature", "NTG", "POAG"],
["IOP", "β€21 mmHg", "Often elevated (but not always)"],
["Disc hemorrhages", "MORE common", "Less common"],
["VF defects", "Deeper, steeper, closer to fixation", "Typically more peripheral initially"],
["Progression without Rx", "~50% DON'T progress at 5β7 yrs", "More likely to progress"],
["Prevalence", "Higher in Japanese/female", "Highest in Black populations"],
]
story.append(make_table(ntg_diff, col_widths=[3.5*cm, 5.5*cm, 7.5*cm]))
story.append(sp(6))
story.append(h2("Neuroimaging Indications in NTG β MUST KNOW"))
story.append(tip(
"Refer for MRI/CT if any of: (1) VA loss disproportionate to cupping, "
"(2) Colour vision loss on Ishihara, (3) VF loss NOT consistent with RNFL dropout, "
"(4) Pallor of neuroretinal rim, (5) Rapid progression despite normal pressure.",
"NEUROIMAGING RULE"))
story.append(h2("Specific Investigations in NTG"))
for item in [
"<b>24-hour ambulatory BP monitoring</b> β exclude nocturnal hypotension",
"Carotid duplex imaging β exclude carotid stenosis",
"Blood tests: B12, folate, FBC, ESR/CRP, syphilis, Lyme disease, ACE level, protein electrophoresis, autoantibodies",
]:
story.append(b(item))
story.append(h2("Treatment"))
for item in [
"<b>Demonstrate progression before treating</b> β 50% stable without treatment",
"<b>Prostaglandins</b> β usual first choice",
"<b>Brimonidine</b> β possible neuroprotective effect (alpha-2 agonism activates survival pathways)",
"<b>Betaxolol</b> (selective beta-1 blocker) β preferred over timolol if beta-blocker chosen; less nocturnal BP dip risk",
"<b>SLT</b> β reasonable first-line option",
"CNTGS: 30% IOP reduction reduces NTG progression",
]:
story.append(b(item))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 6 β PACG
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 6 β PRIMARY ANGLE-CLOSURE GLAUCOMA (PACG)"))
story.append(h2("Spectrum of Primary Angle Closure Disease"))
spectrum_data = [
["Stage", "Definition"],
["PACS (Suspect)", "Narrow angle, no PAS, normal IOP, no ONH/VF damage"],
["PAC", "Narrow angle + IOP >21 mmHg or PAS; no ONH/VF damage"],
["PACG", "Narrow angle + glaucomatous ONH and/or VF damage"],
["Acute PACG (AACG)", "Sudden symptomatic attack with acutely raised IOP"],
]
story.append(make_table(spectrum_data, col_widths=[4.5*cm, 12*cm]))
story.append(sp(6))
story.append(h2("Mechanisms of Angle Closure"))
mech_data = [
["Mechanism", "Location", "Key Examples"],
["Relative pupillary block", "At pupil (iris-lens apposition)", "PACG β most common; aqueous cannot pass from PC to AC"],
["Plateau iris", "Anterior segment", "Anteriorly rotated ciliary processes keep iris against TM"],
["Phacomorphic", "Intumescent lens", "Large lens pushes iris-lens diaphragm forward"],
["Neovascular", "Angle", "Fibrovascular membrane from DM/CRVO pulls angle closed"],
["Malignant / Ciliolenticular block", "Posterior segment", "Aqueous misdirected into vitreous; shallow AC despite patent PI"],
]
story.append(make_table(mech_data, col_widths=[3.8*cm, 4.5*cm, 8.2*cm]))
story.append(sp(6))
story.append(h2("AACG β Risk Factors"))
story.append(tip("'FLASH': Female sex, Lens (hyperopia/thick), Age (older), Shallow AC, Heredity/family history", "MNEMONIC"))
story.append(p("<b>Precipitants:</b> dim illumination, reading, topical mydriatics, systemic anticholinergics (antihistamines, antidepressants), topiramate/sulfonamides"))
story.append(h2("AACG β Clinical Features"))
story.append(h3("Symptoms"))
for s in ["Severe ocular pain", "Blurred vision", "Coloured halos around lights (corneal edema)", "Frontal headache", "Nausea and vomiting"]:
story.append(b(s))
story.append(h3("Signs"))
for s in [
"<b>Critical triad:</b> Closed angle + Acutely raised IOP + Microcystic corneal edema",
"Fixed, <b>mid-dilated pupil</b> (4β6 mm, vertically oval)",
"Ciliary injection",
"Shallow anterior chamber",
"Fellow eye: narrow/occludable angle (in primary etiology)",
]:
story.append(b(s))
story.append(h2("AACG Emergency Management"))
story.append(tip("Use mnemonic: 'Top CAP MO' β Topicals β CAI β Pressure-lowering recheck β Mannitol β Operative/Laser PI", "AACG MANAGEMENT"))
aacg_steps = [
["Step", "Action", "Notes"],
["1", "Topical meds (stat)", "Timolol 0.5% + Apraclonidine 1% or Brimonidine 0.2% + Dorzolamide 2%\nPilocarpine 1β2% (controversial; now omitted by some)"],
["2", "Systemic CAI", "Acetazolamide 500 mg IV or PO\nβ CI in sulfonamide allergy and sulfonamide-induced closure"],
["3", "Recheck IOP", "After 1 hour; repeat topicals if needed"],
["4", "Osmotic agent (if refractory)", "Mannitol 1β2 g/kg IV over 45 min\nβ CI: CHF, renal disease, intracranial bleeding"],
["5", "Definitive", "YAG Laser Peripheral Iridotomy (PI) once cornea clears (1β5 days)\nFellow eye: prophylactic PI (40β80% chance of attack in 5β10 yrs)"],
]
story.append(make_table(aacg_steps, col_widths=[1.2*cm, 4.5*cm, 10.8*cm]))
story.append(sp(6))
story.append(h2("Special Scenarios"))
special_data = [
["Scenario", "Key Points"],
["Topiramate/sulfonamide-induced", "Bilateral closure; STOP drug; cycloplegia (atropine); NO CAIs; NO PI; IV steroids if severe"],
["Phacomorphic glaucoma", "Medical control first β lens extraction as definitive treatment"],
["Aphakic/pseudophakic pupillary block", "Do NOT use pilocarpine; use mydriatics + cycloplegics"],
["Plateau iris (after patent PI)", "Persistent narrow angle despite PI β Argon laser iridoplasty (ALPI)"],
]
story.append(make_table(special_data, col_widths=[4.5*cm, 12*cm]))
story.append(sp(6))
story.append(tip("EAGLE Study: Clear lens extraction is MORE effective and cost-effective than laser PI in PAC with IOP >29 mmHg or in PACG.", "EAGLE TRIAL"))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 7 β SECONDARY GLAUCOMAS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 7 β SECONDARY GLAUCOMAS (HIGH YIELD)"))
story.append(h2("7.1 Pseudoexfoliation Glaucoma (PXG)"))
for item in [
"<b>Most common identifiable cause</b> of open-angle glaucoma worldwide",
"Fibrillar exfoliative material on: anterior lens capsule (classic pattern: central disc + peripheral ring with clear zone), ciliary processes, iris, TM",
"TM obstruction β aqueous outflow blockade",
"<b>Worst natural history</b> (EMGT: β3.13 dB/yr); marked IOP fluctuations",
"Weak zonules β risk of lens subluxation during phacoemulsification",
"Poor pupil dilation β use iris hooks; pupil stretching risky",
"Good response to prostaglandins; poor response to miotics",
]:
story.append(b(item))
story.append(h2("7.2 Pigmentary Glaucoma"))
for item in [
"Pigment Dispersion Syndrome (PDS) β pigmentary glaucoma",
"Mechanism: <b>Reverse pupillary block</b> β iris rubs against zonule packets β pigment released",
"<b>Krukenberg spindle</b> on corneal endothelium (vertical, spindle-shaped pigment deposit)",
"TM: dense brown hyperpigmentation band (Sampaolesi line)",
"Iris: radial, spoke-like transillumination defects",
"Typical patient: young, <b>myopic male</b>",
"Exercise and dilation β increased pigment release β IOP spikes",
"Pilocarpine: helps reverse pupillary block (thickens iris, reduces iris-zonule contact)",
]:
story.append(b(item))
story.append(h2("7.3 Neovascular Glaucoma (NVG)"))
story.append(p("<b>Causes of retinal ischemia:</b> Proliferative DM > CRVO > Ocular ischemic syndrome"))
for item in [
"VEGF secreted from ischemic retina β <b>rubeosis iridis</b> (neovascularization of iris/angle)",
"Initially: open angle with vessel tufts at pupil margin and angle",
"Later: fibrovascular membrane contracts β <b>PAS formation</b> β angle closure",
"Treatment: Anti-VEGF (immediate IOP lowering), PRP, glaucoma drainage device",
"Trabeculectomy has poor prognosis in NVG",
]:
story.append(b(item))
story.append(h2("7.4 Steroid-Induced Glaucoma"))
for item in [
"Mechanism: Steroids β β GAG accumulation in TM β β aqueous outflow facility",
"Route potency: Topical > periocular > systemic; inhaled steroids can also raise IOP",
"IOP rise typically occurs within <b>2β6 weeks</b> of starting steroids",
"Risk factors: POAG/family Hx, connective tissue disease, myopia, diabetes",
"Treatment: Stop steroid (use fluorometholone/loteprednol β lower responder rate) + IOP-lowering medications",
]:
story.append(b(item))
story.append(h2("7.5 Phacolytic Glaucoma"))
for item in [
"<b>Hypermature/Morgagnian cataract</b> β lens proteins leak through intact capsule",
"Large macrophages engorged with lens material clog TM β open-angle mechanism",
"Severe inflammation in AC; white fluffy material visible",
"Treatment: Medical (steroids + IOP lowering) β <b>lens extraction</b> (definitive)",
]:
story.append(b(item))
story.append(h2("7.6 Angle Recession Glaucoma"))
for item in [
"Blunt trauma β tear in ciliary body face between longitudinal and circular muscles",
"TM damaged β late-onset open-angle glaucoma (can present <b>decades</b> after injury)",
"Gonioscopy: Wide angle (>180Β° recession on uninvolved side), irregular angle",
"Always perform gonioscopy after blunt ocular trauma",
]:
story.append(b(item))
story.append(h2("7.7 Malignant Glaucoma (Ciliolenticular Block)"))
story.append(tip(
"Malignant glaucoma: Shallow AC + high IOP + PATENT PI. Distinguishes from pupillary block (PI relieves pupillary block but NOT malignant glaucoma).",
"KEY DIFFERENTIATOR"))
for item in [
"Usually post-filtration surgery; more common in small hyperopic eyes or post-PACG",
"Aqueous misdirected into vitreous/lens zonule spaces β pushes lens-iris diaphragm anteriorly",
"Treatment: Cycloplegia (atropine 1% QID β mainstay), hyperosmotic agents, YAG laser vitreous face disruption, pars plana vitrectomy",
]:
story.append(b(item))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 8 β INVESTIGATIONS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 8 β GLAUCOMA INVESTIGATIONS"))
story.append(h2("8.1 Tonometry"))
tono_data = [
["Method", "Principle", "Notes"],
["Goldmann Applanation (GAT)", "Force to flatten 3.06 mm diameter area", "Gold standard; affected by CCT and corneal rigidity"],
["Non-contact (NCT/air puff)", "Air puff flattens cornea", "Screening only; less accurate; no anesthesia"],
["Schiotz indentation", "Weight plunger indents cornea", "Old; affected by axial length; still tested"],
["Perkins", "Same as GAT", "Portable; supine patients, children, OR"],
["Tonopen", "Electronic strain gauge", "Irregular corneas; portable"],
["Pascal DCT", "Contour matching", "Less CCT-dependent"],
["iCare (rebound)", "Rebound principle", "No anesthesia; excellent for children"],
]
story.append(make_table(tono_data, col_widths=[4*cm, 5*cm, 7.5*cm]))
story.append(sp(4))
story.append(tip(
"CCT effect on GAT: Each 10 ΞΌm ABOVE average CCT (~545 ΞΌm) β IOP OVERestimated ~0.7 mmHg. "
"Thin cornea = falsely LOW reading; Thick cornea = falsely HIGH reading.",
"CCT CORRECTION"))
story.append(h2("8.2 Gonioscopy"))
story.append(p("<b>Essential for:</b> Differentiating open vs. angle-closure; identifying secondary causes; assessing extent of PAS"))
story.append(h3("Gonioscopic Landmarks (anterior to posterior)"))
for item in ["Schwalbe's line (anterior TM border β posterior cornea)", "Trabecular meshwork (pigmented posterior TM most important)", "Scleral spur (white, most posterior TM landmark)", "Ciliary band (brownish β most posterior structure)", "Iris root"]:
story.append(b(item))
story.append(h3("Shaffer Grading"))
shaffer_data = [
["Grade", "Angle Width", "Closure Risk"],
["4", "35β45Β°", "Impossible β wide open"],
["3", "25β35Β°", "Unlikely"],
["2", "20Β°", "Possible"],
["1", "<10Β°", "Probable"],
["0", "Closed (0Β°)", "Closure present"],
]
story.append(make_table(shaffer_data, col_widths=[2*cm, 4*cm, 10.5*cm]))
story.append(sp(4))
story.append(p("<b>Indentation (dynamic) gonioscopy:</b> Distinguishes <b>appositional</b> (pushed open by indentation) from <b>synechial/PAS</b> closure (cannot be opened)"))
story.append(h2("8.3 Perimetry (Visual Field Testing)"))
perim_data = [
["Pattern", "Coverage", "Use"],
["24-2 (Humphrey)", "Central 24Β° temporal, 30Β° nasal", "Standard glaucoma monitoring"],
["30-2", "Central 30Β° all directions", "Alternative; covers more peripheral"],
["10-2", "Central 10Β° radius", "Advanced glaucoma; monitoring central island; split fixation"],
["FF-120", "Central + peripheral", "Neurological defects"],
]
story.append(make_table(perim_data, col_widths=[3.5*cm, 5*cm, 8*cm]))
story.append(sp(4))
story.append(h3("Global Indices"))
for item in [
"<b>Mean Deviation (MD):</b> Average deviation from age-matched normal (dB); negative = worse",
"<b>Pattern SD (PSD):</b> Irregularity of field loss β elevated in focal loss (e.g. arcuate scotoma)",
"<b>VFI:</b> 0β100%; 100% = perfect; used for trend analysis",
"<b>GHT (Glaucoma Hemifield Test):</b> Compares upper/lower hemifields β 'Outside normal limits' is significant",
"<b>Reliability criteria:</b> Fixation losses >20%, false positives >15%, false negatives >33% β unreliable test",
]:
story.append(b(item))
story.append(h2("8.4 OCT (Optical Coherence Tomography)"))
for item in [
"Spectral Domain OCT (SD-OCT) is now standard",
"Measures: RNFL thickness, GCL (ganglion cell layer), macular volume",
"<b>Most sensitive area for early detection:</b> Inferotemporal RNFL",
"<b>Structural changes precede functional (VF) loss</b> by several years β OCT detects earlier",
"Colour-coded probability maps: Green = normal, Yellow = borderline, Red = outside normal limits",
]:
story.append(b(item))
story.append(h2("8.5 Central Corneal Thickness (CCT)"))
story.append(p("Measured by <b>ultrasound pachymetry</b> or optical methods (Orbscan/Pentacam). Average ~545 ΞΌm."))
story.append(p("Essential for: IOP interpretation, risk stratification in OHT (OHTS)"))
story.append(h2("8.6 Other Imaging"))
for item in [
"<b>HRT (Heidelberg Retina Tomograph):</b> Confocal scanning laser; 3D disc analysis; Moorfields Regression Analysis (MRA)",
"<b>GDx (Scanning laser polarimetry):</b> RNFL thickness via birefringence; TSNIT pattern",
"<b>Fundus photography:</b> Baseline documentation; red-free for RNFL",
]:
story.append(b(item))
story.append(h3("Disc Magnification Correction Factors"))
lens_data = [
["Lens", "Correction Factor"],
["Volk 60D", "Γ0.88β1.0"],
["Volk 78D", "Γ1.1"],
["Volk 90D", "Γ1.3"],
["Goldmann 3-mirror", "Γ1.27"],
]
story.append(make_table(lens_data, col_widths=[5*cm, 5*cm], has_header=True))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 9 β MEDICATIONS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 9 β ANTI-GLAUCOMA MEDICATIONS"))
drug_data = [
["Drug Class", "Examples", "Mechanism", "IOP β", "Key Side Effects / CI"],
["Prostaglandin\nAnalogues (PGA)",
"Latanoprost\nBimatoprost\nTravoprost\nTafluprost",
"β Uveoscleral outflow\n(FP receptor agonist)",
"25β35%\n(most potent)",
"Iris pigmentation, eyelash growth (hypertrichosis),\nperiorbital fat atrophy, conjunctival hyperemia,\nCME (aphakic/pseudophakic β caution)"],
["Beta-Blockers",
"Timolol (non-selective)\nBetaxolol (Ξ²1-selective)",
"β Aqueous production\n(Ξ²2-blockade in ciliary body)",
"20β30%",
"Bradycardia, bronchospasm\nCI: Asthma, COPD, heart block\nBetaxolol: safer in respiratory disease"],
["Alpha-2\nAgonists",
"Brimonidine 0.2%\nApraclonidine 1%",
"β Aqueous production\n+ β Uveoscleral outflow",
"20β25%",
"Follicular conjunctivitis (up to 30%), dry mouth,\nfatigue/sedation\nCI: Infants/neonates (CNS depression, apnea, bradycardia)"],
["Carbonic\nAnhydrase\nInhibitors (CAI)",
"Topical: Dorzolamide,\nBrinzolamide\nOral: Acetazolamide,\nMethazolamide",
"β Aqueous production\n(inhibit CA II/IV in\nciliary body epithelium)",
"15β20%",
"Topical: stinging, metallic taste, corneal edema\nOral: paresthesias, GI upset, renal stones, hypokalemia,\nagranulocytosis/aplastic anemia (rare)\nCI: Sulfonamide allergy"],
["Miotics\n(Cholinergics)",
"Pilocarpine 1β4%\nCarbachol",
"β Conventional outflow\n(TM tensioning via\nciliary muscle contraction)",
"20β25%",
"Brow ache (especially early), accommodative spasm,\nmiosis (poor night driving), retinal detachment risk\nCI: Aphakic/pseudophakic pupillary block"],
["Rho-kinase\nInhibitors",
"Netarsudil",
"β Conventional outflow\n(β TM cell contractility)\n+ β Episcleral venous\npressure",
"15β20%",
"Conjunctival hyperemia, corneal verticillata\n(whorl-like deposits), subconjunctival hemorrhage"],
["NO-donating\nPGA",
"Latanoprostene\nbunod",
"β Uveoscleral + conventional\noutflow (dual mechanism)",
"~PGA",
"Similar to prostaglandin analogues"],
]
story.append(make_table(drug_data, col_widths=[2.8*cm, 3.2*cm, 3.5*cm, 1.7*cm, 5.3*cm]))
story.append(sp(8))
story.append(h2("Key Pharmacology Points"))
pharma_key = [
"<b>First-line:</b> Prostaglandin analogue (once daily, highest efficacy, best compliance)",
"<b>Alternate first-line:</b> Topical beta-blocker (timolol)",
"<b>PGA timing:</b> Given at <b>night</b> (circadian rhythm optimization)",
"<b>Two drops:</b> Wait <b>5 minutes</b> between instillation to prevent washout of first drop",
"<b>Brimonidine:</b> May have additional neuroprotective effect β preferred in NTG (alpha-2 agonism activates RGC survival pathways)",
"<b>Betaxolol:</b> Beta-1 selective β preferred beta-blocker when respiratory disease a concern; also less nocturnal BP dip (NTG-friendly)",
"<b>Acetazolamide:</b> Oral CAI for acute AACG or inadequate topical control; <b>CI in sulfonamide allergy</b>",
"<b>Pilocarpine CI</b> in aphakic/pseudophakic pupillary block (can worsen); use cautiously in retinal tears",
]
for item in pharma_key:
story.append(b(item))
story.append(h2("Common Fixed-Dose Combinations"))
combo_data = [
["Combination", "Trade Name (example)", "Use"],
["Timolol + Dorzolamide", "Cosopt", "BB + CAI; reduces drop burden"],
["Timolol + Brimonidine", "Combigan", "BB + alpha-2 agonist"],
["Timolol + Latanoprost", "Xalacom", "BB + PGA (morning use)"],
["Timolol + Bimatoprost", "Ganfort", "BB + PGA"],
["Netarsudil + Latanoprost", "Rocklatan", "Dual novel mechanism"],
]
story.append(make_table(combo_data, col_widths=[5.5*cm, 4.5*cm, 6.5*cm]))
story.append(sp(4))
story.append(tip(
"PGA side effects mnemonic: 'PALE FISH' β Periorbital fat atrophy, Arterial BP (minor), "
"Lash hypertrichosis, Eyelid darkening, Fore (uveitis-rare), Iris color change, "
"Superficial punctate keratitis, Hyperemia (conjunctival)", "MNEMONIC: PALE FISH"))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 10 β LASER
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 10 β LASER PROCEDURES IN GLAUCOMA"))
laser_data = [
["Procedure", "Indication", "Laser Type", "Mechanism", "Notes"],
["Laser Peripheral\nIridotomy (LPI/PI)",
"PACG, PACS (prophylaxis),\nPost-AACG (fellow eye)",
"Nd:YAG\n(Β± argon)",
"Creates full-thickness iris hole β\nequalizes PC/AC pressure\nβ opens angle",
"Fellow eye risk: 40β80% AACG in 5β10 yrs without treatment.\nRepeat if blockage."],
["Selective Laser\nTrabeculoplasty\n(SLT)",
"POAG (1st or 2nd line),\nOHT, NTG",
"Q-switched\nNd:YAG 532 nm",
"Selectively targets pigmented TM\ncells β biological response\nβ β trabecular outflow",
"Repeatable (unlike ALT).\nLiGHT trial: first-line superior/equivalent to drops.\n~6β8 mmHg IOP reduction.\nEffect lasts 2β5 years."],
["Argon Laser\nTrabeculoplasty\n(ALT)",
"POAG (older procedure)",
"Argon",
"Burns in TM β scarring and\ncollagen contraction β\nopens adjacent areas",
"Not reliably repeatable.\nReplaced by SLT in most centers."],
["Argon Laser\nIridoplasty\n(ALPI)",
"Plateau iris syndrome,\nPI-failed PACG",
"Argon",
"Peripheral iris burns β iris\nstroma shrinks β opens\nangle mechanically",
"Burns placed in far periphery.\nDoes not create hole through iris."],
["Diode Laser\nCyclodestruction\n(Cyclodiode)",
"Refractory/end-stage\nglaucoma",
"Diode 810 nm",
"Destroys ciliary body\nepithelium β β aqueous\nproduction",
"Last resort; risk of hypotony, phthisis.\nRepeat treatment possible."],
["YAG Laser\nVitreolysis",
"Malignant glaucoma",
"Nd:YAG",
"Disrupts anterior vitreous\nface β redirects aqueous\nforward",
"First-line non-surgical option for\nmalignant glaucoma after cycloplegia fails."],
]
story.append(make_table(laser_data, col_widths=[3.2*cm, 3*cm, 2.2*cm, 4.5*cm, 3.6*cm]))
story.append(sp(8))
story.append(tip(
"LiGHT Trial (2019): SLT as first-line therapy was non-inferior and possibly superior to eye drops as initial treatment for POAG/OHT. "
"At 3 years, 74% of SLT group needed no drops. SLT should be offered as first-line treatment.",
"LiGHT TRIAL"))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 11 β SURGERY
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 11 β SURGICAL PROCEDURES"))
story.append(h2("11.1 Trabeculectomy (Standard Filtration Surgery)"))
story.append(tip("Gold standard for IOP reduction in medically/laser uncontrolled glaucoma", "GOLD STANDARD"))
story.append(h3("Principle"))
story.append(p("Creates a guarded scleral fistula allowing subconjunctival drainage β filtered bleb formation under the conjunctiva"))
story.append(h3("Surgical Steps (Kanski's 10e)"))
trab_steps = [
"1. Conjunctival flap (fornix-based or limbus-based)",
"2. Lamellar scleral flap (~50% scleral thickness), 3Γ3β4 mm, rectangular/trapezoid/triangular",
"3. Flap dissected anteriorly to clear cornea",
"4. Paracentesis in temporal peripheral clear cornea (anterior chamber access)",
"5. Anterior chamber entered along trapdoor base",
"6. <b>Deep scleral block excised</b> using Kelly punch (creates sclerostomy)",
"7. <b>Peripheral iridectomy</b> (prevents iris prolapse into sclerostomy; may be omitted in pseudophakic)",
"8. Superficial scleral flap sutured (releasable or lysable sutures)",
"9. BSS injected through paracentesis to test fistula patency",
"10. Conjunctiva/Tenon sutured; bleb checked for leakage",
"11. Atropine 1% drop; subconjunctival steroid + antibiotic injection",
]
for step in trab_steps:
story.append(b(step))
story.append(h3("Antimetabolites β Preventing Bleb Failure"))
anti_data = [
["Agent", "Potency", "Indication", "Key Complications"],
["Mitomycin C (MMC)", "More potent\n(alkylating agent)", "Higher-risk cases: young, Afro-Caribbean, prior surgery/inflammation, aphakia, neovascular", "Avascular bleb, bleb leak, hypotony maculopathy, late blebitis/endophthalmitis"],
["5-Fluorouracil (5-FU)", "Less potent\n(antimetabolite)", "Moderate-risk; intraoperative or postoperative subconj injections", "Persistent corneal epithelial defect, bleb leakage, less durable than MMC"],
]
story.append(make_table(anti_data, col_widths=[3.2*cm, 2.8*cm, 5.5*cm, 5*cm]))
story.append(sp(4))
story.append(h3("Complications"))
for item in [
"<b>Early:</b> Hypotony, flat AC, choroidal detachment, hyphema, wound leak, infection",
"<b>Late:</b> Bleb failure (fibrosis), bleb leak, blebitis (up to 5%/yr with MMC), <b>late endophthalmitis</b> (lifelong risk β highest of any glaucoma surgery)",
"Malignant glaucoma (especially in small hyperopic/PACG eyes)",
]:
story.append(b(item))
story.append(h2("11.2 Ex-PRESS Mini-Shunt"))
for item in [
"Valveless titanium MRI-compatible stent inserted under scleral flap (modified trabeculectomy)",
"No punch sclerostomy; no peripheral iridectomy required",
"Lower rates of hypotony and hyphema vs standard trabeculectomy",
"Equivalent IOP control to standard trabeculectomy",
"Not suitable in primary angle-closure without concurrent/prior cataract surgery",
]:
story.append(b(item))
story.append(h2("11.3 Glaucoma Drainage Devices (GDD / Tube Shunts)"))
gdd_data = [
["Device", "Valve?", "Plate Size", "Best For"],
["Ahmed Glaucoma Valve", "Yes (flow-restrictor)", "Medium (184 mmΒ²)", "Early pressure control; NVG, uveitis, pediatric"],
["Baerveldt Implant", "No (needs ligation)", "Large (250β350 mmΒ²)", "Better long-term IOP control; requires ligature initially"],
["Molteno", "No", "Various", "Historical; still used in some centers"],
]
story.append(make_table(gdd_data, col_widths=[3.5*cm, 3*cm, 3.5*cm, 6.5*cm]))
story.append(sp(4))
story.append(p("<b>Indications:</b> Failed trabeculectomy, NVG, uveitic glaucoma, congenital glaucoma (failed initial surgery), ICE syndrome"))
story.append(h2("11.4 MIGS (Minimally Invasive Glaucoma Surgery)"))
migs_data = [
["Category", "Examples", "Notes"],
["TM bypass (ab interno)", "iStent, Hydrus microstent", "Increases outflow through Schlemm's canal; lowest risk; often combined with cataract surgery"],
["Subconjunctival (ab interno)", "Xen gel stent, PRESERFLO", "Creates bleb like trabeculectomy but less invasive"],
["Suprachoroidal", "Cypass (withdrawn due to safety)", "Uveoscleral outflow enhancement"],
["TM incision", "GATT, Viscocanalostomy", "Opens Schlemm's canal over 360Β°"],
]
story.append(make_table(migs_data, col_widths=[4*cm, 4.5*cm, 8*cm]))
story.append(sp(4))
story.append(p("<b>MIGS key concept:</b> Less IOP reduction than trabeculectomy, but significantly lower complication profile. Best for mild-moderate glaucoma or combined with phaco."))
story.append(h2("11.5 Goniotomy / Trabeculotomy (Congenital Glaucoma)"))
for item in [
"<b>Goniotomy:</b> Ab interno incision through TM under gonioscopic view; requires <b>clear cornea</b>",
"<b>Trabeculotomy:</b> External approach; probe through Schlemm's canal; can be done with <b>cloudy cornea</b>",
"Combined trabeculotomy-trabeculectomy: used in more severe/refractory congenital cases",
]:
story.append(b(item))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 12 β SPECIAL GLAUCOMAS
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 12 β SPECIAL GLAUCOMAS"))
story.append(h2("12.1 Primary Congenital Glaucoma (PCG)"))
story.append(p("<b>Mechanism:</b> Trabeculodysgenesis β failure of normal TM development"))
story.append(h3("Classic Triad (must know)"))
story.append(tip("Buphthalmos + Epiphora (tearing) + Photophobia/Blepharospasm", "CLASSIC TRIAD"))
for item in [
"<b>Buphthalmos:</b> Enlarged, 'ox eye' β axial length increases (child's cornea/sclera more elastic than adult)",
"<b>Haab's striae:</b> Horizontal/oblique breaks in Descemet's membrane from corneal stretching; <b>pathognomonic</b>",
"Corneal edema (cloudy cornea), high IOP",
"Presentation: Birth to 3 years (most in first year)",
"Genetics: Some autosomal recessive (CYP1B1 gene mutations)",
"<b>Treatment: SURGICAL is primary</b> β Goniotomy (if clear cornea) or Trabeculotomy; medical is only adjunct",
]:
story.append(b(item))
story.append(h2("12.2 Sturge-Weber Syndrome"))
for item in [
"Sporadic, congenital phacomatosis (encephalotrigeminal angiomatosis)",
"Glaucoma ipsilateral to facial hemangioma in <b>~30%</b>",
"<b>60%</b> develop glaucoma before age 2 (buphthalmos); remainder any age",
"Mechanism (infants): Trabeculodysgenesis; (older): Raised episcleral venous pressure from AV communication in episcleral hemangioma",
"Surgery risk: High risk of <b>choroidal effusion and suprachoroidal hemorrhage</b> (reduced IOP β uveal expansion)",
]:
story.append(b(item))
story.append(h2("12.3 Plateau Iris Syndrome"))
for item in [
"Anteriorly rotated ciliary processes maintain peripheral iris contact with TM despite patent PI",
"Gonioscopy: 'Double hump' sign; angle remains narrow/closes after PI",
"UBM (ultrasound biomicroscopy) is diagnostic",
"Treatment: <b>Argon laser iridoplasty (ALPI)</b> β burns in far periphery shrink iris stroma",
]:
story.append(b(item))
story.append(h2("12.4 Iridocorneal Endothelial (ICE) Syndrome"))
for item in [
"Unilateral, females >males, middle age",
"Corneal endothelial proliferation β membrane over angle β angle closure (PAS)",
"Variants: Essential iris atrophy, Chandler syndrome, Iris nevus (Cogan-Reese) syndrome",
"No treatment cures; GDD usually required for glaucoma",
]:
story.append(b(item))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 13-14 β TRIALS & NEUROPROTECTION
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 13 β KEY CLINICAL TRIALS"))
big_trial_data = [
["Trial", "Full Name", "Key Findings"],
["OHTS", "Ocular Hypertension Treatment Study",
"β’ OHT: 9.5%β4.4% POAG conversion risk with treatment\nβ’ Thin CCT = strongest single predictor of conversion\nβ’ Validated 5-yr risk prediction model"],
["EMGT", "Early Manifest Glaucoma Trial",
"β’ MD loss/yr: HTG -1.31, NTG -0.36, PXEG -3.13 dB\nβ’ Each 1 mmHg β β ~10% β progression risk\nβ’ Risk factors: high IOP, pseudoexfoliation, bilateral disease, worse MD, older age"],
["AGIS", "Advanced Glaucoma Intervention Study",
"β’ IOP consistently <18 mmHg at ALL visits β minimal VF progression\nβ’ ALT first in Blacks; trabeculectomy first in Whites β better outcomes"],
["CNTGS", "Collaborative Normal-Tension Glaucoma Study",
"β’ 30% IOP reduction reduces NTG progression\nβ’ Even at 'normal' IOP, lowering further helps"],
["EAGLE", "Effectiveness of Early Lens Extraction",
"β’ Clear lens extraction + IOL > Laser PI in PAC (IOP >29) or PACG\nβ’ More cost-effective and greater efficacy than LPI"],
["LiGHT", "Laser in Glaucoma and Ocular Hypertension",
"β’ SLT as first-line: non-inferior/superior to drops (2019)\nβ’ 74% in SLT group needed no drops at 3 years\nβ’ Fewer disease progression events in SLT group"],
["CIGTS", "Collaborative Initial Glaucoma Treatment Study",
"β’ Initial surgery: better IOP control\nβ’ Initial medications: better initial VF and less cataract\nβ’ Long-term outcomes similar"],
]
story.append(make_table(big_trial_data, col_widths=[2*cm, 5*cm, 9.5*cm]))
story.append(sp(8))
story.append(h1("SECTION 14 β NEUROPROTECTION & FUTURE"))
story.append(h2("Current Status"))
story.append(p("<b>IOP reduction</b> remains the ONLY proven neuroprotective strategy in glaucoma. All other approaches are experimental."))
np_data = [
["Agent/Strategy", "Evidence", "Status"],
["IOP reduction (all modalities)", "Proven in multiple RCTs", "Current standard of care"],
["Brimonidine (alpha-2 agonist)", "Activates survival pathways; some clinical evidence", "Used clinically (NTG)"],
["Memantine (NMDA antagonist)", "Studied in large RCT β NEGATIVE result", "Not recommended"],
["Ginkgo biloba", "Some small studies, inconclusive", "Not recommended"],
["Rho-kinase inhibitors (Netarsudil)", "Novel TM + episcleral mechanism", "FDA-approved 2017"],
["Gene therapy", "Ongoing trials (MYOC, OPTN)", "Experimental"],
["Stem cell therapy", "Preclinical/early trials", "Experimental"],
["Tau/Amyloid-beta targeting", "RGC death overlap with neurodegenerative disease", "Research phase"],
]
story.append(make_table(np_data, col_widths=[5*cm, 6*cm, 5.5*cm]))
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# SECTION 15-16 β MNEMONICS & HIGH-YIELD SUMMARY
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(PageBreak())
story.append(h1("SECTION 15 β MNEMONICS"))
mnem_data = [
["Mnemonic", "Stands For", "Meaning"],
["ISNT", "I-S-N-T", "Normal NRR order: Inferior > Superior > Nasal > Temporal\n(Violation = suspect glaucoma)"],
["PALE FISH", "PGA side effects",
"Periorbital fat atrophy | Arterial BP (minor) | Lash hypertrichosis\nEyelid darkening | F (uveitis, rare) | Iris color change\nSuperficial punctate keratitis | Hyperemia (conjunctival)"],
["FLASH", "PACG risk factors", "Female | Lens (hyperopia, thick) | Age (older)\nShallow AC | Heredity (family history)"],
["Top CAP MO", "AACG management sequence",
"Topicals β CAI (acetazolamide) β Prone/pressure recheck\nMannitol (if refractory) β Operative/Laser PI (definitive)"],
["BEJING rule\n(pigmentary)", "Features of pigmentary glaucoma",
"B: Krukenberg spindle on cornea\nE: Exercise/exertion raises IOP\nJ: Young myopic males\nI: Iris transillumination defects\nN: Normal-appearing (open) angle initially\nG: Glaucoma (pigmentary)"],
]
story.append(make_table(mnem_data, col_widths=[2.8*cm, 3.5*cm, 10.2*cm]))
story.append(sp(8))
story.append(h1("SECTION 16 β 20 HIGH-YIELD EXAM POINTS"))
story.append(tip("Read these the morning of your exam β 24 June 2026", "EXAM DAY QUICK REVIEW"))
hiyield = [
"1. <b>IOP normal range: 10β21 mmHg</b>; diurnal variation 3β5 mmHg (peaks morning)",
"2. <b>CCT</b> is the strongest single predictor of OHT β POAG conversion (OHTS)",
"3. <b>ISNT rule violation</b> = suspect glaucoma; vertical C/D asymmetry >0.2 = significant",
"4. <b>Disc hemorrhage</b> = risk factor for progression; more common in NTG; usually inferotemporal",
"5. <b>NTG:</b> 50% DON'T progress without treatment β demonstrate progression before treating",
"6. <b>NTG neuroimaging</b> if: colour vision loss, VA loss disproportionate to cupping, rapid progression at normal IOP, rim pallor",
"7. <b>AACG precipitants:</b> dim light, reading, topical mydriatics, systemic anticholinergics, topiramate",
"8. <b>Topiramate angle-closure:</b> BILATERAL; NO PI; NO CAIs; use cycloplegia (atropine) + stop drug",
"9. <b>Prostaglandins:</b> once daily (at night), most potent (~25β35% IOP reduction), uveoscleral outflow",
"10. <b>Pilocarpine CI</b> in aphakic/pseudophakic pupillary block; caution with retinal tears/RD risk",
"11. <b>LiGHT Trial:</b> SLT is first-line treatment β 74% needed no drops at 3 years",
"12. <b>EAGLE Study:</b> Clear lens extraction > LPI in PAC (IOP >29) or PACG",
"13. <b>Trabeculectomy:</b> Kelly punch for sclerostomy; peripheral iridectomy; bleb is endpoint; releasable sutures",
"14. <b>MMC > 5-FU</b> in potency; blebitis risk up to 5%/yr with MMC; lifelong endophthalmitis risk",
"15. <b>Congenital glaucoma Rx: SURGERY first</b> (goniotomy if clear cornea / trabeculotomy if cloudy); Haab's striae = horizontal breaks in Descemet's",
"16. <b>Pseudoexfoliation = worst EMGT prognosis</b> (β3.13 dB/yr); poor pupil dilation; weak zonules",
"17. <b>Angle recession glaucoma:</b> Delayed presentation decades after blunt trauma; always do gonioscopy post-trauma",
"18. <b>Malignant glaucoma:</b> Shallow AC + high IOP + PATENT PI; treat with cycloplegia first (atropine)",
"19. <b>Ahmed valve</b> has flow-restricting valve; <b>Baerveldt</b> = no valve, larger plate, better long-term IOP",
"20. <b>Brimonidine CI in infants/neonates:</b> Crosses BBB β CNS depression, apnea, bradycardia",
]
for item in hiyield:
story.append(Paragraph(item, S_BULLET))
story.append(sp(2))
story.append(sp(12))
story.append(hr())
story.append(Paragraph(
"Compiled from: Kanski's Clinical Ophthalmology: A Systematic Approach 10th Edition | "
"Wills Eye Manual | Katzung's Basic & Clinical Pharmacology 16th Edition | "
"Goldman-Cecil Medicine | Goodman & Gilman's Pharmacological Basis of Therapeutics",
S_FOOTER))
story.append(Paragraph(f"Generated: {datetime.date.today().strftime('%d %B %Y')} | For educational use only", S_FOOTER))
# ββ Build ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story,
onFirstPage=on_first_page,
onLaterPages=on_page)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/glaucoma-study-guide && python3 build_pdf.py 2>&1
ls -lh /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.pdf
Glaucoma Study Guide PG2
PDF Document Β· PDF
| Feature | Details |
|---|---|
| Cover page | Navy/teal branded with exam date and source list |
| 16 sections | All content from the study guide |
| Colour-coded headers | Navy section headers, teal sub-headings for easy navigation |
| Tables throughout | Drug class table, trial table, Shaffer grading, disc subtypes, laser procedures, AACG management steps, MIGS, GDD devices |
| Highlighted tip boxes | Key mnemonics, exam alerts, and critical rules (ISNT, OHTS, EAGLE, LiGHT) |
| Running header/footer | Every page shows "Glaucoma Study Guide |
| Section 16 (exam-day) | 20 high-yield bullet points to read the morning of 24 June |
It is not downloadable make it in pdf form
weasyprint or pandoc which generates a proper downloadable file, and also try a different method to ensure it's accessible.which pandoc && pandoc --version | head -1; which wkhtmltopdf; python3 -c "import weasyprint; print('weasyprint ok')" 2>/dev/null; ls -la /home/daytona/workspace/glaucoma-study-guide/
pandoc is available. I'll write the full study guide as a Markdown file and convert it to PDF via pandoc with LaTeX, which produces a clean, properly formatted downloadable PDF.pandoc --list-output-formats | grep -i pdf; pdflatex --version | head -1 2>/dev/null; xelatex --version | head -1 2>/dev/null; lualatex --version | head -1 2>/dev/null
pandoc --list-output-formats; python3 -c "import weasyprint; print('weasyprint ok')" 2>&1; python3 -c "from xhtml2pdf import pisa; print('xhtml2pdf ok')" 2>&1
pandoc --pdf-engine=typst --version 2>&1 | head -3; which typst 2>/dev/null; pandoc -t pdf --list-extensions 2>&1 | head -5
context engine, or use reportlab but write the PDF properly with embedded fonts to ensure it renders. Let me check if the existing PDF is actually valid first, then try a fresh approach using fpdf2 which creates truly portable PDFs.python3 -c "from fpdf import FPDF; print('fpdf2 ok')" 2>&1; python3 -c "import fpdf; print(fpdf.__version__)" 2>&1
# Try pandoc HTML -> PDF via context (ConTeXt) which context 2>/dev/null || echo "no context" # Try generating HTML first then converting python3 -c " from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 c = canvas.Canvas('/tmp/test_rl.pdf', pagesize=A4) c.drawString(100, 700, 'Test PDF') c.save() print('reportlab canvas works') " 2>&1 # Verify existing PDF is a real PDF head -c 8 /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.pdf | xxd
python3 -c " with open('/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.pdf','rb') as f: header = f.read(8) print('Header bytes:', header) print('Is PDF:', header.startswith(b'%PDF')) "
%PDF-1.4 file. The issue was the download link format. Let me copy it to a clean path with no spaces and re-verify, then provide the correct link.cp "/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.pdf" "/home/daytona/workspace/glaucoma-study-guide/glaucoma_study_guide.pdf" ls -lh /home/daytona/workspace/glaucoma-study-guide/glaucoma_study_guide.pdf # Also check page count python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/glaucoma-study-guide/glaucoma_study_guide.pdf') print(f'Pages: {len(r.pages)}') print(f'Title: {r.metadata.title}') "
glaucoma study guide
PDF Document Β· PDF
/home/daytona/workspace/glaucoma-study-guide/glaucoma_study_guide.pdfYes facing issue
ls /home/daytona/skills/docx/scripts/office/ && node --version && npm list -g docx 2>/dev/null | head -3
docx@9.6.1 is available. I'll build a fully formatted Word document now.~/glaucoma-study-guide/build_docx.js
"use strict";
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, Header, Footer, TabStopType, TabStopPosition,
PageBreak, TableOfContents
} = require("docx");
const fs = require("fs");
const OUT = "/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx";
// βββ Colours ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const NAVY = "1A3A5C";
const TEAL = "1A7A7A";
const GOLD = "D4820A";
const LBLUE = "DCE8F5";
const YELLOW = "FFF8E1";
const WHITE = "FFFFFF";
const RED = "C0392B";
// βββ Helpers βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function h1(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_1,
spacing: { before: 240, after: 120 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
children: [new TextRun({ text, bold: true, color: WHITE, size: 28, font: "Calibri" })]
});
}
function h2(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_2,
spacing: { before: 160, after: 80 },
border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: TEAL } },
children: [new TextRun({ text, bold: true, color: NAVY, size: 24, font: "Calibri" })]
});
}
function h3(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_3,
spacing: { before: 120, after: 60 },
children: [new TextRun({ text, bold: true, color: TEAL, size: 22, font: "Calibri" })]
});
}
function p(runs) {
if (typeof runs === "string") {
runs = [new TextRun({ text: runs, size: 20, font: "Calibri" })];
}
return new Paragraph({ spacing: { after: 80 }, children: runs });
}
function bullet(text, level = 0) {
const runs = [];
// Handle **bold** markers
const parts = text.split(/(\*\*[^*]+\*\*)/g);
for (const part of parts) {
if (part.startsWith("**") && part.endsWith("**")) {
runs.push(new TextRun({ text: part.slice(2, -2), bold: true, size: 20, font: "Calibri" }));
} else if (part) {
runs.push(new TextRun({ text: part, size: 20, font: "Calibri" }));
}
}
return new Paragraph({
bullet: { level },
spacing: { after: 60 },
children: runs
});
}
function numbered(text, num) {
const runs = [];
const parts = text.split(/(\*\*[^*]+\*\*)/g);
for (const part of parts) {
if (part.startsWith("**") && part.endsWith("**")) {
runs.push(new TextRun({ text: part.slice(2, -2), bold: true, size: 20, font: "Calibri" }));
} else if (part) {
runs.push(new TextRun({ text: part, size: 20, font: "Calibri" }));
}
}
return new Paragraph({
numbering: { reference: "num-list", level: 0 },
spacing: { after: 60 },
children: runs
});
}
function tip(label, text) {
return new Paragraph({
spacing: { before: 120, after: 120 },
shading: { type: ShadingType.SOLID, color: YELLOW, fill: YELLOW },
border: {
left: { style: BorderStyle.THICK, size: 12, color: GOLD }
},
children: [
new TextRun({ text: `β ${label}: `, bold: true, color: GOLD, size: 20, font: "Calibri" }),
new TextRun({ text, size: 20, font: "Calibri" })
]
});
}
function spacer() {
return new Paragraph({ spacing: { after: 120 }, children: [new TextRun("")] });
}
function pageBreak() {
return new Paragraph({ children: [new TextRun({ break: 1 })] });
}
// βββ Table builder ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function makeTable(rows, colWidths) {
const tableRows = rows.map((row, rIdx) => {
const cells = row.map((cell, cIdx) => {
const isHeader = rIdx === 0;
const cellText = String(cell);
const lines = cellText.split("\n");
const cellParas = lines.map(line => {
const runs = [];
const parts = line.split(/(\*\*[^*]+\*\*)/g);
for (const part of parts) {
if (part.startsWith("**") && part.endsWith("**")) {
runs.push(new TextRun({ text: part.slice(2, -2), bold: true, color: isHeader ? WHITE : "000000", size: isHeader ? 19 : 18, font: "Calibri" }));
} else if (part) {
runs.push(new TextRun({ text: part, bold: isHeader, color: isHeader ? WHITE : "2C3E50", size: isHeader ? 19 : 18, font: "Calibri" }));
}
}
return new Paragraph({
spacing: { after: 40 },
children: runs.length ? runs : [new TextRun({ text: "", size: 18 })]
});
});
return new TableCell({
shading: isHeader
? { type: ShadingType.SOLID, color: NAVY, fill: NAVY }
: rIdx % 2 === 0
? { type: ShadingType.SOLID, color: LBLUE, fill: LBLUE }
: { type: ShadingType.SOLID, color: WHITE, fill: WHITE },
verticalAlign: VerticalAlign.TOP,
width: colWidths ? { size: colWidths[cIdx], type: WidthType.DXA } : undefined,
children: cellParas,
margins: { top: 80, bottom: 80, left: 100, right: 100 }
});
});
return new TableRow({ children: cells });
});
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: tableRows,
borders: {
top: { style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
bottom: { style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
left: { style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
right: { style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
insideH:{ style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
insideV:{ style: BorderStyle.SINGLE, size: 4, color: "B0C4DE" },
}
});
}
// βββ Cover page ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
function coverPage() {
return [
spacer(), spacer(), spacer(),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { after: 80 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
children: [new TextRun({ text: "GLAUCOMA", bold: true, color: WHITE, size: 72, font: "Calibri" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { after: 80 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
children: [new TextRun({ text: "COMPREHENSIVE STUDY GUIDE", bold: true, color: TEAL, size: 32, font: "Calibri" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { after: 60 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
children: [new TextRun({ text: "Ophthalmology Postgraduate β Year 2", color: "A8C6E0", size: 24, font: "Calibri" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { after: 400 },
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
children: [new TextRun({ text: "Exam Date: 24 June 2026", bold: true, color: GOLD, size: 24, font: "Calibri" })]
}),
makeTable([
["Classification\n& Pathophysiology", "Pharmacology\n& Mechanisms", "Key Clinical\nTrials", "Mnemonics\n& High-Yield"],
["16 Sections", "All drug classes\nwith side effects", "OHTS Β· EMGT Β· AGIS\nEAGLE Β· LiGHT", "ISNT Β· PALE FISH\nFLASH Β· Top CAP MO"]
]),
spacer(),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { after: 60 },
children: [new TextRun({ text: "Sources: Kanski's Clinical Ophthalmology 10e | Wills Eye Manual | Katzung's Pharmacology 16e | Goldman-Cecil Medicine", color: "7FAABF", size: 16, font: "Calibri" })]
}),
pageBreak()
];
}
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// BUILD CONTENT
// ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const children = [];
// Cover
children.push(...coverPage());
// ββ SECTION 1 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(h1("SECTION 1 β DEFINITION & OVERVIEW"));
children.push(p([new TextRun({ text: "Glaucoma", bold: true, size: 20, font: "Calibri" }), new TextRun({ text: " is a group of conditions sharing a common ", size: 20, font: "Calibri" }), new TextRun({ text: "chronic progressive optic neuropathy", bold: true, size: 20, font: "Calibri" }), new TextRun({ text: " characterised by:", size: 20, font: "Calibri" })]));
children.push(bullet("Characteristic morphological changes at the optic nerve head (ONH) and RNFL"));
children.push(bullet("Progressive **retinal ganglion cell (RGC) death**"));
children.push(bullet("Associated visual field loss"));
children.push(bullet("**IOP is the key modifiable risk factor** (but not the only one)"));
children.push(spacer());
children.push(tip("GOAL", "Slow the rate of progression throughout a patient's lifetime to maintain visual function and quality of life at a sustainable cost."));
// ββ SECTION 2 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(h1("SECTION 2 β CLASSIFICATION"));
children.push(makeTable([
["Type", "Open-Angle", "Angle-Closure"],
["Primary", "POAG, NTG, OHT", "Acute PACG, Chronic PACG, PACS"],
["Congenital/Developmental", "Primary Congenital Glaucoma (PCG)\nCYP1B1 mutations", "Secondary (Sturge-Weber, NF1)"],
["Secondary Open-Angle", "Pseudoexfoliation, Pigmentary, Steroid-induced, Inflammatory, Angle recession", "β"],
["Secondary Angle-Closure", "β", "Neovascular, Phacomorphic, Phacolytic, Malignant (ciliolenticular block)"]
]));
children.push(spacer());
children.push(h2("Epidemiology"));
children.push(bullet("Affects **2β3% of people over 40 years**; up to 50% undiagnosed"));
children.push(bullet("**2nd leading cause of blindness** worldwide"));
children.push(bullet("POAG: Most common in White, Hispanic, **Black** individuals (prevalence ~16% in Black >70 yrs)"));
children.push(bullet("PACG: Up to **50% of cases worldwide**; especially **Asian descent**"));
children.push(bullet("NTG: More common in Japanese populations; females affected more"));
// ββ SECTION 3 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(h1("SECTION 3 β AQUEOUS HUMOR DYNAMICS & IOP"));
children.push(h2("Aqueous Production"));
children.push(p("Produced by the ciliary body non-pigmented epithelium via:"));
children.push(bullet("**Active secretion** (Na+/K+ ATPase β dominant pathway)"));
children.push(bullet("Ultrafiltration"));
children.push(bullet("Simple diffusion"));
children.push(h2("Outflow Pathways"));
children.push(makeTable([
["Pathway", "Route", "% Total Outflow"],
["Conventional (Trabecular)", "TM β Schlemm's canal β aqueous veins β episcleral veins", "~80β85%"],
["Uveoscleral (Non-conventional)", "AC β ciliary muscle β suprachoroidal space β sclera", "~15β20%"]
]));
children.push(spacer());
children.push(h2("Normal IOP"));
children.push(bullet("Normal range: **10β21 mmHg** (mean ~16 mmHg, SD ~3 mmHg)"));
children.push(bullet("Diurnal variation: **3β5 mmHg** (peaks early morning)"));
children.push(bullet("~50% of POAG patients have **normal IOP at any single screening**"));
children.push(tip("OHTS TRIAL", "Untreated OHT: 9.5% cumulative POAG conversion at 5 yrs. Treatment reduces to 4.4%. Thin CCT = STRONGEST single predictor of conversion."));
// ββ SECTION 4 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 4 β PRIMARY OPEN-ANGLE GLAUCOMA (POAG)"));
children.push(h2("Definition"));
children.push(p("Chronic, progressive optic neuropathy of adult onset with open anterior chamber angle and no secondary cause."));
children.push(h2("Risk Factors"));
children.push(makeTable([
["Risk Factor", "Details"],
["**Raised IOP**", "Most important modifiable risk factor"],
["**Thin CCT**", "Strongest predictor in OHTS; each 40 ΞΌm thinner β ~3Γ increased risk"],
["Black African descent", "Higher prevalence, earlier onset, faster progression"],
["Age", "Prevalence rises sharply after 60 years"],
["Family history", "~10Γ increased risk in 1st-degree relatives"],
["High myopia", "Optic disc more susceptible to IOP damage"],
["Pseudoexfoliation", "Strongest identifiable secondary risk factor"],
["Low systemic BP / OSA", "Reduced ocular perfusion pressure"]
]));
children.push(spacer());
children.push(h2("ISNT Rule"));
children.push(tip("ISNT RULE", "Normal NRR thickness order: Inferior > Superior > Nasal > Temporal. ANY violation = suspect glaucoma."));
children.push(h2("Optic Disc Signs"));
children.push(bullet("**C/D ratio increase** β vertical C/D β₯0.7 suspicious; asymmetry >0.2 between eyes significant"));
children.push(bullet("**Notching of NRR** β most commonly inferotemporal β corresponds to arcuate scotoma"));
children.push(bullet("**RNFL defects** β wedge-shaped nerve fibre layer dropout (red-free photography)"));
children.push(bullet("**Disc haemorrhages** β flame-shaped at disc margin, inferotemporal; risk factor for progression; more common in NTG"));
children.push(bullet("**Beta-zone PPA** (peripapillary atrophy) β correlates with RNFL loss"));
children.push(bullet("**Pallor disproportionate to cupping** β suspect non-glaucomatous optic neuropathy"));
children.push(h2("Morphological Subtypes of Glaucomatous Disc"));
children.push(makeTable([
["Type", "Appearance", "Association"],
["Focal ischaemic", "Localised sup/inf notching", "Localised VF defects; early fixation threat"],
["Myopic disc", "Tilted/oblique + temporal crescent PPA", "Dense sup/inf scotomas; young males"],
["Sclerotic", "Shallow saucerized cup, sloping NRR", "Older patients; systemic vascular disease"],
["Concentrically enlarging", "Uniform NRR thinning (serial monitoring)", "Diffuse VF loss; high IOP at presentation"]
]));
children.push(spacer());
children.push(h2("Visual Field Progression (Chronological)"));
children.push(bullet("1. Isolated paracentral scotoma (within 10Β° of fixation)"));
children.push(bullet("2. Nasal step (respects horizontal meridian)"));
children.push(bullet("3. Bjerrum/Arcuate scotoma (10β20Β° from fixation β Bjerrum's area)"));
children.push(bullet("4. Double arcuate (ring) scotoma"));
children.push(bullet("5. Temporal island + Central island (advanced)"));
children.push(bullet("6. Total field loss"));
children.push(tip("PERIMETRY", "HFA 24-2: standard glaucoma monitoring. 10-2: advanced disease / central island monitoring. GHT 'Outside normal limits' = significant."));
children.push(h2("Key POAG Trials"));
children.push(makeTable([
["Trial", "Key Finding"],
["OHTS", "OHT: thin CCT = strongest predictor; treatment reduces 5-yr conversion 9.5%β4.4%"],
["EMGT", "MD loss/yr: HTG -1.31, NTG -0.36, PXEG -3.13 dB; each 1 mmHg β β 10% less progression risk"],
["AGIS", "IOP consistently <18 mmHg at ALL visits β minimal VF progression"],
["LiGHT (2019)", "SLT as first-line: 74% needed no drops at 3 years; may prevent more progression events"]
]));
// ββ SECTION 5 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 5 β NORMAL TENSION GLAUCOMA (NTG)"));
children.push(p("NTG = glaucomatous ONH and VF damage with IOP consistently β€21 mmHg. Also called Low-Tension Glaucoma (LTG)."));
children.push(h2("Pathogenesis β Beyond IOP"));
children.push(bullet("Vascular insufficiency β impaired ONH blood flow"));
children.push(bullet("**Nocturnal systemic hypotension** (BP dip at night) β strongly implicated"));
children.push(bullet("Systemic vasospasm: migraine, Raynaud's phenomenon"));
children.push(bullet("Obstructive sleep apnea"));
children.push(bullet("Autoimmune mechanisms; OPA1 gene mutation overlap"));
children.push(h2("NTG vs POAG β Key Differences"));
children.push(makeTable([
["Feature", "NTG", "POAG"],
["IOP", "β€21 mmHg", "Often elevated (but not always)"],
["Disc haemorrhages", "MORE common", "Less common"],
["VF defects", "Deeper, steeper, closer to fixation", "More peripheral initially"],
["Untreated progression", "~50% stable at 5β7 yrs", "More likely to progress"],
["Demographics", "Japanese; females", "Highest in Black populations"]
]));
children.push(spacer());
children.push(tip("NEUROIMAGING RULE", "Refer for MRI if: (1) VA loss disproportionate to cupping, (2) Colour vision loss on Ishihara, (3) VF loss NOT consistent with RNFL dropout, (4) Pallor of neuroretinal rim, (5) Rapid progression despite normal IOP."));
children.push(h2("NTG-Specific Investigations"));
children.push(bullet("**24-hour ambulatory BP monitoring** β exclude nocturnal hypotension"));
children.push(bullet("Carotid duplex imaging"));
children.push(bullet("Blood tests: B12, folate, FBC, ESR/CRP, syphilis serology, Lyme, ACE level, protein electrophoresis, autoantibodies"));
children.push(h2("Treatment"));
children.push(bullet("**Demonstrate progression before treating** β 50% stable without treatment (CNTGS)"));
children.push(bullet("**Prostaglandins** β usual first choice"));
children.push(bullet("**Brimonidine** β possible neuroprotective effect (activates RGC survival pathways)"));
children.push(bullet("**Betaxolol** (selective Ξ²1) β preferred beta-blocker; less nocturnal BP dip risk"));
children.push(bullet("CNTGS: 30% IOP reduction reduces NTG progression"));
// ββ SECTION 6 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 6 β PRIMARY ANGLE-CLOSURE GLAUCOMA (PACG)"));
children.push(h2("Spectrum of Disease"));
children.push(makeTable([
["Stage", "Definition"],
["PACS (Suspect)", "Narrow angle; no PAS; normal IOP; no ONH/VF damage"],
["PAC", "Narrow angle + IOP >21 mmHg or PAS; no ONH/VF damage"],
["PACG", "Narrow angle + glaucomatous ONH and/or VF damage"],
["Acute PACG (AACG)", "Sudden symptomatic attack with acutely raised IOP"]
]));
children.push(spacer());
children.push(h2("Risk Factors"));
children.push(tip("MNEMONIC: FLASH", "Female sex | Lens (hyperopia, thick) | Age (older) | Shallow AC | Heredity/family history"));
children.push(p("Precipitants: dim illumination, reading, topical mydriatics, systemic anticholinergics (antihistamines, antidepressants), topiramate/sulfonamides"));
children.push(h2("AACG β Clinical Features"));
children.push(h3("Symptoms"));
children.push(bullet("Severe ocular pain + frontal headache"));
children.push(bullet("Blurred vision + **coloured halos** around lights (corneal oedema)"));
children.push(bullet("Nausea and vomiting"));
children.push(h3("Signs (Critical Triad)"));
children.push(tip("CRITICAL SIGNS", "Closed angle + Acutely raised IOP + Microcystic corneal oedema. Also: fixed mid-dilated pupil (4β6 mm, vertically oval), ciliary injection, shallow AC."));
children.push(h2("AACG Emergency Management"));
children.push(tip("MNEMONIC: Top CAP MO", "Topicals β CAI (acetazolamide) β Pressure recheck β Mannitol (if refractory) β Operative/Laser PI (definitive)"));
children.push(makeTable([
["Step", "Action", "Notes"],
["1", "Topical medications (stat)", "Timolol 0.5% + Apraclonidine 1% (or Brimonidine 0.2%) + Dorzolamide 2%. Pilocarpine 1β2% (now controversial; omitted by some)"],
["2", "Systemic CAI", "Acetazolamide 500 mg IV or PO. CI: sulfonamide allergy and sulfonamide-induced closure"],
["3", "Recheck IOP", "After 1 hour; repeat topicals if needed"],
["4", "Osmotic agent (if refractory)", "Mannitol 1β2 g/kg IV over 45 min. CI: CHF, renal disease, intracranial bleeding"],
["5", "Definitive", "YAG Laser Peripheral Iridotomy (PI) once cornea clears (1β5 days). Fellow eye: prophylactic PI (40β80% chance of AACG in 5β10 years)"]
]));
children.push(spacer());
children.push(h2("Special Scenarios"));
children.push(makeTable([
["Scenario", "Management"],
["Topiramate/sulfonamide-induced", "Bilateral closure. STOP drug. Cycloplegia (atropine 1%). NO CAIs. NO PI. IV steroids if severe supraciliary effusion"],
["Phacomorphic glaucoma", "Medical IOP control first β lens extraction (definitive)"],
["Aphakic/pseudophakic pupillary block", "Do NOT use pilocarpine. Use mydriatics + cycloplegics"],
["Plateau iris (after patent PI)", "Persistent narrow angle β Argon Laser Iridoplasty (ALPI)"]
]));
children.push(tip("EAGLE TRIAL", "Clear lens extraction is MORE effective and cost-effective than laser PI in PAC (IOP >29 mmHg) or PACG."));
// ββ SECTION 7 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 7 β SECONDARY GLAUCOMAS"));
children.push(h2("7.1 Pseudoexfoliation Glaucoma (PXG)"));
children.push(bullet("**Most common identifiable cause** of open-angle glaucoma worldwide"));
children.push(bullet("Classic lens sign: central disc + peripheral ring with clear zone between (anterior lens capsule)"));
children.push(bullet("**Worst natural history** β EMGT: β3.13 dB/yr; marked IOP fluctuations"));
children.push(bullet("Weak zonules β risk of lens subluxation during phacoemulsification; iris hooks often needed"));
children.push(bullet("Poor pupil dilation; good response to prostaglandins"));
children.push(h2("7.2 Pigmentary Glaucoma"));
children.push(bullet("Mechanism: **Reverse pupillary block** β iris rubs against zonule packets β pigment released into AC"));
children.push(bullet("**Krukenberg spindle** on corneal endothelium (vertical, spindle-shaped brown pigment)"));
children.push(bullet("Iris: radial spoke-like transillumination defects; TM: dense brown hyperpigmentation"));
children.push(bullet("Typical patient: young **myopic male**"));
children.push(bullet("Exercise/dilation β pigment release β IOP spikes; pilocarpine helps (reverses reverse pupillary block)"));
children.push(h2("7.3 Neovascular Glaucoma (NVG)"));
children.push(bullet("Causes: Proliferative DM > CRVO > Ocular ischaemic syndrome β retinal ischaemia β VEGF release"));
children.push(bullet("**Rubeosis iridis** β fibrovascular membrane β PAS β angle closure"));
children.push(bullet("Treatment: Anti-VEGF (immediate), PRP, GDD. Trabeculectomy rarely successful."));
children.push(h2("7.4 Steroid-Induced Glaucoma"));
children.push(bullet("Mechanism: Steroids β β GAG accumulation in TM β β outflow facility"));
children.push(bullet("Route potency: **Topical > periocular > systemic**; inhaled steroids can also raise IOP"));
children.push(bullet("IOP rise typically within **2β6 weeks** of starting steroids"));
children.push(bullet("Risk factors: POAG/family history, myopia, diabetes, connective tissue disease"));
children.push(h2("7.5 Phacolytic Glaucoma"));
children.push(bullet("**Hypermature cataract** β lens proteins leak through intact capsule β macrophages clog TM"));
children.push(bullet("Acute onset: severe inflammation, white flare in AC, high IOP"));
children.push(bullet("Treatment: Medical (steroids + IOP lowering) β **lens extraction** (definitive)"));
children.push(h2("7.6 Angle Recession Glaucoma"));
children.push(bullet("Blunt trauma β tear in ciliary body face β TM damage β late-onset open-angle glaucoma"));
children.push(bullet("Can present **decades** after the original injury"));
children.push(bullet("Always perform gonioscopy after blunt ocular trauma"));
children.push(h2("7.7 Malignant Glaucoma (Ciliolenticular Block)"));
children.push(tip("KEY DIFFERENTIATOR", "Shallow AC + high IOP + PATENT PI = malignant glaucoma. Patent PI distinguishes from pupillary block."));
children.push(bullet("Aqueous misdirected into vitreous β pushes lens-iris diaphragm anteriorly"));
children.push(bullet("Treatment: Cycloplegia (atropine 1% QID), hyperosmotic agents, YAG vitreolysis, pars plana vitrectomy"));
// ββ SECTION 8 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 8 β GLAUCOMA INVESTIGATIONS"));
children.push(h2("8.1 Tonometry"));
children.push(makeTable([
["Method", "Principle", "Notes"],
["**Goldmann Applanation (GAT)**", "Force to flatten 3.06 mm diameter", "Gold standard; affected by CCT and corneal rigidity"],
["Non-contact (NCT/air puff)", "Air puff flattens cornea", "Screening only; less accurate"],
["Schiotz indentation", "Weight plunger indents cornea", "Old method; affected by axial length"],
["Perkins", "Same as GAT", "Portable; supine/children/OR"],
["Pascal DCT", "Contour matching", "Less CCT-dependent"],
["iCare (rebound)", "Rebound principle β no anaesthesia", "Excellent for children; irregular corneas"]
]));
children.push(tip("CCT CORRECTION", "Each 10 ΞΌm ABOVE average CCT (~545 ΞΌm) β IOP OVERestimated ~0.7 mmHg. Thin cornea = falsely LOW reading; thick cornea = falsely HIGH reading."));
children.push(h2("8.2 Gonioscopy"));
children.push(p("Essential for: Differentiating open vs angle-closure; identifying secondary causes; assessing extent of PAS"));
children.push(h3("Landmarks (anterior to posterior)"));
children.push(bullet("Schwalbe's line (anterior TM border)"));
children.push(bullet("Trabecular meshwork (pigmented posterior TM)"));
children.push(bullet("Scleral spur (white; most posterior TM landmark)"));
children.push(bullet("Ciliary band (most posterior)"));
children.push(bullet("Iris root"));
children.push(h3("Shaffer Grading System"));
children.push(makeTable([
["Grade", "Angle Width", "Closure Risk"],
["4", "35β45Β°", "Impossible β wide open"],
["3", "25β35Β°", "Unlikely"],
["2", "20Β°", "Possible"],
["1", "<10Β°", "Probable"],
["0", "Closed (0Β°)", "Closure present"]
]));
children.push(spacer());
children.push(p("**Indentation (dynamic) gonioscopy:** Distinguishes appositional (pushed open) from synechial/PAS closure (cannot be opened)"));
children.push(h2("8.3 Perimetry"));
children.push(makeTable([
["Pattern", "Coverage", "Use"],
["24-2 (Humphrey)", "Central 24Β° temporal, 30Β° nasal", "Standard glaucoma monitoring"],
["30-2", "Central 30Β°", "Alternative; more peripheral coverage"],
["10-2", "Central 10Β° radius", "Advanced glaucoma; monitoring central island"],
["FF-120", "Central + peripheral", "Neurological field defects"]
]));
children.push(spacer());
children.push(bullet("**Mean Deviation (MD):** Average deviation from normal (dB); negative = worse"));
children.push(bullet("**PSD:** Irregularity of field loss β elevated with focal defects"));
children.push(bullet("**GHT (Glaucoma Hemifield Test):** 'Outside normal limits' = significant"));
children.push(bullet("Reliability: FP >15%, FN >33%, FL >20% = unreliable test"));
children.push(h2("8.4 OCT"));
children.push(bullet("SD-OCT measures RNFL thickness, GCL, macular volume"));
children.push(bullet("**Most sensitive area: Inferotemporal RNFL**"));
children.push(bullet("Structural changes (OCT) precede functional changes (VF) by years"));
children.push(h2("8.5 CCT"));
children.push(p("Measured by ultrasound pachymetry or optical methods (Orbscan/Pentacam). Average ~545 ΞΌm. Essential for IOP interpretation and OHT risk stratification."));
children.push(h2("8.6 Disc Lens Correction Factors"));
children.push(makeTable([
["Lens", "Correction Factor"],
["Volk 60D", "Γ0.88β1.0"],
["Volk 78D", "Γ1.1"],
["Volk 90D", "Γ1.3"],
["Goldmann 3-mirror", "Γ1.27"]
]));
// ββ SECTION 9 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 9 β ANTI-GLAUCOMA MEDICATIONS"));
children.push(makeTable([
["Drug Class", "Examples", "Mechanism", "IOP β", "Key Side Effects / CI"],
["**Prostaglandin Analogues (PGA)**", "Latanoprost\nBimatoprost\nTravoprost\nTafluprost", "β Uveoscleral outflow\n(FP receptor agonist)", "25β35%\n(most potent)", "Iris pigmentation change, eyelash hypertrichosis, periorbital fat atrophy, conjunctival hyperemia, CME (aphakic β caution)"],
["**Beta-Blockers**", "Timolol (non-selective)\nBetaxolol (Ξ²1-selective)", "β Aqueous production\n(Ξ²2-blockade in ciliary body)", "20β30%", "Bradycardia, bronchospasm\nCI: Asthma, COPD, heart block\nBetaxolol: safer in respiratory disease"],
["**Alpha-2 Agonists**", "Brimonidine 0.2%\nApraclonidine 1%", "β Aqueous production\n+ β Uveoscleral outflow", "20β25%", "Follicular conjunctivitis (up to 30%), dry mouth, sedation\nCI: Infants/neonates (CNS depression, apnea, bradycardia)"],
["**CAIs (Topical)**", "Dorzolamide\nBrinzolamide", "β Aqueous production\n(inhibit CA II/IV in ciliary body)", "15β20%", "Stinging, metallic taste, corneal decompensation (endothelial disease)"],
["**CAIs (Oral)**", "Acetazolamide\nMethazolamide", "Same as topical", "15β20%", "Paresthesias, GI upset, renal stones, hypokalemia, aplastic anaemia\nCI: Sulfonamide allergy"],
["**Miotics (Cholinergics)**", "Pilocarpine 1β4%\nCarbachol", "β Conventional outflow\n(TM tensioning via ciliary muscle)", "20β25%", "Brow ache, accommodative spasm, miosis (poor night driving), RD risk\nCI: Aphakic/pseudophakic pupillary block"],
["**Rho-kinase Inhibitors**", "Netarsudil", "β Conventional outflow\nβ Episcleral venous pressure", "15β20%", "Conjunctival hyperemia, corneal verticillata, subconjunctival haemorrhage"]
]));
children.push(spacer());
children.push(h2("Key Pharmacology Points"));
children.push(bullet("**First-line:** Prostaglandin analogue (once daily at night, highest efficacy)"));
children.push(bullet("**Two drops:** Wait **5 minutes** between instillations to prevent washout"));
children.push(bullet("**Brimonidine:** Possible neuroprotective effect β preferred in NTG"));
children.push(bullet("**Betaxolol:** Ξ²1-selective β preferred beta-blocker in respiratory disease; less nocturnal BP dip"));
children.push(bullet("**Acetazolamide:** Used acutely in AACG; CI in sulfonamide allergy"));
children.push(bullet("**Pilocarpine CI** in aphakic/pseudophakic pupillary block"));
children.push(tip("MNEMONIC: PALE FISH", "PGA side effects: Periorbital fat atrophy | Arterial BP (minor) | Lash hypertrichosis | Eyelid darkening | Fore (uveitis, rare) | Iris colour change | Superficial punctate keratitis | Hyperaemia (conjunctival)"));
// ββ SECTION 10 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 10 β LASER PROCEDURES IN GLAUCOMA"));
children.push(makeTable([
["Procedure", "Indication", "Mechanism", "Key Notes"],
["**Laser PI (LPI)**", "PACG, PACS (prophylaxis), post-AACG fellow eye", "Creates full-thickness iris hole β equalises PC/AC pressure β opens angle", "Fellow eye: 40β80% AACG risk in 5β10 yrs without treatment"],
["**SLT**", "POAG (1st/2nd line), OHT, NTG", "Q-switched Nd:YAG 532 nm β selectively targets pigmented TM cells β β trabecular outflow", "Repeatable. LiGHT trial: first-line non-inferior to drops. Effect lasts 2β5 yrs. ~6β8 mmHg IOP reduction"],
["**ALT**", "POAG (older procedure)", "Burns in TM β scarring β opens adjacent areas", "Not reliably repeatable. Replaced by SLT in most centres"],
["**ALPI (Iridoplasty)**", "Plateau iris syndrome; PI-failed PACG", "Far peripheral iris burns β stroma shrinks β mechanically opens angle", "Does NOT create hole through iris"],
["**Cyclodiode**", "Refractory/end-stage glaucoma", "Destroys ciliary body epithelium β β aqueous production", "Last resort. Risk of hypotony, phthisis. Repeatable."],
["**YAG Vitreolysis**", "Malignant glaucoma", "Disrupts anterior vitreous face β redirects aqueous forward", "First non-surgical option after cycloplegia fails"]
]));
children.push(tip("LiGHT TRIAL", "SLT as first-line therapy was non-inferior/superior to drops for POAG/OHT. At 3 years, 74% of SLT group needed no drops. SLT should be offered as first-line option."));
// ββ SECTION 11 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 11 β SURGICAL PROCEDURES"));
children.push(h2("11.1 Trabeculectomy β Gold Standard Filtration Surgery"));
children.push(p("Principle: Guarded scleral fistula allows subconjunctival aqueous drainage β bleb formation."));
children.push(h3("Surgical Steps (Kanski's 10e)"));
const trabSteps = [
"Conjunctival flap (fornix-based or limbus-based)",
"Lamellar scleral flap (~50% thickness), 3Γ3β4 mm, rectangular/trapezoid/triangular",
"Flap dissected anteriorly to clear cornea",
"Paracentesis in temporal peripheral clear cornea",
"Anterior chamber entered along trapdoor base",
"**Deep scleral block excised using Kelly punch** (creates sclerostomy)",
"**Peripheral iridectomy** created (prevents iris prolapse; may be omitted in pseudophakic)",
"Scleral flap sutured β releasable or lysable sutures",
"BSS injected through paracentesis to test fistula patency",
"Conjunctiva/Tenon sutured; irrigation repeated to form bleb",
"Atropine 1% drop; subconjunctival steroid + antibiotic"
];
trabSteps.forEach(s => children.push(bullet(s)));
children.push(h3("Antimetabolites"));
children.push(makeTable([
["Agent", "Potency", "Indication", "Complications"],
["**Mitomycin C (MMC)**", "More potent (alkylating agent)", "High-risk cases: young, Afro-Caribbean, prior surgery/inflammation, aphakia, NVG", "Avascular bleb, hypotony maculopathy, blebitis (up to 5%/yr), **late endophthalmitis**"],
["**5-Fluorouracil (5-FU)**", "Less potent (antimetabolite)", "Moderate risk; intraop or postop subconjunctival injections", "Persistent corneal epithelial defect, bleb leakage"]
]));
children.push(h3("Complications"));
children.push(bullet("**Early:** Hypotony, flat AC, choroidal detachment, hyphema, wound leak, infection"));
children.push(bullet("**Late:** Bleb failure, bleb leak, **blebitis** (up to 5%/yr with MMC), **late endophthalmitis** (lifelong risk β highest of any glaucoma surgery)"));
children.push(bullet("Malignant glaucoma (especially small hyperopic/PACG eyes)"));
children.push(h2("11.2 Glaucoma Drainage Devices (GDD / Tube Shunts)"));
children.push(makeTable([
["Device", "Valve?", "Key Feature", "Best For"],
["**Ahmed Glaucoma Valve**", "YES (flow restrictor)", "Controls early hypotony", "NVG, uveitis, paediatric, early pressure control"],
["**Baerveldt Implant**", "NO (needs ligation)", "Larger plate (250β350 mmΒ²); better long-term IOP", "Better long-term IOP control after initial ligation period"],
["Molteno", "NO", "Historical; still used in some centres", "Various refractory glaucomas"]
]));
children.push(spacer());
children.push(h2("11.3 MIGS (Minimally Invasive Glaucoma Surgery)"));
children.push(makeTable([
["Category", "Examples", "Notes"],
["TM bypass (ab interno)", "iStent, Hydrus microstent", "Lowest risk; often combined with phacoemulsification"],
["Subconjunctival (ab interno)", "Xen gel stent, PRESERFLO", "Creates subconjunctival bleb; less invasive than trabeculectomy"],
["TM incision", "GATT, Viscocanalostomy", "Opens Schlemm's canal 360Β°"]
]));
children.push(h2("11.4 Congenital Glaucoma Surgery"));
children.push(bullet("**Goniotomy:** Ab interno incision through TM; requires **clear cornea**"));
children.push(bullet("**Trabeculotomy:** External approach via Schlemm's canal; usable with **cloudy cornea**"));
children.push(bullet("Combined trabeculotomy-trabeculectomy for more severe/refractory cases"));
// ββ SECTION 12 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 12 β SPECIAL GLAUCOMAS"));
children.push(h2("12.1 Primary Congenital Glaucoma (PCG)"));
children.push(tip("CLASSIC TRIAD", "Buphthalmos (enlarged eye) + Epiphora (tearing) + Photophobia/Blepharospasm"));
children.push(bullet("Mechanism: **Trabeculodysgenesis** β failure of normal TM development"));
children.push(bullet("**Haab's striae:** Horizontal/oblique breaks in Descemet's membrane β **pathognomonic**"));
children.push(bullet("Presentation: Birth to 3 years (most in first year)"));
children.push(bullet("Genetics: Some AR (CYP1B1 gene mutations)"));
children.push(bullet("**Treatment: SURGICAL is primary** β Goniotomy or Trabeculotomy. Medical therapy is adjunct only."));
children.push(h2("12.2 Sturge-Weber Syndrome"));
children.push(bullet("Sporadic, congenital phacomatosis (encephalotrigeminal angiomatosis)"));
children.push(bullet("Glaucoma ipsilateral to facial haemangioma in **~30%**; 60% develop before age 2 (buphthalmos)"));
children.push(bullet("Mechanisms: Trabeculodysgenesis (infants) OR raised episcleral venous pressure (older patients)"));
children.push(bullet("Surgery risk: High risk of **choroidal effusion and suprachoroidal haemorrhage** (sudden IOP drop β uveal expansion)"));
children.push(h2("12.3 Plateau Iris Syndrome"));
children.push(bullet("Anteriorly rotated ciliary processes keep peripheral iris against TM despite patent PI"));
children.push(bullet("Gonioscopy: 'Double hump' sign β angle remains narrow/closes after PI"));
children.push(bullet("UBM (ultrasound biomicroscopy) is diagnostic"));
children.push(bullet("Treatment: **Argon Laser Iridoplasty (ALPI)**"));
// ββ SECTION 13-14 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 13 β KEY CLINICAL TRIALS"));
children.push(makeTable([
["Trial", "Full Name", "Key Findings"],
["**OHTS**", "Ocular Hypertension Treatment Study", "OHT: 9.5%β4.4% POAG conversion with treatment. Thin CCT = strongest single predictor. Validated 5-yr risk prediction model."],
["**EMGT**", "Early Manifest Glaucoma Trial", "MD loss/yr: HTG -1.31, NTG -0.36, PXEG -3.13 dB. Each 1 mmHg β β ~10% β progression risk. Risk factors: high IOP, pseudoexfoliation, bilateral disease, worse MD, older age."],
["**AGIS**", "Advanced Glaucoma Intervention Study", "IOP consistently <18 mmHg at ALL visits β minimal VF progression. ALT first in Blacks; trabeculectomy first in Whites β better outcomes."],
["**CNTGS**", "Collaborative Normal-Tension Glaucoma Study", "30% IOP reduction reduces NTG progression. Even at 'normal' IOP, further lowering helps."],
["**EAGLE**", "Effectiveness of Early Lens Extraction", "Clear lens extraction + IOL > Laser PI in PAC (IOP >29 mmHg) or PACG. More cost-effective and greater efficacy."],
["**LiGHT**", "Laser in Glaucoma and Ocular Hypertension", "SLT as first-line: non-inferior/superior to drops (2019). 74% in SLT group needed no drops at 3 years. Fewer disease progression events in SLT group."],
["**CIGTS**", "Collaborative Initial Glaucoma Treatment Study", "Initial surgery: better IOP control. Initial medications: better initial VF. Long-term outcomes similar."]
]));
children.push(spacer());
children.push(h1("SECTION 14 β NEUROPROTECTION & FUTURE"));
children.push(makeTable([
["Agent/Strategy", "Evidence", "Status"],
["**IOP reduction (all modalities)**", "Proven in multiple RCTs", "Current standard of care β ONLY proven neuroprotective strategy"],
["**Brimonidine**", "Activates RGC survival pathways; some clinical evidence", "Used clinically, especially NTG"],
["Memantine", "Large RCT β NEGATIVE result", "Not recommended"],
["Rho-kinase inhibitors (Netarsudil)", "Novel TM + episcleral venous pressure mechanism", "FDA-approved 2017"],
["Gene therapy", "Ongoing trials (MYOC, OPTN)", "Experimental"],
["Stem cell therapy", "Preclinical/early trials", "Experimental"]
]));
// ββ SECTION 15-16 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
children.push(pageBreak());
children.push(h1("SECTION 15 β MNEMONICS"));
children.push(makeTable([
["Mnemonic", "Stands For", "Meaning"],
["**ISNT**", "Normal NRR order", "Inferior > Superior > Nasal > Temporal (violation = suspect glaucoma)"],
["**PALE FISH**", "PGA side effects", "Periorbital fat atrophy | Arterial BP | Lash hypertrichosis | Eyelid darkening | Fore (uveitis) | Iris colour change | Superficial keratitis | Hyperaemia"],
["**FLASH**", "PACG risk factors", "Female | Lens (hyperopia) | Age | Shallow AC | Heredity"],
["**Top CAP MO**", "AACG management", "Topicals β CAI (acetazolamide) β Pressure recheck β Mannitol β Operative/Laser PI"]
]));
children.push(spacer());
children.push(h1("SECTION 16 β 20 HIGH-YIELD EXAM POINTS"));
children.push(tip("EXAM DAY", "Read these 20 points the morning of 24 June 2026."));
const hiyield = [
"**IOP normal range: 10β21 mmHg**; diurnal variation 3β5 mmHg (peaks morning)",
"**CCT** is the strongest single predictor of OHT β POAG conversion (OHTS)",
"**ISNT rule violation** = suspect glaucoma; vertical C/D asymmetry >0.2 = significant",
"**Disc haemorrhage** = risk factor for progression; more common in NTG; usually inferotemporal",
"**NTG: 50% DON'T progress** without treatment β demonstrate progression before treating",
"**NTG neuroimaging** if: colour vision loss, VA loss disproportionate to cupping, rapid progression at normal IOP, rim pallor",
"**AACG precipitants:** dim light, reading, topical mydriatics, systemic anticholinergics, topiramate",
"**Topiramate angle-closure: BILATERAL; NO PI; NO CAIs**; use cycloplegia (atropine) + stop drug",
"**Prostaglandins:** once daily (at NIGHT), most potent (~25β35% IOP reduction), β uveoscleral outflow",
"**Pilocarpine CI** in aphakic/pseudophakic pupillary block; caution with retinal tears/RD risk",
"**LiGHT Trial:** SLT is first-line β 74% needed no drops at 3 years",
"**EAGLE Study:** Clear lens extraction > LPI in PAC (IOP >29) or PACG",
"**Trabeculectomy:** Kelly punch for sclerostomy; peripheral iridectomy; releasable sutures; bleb is endpoint",
"**MMC > 5-FU** in potency; blebitis risk up to 5%/yr with MMC; lifelong endophthalmitis risk",
"**Congenital glaucoma Rx: SURGERY first** (goniotomy if clear cornea / trabeculotomy if cloudy); Haab's striae = pathognomonic",
"**Pseudoexfoliation = worst EMGT prognosis** (β3.13 dB/yr); poor pupil dilation; weak zonules",
"**Angle recession glaucoma:** Can present decades after blunt trauma; always do gonioscopy post-trauma",
"**Malignant glaucoma:** Shallow AC + high IOP + PATENT PI; treat with cycloplegia (atropine) first",
"**Ahmed valve** has flow-restricting valve; **Baerveldt** = no valve, larger plate, better long-term IOP control",
"**Brimonidine CI in infants/neonates:** Crosses BBB β CNS depression, apnea, bradycardia"
];
hiyield.forEach((item, i) => children.push(bullet(`${i+1}. ${item}`)));
children.push(spacer());
children.push(new Paragraph({
alignment: AlignmentType.CENTER,
border: { top: { style: BorderStyle.SINGLE, size: 4, color: TEAL } },
spacing: { before: 200, after: 80 },
children: [new TextRun({ text: "Sources: Kanski's Clinical Ophthalmology 10e | Wills Eye Manual | Katzung's Pharmacology 16e | Goldman-Cecil Medicine | Goodman & Gilman's", color: "7F8C8D", size: 16, font: "Calibri" })]
}));
children.push(new Paragraph({
alignment: AlignmentType.CENTER,
children: [new TextRun({ text: "Generated: 16 June 2026 | For educational use only", color: "7F8C8D", size: 16, font: "Calibri" })]
}));
// ββ Build Document βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
const doc = new Document({
numbering: {
config: [{
reference: "num-list",
levels: [{
level: 0,
format: "decimal",
text: "%1.",
alignment: AlignmentType.LEFT
}]
}]
},
styles: {
paragraphStyles: [
{
id: "Heading1",
name: "Heading 1",
basedOn: "Normal",
next: "Normal",
run: { size: 28, bold: true, color: WHITE, font: "Calibri" },
paragraph: { spacing: { before: 240, after: 120 } }
}
]
},
sections: [{
properties: {
page: {
margin: { top: 1080, bottom: 1080, left: 1080, right: 1080 }
}
},
headers: {
default: new Header({
children: [new Paragraph({
border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: TEAL } },
spacing: { after: 80 },
children: [
new TextRun({ text: "GLAUCOMA STUDY GUIDE | Ophthalmology PG Year 2 | Exam: 24 June 2026", bold: true, color: NAVY, size: 16, font: "Calibri" })
]
})]
})
},
footers: {
default: new Footer({
children: [new Paragraph({
border: { top: { style: BorderStyle.SINGLE, size: 4, color: TEAL } },
alignment: AlignmentType.CENTER,
spacing: { before: 80 },
children: [
new TextRun({ text: "Sources: Kanski's Clinical Ophthalmology 10e | Wills Eye Manual | Katzung Pharmacology 16e β Page ", color: "7F8C8D", size: 16, font: "Calibri" }),
new TextRun({ children: [PageNumber.CURRENT], color: "7F8C8D", size: 16, font: "Calibri" }),
new TextRun({ text: " of ", color: "7F8C8D", size: 16, font: "Calibri" }),
new TextRun({ children: [PageNumber.TOTAL_PAGES], color: "7F8C8D", size: 16, font: "Calibri" })
]
})]
})
},
children
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync(OUT, buffer);
console.log("DOCX created:", OUT);
}).catch(err => {
console.error("Error:", err);
process.exit(1);
});
cd /home/daytona/workspace/glaucoma-study-guide && node build_docx.js 2>&1
python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx 2>&1 && ls -lh /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx
# Quick manual validation β check it's a valid ZIP with Word XML python3 -c " import zipfile, os path = '/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx' size = os.path.getsize(path) print(f'File size: {size/1024:.1f} KB') with zipfile.ZipFile(path) as z: names = z.namelist() print('Contains word/document.xml:', 'word/document.xml' in names) print('Contains [Content_Types].xml:', '[Content_Types].xml' in names) print('Total parts:', len(names)) # Count paragraphs roughly xml = z.read('word/document.xml').decode('utf-8') print('Paragraph count (approx):', xml.count('<w:p ') + xml.count('<w:p>')) "
python3 /home/daytona/skills/docx/scripts/office/soffice.py --headless --convert-to pdf /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx --outdir /home/daytona/workspace/glaucoma-study-guide/ 2>&1
# Try a clean output path mkdir -p /home/daytona/workspace/glaucoma-study-guide/out python3 /home/daytona/skills/docx/scripts/office/soffice.py --headless --convert-to pdf /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx --outdir /home/daytona/workspace/glaucoma-study-guide/out/ 2>&1 ls -lh /home/daytona/workspace/glaucoma-study-guide/out/ 2>/dev/null
# Try soffice directly with absolute path soffice --headless --convert-to pdf --outdir /tmp/ /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_PG2.docx 2>&1 ls -lh /tmp/Glaucoma_Study_Guide_PG2.pdf 2>/dev/null
cp /tmp/Glaucoma_Study_Guide_PG2.pdf /home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_Final.pdf python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_Final.pdf') print(f'Pages: {len(r.pages)}') import os size = os.path.getsize('/home/daytona/workspace/glaucoma-study-guide/Glaucoma_Study_Guide_Final.pdf') print(f'Size: {size/1024:.1f} KB') # Read first page text snippet print('Page 1 preview:', r.pages[0].extract_text()[:200]) "
Glaucoma Study Guide Final
PDF Document Β· PDF
Glaucoma Study Guide PG2
Word Document Β· DOCX
Can you give me long answers that can be asked with marking scheme
What marking scheme are these long answers for? Β· How many long answer questions do you want?
| Risk Factor | Significance |
|---|---|
| Raised IOP | Most important modifiable RF |
| Thin CCT | Strongest single predictor (OHTS); underestimates true IOP |
| Black African descent | 16% prevalence in >70 yrs; earlier, faster progression |
| Age | Prevalence rises sharply after 60 |
| Family history | ~10Γ increased risk in 1st-degree relatives |
| High myopia | More susceptible optic disc |
| Pseudoexfoliation | Strongest identifiable secondary RF |
| OSA, low systemic BP | Reduced ocular perfusion pressure |
| Drug Class | Mechanism | IOP Reduction |
|---|---|---|
| Prostaglandin analogues (1st line) | β Uveoscleral outflow (FP receptor) | 25β35% |
| Beta-blockers (Timolol) | β Aqueous production (Ξ²2 blockade) | 20β30% |
| Alpha-2 agonists (Brimonidine) | β Production + β uveoscleral outflow | 20β25% |
| Topical CAIs (Dorzolamide) | β Aqueous production (CA II/IV inhibition) | 15β20% |
| Miotics (Pilocarpine) | β Conventional outflow (TM tensioning) | 20β25% |
| Rho-kinase inhibitors (Netarsudil) | β Conventional outflow + β episcleral venous pressure | 15β20% |
| Section | Marks |
|---|---|
| Definition | 1 |
| Pathophysiology (IOP-dependent + independent + anatomical basis) | 4 |
| Risk factors (table with key factors) | 2 |
| Clinical features (symptoms + disc signs + VF progression) | 2 |
| Investigations (Tonometry, Gonioscopy, Perimetry, OCT, CCT) | 4 |
| Management (Target IOP + Drugs + Laser + Surgery) | 7 |
| TOTAL | 20 |
| Pathway | Route | % Total |
|---|---|---|
| Conventional (trabecular) | TM β Schlemm's canal β collector channels β aqueous veins β episcleral veins | 80β85% |
| Uveoscleral (non-conventional) | AC β ciliary muscle interstices β suprachoroidal space β sclera | 15β20% |
| Class | Agent | Mechanism | IOP reduction |
|---|---|---|---|
| Prostaglandin analogues | Latanoprost, Bimatoprost | β Uveoscleral outflow via FP receptors | 25β35% |
| Beta-blockers | Timolol, Betaxolol (Ξ²1) | β Aqueous production (Ξ²2 blockade in ciliary body) | 20β30% |
| Alpha-2 agonists | Brimonidine | β Aqueous production + β uveoscleral outflow | 20β25% |
| Topical CAIs | Dorzolamide, Brinzolamide | Inhibit CA II/IV β β active secretion | 15β20% |
| Oral CAIs | Acetazolamide | Same as topical | 15β20% |
| Miotics | Pilocarpine | β Conventional outflow by ciliary muscle contraction | 20β25% |
| Rho-kinase inhibitors | Netarsudil | β Conventional outflow + β episcleral venous pressure | 15β20% |
| Section | Marks |
|---|---|
| Anatomy of aqueous humor (production + composition) | 1 |
| Outflow pathways (conventional + uveoscleral + TM structure) | 2 |
| Physiology of IOP (Goldmann equation, normal values, diurnal variation) | 2 |
| Pathophysiology of raised IOP (open-angle + angle-closure + secondary) | 4 |
| Clinical assessment (tonometry + gonioscopy) | 2 |
| Medical management (mechanism table, all classes) | 3 |
| Laser management (SLT, ALT, PI, iridoplasty, cyclodiode) | 2 |
| Surgical management (trabeculectomy steps + GDD + MIGS) | 4 |
| TOTAL | 20 |
| Open-Angle | Angle-Closure | |
|---|---|---|
| Primary | POAG, NTG, OHT | PACS, PAC, PACG (acute, chronic) |
| Congenital | PCG (trabeculodysgenesis) | Sturge-Weber, NF1-associated |
| Secondary | PXG, Pigmentary, Steroid-induced, Inflammatory, Angle recession | Neovascular, Phacomorphic, Phacolytic, Malignant |
| Scenario | Management |
|---|---|
| Topiramate-induced (bilateral) | STOP drug; cycloplegia (atropine 1%); NO CAIs (sulfonamide CI); NO PI; IV steroids if large effusion |
| Phacomorphic glaucoma | Medical control first β lens extraction (definitive) |
| Aphakic/pseudophakic pupillary block | Do NOT use pilocarpine; use mydriatics + cycloplegics (cyclopentolate + phenylephrine) |
| Plateau iris (after patent PI) | ALPI (argon laser iridoplasty) |
| Malignant glaucoma | Cycloplegia (atropine 1%), hyperosmotic agents, YAG vitreolysis, pars plana vitrectomy |
| Section | Marks |
|---|---|
| Classification of glaucoma (table format) | 3 |
| Spectrum of angle closure disease (PACS β PACG) | 1 |
| Pathophysiology (pupillary block mechanism + risk factors + precipitants) | 2 |
| Clinical features (symptoms + critical triad + additional signs including glaukomflecken) | 4 |
| Investigations (tonometry, gonioscopy, slit lamp, UBM) | 2 |
| Emergency management (topicals + systemic CAI + mannitol + LPI + fellow eye) | 6 |
| Special situations (topiramate, phacomorphic, pseudophakic, plateau iris, malignant) | 2 |
| TOTAL | 20 |
| Feature | MMC | 5-FU |
|---|---|---|
| Mechanism | Alkylating agent | Antimetabolite |
| Potency | More potent | Less potent |
| Application | Intraoperative only | Intraop or postop injections |
| Main risk | Avascular bleb, endophthalmitis | Corneal epithelial defect |
| Duration | 1β5 min contact | Repeated injections |
| Complication | Cause | Management |
|---|---|---|
| Hypotony | Over-drainage through scleral flap | Pressure patching, releasable suture tightening, AC reformation |
| Flat anterior chamber | Hypotony; wound leak; choroidal detachment | AC reformation with viscoelastic; repair wound |
| Choroidal detachment | Hypotony β uveal expansion | Conservative; systemic steroids; drainage if severe |
| Hyphema | Intraoperative bleeding from sclerostomy | Usually resolves; AC washout if dense |
| Wound leak | Conjunctival defect | Pressure patch; Seidel positive; re-suture |
| Shallow/flat AC + raised IOP | Malignant glaucoma; pupillary block | Cycloplegia; YAG vitreolysis; vitrectomy |
| Infection (early endophthalmitis) | Intraoperative contamination | Intravitreal antibiotics; vitrectomy |
| Complication | Details |
|---|---|
| Bleb failure (encapsulated/Tenon's cyst) | Fibrotic encapsulation (Tenon's capsule) within 2β8 weeks; firm, raised bleb; elevated IOP; treatment: needling with 5-FU |
| Bleb leak | Late perforation of thin avascular bleb (MMC-associated); Seidel positive; hypotonous; risk of endophthalmitis; treatment: tissue adhesive, patch graft, re-suture |
| Blebitis | Superficial infection of bleb without vitreous involvement; pain, discharge, white bleb; incidence up to 5%/yr with MMC; Rx: intensive topical + systemic antibiotics |
| Late endophthalmitis | Deep infection involving vitreous; most serious; lifelong risk; patients MUST be warned; requires intravitreal antibiotics Β± vitrectomy |
| Cataract progression | Accelerated by hypotony, inflammation, intraoperative lens touch |
| Diplopia | Superior rectus/oblique involvement from subconjunctival fibrosis or bridle suture |
| Bleb dysaesthesia | Irritating overhanging bleb impinging on cornea |
| Section | Marks |
|---|---|
| Definition and principle | 1 |
| Indications (4β5 valid points) | 2 |
| Preoperative preparation | 1 |
| Surgical technique β step by step (all 13 steps) | 6 |
| Antimetabolites β MMC and 5-FU (mechanism, application, comparison, indications, complications) | 4 |
| Early complications (at least 5) | 3 |
| Late complications (at least 5 including blebitis and endophthalmitis) | 3 |
| TOTAL | 20 |
| Type | Key Feature | Management |
|---|---|---|
| Pigmentary | Krukenberg spindle, spoke-like iris TID, young myopic male; reverse pupillary block | Pilocarpine (reverses pupillary block), SLT, trabeculectomy |
| Steroid-induced | IOP rise 2β6 weeks after steroids; β TM GAGs | Stop steroid; substitute fluorometholone; medical/surgical IOP lowering |
| Phacolytic | Hypermature cataract; macrophages clog TM | Medical β lens extraction |
| Angle recession | Decades after blunt trauma; torn ciliary face | Gonioscopy; medical; trabeculectomy |
| Section | Marks |
|---|---|
| Classification of secondary glaucoma (pre-trabecular, trabecular, post-trabecular, angle-closure) | 3 |
| NVG aetiology and pathophysiology (VEGF, 3 stages) | 2 |
| NVG clinical features | 2 |
| NVG management (anti-VEGF + PRP + GDD) | 4 |
| PXG pathogenesis (LOXL1, PXM, zonular weakness) | 2 |
| PXG clinical features (lens capsule pattern + TM + poor dilation) | 2 |
| PXG management (including surgical precautions) | 3 |
| Other secondary glaucomas (brief) | 2 |
| TOTAL | 20 |
| Feature | NTG | POAG |
|---|---|---|
| IOP | β€21 mmHg | Often elevated |
| Disc haemorrhages | More common (frequent recurrence) | Less common |
| VF defects | Deeper, steeper-edged, closer to fixation | More peripheral initially |
| Beta-zone PPA | More extensive | Less extensive |
| Vertical C/D asymmetry | Often greater | Variable |
| Focal disc damage | More common (focal ischaemic pattern) | All patterns |
| Untreated progression | ~50% stable at 5β7 years | More likely to progress |
| Race | Japanese, females | Black populations (highest) |
| Migraine/Raynaud's | More prevalent | Not specifically |
| Disc pallor > cupping | May be seen | Uncommon |
| Section | Marks |
|---|---|
| Definition (IOP β€21 + glaucoma changes + open angle + exclusion of secondary causes) | 1 |
| Epidemiology | 1 |
| Pathogenesis (vascular + structural + neurological) | 4 |
| Clinical features/differences from POAG (table format) | 4 |
| Investigations (standard + NTG-specific + neuroimaging indications) | 4 |
| Management (when to treat + IOP lowering + brimonidine/betaxolol rationale + vascular risk + surgery) | 6 |
| TOTAL | 20 |
| Section | Marks |
|---|---|
| Clinical features (symptoms + disc signs + VF progression) | 4 |
| Investigations (tonometry + gonioscopy + perimetry + OCT) | 3 |
| Prostaglandin analogues (mechanism + SE including PALE FISH mnemonic) | 3 |
| Beta-blockers (mechanism + SE + betaxolol distinction + CI) | 2 |
| Alpha-2 agonists (mechanism + neuroprotection + CI in infants) | 2 |
| CAIs topical + oral (mechanism + SE + CI in sulfonamide allergy) | 2 |
| Miotics (mechanism + SE + CI) | 1 |
| Rho-kinase inhibitors (mechanism + SE) | 1 |
| TOTAL | 20 |
| Section | Marks |
|---|---|
| Definition | 1 |
| Aetiology and genetics (trabeculodysgenesis + CYP1B1) | 2 |
| Classic triad (Buphthalmos + Epiphora + Photophobia) with details | 3 |
| Investigations (EUA, tonometry, gonioscopy, corneal diameter, optic disc) | 2 |
| Surgical management (goniotomy vs. trabeculotomy β indications + technique + others) | 5 |
| Medical management (adjunct role + brimonidine CI in infants) | 1 |
| Sturge-Weber (features + glaucoma mechanism + surgical risk) | 2 |
| Aniridia (PAX6 + WAGR + mechanism) | 1.5 |
| Neurofibromatosis + Axenfeld-Rieger + Peter's (brief) | 2.5 |
| TOTAL | 20 |
| VF Defect | Description | Anatomical Basis |
|---|---|---|
| Baring of the blind spot | Extension of the physiological blind spot; earliest change | Adjacent arcuate fibres affected |
| Paracentral scotoma | Isolated scotoma within 10Β° of fixation; may be above or below fixation | Focal arcuate fibre damage at disc |
| Nasal step | Scotoma respects the horizontal meridian; superior > inferior more common | Arcuate fibres do not cross horizontal raphe |
| Seidel's scotoma | Comma-shaped extension from blind spot along arcuate path | Arcuate fibre bundle damage |
| Arcuate (Bjerrum) scotoma | Complete arc from blind spot to nasal raphe (10β20Β° from fixation) β Bjerrum's area | Full arcuate bundle damage |
| Double arcuate (ring) scotoma | Both superior and inferior arcuate scotomas | Both superior and inferior arcuate bundle damage |
| Altitudinal defect | Loss of superior or inferior half field | Advanced arcuate damage |
| Temporal island | Only temporal VF remains; very advanced | Central fibres damaged, peripheral arcuate fibres spared |
| Central island | Only central fixation area remains; late | Peripheral complete loss; papillomacular bundle last to go |
| Tubular/tunnel vision | Very small central + temporal island | End-stage |
| Grade | Angle width | Anatomical structures visible | Closure risk |
|---|---|---|---|
| 4 | 35β45Β° | All structures visible | Impossible |
| 3 | 25β35Β° | Ciliary band visible | Unlikely |
| 2 | 20Β° | Scleral spur visible | Possible |
| 1 | <10Β° | TM only visible | Probable |
| 0 | Closed | No structures visible | Present |
| Condition | Gonioscopic finding |
|---|---|
| POAG | Open angle; normal TM; may show increased pigmentation in older patients |
| NTG | Open angle; normal TM |
| PACG | Narrow angle; iris bombe; PAS in chronic cases |
| Pseudoexfoliation | Dense TM pigmentation; Sampaolesi line (pigment anterior to Schwalbe's) |
| Pigmentary glaucoma | Dense homogeneous TM pigmentation (denser than PXG); Sampaolesi line |
| NVG | Neovascularization of angle; PAS in advanced cases |
| Angle recession | Wide, irregular angle; torn ciliary face; iridodialysis |
| Sturge-Weber | Blood in Schlemm's canal (raised episcleral venous pressure) |
| Tonometer | Principle | Advantages | Disadvantages |
|---|---|---|---|
| Perkins | Same as GAT (portable) | Supine patients, children, OR, bedside | Examiner skill needed |
| Non-contact (air-puff/NCT) | Air puff deforms cornea β optically detected | No contact, no anaesthetic, no risk of infection | Less accurate; affected by corneal properties; head movements |
| Schiotz | Indentation of cornea by calibrated weight | Simple, portable, cheap | Affected by axial length, ocular rigidity; historical use |
| Tonopen (electronic) | Applanation strain gauge | Irregular corneas, unusual situations, children | Less accurate than GAT |
| Pascal DCT (Dynamic Contour) | Contour-matching (not applanation) | Less affected by CCT; measures OPA (ocular pulse amplitude) | Expensive; technically demanding |
| iCare (rebound) | Probe briefly touches cornea; deceleration measured | No anaesthetic; excellent for children; quick | Less accurate at extremes; affected by probe alignment |
| Section | Marks |
|---|---|
| Anatomical basis of VF defects (arcuate fibres, horizontal raphe, papillomacular bundle) | 2 |
| Visual field defects in progression order (table with 8β10 types) | 3 |
| Perimetry (HFA patterns + global indices + reliability criteria + progression analysis) | 2 |
| Gonioscopy definition and principle (total internal reflection, contact lens) | 1 |
| Gonioscopy lens types (direct β Koeppe; indirect β Goldmann, Zeiss 4-mirror) | 1 |
| Gonioscopic landmarks (6 structures, anterior to posterior) | 1.5 |
| Grading systems (Shaffer in detail + Spaeth brief) | 1.5 |
| Dynamic gonioscopy (appositional vs synechial) | 0.5 |
| Gonioscopic findings in specific conditions | 1.5 |
| GAT β principle (Imbert-Fick) + technique + sources of error | 2 |
| Other tonometers (table) | 2 |
| CCT and IOP correction (clinical importance + OHTS) | 1 |
| IOP monitoring (diurnal phasing, OPA) | 1 |
| TOTAL | 20 |
| Procedure | Laser Type | Primary Indication |
|---|---|---|
| Selective Laser Trabeculoplasty (SLT) | Q-switched Nd:YAG 532 nm | POAG, OHT, NTG β β conventional outflow |
| Argon Laser Trabeculoplasty (ALT) | Argon 488/514 nm | POAG (older procedure) |
| Laser Peripheral Iridotomy (LPI/PI) | Nd:YAG Β± Argon | Angle-closure glaucoma, PACS |
| Argon Laser Iridoplasty (ALPI) | Argon | Plateau iris syndrome |
| Diode Laser Cyclodestruction | Diode 810 nm | Refractory/end-stage glaucoma |
| YAG Laser Vitreolysis | Nd:YAG | Malignant glaucoma |
| Laser Suture Lysis | Nd:YAG or Argon | Post-trabeculectomy IOP titration |
| Section | Marks |
|---|---|
| Overview table of all laser procedures | 3 |
| SLT β laser parameters (532 nm, Q-switched, nanosecond, spot size) | 1 |
| SLT β mechanism (selective photothermal, melanin, biological TM remodelling) | 1 |
| SLT β indications including first-line status | 1 |
| SLT β technique (pre-treatment, lens, spots, energy endpoint, post-laser) | 2 |
| SLT β results (LiGHT trial details, 74% no drops, 2β5 year duration, repeatable) | 1.5 |
| SLT β complications | 0.5 |
| LPI β principle (bypass pupil, equalise PC/AC pressure) | 1 |
| LPI β indications (AACG + PAC + fellow eye + PACS) | 1 |
| LPI β technique (pilocarpine pre-treatment, lens, YAG parameters, position, endpoint) | 2 |
| LPI β argon + YAG combined technique | 0.5 |
| LPI β patency assessment | 0.5 |
| LPI β complications (IOP spike, hyphema, dysphotopsia) | 0.5 |
| LPI β limitations/failures (plateau iris, PAS, EAGLE trial) | 1 |
| TOTAL | 20 |
| Q# | Question Topic | Key Areas Tested |
|---|---|---|
| Q1 | POAG β Pathophysiology, Features, Investigations, Management | Ganglion cell loss, ISNT, disc signs, VF progression, GAT, OCT, SLT, drugs, trabeculectomy |
| Q2 | Aqueous Humor Dynamics + Raised IOP Management | Production, outflow pathways, Goldmann equation, all treatment modalities |
| Q3 | Classification + AACG Management | Full classification, pupillary block, AACG emergency protocol, LPI, special scenarios |
| Q4 | Trabeculectomy | Indications, 13-step technique, MMC vs 5-FU, early + late complications |
| Q5 | Secondary Glaucomas β NVG + PXG | Classification, VEGF/rubeosis pathophysiology, PXM lens sign, LOXL1, surgical precautions |
| Q6 | Normal Tension Glaucoma | Vascular pathogenesis, NTG vs POAG differences, neuroimaging indications, brimonidine/betaxolol rationale |
| Q7 | Clinical Features + Anti-Glaucoma Pharmacology | All 6 drug classes β mechanism, SE, CI; PALE FISH mnemonic |
| Q8 | Primary Congenital Glaucoma + Developmental Syndromes | BEP triad, Haab's striae, goniotomy vs trabeculotomy, brimonidine CI in infants, Sturge-Weber, Aniridia, Axenfeld-Rieger |
| Q9 | VF Changes + Gonioscopy + Tonometry | 10 VF defects, HFA patterns + global indices, gonioscopic landmarks + grading, GAT principle + sources of error, CCT correction |
| Q10 | Laser Procedures β SLT + LPI | LiGHT trial, 532 nm mechanism, TM remodelling, LPI technique, EAGLE trial, plateau iris failure |