I'm just entering opthal posting, guide me please
| Symptom | Think of |
|---|---|
| Sudden painless loss of vision | CRAO, CRVO, vitreous haemorrhage, retinal detachment |
| Painful red eye + decreased vision | Acute angle closure glaucoma, anterior uveitis, keratitis |
| Gradual painless vision loss | Cataract, glaucoma, AMD, diabetic maculopathy |
| Floaters + flashes | Posterior vitreous detachment → rule out retinal tear/detachment |
| Diplopia | CN III/IV/VI palsy, thyroid eye disease, decompensated phoria |
| Proptosis | Thyroid eye disease, orbital cellulitis, tumour |
| Ptosis | CN III palsy, Horner syndrome, myasthenia gravis, senile |
| Watering eye (epiphora) | Nasolacrimal duct obstruction, ectropion, dry eyes (reflex tearing) |
| Emergency | Key Feature | Immediate Action |
|---|---|---|
| Acute angle-closure glaucoma | Rock-hard eye, hazy cornea, IOP often >40 | IV acetazolamide, topical pilocarpine, urgent laser |
| Central retinal artery occlusion | Sudden painless monocular blindness, cherry-red spot | Ocular massage, refer urgently (within hours) |
| Orbital cellulitis | Proptosis + restricted EOM + fever | IV antibiotics, CT orbit, admit |
| Endophthalmitis | Post-op/post-trauma, severe pain, hypopyon | Intravitreal antibiotics urgently |
| Chemical injury | Acid or alkali splash | Immediate copious irrigation BEFORE anything else |
What are the common cases and checklist on must clerk case
| # | Condition | Why You Must Clerk It |
|---|---|---|
| 1 | Cataract | Most common elective surgery; systemic links |
| 2 | Glaucoma | Chronic, silent; IOP + fields + disc assessment |
| 3 | Diabetic Retinopathy | Most common cause of blindness in working-age adults |
| 4 | Conjunctivitis (bacterial/viral/allergic) | Most common red eye in OPD |
| 5 | Acute Angle-Closure Glaucoma | Ophthalmic emergency |
| 6 | Anterior Uveitis (Iritis) | Red eye + systemic associations |
| 7 | Retinal Detachment | Surgical emergency |
| 8 | Corneal Ulcer / Keratitis | Red eye + vision threat |
| 9 | Ptosis | Broad differential; neurological links |
| 10 | Age-Related Macular Degeneration (AMD) | Most common cause of blindness >50 years |
□ Presenting complaint + duration
□ VA — each eye separately, with and without correction, pinhole if <6/6
□ RAPD — swinging torch test
□ IOP — both eyes
□ Anterior segment (slit-lamp): lids, conjunctiva, cornea, AC, lens
□ Posterior segment (dilated): disc, macula, vessels, periphery
□ Relevant systemic history (DM, HT, autoimmune, medications)
□ Family history of eye disease
□ Functional impact — driving, work, daily activities
Can you create a checklist on cases to clerk as common chief complaints and conditions
ls /home/daytona/workspace/ && ls /home/daytona/skills/docx/
mkdir -p /home/daytona/workspace/ophthal-posting
~/ophthal-posting/make_checklist.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
AlignmentType, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, Header, Footer, PageBreak
} = require('docx');
const fs = require('fs');
// ── colour palette ──
const NAVY = "1B3A6B";
const TEAL = "0F7173";
const LIGHT = "EAF4F4";
const WHITE = "FFFFFF";
const AMBER = "F4A261";
const GREY = "F5F5F5";
const BLACK = "1A1A1A";
// ── helpers ──
function heading1(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 28, color: WHITE, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
spacing: { before: 240, after: 120 },
indent: { left: 100 },
alignment: AlignmentType.LEFT,
});
}
function heading2(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 24, color: WHITE, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: TEAL, fill: TEAL },
spacing: { before: 200, after: 80 },
indent: { left: 100 },
alignment: AlignmentType.LEFT,
});
}
function heading3(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 22, color: NAVY, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: LIGHT, fill: LIGHT },
spacing: { before: 160, after: 60 },
indent: { left: 100 },
alignment: AlignmentType.LEFT,
border: { left: { style: BorderStyle.THICK, size: 12, color: TEAL } },
});
}
function checkItem(text, indent = 200) {
return new Paragraph({
children: [
new TextRun({ text: "\u2610 ", size: 20, font: "Calibri" }),
new TextRun({ text, size: 20, font: "Calibri", color: BLACK }),
],
spacing: { before: 40, after: 40 },
indent: { left: indent },
});
}
function note(text) {
return new Paragraph({
children: [new TextRun({ text: " \u26A0 " + text, size: 18, color: "C0392B", italics: true, font: "Calibri" })],
spacing: { before: 30, after: 30 },
indent: { left: 400 },
});
}
function spacer() {
return new Paragraph({ text: "", spacing: { before: 60, after: 60 } });
}
function subheader(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 20, color: TEAL, font: "Calibri" })],
spacing: { before: 100, after: 40 },
indent: { left: 200 },
});
}
function labelLine(text) {
return new Paragraph({
children: [new TextRun({ text, size: 20, font: "Calibri", color: BLACK })],
spacing: { before: 40, after: 40 },
indent: { left: 200 },
});
}
// ── document sections ──
const children = [];
// TITLE BLOCK
children.push(
new Paragraph({
children: [new TextRun({ text: "OPHTHALMOLOGY POSTING", bold: true, size: 40, color: WHITE, font: "Calibri" })],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
alignment: AlignmentType.CENTER,
spacing: { before: 200, after: 80 },
}),
new Paragraph({
children: [new TextRun({ text: "Clinical Clerking Checklist", size: 28, color: LIGHT, font: "Calibri", italics: true })],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 80 },
}),
new Paragraph({
children: [new TextRun({ text: "Common Chief Complaints & Must-Clerk Conditions", size: 22, color: AMBER, font: "Calibri", bold: true })],
shading: { type: ShadingType.SOLID, color: NAVY, fill: NAVY },
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 200 },
}),
spacer()
);
// ════════════════════════════════════════════════
// SECTION A: UNIVERSAL CLERKING CHECKLIST
// ════════════════════════════════════════════════
children.push(heading1("A. UNIVERSAL OPHTHALMIC CLERKING — EVERY CASE"));
children.push(subheader("Patient Details"));
["Name / Age / Sex / Occupation", "Dominant eye", "Date of clerking"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Chief Complaint"));
["Nature of complaint (pain / blurring / redness / discharge / floaters / diplopia)", "Onset: sudden vs gradual", "Duration", "Laterality: unilateral or bilateral", "Progression: improving / worsening / static"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Visual Acuity (BOTH EYES — always)"));
["Unaided VA — Right eye / Left eye", "Aided VA (glasses / contacts)", "Pinhole VA if VA < 6/6", "Near vision (if relevant)"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Pupil Assessment"));
["Size & shape", "Direct light reflex", "Consensual light reflex", "RAPD — swinging torch test"].forEach(t => children.push(checkItem(t)));
children.push(subheader("IOP (Both Eyes)"));
["Right IOP _____ mmHg | Left IOP _____ mmHg", "Normal: 10–21 mmHg"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Anterior Segment (Slit-lamp)"));
["Lids and lashes", "Conjunctiva — injection pattern, discharge, follicles/papillae", "Cornea — clarity, staining (fluorescein), sensation", "Anterior chamber — depth, cells, flare, hypopyon", "Iris — shape, synechiae", "Lens — clarity, type of opacity"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Posterior Segment (Dilated Fundus)"));
["Optic disc — colour, margins, cup:disc ratio", "Macula — reflex, haemorrhages, exudates", "Blood vessels — AV ratio, nipping, tortuosity", "Peripheral retina — tears, detachment, pigment"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Systemic History"));
["Diabetes mellitus", "Hypertension", "Autoimmune / inflammatory disease", "Current medications (especially steroids, tamsulosin, hydroxychloroquine)", "Allergies"].forEach(t => children.push(checkItem(t)));
children.push(subheader("Family History"));
["Glaucoma", "AMD", "Retinal dystrophy / inherited retinal disease"].forEach(t => children.push(checkItem(t)));
children.push(spacer());
// ════════════════════════════════════════════════
// SECTION B: BY CHIEF COMPLAINT
// ════════════════════════════════════════════════
children.push(heading1("B. BY CHIEF COMPLAINT"));
// B1 RED EYE
children.push(heading2("B1. Red Eye"));
children.push(heading3("Conjunctivitis (Bacterial / Viral / Allergic)"));
children.push(subheader("History"));
["Discharge — watery vs mucopurulent", "Itching (hallmark of allergic)", "URTI / sick contact (viral)", "Contact lens wear", "Atopy / hay fever / eczema", "Any vision blurring? (if yes — not simple conjunctivitis)"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA — should be normal", "Lid eversion — follicles (viral) vs papillae (bacterial/allergic)", "Discharge character", "Cornea — clear?", "Pre-auricular lymph node — enlarged in viral"].forEach(t => children.push(checkItem(t, 400)));
children.push(heading3("Anterior Uveitis (Iritis)"));
children.push(subheader("History"));
["Unilateral or bilateral?", "First episode or recurrent?", "Back pain / stiffness (ankylosing spondylitis)", "Skin rash (psoriasis, sarcoidosis)", "Bowel symptoms (IBD)", "Joint pain", "STI history / TB exposure"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["Ciliary flush (limbal > peripheral injection)", "Keratic precipitates — fine (non-granulomatous) vs mutton-fat (granulomatous)", "AC cells and flare — grade 0–4", "Pupil — irregular? (posterior synechiae)", "IOP — low (ciliary suppression) or high (trabeculitis)?"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Mutton-fat KPs → think TB, sarcoid, syphilis"));
children.push(heading3("Corneal Ulcer / Infective Keratitis"));
children.push(subheader("History"));
["Contact lens wear — type, duration, hygiene (Pseudomonas, Acanthamoeba)", "Trauma — vegetative matter? (fungal)", "Prior HSV / herpes labialis (viral keratitis)", "Topical steroid use", "Immunocompromised state"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA", "Corneal sensation (reduced in HSV)", "Fluorescein staining — size, location, margins, dendrites", "Stromal infiltrate depth", "Hypopyon?", "Corneal scrape taken before treatment?"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Dendritic ulcer with terminal bulbs = HSV. Never patch without diagnosis."));
children.push(heading3("Acute Angle-Closure Glaucoma (Emergency)"));
children.push(subheader("History"));
["Sudden severe eye pain + headache + nausea/vomiting", "Halos around lights", "Precipitant: dim lighting, mydriatic drops", "Hypermetropia (risk factor)", "Medications: anticholinergics, antihistamines, sympathomimetics"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA — reduced", "IOP — typically >40 mmHg, eye is rock-hard", "Cornea — hazy (epithelial oedema)", "Pupil — mid-dilated, oval, non-reactive", "Anterior chamber — very shallow", "Fellow eye — narrow angle?"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Emergency: IV acetazolamide + topical pilocarpine + urgent laser iridotomy"));
children.push(spacer());
// B2 GRADUAL PAINLESS VISION LOSS
children.push(heading2("B2. Gradual Painless Vision Loss"));
children.push(heading3("Cataract"));
children.push(subheader("History"));
["Onset and rate of progression", "Glare worse in sunlight / oncoming headlights? (PSC)", "Near vs distance — which is worse?", "Systemic: diabetes, steroid use, trauma", "Family history of early cataract", "Functional impact: driving, reading, work"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["BCVA — both eyes", "Pinhole improvement?", "Red reflex — asymmetry or dull?", "Slit-lamp: nuclear sclerosis / cortical / PSC / ASC", "Dilated fundus (exclude posterior segment pathology)"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Surgery indication is functional, not just VA number alone."));
children.push(heading3("Primary Open-Angle Glaucoma"));
children.push(subheader("History"));
["Often asymptomatic — incidental or referred", "Family history of glaucoma (1st-degree relative = major RF)", "Myopia", "Steroid use (topical / systemic)", "Current eye drops — compliance and side effects"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["IOP both eyes (normal IOP does not exclude glaucoma)", "RAPD if asymmetric damage", "Optic disc: CDR, rim thinning (ISNT rule), disc haemorrhage, peripapillary atrophy", "Visual fields: arcuate scotoma, nasal step, altitudinal defect", "Gonioscopy: open angle"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("ISNT rule: Inferior > Superior > Nasal > Temporal rim thickness normally"));
children.push(heading3("Age-Related Macular Degeneration (AMD)"));
children.push(subheader("History"));
["Central distortion (metamorphopsia) or scotoma", "Age >50, smoking history (strongest modifiable RF)", "Family history of AMD", "Fellow eye status", "Sudden worsening? → wet AMD / CNV until proven otherwise", "AREDS2 supplements?"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA — central affected, peripheral often preserved", "Amsler grid — distortion or scotoma", "Drusen — size (soft large = high risk), number, distribution", "Geographic atrophy (dry AMD)", "Subretinal fluid / haemorrhage / CNV (wet AMD)", "OCT if available"].forEach(t => children.push(checkItem(t, 400)));
children.push(heading3("Diabetic Retinopathy"));
children.push(subheader("History"));
["Type 1 or Type 2 DM — duration", "HbA1c — current level and trend", "Blood pressure and lipid control", "Last retinal screen result", "Renal involvement (nephropathy correlates with DR)", "Pregnancy"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA both eyes", "IOP (neovascular glaucoma risk)", "Dilated fundus — classify DR:", " · Mild NPDR: microaneurysms only", " · Moderate NPDR: haemorrhages, hard exudates, cotton-wool spots", " · Severe NPDR: 4-2-1 rule (haemorrhages in 4 quadrants / VB in 2 / IRMA in 1)", " · PDR: NVD / NVE", "Macular oedema — clinically significant? Centre-involving?", "Vitreous — haemorrhage, traction?"].forEach(t => children.push(checkItem(t, 400)));
children.push(spacer());
// B3 SUDDEN PAINLESS VISION LOSS
children.push(heading2("B3. Sudden Painless Vision Loss"));
children.push(heading3("Retinal Detachment"));
children.push(subheader("History"));
["New floaters + flashes (photopsia) preceding curtain/shadow", "Direction of shadow — which quadrant?", "Macula on or off? (guide from VA)", "High myopia", "Prior cataract surgery", "Trauma", "Fellow eye — previous RD or lattice degeneration?"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA", "Dilated fundus with indirect ophthalmoscopy — location, find break, macula status", "IOP — low IOP supports rhegmatogenous RD"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Macula-on RD = surgical emergency (same day or next day surgery)"));
children.push(heading3("Central Retinal Artery / Vein Occlusion"));
children.push(subheader("History (CRAO)"));
["Sudden, painless, complete monocular vision loss", "Cardiovascular RF: DM, HT, AF, carotid disease, smoking", "Prior amaurosis fugax?", "Temporal arteritis symptoms: headache, jaw claudication, scalp tenderness (age >60)"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("History (CRVO)"));
["Gradual or sudden painless visual loss", "Glaucoma, hypertension, hyperviscosity states", "Oral contraceptive pill use"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA", "RAPD (CRAO — dense)", "Fundus CRAO: milky white retina + cherry-red spot at fovea", "Fundus CRVO: 'blood and thunder' — disc oedema, flame haemorrhages all 4 quadrants, dilated tortuous veins", "IOP (neovascular glaucoma risk in CRVO at 3 months)"].forEach(t => children.push(checkItem(t, 400)));
children.push(spacer());
// B4 FLOATERS AND FLASHES
children.push(heading2("B4. Floaters and/or Flashes"));
children.push(heading3("Posterior Vitreous Detachment / Retinal Tear"));
children.push(subheader("History"));
["Onset of floaters/flashes — sudden?", "New large floater or 'cobweb'", "Curtain or field defect present? (suggests RD)", "Myopia", "Age >50"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA", "Dilated fundus — peripheral retina for tears or holes", "Weiss ring (PVD) visible?", "Fundus if view obscured — B-scan ultrasound"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Any new floater/flash in a myope must have a dilated fundal exam urgently"));
children.push(spacer());
// B5 DOUBLE VISION
children.push(heading2("B5. Double Vision (Diplopia)"));
children.push(heading3("Cranial Nerve Palsy / Strabismus"));
children.push(subheader("History"));
["Binocular (disappears on covering either eye) vs monocular", "Onset — sudden (vascular) vs gradual (compressive)", "Pain around eye (CN III palsy from aneurysm)", "Thyroid disease", "Myasthenia: diurnal variation, worse at end of day, ptosis?", "DM / HT (microvascular CN palsies)"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["VA", "Cover-uncover test + alternate cover test", "Ocular motility — 9 positions of gaze", "Pupil — dilated in CN III aneurysm!", "Ptosis, proptosis", "Hess chart / diplopia charting"].forEach(t => children.push(checkItem(t, 400)));
children.push(note("Painful CN III palsy with dilated pupil = posterior communicating artery aneurysm until proven otherwise"));
children.push(spacer());
// B6 PTOSIS
children.push(heading2("B6. Ptosis (Drooping Eyelid)"));
children.push(subheader("History"));
["Unilateral or bilateral?", "Onset — congenital vs acquired; sudden vs gradual", "Diurnal variation — worse in evening? (myasthenia gravis)", "Diplopia, dysphagia, dysarthria (myasthenia)", "Headache + dilated pupil (CN III palsy)", "Anhidrosis, miosis (Horner syndrome — check for carotid/lung pathology)", "Smoking history, weight loss (lung apex tumour)"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["MRD1 (normal ~4 mm)", "Levator function (normal > 15 mm)", "Upper lid crease height", "Pupil — dilated (CN III) / miotic (Horner) / normal (aponeurotic)", "Extraocular movements", "Fatigability test — prolonged upgaze (MG)", "Phenylephrine 2.5% test for Horner's"].forEach(t => children.push(checkItem(t, 400)));
children.push(spacer());
// B7 WATERING EYE
children.push(heading2("B7. Watering Eye (Epiphora)"));
children.push(subheader("History"));
["Overflow vs reflex lacrimation (dry eye paradox)", "Worse outdoors / wind / reading (dry eye)", "Discharge (nasolacrimal duct obstruction)", "Medial canthal swelling / dacryocystitis", "Prior facial/nasal surgery or trauma"].forEach(t => children.push(checkItem(t, 400)));
children.push(subheader("Examination"));
["Lid position — ectropion, entropion", "Punctal occlusion / stenosis", "Lacrimal sac regurgitation on pressure (NLDO)", "Fluorescein dye disappearance test", "Syringe and probe (if indicated)"].forEach(t => children.push(checkItem(t, 400)));
children.push(spacer());
// ════════════════════════════════════════════════
// SECTION C: MUST-CLERK CONDITIONS SUMMARY TABLE
// ════════════════════════════════════════════════
children.push(heading1("C. MUST-CLERK CONDITIONS — QUICK REFERENCE GRID"));
const tableRows = [
// header
new TableRow({
children: [
["CONDITION", NAVY], ["KEY SYMPTOM", NAVY], ["ONE MUST-CHECK FINDING", NAVY], ["EMERGENCY?", NAVY]
].map(([text, bg]) =>
new TableCell({
children: [new Paragraph({ children: [new TextRun({ text, bold: true, color: WHITE, size: 18, font: "Calibri" })], alignment: AlignmentType.CENTER })],
shading: { type: ShadingType.SOLID, fill: bg },
verticalAlign: VerticalAlign.CENTER,
})
),
tableHeader: true,
}),
...[
["Cataract", "Gradual painless blur + glare", "Type on slit-lamp; red reflex", "No"],
["Primary Open-Angle Glaucoma", "Asymptomatic or tunnel vision", "CDR, ISNT rule, VF defects", "No"],
["Acute Angle Closure Glaucoma", "Acute pain, halos, N&V", "IOP >40, hazy cornea, mid-dilated pupil", "YES"],
["Conjunctivitis", "Red eye, discharge", "Follicles vs papillae on lid eversion", "No"],
["Corneal Ulcer / Keratitis", "Pain, FB sensation, photophobia", "Fluorescein staining pattern, dendrites", "Urgent"],
["Anterior Uveitis", "Pain, photophobia, ciliary flush", "AC cells/flare, KP type", "Urgent"],
["Diabetic Retinopathy", "Floaters or asymptomatic", "NVD/NVE, macular oedema (4-2-1 rule)", "PDR = Urgent"],
["Retinal Detachment", "Floaters+flashes → curtain", "Macula on or off; find the break", "YES"],
["CRAO", "Sudden complete monocular loss", "Cherry-red spot, milky retina, RAPD", "YES"],
["CRVO", "Sudden/gradual monocular loss", "'Blood & thunder' fundus", "Urgent"],
["AMD (Dry)", "Central distortion / scotoma", "Drusen type and size; Amsler grid", "No"],
["AMD (Wet)", "Sudden central distortion", "Subretinal fluid / haemorrhage on OCT", "Urgent"],
["Ptosis", "Lid droop", "Pupil, levator function, MRD1", "If pupil dilated = YES"],
["Diplopia", "Double vision", "Ocular motility + pupil exam", "If aneurysm = YES"],
["Epiphora", "Watering eye", "Lacrimal sac regurgitation, lid position", "No"],
].map((row, i) =>
new TableRow({
children: row.map((text, ci) =>
new TableCell({
children: [new Paragraph({ children: [new TextRun({ text, size: 18, font: "Calibri", bold: ci === 3 && text.includes("YES") })], alignment: ci === 3 ? AlignmentType.CENTER : AlignmentType.LEFT })],
shading: { type: ShadingType.SOLID, fill: i % 2 === 0 ? GREY : WHITE },
margins: { top: 60, bottom: 60, left: 100, right: 100 },
})
),
})
),
];
children.push(
new Table({
rows: tableRows,
width: { size: 100, type: WidthType.PERCENTAGE },
columnWidths: [2000, 2200, 2800, 1200],
})
);
children.push(spacer());
// ════════════════════════════════════════════════
// SECTION D: BEFORE YOU LEAVE THE PATIENT
// ════════════════════════════════════════════════
children.push(heading1("D. BEFORE YOU LEAVE THE PATIENT"));
[
"VA documented for BOTH eyes (aided and pinhole)",
"RAPD tested and documented",
"IOP measured for both eyes",
"Dilating drops instilled if needed (warn patient: blurred near vision 4–6 hrs, no driving)",
"Relevant systemic conditions linked to eye findings (DM / HT / autoimmune)",
"Emergency signs excluded (acute pain + red + reduced VA = rule out AACG / endophthalmitis)",
"Plan discussed: investigations, referral, follow-up",
"Patient counselled on red flags to return urgently",
].forEach(t => children.push(checkItem(t)));
children.push(spacer());
// ════════════════════════════════════════════════
// SECTION E: REFERENCES
// ════════════════════════════════════════════════
children.push(
new Paragraph({
children: [new TextRun({ text: "Reference Textbooks", bold: true, size: 20, color: NAVY, font: "Calibri" })],
spacing: { before: 100, after: 40 },
indent: { left: 100 },
}),
new Paragraph({
children: [new TextRun({ text: "1. Kanski's Clinical Ophthalmology: A Systematic Approach, 10th Edition", size: 18, font: "Calibri", color: BLACK })],
spacing: { before: 30, after: 30 },
indent: { left: 200 },
}),
new Paragraph({
children: [new TextRun({ text: "2. The Wills Eye Manual: Office and Emergency Room Diagnosis and Treatment of Eye Disease", size: 18, font: "Calibri", color: BLACK })],
spacing: { before: 30, after: 30 },
indent: { left: 200 },
})
);
// ── Build document ──
const doc = new Document({
creator: "Orris Medical Assistant",
title: "Ophthalmology Posting Clerking Checklist",
description: "Common chief complaints and must-clerk conditions for ophthalmology students",
sections: [{
properties: {},
headers: {
default: new Header({
children: [new Paragraph({
children: [new TextRun({ text: "Ophthalmology Posting — Clinical Clerking Checklist", size: 18, color: "888888", font: "Calibri" })],
alignment: AlignmentType.RIGHT,
})],
}),
},
footers: {
default: new Footer({
children: [new Paragraph({
children: [
new TextRun({ text: "For educational use during clinical posting | Page ", size: 16, color: "888888", font: "Calibri" }),
new TextRun({ children: [new PageNumber()], size: 16, color: "888888", font: "Calibri" }),
],
alignment: AlignmentType.CENTER,
})],
}),
},
children,
}],
});
Packer.toBuffer(doc).then(buf => {
fs.writeFileSync("/home/daytona/workspace/ophthal-posting/Ophthalmology_Clerking_Checklist.docx", buf);
console.log("Done.");
});
cd /home/daytona/workspace/ophthal-posting && node make_checklist.js
~/ophthal-posting/make_checklist.js
Error: String not found in file: ' Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink,
InternalHyperlink, Bookmark, FootnoteReferenceRun, PositionalTab,
PositionalTabAlignment, PositionalTabRelativeTo, PositionalTabLeader,
TabStopType, TabStopPosition, Column, SectionType,
TableOfContents, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, PageBreak } = require('docx');'~/ophthal-posting/make_checklist.js
Error: String not found in file: ' AlignmentType, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, PageBreak } = require('docx');'~/ophthal-posting/make_checklist.js
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/ophthal-posting/make_checklist.js'
~/ophthal-posting/make_checklist.js
Error: String not found in file: ' new TextRun({ text: " | Page ", size: 16, color: "888888", font: "Calibri" }),
new TextRun({ children: [new PageNumber()], size: 16, color: "888888", font: "Calibri" }),'cd /home/daytona/workspace/ophthal-posting && sed -i 's/new TextRun({ children: \[new PageNumber()\], size: 16, color: "888888", font: "Calibri" }),//' make_checklist.js && node make_checklist.js
python3 -c " content = open('/home/daytona/workspace/ophthal-posting/make_checklist.js').read() old = ''' new TextRun({ text: \"For educational use during clinical posting | Page \", size: 16, color: \"888888\", font: \"Calibri\" }), new TextRun({ children: [new PageNumber()], size: 16, color: \"888888\", font: \"Calibri\" }),''' new = ''' new TextRun({ text: \"For educational use during clinical posting\", size: 16, color: \"888888\", font: \"Calibri\" }),''' content = content.replace(old, new) open('/home/daytona/workspace/ophthal-posting/make_checklist.js', 'w').write(content) print('done') "
cd /home/daytona/workspace/ophthal-posting && node make_checklist.js
python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/ophthal-posting/Ophthalmology_Clerking_Checklist.docx
python3 -c " import zipfile, os path = '/home/daytona/workspace/ophthal-posting/Ophthalmology_Clerking_Checklist.docx' size = os.path.getsize(path) print(f'File size: {size} bytes') with zipfile.ZipFile(path) as z: print('Contents:', z.namelist()) "
Ophthalmology Clerking Checklist
Word Document · DOCX
| Section | Contents |
|---|---|
| A. Universal Clerking | Applies to every single case — VA, RAPD, IOP, slit-lamp, fundus, systemic Hx |
| B. By Chief Complaint | 7 chief complaint groups with dedicated history + exam checklists |
| C. Quick Reference Grid | 15 must-clerk conditions in a table — key symptom, must-check finding, emergency flag |
| D. Before You Leave | Final signoff checklist before moving to the next patient |
We will go through basic eye anatomy Common presenting complaints Visual acuity and basic examination External examination and torch light examination - please read on RAPD Will show you all the basic slit lamp examination Fundus basics
Snells chart 6/6 meaning
The patient reads at 6 metres what a normal eye can read at 6 metres.
| Snellen | What it means | Interpretation |
|---|---|---|
| 6/6 | Reads at 6 m what normal reads at 6 m | Normal vision |
| 6/9 | Reads at 6 m what normal reads at 9 m | Mildly reduced |
| 6/12 | Reads at 6 m what normal reads at 12 m | Moderately reduced (driving cutoff in many countries) |
| 6/18 | Reads at 6 m what normal reads at 18 m | Significantly reduced |
| 6/36 | Reads at 6 m what normal reads at 36 m | Poor vision |
| 6/60 | Reads at 6 m what normal reads at 60 m | Very poor — legal blindness threshold in some definitions |
Note: Normal corrected VA in young adults is often better than 6/6 (e.g. 6/5 or 6/4) — meaning they can read at 6 m what a standard normal eye would need to be at 5 or 4 m to read.
| Metric | Imperial |
|---|---|
| 6/6 | 20/20 |
| 6/12 | 20/40 |
| 6/60 | 20/200 |
R VA: 6/18 (unaided) → 6/6 (pinhole) tells you the problem is refractive — correctable with glassesR VA: 6/18 (unaided) → 6/18 (pinhole) tells you there is pathology — pinhole did not helpOintment and drops for tests and medication
| Mechanism | Drug | How it works |
|---|---|---|
| Sympathomimetic | Phenylephrine | Stimulates iris dilator muscle |
| Cycloplegic (Parasympatholytic) | Tropicamide, Cyclopentolate, Atropine, Homatropine | Blocks iris sphincter AND ciliary muscle |
| Drug | Concentration | Onset | Duration | Used For |
|---|---|---|---|---|
| Tropicamide | 1% | 20–30 min | 4 hours | Routine fundus exam — most common in OPD |
| Phenylephrine | 2.5% | 20 min | 3 hours | Combined with tropicamide for better dilation; does NOT cause cycloplegia |
| Cyclopentolate | 1% | 30 min | 6–24 hours | Children's refraction (cycloplegic refraction), uveitis |
| Atropine | 1% | 40 min | up to 12 days | Penalisation (amblyopia treatment); severe uveitis; children's refraction |
| Homatropine | 5% | 30 min | 1–3 days | Therapeutic cycloplegia for iritis/corneal abrasion |
In your OPD: You will most commonly use Tropicamide 1% alone or combined with Phenylephrine 2.5% for fundus exam.
| Drug | Example | Onset | Duration |
|---|---|---|---|
| Proxymetacaine (Proparacaine) 0.5% | Minims | ~30 sec | ~15–20 min |
| Tetracaine (Amethocaine) 0.5–1% | Minims | ~30 sec | ~15–20 min |
| Oxybuprocaine 0.4% | Minims Benoxinate | ~30 sec | ~15–20 min |
Important: Topical anaesthetics are for in-clinic use only. Never give a patient a bottle to take home — they mask pain that protects the cornea, and repeated use is toxic to the corneal epithelium.
| Form | Use |
|---|---|
| Fluorescein strips (impregnated strips + saline drop) | Most common, single-use, sterile |
| Minims fluorescein 1–2% | Pre-made single-dose |
| Combined fluorescein + anaesthetic (e.g. Minims Fluorescein + Benoxinate) | Tonometry — one drop does both |
| Drug | Form | Use |
|---|---|---|
| Chloramphenicol 0.5% drops / 1% ointment | Drops + oint | Bacterial conjunctivitis — broad-spectrum, first-line |
| Ofloxacin 0.3% drops | Drops | Bacterial conjunctivitis, corneal ulcer |
| Ciprofloxacin 0.3% drops / ointment | Drops + oint | Corneal ulcer (pseudomonal keratitis — frequent dosing) |
| Moxifloxacin 0.5% drops | Drops | Broad-spectrum; no preservative in some formulations |
| Gentamicin 0.3% drops | Drops | Gram-negative coverage |
| Fusidic acid 1% gel | Gel | Staphylococcal blepharitis / conjunctivitis (good lid penetration) |
| Aciclovir 3% ointment | Ointment | HSV dendritic keratitis — 5x/day for 14 days |
| Ganciclovir 0.15% gel | Gel | HSV keratitis alternative |
Ointment vs drops: Ointments have longer contact time, useful at night or for lids (blepharitis). Drops are preferred during the day as they don't blur vision.
| Drug | Potency | Use |
|---|---|---|
| Prednisolone acetate 1% | Strong | Anterior uveitis, post-op inflammation |
| Dexamethasone 0.1% | Strong | Uveitis, allergic, post-op |
| Fluorometholone 0.1% (FML) | Mild | Allergic conjunctivitis, superficial inflammation — lower IOP-raising risk |
| Loteprednol 0.5% | Mild-moderate | Allergic — low steroid side-effect profile |
Never start topical steroids without a diagnosis. Steroids on an undiagnosed herpetic ulcer → corneal melt. Steroids can raise IOP (steroid-induced glaucoma) and accelerate cataract formation.
| Drug | Use |
|---|---|
| Diclofenac 0.1% | Post-op pain/inflammation, cystoid macular oedema prevention |
| Ketorolac 0.5% | Allergic conjunctivitis, post-op |
| Bromfenac 0.09% | Post-cataract surgery inflammation |
| Drug | Class | Use |
|---|---|---|
| Sodium cromoglicate 2–4% | Mast cell stabiliser | Allergic conjunctivitis — prophylactic, needs regular use |
| Nedocromil 2% | Mast cell stabiliser | Same as above |
| Olopatadine 0.1% | Antihistamine + mast cell stabiliser | Allergic conjunctivitis — fast relief |
| Ketotifen 0.025% | Antihistamine + mast cell stabiliser | Over-the-counter allergic conjunctivitis |
| Azelastine | Antihistamine | Seasonal allergic conjunctivitis |
| Class | Drug | Mechanism | Notes |
|---|---|---|---|
| Prostaglandin analogues | Latanoprost 0.005%, Bimatoprost, Travoprost | Increases uveoscleral outflow | Once daily (night); SE: iris/lash pigmentation |
| Beta-blockers | Timolol 0.25–0.5%, Betaxolol | Reduces aqueous production | Contraindicated in asthma, bradycardia |
| Carbonic anhydrase inhibitors | Dorzolamide 2%, Brinzolamide 1% | Reduces aqueous production | Can cause stinging; systemic: acetazolamide tablets for acute AACG |
| Alpha-2 agonists | Brimonidine 0.2% | Reduces production + increases outflow | Caution in children (CNS depression) |
| Miotics | Pilocarpine 2–4% | Opens drainage angle (pupil constriction) | Used in AACG; causes dim vision, brow ache |
| Rho-kinase inhibitor | Netarsudil | Increases trabecular outflow | Newer agent |
| Combination drops | Cosopt (Timolol + Dorzolamide), Ganfort (Timolol + Bimatoprost) | Dual mechanism | Improves compliance |
| Form | Example | Best For |
|---|---|---|
| Drops (aqueous) | Hypromellose 0.3%, Sodium hyaluronate 0.1–0.4% | Mild–moderate dry eye; frequent use |
| Carbomer gel | Viscotears | Moderate dry eye; longer contact time; slightly blurs vision |
| Ointment | Lacri-Lube, Simple Eye Ointment | Severe dry eye; at night only (blurs vision significantly) |
| Drug | Use |
|---|---|
| Acetylcysteine 5% | Mucus dissolving — filamentary keratitis, dry eye with mucus strands |
| Cyclosporine 0.05–0.1% (Restasis, Ikervis) | Immunomodulatory dry eye (reduces T-cell inflammation on ocular surface) |
| Bevacizumab / Ranibizumab / Aflibercept | Intravitreal injections (not drops) for wet AMD, DMO, CRVO — anti-VEGF |
| Pilocarpine | Miotics for acute angle closure; also reverses tropicamide dilation |
DILATION (fundus exam): Tropicamide 1% ± Phenylephrine 2.5%
CYCLOPLEGIA (refraction): Cyclopentolate 1% (children), Atropine 1%
ANAESTHESIA (before IOP): Proxymetacaine 0.5% or Tetracaine 0.5%
STAINING (ulcer/abrasion): Fluorescein strip + cobalt blue light
BACTERIAL CONJUNCTIVITIS: Chloramphenicol drops/ointment
HSV KERATITIS: Aciclovir 3% ointment — NEVER steroids
UVEITIS: Steroid drops + Cycloplegic (homatropine/atropine)
GLAUCOMA (1st line): Prostaglandin analogue (latanoprost, night)
ACUTE ANGLE CLOSURE: IV Acetazolamide + Pilocarpine drops + Timolol
DRY EYE: Hypromellose / Sodium hyaluronate drops; ointment at night
Definition of blindness
| Category | BCVA in Better Eye | Common Term |
|---|---|---|
| Normal vision | 6/6 to 6/12 | Normal |
| Mild visual impairment | < 6/12 to ≥ 6/18 | Mild VI |
| Moderate visual impairment | < 6/18 to ≥ 6/60 | Moderate VI |
| Severe visual impairment | < 6/60 to ≥ 3/60 | Severe VI |
| Blindness | < 3/60 (or VF < 10°) | Blind |
| Total (absolute) blindness | No light perception (NPL) | Totally Blind |
The key cut-off: < 3/60 BCVA in the better eye = WHO blind
Best-corrected VA of 6/60 (20/200) or worse in the better eye OR a visual field of 20° or less (even if central VA is preserved)
| Level | Meaning |
|---|---|
| 6/6 | Normal vision |
| 6/12 | Minimum for unrestricted driving in most countries |
| 6/18 | Minimum for driving with conditions in some countries |
| 6/60 | Legal blindness threshold (can only count fingers at ~1 m) |
| 3/60 | WHO blindness threshold |
| Counting fingers (CF) | Can count fingers but cannot read any Snellen line |
| Hand movements (HM) | Cannot count fingers; can only detect hand moving |
| Perception of light (PL) | Aware of light only; no shapes |
| No perception of light (NPL) | Absolute/total blindness — cannot detect any light |
| Term | Definition |
|---|---|
| Low vision | BCVA < 6/18 but ≥ 3/60 in the better eye, OR VF < 20° — not correctable by glasses/surgery |
| Blindness | BCVA < 3/60 in the better eye, or NPL |
Low vision means the person still has some usable vision and can benefit from visual rehabilitation (magnifiers, large print, etc.).
| Threshold | Meaning |
|---|---|
| < 6/12 | Below normal — investigate |
| < 6/18 | Low vision begins |
| < 6/60 | Legal blindness |
| < 3/60 | WHO blindness |
| NPL | Absolute blindness |
In your exam/OSCE: If asked "define blindness" — the expected answer is the WHO definition: BCVA < 3/60 in the better eye, OR visual field < 10°. Also know that legal blindness = < 6/60.
Near vision 101 assessment and other infos please
| Age | Accommodation Amplitude | Clinical implication |
|---|---|---|
| Child | ~14 D | Can focus from very close |
| Age 20 | ~10 D | Good range |
| Age 40–45 | ~2–4 D | Near work becoming difficult |
| Age 50+ | < 2 D | Reading glasses needed |
| Age 70 | ~0 D | Essentially no accommodation |
Presbyopia = age-related loss of accommodation due to progressive hardening and enlargement of the lens (denaturation of lens proteins → lens loses elasticity)
By age 70, the power of accommodation falls to essentially 0 diopters — the lens remains at a fixed focal length permanently. — Guyton & Hall, Medical Physiology
| Jaeger | Approximate Snellen Equivalent | What it means |
|---|---|---|
| J1 | ~6/6 near equivalent | Normal reading vision |
| J2 | ~6/9 | Mildly reduced |
| J6 | ~6/18 | Moderately reduced |
| J14+ | ~6/60 | Very poor near vision |
| N-notation | Approximate size | Meaning |
|---|---|---|
| N5 | Very small (fine newsprint) | Normal near vision |
| N8 | Standard newspaper text | Good near vision |
| N12–N18 | Large print text | Reduced |
| N36+ | Very large print | Significantly reduced |
Step 1: Cover left eye
Step 2: Patient holds near chart at comfortable reading distance
Step 3: Ask patient to read smallest line they can see clearly
Step 4: Record: e.g. J2 or N6 at 33 cm, right eye
Step 5: Repeat for left eye
Step 6: Then test binocularly (both eyes open)
Example: R near VA: N6 @ 33 cm (with reading glasses)
| Pattern | Likely Cause |
|---|---|
| Near VA reduced, distance VA normal | Presbyopia (age-related), over-corrected myopia |
| Distance VA reduced, near VA normal | Uncorrected myopia |
| Both near and distance VA reduced | Macular disease (AMD, diabetic maculopathy), corneal/lens/optic nerve pathology |
| Near VA worse than expected even with glasses | Macular disease, optic nerve disease — near VA is a sensitive indicator of macula function |
| Near VA much better than distance VA | Uncorrected myopia — patient reads well up close |
"Near vision testing can be a sensitive indicator of the presence of macular disease." — Kanski's Clinical Ophthalmology, 10th ed.
Standard near vision testing distance: 33–40 cm
Normal near vision: J1 or N5
Notation systems: J (Jaeger), N (newsprint), Snellen equivalent
Always test WITH reading glasses (if patient uses them)
Test BEFORE dilating drops (dilation removes accommodation)
Near VA reduced + distance VA normal: Think PRESBYOPIA
Both near + distance reduced: Think MACULA or OPTIC NERVE
Macular function test: Amsler grid at 33 cm
Opthalmoscopy/fundoscopy
| Method | Instrument | Image | Field of View | Magnification | When Used |
|---|---|---|---|---|---|
| Direct | Handheld direct ophthalmoscope | Upright, virtual | Small (~5°) | 15x | Bedside, general ward, GP, ED |
| Indirect (slit-lamp) | Slit lamp + 78D/90D lens | Inverted | Wide (~50°) | 3–5x | Clinic gold standard |
| Binocular indirect | Headband ophthalmoscope + 20D/28D lens | Inverted + reversed | Very wide | 3x | Peripheral retina, RD, surgery |

1. Start with lens wheel at "0"
2. Right eye of patient → use YOUR right eye, hold scope in right hand, stand on patient's right
3. Left eye of patient → use YOUR left eye, hold scope in left hand, stand on patient's left
(Same-side rule: avoids nose-to-nose contact)
4. Rest your free hand on patient's FOREHEAD — stabilises your position
5. From arm's length, shine light at pupil → look for the RED REFLEX first
(dull/absent reflex = cataract, vitreous haemorrhage, retinoblastoma)
6. Approach slowly from the TEMPORAL SIDE at a slight angle (~15°)
7. Come in close — ideally 3–4 cm from the eye
(Most students stay too far away — this is the most common mistake)
8. When close, the OPTIC DISC should come into view
If blurry → rotate lens wheel until disc is sharp
9. Correct for refractive error:
- Hypermetrope (far-sighted patient/examiner) → plus lenses (GREEN numbers)
- Myope (short-sighted) → minus lenses (RED numbers)

| Feature | Normal | Abnormal |
|---|---|---|
| Colour | Creamy-pink / orange | Pale = optic atrophy; Hyperaemic = papilloedema / neuritis |
| Margins | Sharp, well-defined | Blurred = papilloedema, neuritis; Drusen can mimic blurring |
| Elevation | Flat | Raised = papilloedema; Cupped = glaucoma |
| Spontaneous venous pulsation | Present in ~80% | Absent can suggest raised ICP |
___________
| | = Disc (whole disc diameter)
| _____ |
| |cup | | = Cup (central pale area — no neural tissue)
| |_____| |
|___________|
CDR = Diameter of cup ÷ Diameter of disc
| CDR | Interpretation |
|---|---|
| 0.3–0.4 | Normal (most people) |
| ≤ 0.5 | Upper limit of normal |
| > 0.6 | Suspicious for glaucoma |
| Asymmetry > 0.2 between eyes | Suspicious for glaucoma |
Inferior > Superior > Nasal > Temporal Any violation of this rule = suspicious for glaucomatous damage
| Finding | Disease |
|---|---|
| Narrow arteries (AV ratio < 1:2) | Hypertension |
| AV nipping/nicking at crossings | Hypertensive retinopathy |
| Silver/copper wiring | Arteriosclerosis |
| Tortuous veins | CRVO, hyperviscosity |
| New vessels (NVD/NVE) | Proliferative diabetic retinopathy |
| Emboli at bifurcations | Hollenhorst plaques (carotid emboli) |
Focus on the disc, then move the light 2 disc diameters temporally — or ask the patient to look directly at the light
| Finding | Disease |
|---|---|
| Drusen (yellow dots) | AMD — dry |
| Subretinal fluid / haemorrhage | AMD — wet |
| Hard exudates in rings (circinate) | Diabetic maculopathy |
| Cherry-red spot | CRAO |
| Pigment mottling / bull's-eye | Hydroxychloroquine toxicity |
| Macular hole | Central scotoma, elderly |
| Red Reflex | Interpretation |
|---|---|
| Bright, equal bilaterally | Normal |
| Dull or dark area (opacity) | Cataract, vitreous haemorrhage |
| Absent | Dense cataract, vitreous blood, complete retinal detachment |
| White reflex (leukocoria) | Retinoblastoma (in children — emergency referral) |
| Asymmetric between eyes | Amblyopia screening, anisometropia |
| Feature | Direct Ophthalmoscopy | Indirect (Slit-lamp 78/90D) |
|---|---|---|
| Magnification | 15x | 3–5x |
| Field of view | Small (~5°) | Large (~50°) |
| Stereopsis (3D) | No | Yes |
| Image orientation | Upright, virtual | Inverted |
| Portability | Yes — bedside | No — needs slit-lamp |
| Peripheral retina | Poor | Excellent |
| Best for | Disc, macula, bedside | Complete fundus, subtle macular changes |
Retinal detachment CANNOT be ruled out by direct ophthalmoscopy alone — indirect ophthalmoscopy is needed to view the peripheral retina where most breaks occur. — Rosen's Emergency Medicine
| Mistake | Correction |
|---|---|
| Staying too far from the eye | Get within 3–4 cm — must be close |
| Using wrong eye/hand | Same-side rule: right eye = your right eye |
| Not darkening the room | Dim lights = larger pupil = better view |
| Not asking patient to fixate on a distant target | Prevents miosis and accommodation |
| Giving up when disc not found immediately | Follow a vessel inward — vessels get larger toward the disc |
| Forgetting the macula | Always look 2 disc diameters temporal after the disc |
| Bright corneal reflection | Slightly de-centre the beam or use the small aperture |
Instrument used: Direct ophthalmoscope
Magnification: 15x
Starting lens: 0 (adjust for patient's refraction)
Approach: Temporal side, ~15° angle, ~3–4 cm final distance
Same-side rule: Right eye → your right eye; Left → your left eye
Exam order: Red reflex → Disc → CDR → Vessels → Macula → Periphery
Find macula: 2 disc diameters temporal to disc
Normal CDR: ≤ 0.5 (suspicious if > 0.6 or asymmetry > 0.2)
Normal AV ratio: Artery:Vein = 2:3
Uveitis

| Type | Primary Site | Key Structure |
|---|---|---|
| Anterior uveitis | Anterior chamber | Iris + anterior ciliary body (iritis / iridocyclitis) |
| Intermediate uveitis | Vitreous | Pars plana, vitreous base (pars planitis) |
| Posterior uveitis | Posterior segment | Retina (retinitis) and/or choroid (choroiditis) |
| Panuveitis | All segments | All uveal structures |
Anterior uveitis is the most common form and the one you will see most in OPD.
| Category | Examples |
|---|---|
| Infectious | Herpes simplex/zoster, TB, syphilis, toxoplasmosis, CMV, fungi |
| Non-infectious — systemic association | HLA-B27 spondyloarthropathies, sarcoidosis, JIA, Behçet, IBD |
| Non-infectious — idiopathic | Most common — no identifiable cause |
| Masquerade syndromes | Lymphoma, retinoblastoma, leukaemia (mimic uveitis) |
| Term | Definition |
|---|---|
| Acute | Sudden onset, limited duration (≤3 months) |
| Recurrent | Repeated episodes with inactive intervals between |
| Chronic | Persistent >3 months; relapses within 3 months of stopping treatment |
| Remission | No cells (inactive) for ≥3 months off treatment |
Onset is typically sudden in HLA-B27-related disease and insidious in JIA and Fuchs uveitis syndrome.
| KP Type | Appearance | Granulomatous? | Associated with |
|---|---|---|---|
| Fine/stellate | Small, scattered | Non-granulomatous | HLA-B27, herpetic, idiopathic |
| Mutton-fat | Large, greasy, irregular | Granulomatous | TB, sarcoidosis, syphilis, VKH |
| Stellate (diffuse) | Fine, spread all over endothelium | Special type | Fuchs uveitis syndrome |

| Grade | Cells in field |
|---|---|
| 0 | < 1 (none) |
| 0.5+ | 1–5 |
| 1+ | 6–15 |
| 2+ | 16–25 |
| 3+ | 26–50 |
| 4+ | > 50 |
| Grade | Description |
|---|---|
| 0 | None |
| 1+ | Faint |
| 2+ | Moderate — iris and lens still clear |
| 3+ | Marked — iris and lens hazy |
| 4+ | Intense — fibrin or "plastic aqueous" |

| Direction | Mechanism |
|---|---|
| Low IOP | Ciliary body inflammation → reduced aqueous production |
| High IOP | Trabeculitis, PS → blocked drainage, steroid response |
| Condition | Mnemonic |
|---|---|
| Ankylosing spondylitis | A |
| Reactive arthritis (Reiter's syndrome) | R |
| Psoriatic arthritis | P |
| Inflammatory bowel disease (Crohn's, UC) | I |
Mnemonic: ARPI or remember "HLA-B27 = Back, Bowel, Behave (behave badly — recurs)"
| HLA | Disease |
|---|---|
| HLA-B27 | Recurrent acute anterior uveitis (AS, Reiter's, IBD, psoriatic arthritis) |
| HLA-A29 | Birdshot retinochoroidopathy |
| HLA-B51 | Behçet syndrome |
| HLA-DR4 | Sympathetic ophthalmia, Vogt-Koyanagi-Harada (VKH) |
| Condition | Features of uveitis |
|---|---|
| Sarcoidosis | Granulomatous (mutton-fat KPs), bilateral, chronic; iris nodules (Koeppe/Busacca); serum ACE elevated |
| Tuberculosis | Granulomatous; can cause chronic panuveitis; QuantiFERON-TB positive |
| Syphilis | "The great mimicker" — any type; bilateral; VDRL/RPR + TPHA |
| Juvenile Idiopathic Arthritis (JIA) | Chronic anterior uveitis, bilateral, asymptomatic (no red eye) — most insidious; ANA positive |
| Behçet disease | Bilateral, severe; oral and genital ulcers; hypopyon; HLA-B51 |
| Toxoplasmosis | Posterior uveitis; focal necrotising retinochoroiditis; "headlights in fog" appearance |
| Herpes simplex/zoster | Anterior uveitis + keratitis; unilateral; iris atrophy; high IOP |
| Complication | Mechanism |
|---|---|
| Posterior synechiae | Iris-lens adhesion → irregular pupil |
| Iris bombé | 360° PS → aqueous trapped → iris bulges forward |
| Secondary glaucoma | Trabeculitis, angle closure from iris bombé, steroid response |
| Cataract | Inflammation + prolonged steroid use → posterior subcapsular |
| Cystoid macular oedema (CMO) | Most common cause of visual loss in uveitis |
| Hypotony | Chronic ciliary body damage → low IOP → phthisis bulbi |
| Band keratopathy | Calcium deposition in Bowman's layer (JIA especially) |
Typical tapering regimen:
Week 1: hourly (or every 2 hours)
Week 2: 4x daily
Week 3: 3x daily
Week 4: 2x daily
Week 5: 1x daily → stop
(Total ~5–6 weeks; adjust based on response)
Most common type: Anterior uveitis (iritis/iridocyclitis)
Classic triad: Pain + Photophobia + Ciliary flush
Key slit-lamp signs: KPs, AC cells/flare, posterior synechiae
KP type matters: Fine = non-granulomatous; Mutton-fat = granulomatous
Most common RF: HLA-B27 (ankylosing spondylitis, IBD, psoriatic, Reiter's)
Granulomatous causes: TB, Sarcoid, Syphilis, VKH, Sympathetic ophthalmia
Most common complication causing blindness: Cystoid macular oedema
Treatment pillars: Topical steroid (taper) + Cycloplegic
Never steroid without diagnosis — exclude herpetic keratitis first
Refractive error lecture