detailed notes of glaucoma along with physiotherapy managemet table with , goal and intervention wise . exam orientric with easy and imp diagrams
cd /home/daytona/workspace/attachments/1f65742d-fb7e-41ae-a208-cfd5382f96c2 && p…
cd /home/daytona/workspace/attachments/1f65742d-fb7e-41ae-a208-cfd5382f96c2 && p…
cd /home/daytona/workspace/attachments/1f65742d-fb7e-41ae-a208-cfd5382f96c2 && p…
physiotherapy management glaucoma visual rehabilitation low vision exercises 2024
https://eyewiki.org/Low_Vision_and_Vision_Rehabilitation_in_…
mkdir -p /home/daytona/workspace/glaucoma-notes && ls /home/daytona/workspace/gl…
~/glaucoma-notes/glaucoma_notes.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageBreak, UnderlineType
} = require('docx');
const fs = require('fs');
// ─── Helper Functions ──────────────────────────────────────────────────────────
function heading1(text) {
return new Paragraph({
text,
heading: HeadingLevel.HEADING_1,
spacing: { before: 360, after: 120 },
shading: { type: ShadingType.SOLID, color: '1F4E79', fill: '1F4E79' },
run: { color: 'FFFFFF' }
});
}
function h1(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 32, color: 'FFFFFF' })],
heading: HeadingLevel.HEADING_1,
spacing: { before: 400, after: 150 },
shading: { type: ShadingType.SOLID, color: '1F4E79', fill: '1F4E79' },
indent: { left: 200 }
});
}
function h2(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 26, color: 'FFFFFF' })],
heading: HeadingLevel.HEADING_2,
spacing: { before: 300, after: 120 },
shading: { type: ShadingType.SOLID, color: '2E75B6', fill: '2E75B6' },
indent: { left: 200 }
});
}
function h3(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 24, color: '1F4E79' })],
heading: HeadingLevel.HEADING_3,
spacing: { before: 240, after: 80 },
});
}
function body(text) {
return new Paragraph({
children: [new TextRun({ text, size: 22 })],
spacing: { after: 100 },
});
}
function bullet(text, level = 0) {
return new Paragraph({
children: [new TextRun({ text, size: 22 })],
bullet: { level },
spacing: { after: 80 },
});
}
function importantBox(text) {
return new Paragraph({
children: [new TextRun({ text, bold: true, size: 22, color: '8B0000' })],
shading: { type: ShadingType.SOLID, color: 'FFF2CC', fill: 'FFF2CC' },
spacing: { before: 120, after: 120 },
indent: { left: 300, right: 300 },
border: {
top: { style: BorderStyle.SINGLE, size: 4, color: 'C9A800' },
bottom: { style: BorderStyle.SINGLE, size: 4, color: 'C9A800' },
left: { style: BorderStyle.SINGLE, size: 4, color: 'C9A800' },
right: { style: BorderStyle.SINGLE, size: 4, color: 'C9A800' }
}
});
}
function keypoint(text) {
return new Paragraph({
children: [new TextRun({ text: '★ ' + text, bold: true, size: 22, color: 'C00000' })],
spacing: { after: 80 },
});
}
function makeCell(text, { bold = false, bg = 'FFFFFF', color = '000000', width = 2000 } = {}) {
return new TableCell({
children: [new Paragraph({
children: [new TextRun({ text, bold, size: 20, color })],
spacing: { before: 60, after: 60 },
indent: { left: 80, right: 80 }
})],
shading: { type: ShadingType.SOLID, color: bg, fill: bg },
width: { size: width, type: WidthType.DXA },
verticalAlign: VerticalAlign.CENTER
});
}
function headerRow(cells, bg = '1F4E79') {
return new TableRow({
children: cells.map(([text, width]) => new TableCell({
children: [new Paragraph({
children: [new TextRun({ text, bold: true, size: 20, color: 'FFFFFF' })],
spacing: { before: 80, after: 80 },
indent: { left: 80 }
})],
shading: { type: ShadingType.SOLID, color: bg, fill: bg },
width: { size: width, type: WidthType.DXA },
verticalAlign: VerticalAlign.CENTER
})),
tableHeader: true
});
}
// ─── ASCII Diagrams as preformatted text ──────────────────────────────────────
function asciiDiagram(lines, title) {
const paras = [];
if (title) paras.push(new Paragraph({
children: [new TextRun({ text: title, bold: true, size: 22, color: '1F4E79' })],
spacing: { before: 120, after: 60 }
}));
for (const line of lines) {
paras.push(new Paragraph({
children: [new TextRun({ text: line, font: 'Courier New', size: 18 })],
spacing: { before: 0, after: 0 },
shading: { type: ShadingType.SOLID, color: 'F2F2F2', fill: 'F2F2F2' },
indent: { left: 300 }
}));
}
paras.push(new Paragraph({ text: '', spacing: { after: 100 } }));
return paras;
}
// ─── PAGE TITLE ─────────────────────────────────────────────────────────────────
const titlePage = [
new Paragraph({
children: [new TextRun({ text: 'GLAUCOMA', bold: true, size: 72, color: '1F4E79' })],
alignment: AlignmentType.CENTER,
spacing: { before: 1440, after: 200 }
}),
new Paragraph({
children: [new TextRun({ text: 'Comprehensive Clinical Notes + Physiotherapy Management', size: 32, color: '2E75B6' })],
alignment: AlignmentType.CENTER,
spacing: { after: 200 }
}),
new Paragraph({
children: [new TextRun({ text: 'Exam-Oriented | Evidence-Based | Physiotherapy Focus', size: 24, italics: true, color: '7F7F7F' })],
alignment: AlignmentType.CENTER,
spacing: { after: 400 }
}),
new Paragraph({
children: [new TextRun({ text: 'Sources: Kanski\'s Clinical Ophthalmology 10th Ed, Robbins Pathology, Glaucoma Clinical Atlas, EyeWiki, Scientific Reports', size: 18, color: '595959', italics: true })],
alignment: AlignmentType.CENTER,
spacing: { after: 200 }
}),
new Paragraph({ children: [new PageBreak()] })
];
// ─── SECTION 1: DEFINITION & OVERVIEW ────────────────────────────────────────
const section1 = [
h1('1. DEFINITION & OVERVIEW'),
body('Glaucoma is a group of optic neuropathies characterised by progressive loss of retinal ganglion cells (RGCs) and their axons, resulting in characteristic structural changes to the optic nerve head and visual field defects. Although elevated intraocular pressure (IOP) is the most important modifiable risk factor, some patients develop glaucoma with normal IOP (Normal Tension Glaucoma).'),
new Paragraph({ text: '', spacing: { after: 100 } }),
...asciiDiagram([
'┌─────────────────────────────────────────────────────────────┐',
'│ GLAUCOMA TRIAD │',
'├─────────────────┬───────────────────┬───────────────────────┤',
'│ Elevated IOP │ Optic Disc Damage│ Visual Field Defect │',
'│ (>21 mmHg) │ (C/D ratio >0.7) │ (Arcuate scotoma, │',
'│ │ NRR thinning │ nasal step, etc.) │',
'└─────────────────┴───────────────────┴───────────────────────┘',
' NOTE: ALL THREE may not be present simultaneously',
' Normal IOP glaucoma = NTG (10-15% of all glaucoma)'
], 'EXAM TIP - Glaucoma Triad'),
importantBox('EXAM FACT: Normal IOP = 10-21 mmHg | Glaucoma suspect = >21 mmHg | C/D ratio >0.7 is suspicious | Asymmetry ≥0.2 between eyes is significant'),
];
// ─── SECTION 2: CLASSIFICATION ───────────────────────────────────────────────
const section2 = [
h1('2. CLASSIFICATION'),
...asciiDiagram([
' GLAUCOMA',
' │',
' ┌────────────────┴─────────────────┐',
' PRIMARY SECONDARY',
' │ │',
' ┌──────┴──────┐ ┌──────────┼───────────┐',
' POAG PACG Steroid Trauma Neovascular',
' │ │ Induced (NVG)',
' Most Acute/ (most │',
' common Chronic/ common Diabetes/CRVO',
' (80%) Sub-acute 2ndary)',
' │',
' Pigmentary',
' Pseudoexfoliation',
' Uveitic'
], 'Classification Tree'),
h2('Primary Open-Angle Glaucoma (POAG)'),
bullet('Most common type (80% of all glaucoma)'),
bullet('Bilateral but often asymmetric'),
bullet('Open drainage angle on gonioscopy'),
bullet('Slowly progressive, painless, insidious onset'),
bullet('IOP usually >21 mmHg but not always'),
bullet('Risk factors: Age >60, Black ethnicity (3-4x higher risk), Family history, Myopia, Thin CCT'),
h2('Primary Angle-Closure Glaucoma (PACG)'),
bullet('Iris bombe / pupil block mechanism'),
bullet('Shallow anterior chamber, hypermetropia, female sex, Asian ethnicity'),
bullet('Acute: Sudden severe eye pain, headache, nausea/vomiting, haloes, decreased VA'),
bullet('IOP may reach 50-80 mmHg in acute attack'),
bullet('Emergency management required'),
h2('Normal Tension Glaucoma (NTG)'),
bullet('IOP consistently ≤21 mmHg yet optic nerve damage occurs'),
bullet('Vascular insufficiency is a key mechanism'),
bullet('Associated with systemic hypotension, nocturnal dips, vasospasm (Raynaud\'s)'),
bullet('Visual field defects tend to be deeper, closer to fixation'),
];
// ─── SECTION 3: ANATOMY & AQUEOUS HUMOR DYNAMICS ─────────────────────────────
const section3 = [
h1('3. ANATOMY & AQUEOUS HUMOR DYNAMICS'),
...asciiDiagram([
' AQUEOUS HUMOR PATHWAY',
' ┌─────────────────────────────────────────────────────┐',
' │ Ciliary Body (Production) │',
' │ │ Active secretion + Ultrafiltration │',
' │ ▼ │',
' │ Posterior Chamber │',
' │ │ Flows through PUPIL │',
' │ ▼ │',
' │ Anterior Chamber │',
' │ │ │',
' │ ┌────┴──────┐ │',
' │ ▼ ▼ │',
' │ Trabecular Uveoscleral │',
' │ Meshwork Pathway │',
' │ (80-90%) (10-20%) │',
' │ │ │',
' │ ▼ │',
' │ Schlemm\'s Canal → Episcleral Veins → Systemic Circ │',
' └─────────────────────────────────────────────────────┘',
], 'Aqueous Humor Flow Diagram'),
h2('IOP Regulation Formula'),
...asciiDiagram([
' IOP = Rate of Aqueous Production / Aqueous Outflow Facility',
' + Episcleral Venous Pressure',
'',
' Normal IOP = 10-21 mmHg (mean ~15 mmHg)',
' Diurnal variation = 2-6 mmHg (highest in morning)',
' Glaucomatous IOP usually >21 mmHg'
], 'IOP Formula'),
h3('Optic Disc - Key Anatomy (ISNT Rule)'),
...asciiDiagram([
' Neuroretinal Rim (NRR) Width (Normal):',
' I > S > N > T (Inferior > Superior > Nasal > Temporal)',
' ← ISNT Rule →',
' If ISNT rule violated = suspicious for glaucoma',
'',
' Cup/Disc (C/D) Ratio:',
' Normal < 0.5 | Suspicious > 0.6 | Significant > 0.7',
' Asymmetry ≥ 0.2 between eyes = suspicious'
], 'ISNT Rule - Optic Disc'),
];
// ─── SECTION 4: PATHOPHYSIOLOGY ───────────────────────────────────────────────
const section4 = [
h1('4. PATHOPHYSIOLOGY'),
...asciiDiagram([
' ┌─────────────────────────────────────────────────────────┐',
' │ PATHOPHYSIOLOGY OF GLAUCOMA │',
' │ │',
' │ Elevated IOP / Vascular Insufficiency │',
' │ │ │',
' │ ▼ │',
' │ Mechanical stress on Lamina Cribrosa │',
' │ │ │',
' │ ▼ │',
' │ Axonal compression of RGC axons │',
' │ │ │',
' │ ▼ │',
' │ Interrupted axoplasmic flow │',
' │ │ │',
' │ ▼ │',
' │ Retinal Ganglion Cell (RGC) Apoptosis │',
' │ │ │',
' │ ▼ │',
' │ Optic Nerve Atrophy + Visual Field Loss │',
' └─────────────────────────────────────────────────────────┘'
], 'Pathophysiology Cascade'),
h2('Mechanisms of Optic Nerve Damage'),
bullet('Mechanical Theory: IOP-induced distortion of lamina cribrosa compresses nerve fibers'),
bullet('Vascular Theory: Reduced ocular blood flow → ischemia of optic nerve head'),
bullet('Excitotoxicity: Glutamate overactivation causing RGC death'),
bullet('Oxidative Stress: Mitochondrial dysfunction, free radical damage to RGCs'),
bullet('Glial Cell Activation: Astrocytes and Müller cells amplify damage'),
importantBox('EXAM FACT: In POAG - elevated IOP is the key driver. In NTG - vascular insufficiency and nocturnal hypotension are primary. Lamina cribrosa is thinner in NTG eyes.'),
];
// ─── SECTION 5: CLINICAL FEATURES ───────────────────────────────────────────
const section5 = [
h1('5. CLINICAL FEATURES & DIAGNOSIS'),
h2('Symptoms'),
bullet('POAG: Usually ASYMPTOMATIC until late stage (peripheral field lost first)'),
bullet('PACG Acute: Severe unilateral eye pain, frontal headache, nausea/vomiting, halos around lights, blurred vision, congested red eye'),
bullet('Late Stage Any Type: Tunnel vision, difficulty with mobility, reading, driving'),
bullet('Reduced contrast sensitivity, difficulty with steps/curbs, poor dark adaptation'),
h2('Signs'),
bullet('Elevated IOP (>21 mmHg) - measured by Goldmann Applanation Tonometry (GAT)'),
bullet('Optic disc cupping (C/D ratio >0.7), NRR thinning, ISNT rule violation'),
bullet('Retinal nerve fiber layer (RNFL) defects'),
bullet('Visual field defects (see below)'),
bullet('Gonioscopy: Open angle in POAG, closed/narrow in PACG'),
h2('Visual Field Defects - MUST KNOW'),
...asciiDiagram([
' CHRONOLOGICAL PROGRESSION OF VISUAL FIELD LOSS:',
'',
' Stage 1: Isolated paracentral scotoma',
' (small blind spot near Bjerrum area 10-20° from fixation)',
'',
' Stage 2: Arcuate (Bjerrum) Scotoma',
' Arches from blind spot around fixation',
' ┌─────────────────────────────┐',
' │ ╔═══════╗ │',
' │ ╔═══╝ ╚═══╗ │',
' │ ║ Arcuate ╚══╗ │',
' │ ╠═══════════════════╝ │',
' │ ║ Fixation ● │',
' └─────────────────────────────┘',
'',
' Stage 3: Nasal Step',
' Asymmetric defect at horizontal meridian nasally',
'',
' Stage 4: Double Arcuate Scotoma (Ring Scotoma)',
' Both superior and inferior arcuate defects',
'',
' Stage 5: Tunnel Vision',
' Only central island + temporal crescent remain',
'',
' Stage 6: Total blindness',
' Central vision lost last'
], 'Visual Field Defect Progression'),
h2('Investigations'),
bullet('Goldmann Applanation Tonometry (GAT) - gold standard for IOP'),
bullet('Pachymetry (CCT): Thin cornea (<555μm) = underestimated IOP; thick cornea = overestimated'),
bullet('Gonioscopy: Assess drainage angle (Shaffer grading 0-IV)'),
bullet('Automated Perimetry: Humphrey 24-2 or 30-2 pattern (standard); 10-2 for advanced'),
bullet('OCT (Optical Coherence Tomography): RNFL thickness, macular ganglion cell complex'),
bullet('HRT (Heidelberg Retina Tomograph): 3D disc imaging'),
bullet('Fundus Photography: Stereo disc photography'),
bullet('UBM (Ultrasound Biomicroscopy): Shows structures behind iris, plateau iris'),
importantBox('EXAM FACT: In glaucoma, peripheral vision is lost FIRST (peripheral RGCs > central RGCs in ratio). Central vision (VA) is preserved until very late stage. 40% of RGCs may be lost before any visual field defect is detectable on automated perimetry!'),
];
// ─── SECTION 6: STAGING ──────────────────────────────────────────────────────
const section6 = [
h1('6. STAGING (Mean Deviation - MD)'),
new Table({
width: { size: 9000, type: WidthType.DXA },
rows: [
headerRow([['Stage', 1800], ['MD Value', 2000], ['Clinical Features', 5200]]),
new TableRow({ children: [
makeCell('Early', { bg: 'E2EFDA', bold: true, width: 1800 }),
makeCell('MD > -6 dB', { bg: 'E2EFDA', width: 2000 }),
makeCell('Subtle RNFL defects; small paracentral/arcuate scotomas; peripheral field affected', { bg: 'E2EFDA', width: 5200 })
]}),
new TableRow({ children: [
makeCell('Moderate', { bg: 'FFEB9C', bold: true, width: 1800 }),
makeCell('-6 to -12 dB', { bg: 'FFEB9C', width: 2000 }),
makeCell('Definite VF defects; arcuate scotoma visible; nasal step; reading/mobility difficulties', { bg: 'FFEB9C', width: 5200 })
]}),
new TableRow({ children: [
makeCell('Severe', { bg: 'FFC7CE', bold: true, width: 1800 }),
makeCell('MD < -12 dB', { bg: 'FFC7CE', width: 2000 }),
makeCell('Tunnel vision; central/temporal island only; significant functional impairment', { bg: 'FFC7CE', width: 5200 })
]}),
]
}),
new Paragraph({ text: '', spacing: { after: 200 } }),
];
// ─── SECTION 7: MEDICAL MANAGEMENT ──────────────────────────────────────────
const section7 = [
h1('7. MEDICAL MANAGEMENT'),
h2('Drug Classes & Mechanism'),
new Table({
width: { size: 9000, type: WidthType.DXA },
rows: [
headerRow([['Drug Class', 2000], ['Examples', 2000], ['Mechanism', 2500], ['IOP Reduction', 1500], ['Side Effects', 1000]]),
new TableRow({ children: [
makeCell('Prostaglandin Analogues\n(1st line)', { bg: 'EAF4FB', bold: true, width: 2000 }),
makeCell('Latanoprost, Travoprost, Bimatoprost', { bg: 'EAF4FB', width: 2000 }),
makeCell('↑ Uveoscleral outflow', { bg: 'EAF4FB', width: 2500 }),
makeCell('25-35%', { bg: 'EAF4FB', width: 1500 }),
makeCell('Iris pigmentation, lash growth', { bg: 'EAF4FB', width: 1000 })
]}),
new TableRow({ children: [
makeCell('Beta-Blockers', { bg: 'F2F2F2', bold: true, width: 2000 }),
makeCell('Timolol, Betaxolol', { bg: 'F2F2F2', width: 2000 }),
makeCell('↓ Aqueous production', { bg: 'F2F2F2', width: 2500 }),
makeCell('20-25%', { bg: 'F2F2F2', width: 1500 }),
makeCell('Bradycardia, bronchospasm', { bg: 'F2F2F2', width: 1000 })
]}),
new TableRow({ children: [
makeCell('Alpha-2 Agonists', { bg: 'EAF4FB', bold: true, width: 2000 }),
makeCell('Brimonidine, Apraclonidine', { bg: 'EAF4FB', width: 2000 }),
makeCell('↓ Production, ↑ Uveoscleral outflow', { bg: 'EAF4FB', width: 2500 }),
makeCell('20-25%', { bg: 'EAF4FB', width: 1500 }),
makeCell('Allergy, dry mouth', { bg: 'EAF4FB', width: 1000 })
]}),
new TableRow({ children: [
makeCell('CAIs (Carbonic Anhydrase Inhibitors)', { bg: 'F2F2F2', bold: true, width: 2000 }),
makeCell('Dorzolamide, Brinzolamide (topical); Acetazolamide (oral)', { bg: 'F2F2F2', width: 2000 }),
makeCell('↓ Aqueous production (inhibit CA-II)', { bg: 'F2F2F2', width: 2500 }),
makeCell('15-20%', { bg: 'F2F2F2', width: 1500 }),
makeCell('Renal stones (oral); sulfa allergy CI', { bg: 'F2F2F2', width: 1000 })
]}),
new TableRow({ children: [
makeCell('Miotics (Cholinergics)', { bg: 'EAF4FB', bold: true, width: 2000 }),
makeCell('Pilocarpine', { bg: 'EAF4FB', width: 2000 }),
makeCell('↑ Trabecular outflow (ciliary muscle contraction)', { bg: 'EAF4FB', width: 2500 }),
makeCell('20-25%', { bg: 'EAF4FB', width: 1500 }),
makeCell('Miosis, browache, myopia', { bg: 'EAF4FB', width: 1000 })
]}),
]
}),
new Paragraph({ text: '', spacing: { after: 200 } }),
h2('Laser Treatment'),
bullet('SLT (Selective Laser Trabeculoplasty): FIRST-LINE in some guidelines; opens trabecular meshwork; 80% effective initially; can repeat'),
bullet('ALT (Argon Laser Trabeculoplasty): Older; burns TM cells; not repeatable'),
bullet('Laser Peripheral Iridotomy (LPI): Treatment of choice for PACG; creates alternative aqueous pathway'),
bullet('Cyclophotocoagulation: Destroys ciliary body; last resort for refractory glaucoma'),
h2('Surgical Treatment'),
bullet('Trabeculectomy: Gold standard; creates fistula for aqueous to drain under conjunctiva (bleb)'),
bullet('Trabeculectomy with Mitomycin C (MMC): Anti-fibrotic agent to improve bleb survival'),
bullet('Minimally Invasive Glaucoma Surgery (MIGS): iStent, Hydrus, OMNI; safer profile, less IOP reduction'),
bullet('Glaucoma Drainage Devices (GDD): Ahmed, Baerveldt, Molteno valves for complex cases'),
bullet('Phacoemulsification: Highly effective for PACG (deepens anterior chamber, opens angle)'),
];
// ─── SECTION 8: PHYSIOTHERAPY MANAGEMENT ─────────────────────────────────────
const section8 = [
h1('8. PHYSIOTHERAPY MANAGEMENT IN GLAUCOMA'),
body('Physiotherapy plays a vital supportive role in the rehabilitation of glaucoma patients. While PT cannot treat the disease itself, it addresses the functional impairments arising from visual field loss, balance problems, fall risk, and psychological impact.'),
new Paragraph({ text: '', spacing: { after: 100 } }),
h2('A. COMPREHENSIVE PHYSIOTHERAPY MANAGEMENT TABLE'),
new Paragraph({ text: '', spacing: { after: 120 } }),
// TABLE 1: PROBLEM-GOAL-INTERVENTION
new Table({
width: { size: 9000, type: WidthType.DXA },
rows: [
// Header
new TableRow({
children: [
new TableCell({ children: [new Paragraph({ children: [new TextRun({ text: 'PROBLEM / IMPAIRMENT', bold: true, size: 20, color: 'FFFFFF' })], indent: { left: 80 } })],
shading: { type: ShadingType.SOLID, color: 'C00000', fill: 'C00000' }, width: { size: 2000, type: WidthType.DXA }, tableHeader: true }),
new TableCell({ children: [new Paragraph({ children: [new TextRun({ text: 'PHYSIOTHERAPY GOALS', bold: true, size: 20, color: 'FFFFFF' })], indent: { left: 80 } })],
shading: { type: ShadingType.SOLID, color: 'C00000', fill: 'C00000' }, width: { size: 2500, type: WidthType.DXA }, tableHeader: true }),
new TableCell({ children: [new Paragraph({ children: [new TextRun({ text: 'INTERVENTIONS', bold: true, size: 20, color: 'FFFFFF' })], indent: { left: 80 } })],
shading: { type: ShadingType.SOLID, color: 'C00000', fill: 'C00000' }, width: { size: 4500, type: WidthType.DXA }, tableHeader: true }),
],
tableHeader: true
}),
// Row 1: Balance & Falls
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Impaired Balance & High Fall Risk', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Peripheral VF loss → misjudge depth/terrain)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Reduce fall risk by ≥50%\n2. Improve static & dynamic balance\n3. Improve postural sway control\n4. Increase confidence in mobility', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Static balance: Single-leg stance, tandem stance, foam pad standing', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Dynamic balance: Stepping over obstacles, tandem walking, perturbation training', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Vestibular-visual integration exercises', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Gaze stabilization exercises (VOR exercises)', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Otago Exercise Programme (evidence-based fall prevention)', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 2: Gait
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Altered Gait & Mobility', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Slow cautious gait, narrow base, step difficulties)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Normalize gait pattern\n2. Improve walking speed & confidence\n3. Safe community ambulation\n4. Stair negotiation safely', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Gait retraining: Treadmill with visual cues, metronome-paced walking', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Obstacle course training with varying heights and surfaces', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Head-scanning training: Active horizontal scanning to compensate for peripheral VF loss', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Stair training with tactile support, counting steps', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Assistive device fitting (cane/walker) if needed', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 3: ADL
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Functional ADL Limitations', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Reading 88%, Writing 72%, Mobility 67% affected)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Independence in ADLs\n2. Improve reading & writing ability\n3. Safe kitchen & home navigation\n4. Return to driving (if early stage)', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Eccentric fixation training (use preserved non-central vision)', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Reading aids: Electronic magnifiers, high-contrast text, typoscope', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Environmental modification: Adequate lighting, remove hazards, mark steps', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Home hazard assessment and modification', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Talking devices: Clocks, phones, calculators for independence', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 4: Muscle/Physical fitness
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Deconditioning & Reduced Physical Activity', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Fear of falling → activity avoidance)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Improve aerobic capacity\n2. Strengthen lower limbs\n3. Reduce IOP via exercise\n4. Prevent falls & fractures', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Aerobic exercise: Brisk walking, cycling 30 min/day × 5 days/week (moderate intensity lowers IOP by 2-3 mmHg)', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Lower limb strengthening: Seated leg press, step-ups, wall squats', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• AVOID: Head-down positions (yoga headstands), heavy Valsalva, inverted postures - increase IOP significantly', size: 20, bold: true })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Yoga: Modified versions permitted; avoid inversions', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 5: Visual scanning
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Visual Field Defect Compensation', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Peripheral VF loss → missing objects)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Develop compensatory scanning strategies\n2. Increase awareness of blind areas\n3. Safe road crossing & driving assessment\n4. Reduce missed objects/collisions', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Scanning training: Head-swing sweeps (active horizontal/vertical scanning)', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Eye sweep training: Systematic saccadic eye movements to map blind areas', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Prism lenses: Field expanders (minifiers/reverse telescopes) in static situations', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Slower approach speed when navigating new environments', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Orientation & Mobility (O&M) training: Systematic environmental scanning', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 6: Psychosocial
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Psychosocial Issues & Depression', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Fear, anxiety, loss of independence, depression)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Reduce fear of falling\n2. Improve self-efficacy\n3. Improve quality of life\n4. Maintain social participation', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Patient education: Disease natural history, medication adherence, lifestyle', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Group exercise classes: Social interaction + therapeutic exercise', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Relaxation techniques: Deep breathing, progressive muscle relaxation', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Refer for Charles Bonnet Syndrome counseling if visual hallucinations present', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Multidisciplinary referral: LVS (Low Vision Specialist), O&M therapist, occupational therapist', size: 20 })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'EAF4FB', fill: 'EAF4FB' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
// Row 7: Post-op
new TableRow({ children: [
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: 'Post-Surgical Rehabilitation (Post-Trabeculectomy / MIGS)', bold: true, size: 20 })], spacing: { before: 80, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '(Activity restrictions, bleb care, IOP monitoring)', size: 18, italics: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2000, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '1. Safe resumption of activity\n2. Avoid IOP spikes post-op\n3. Functional recovery\n4. Prevent complications', size: 20 })], spacing: { before: 80, after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 2500, type: WidthType.DXA } }),
new TableCell({ children: [
new Paragraph({ children: [new TextRun({ text: '• Phase 1 (0-2 weeks): Light ADLs only; avoid bending/straining; head elevation 30-45°', size: 20 })], spacing: { before: 60, after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Phase 2 (2-6 weeks): Gradual increase in walking; avoid contact sports; no swimming', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• Phase 3 (6+ weeks): Progressive return to full activity under ophthalmologist guidance', size: 20 })], spacing: { after: 40 }, indent: { left: 80 } }),
new Paragraph({ children: [new TextRun({ text: '• AVOID: Heavy lifting (Valsalva), head-down positions, eye rubbing, swimming (infection risk)', size: 20, bold: true })], spacing: { after: 80 }, indent: { left: 80 } }),
], shading: { type: ShadingType.SOLID, color: 'FFE7E7', fill: 'FFE7E7' }, width: { size: 4500, type: WidthType.DXA } }),
]}),
]
}),
new Paragraph({ text: '', spacing: { after: 200 } }),
h2('B. EXERCISE PRESCRIPTION - KEY POINTS'),
...asciiDiagram([
' BENEFICIAL EXERCISES: CONTRAINDICATED:',
' ┌─────────────────────────────┐ ┌──────────────────────────┐',
' │ ✓ Brisk walking │ │ ✗ Yoga headstands │',
' │ ✓ Cycling (stationary) │ │ ✗ Inverted postures │',
' │ ✓ Swimming (post-op: avoid) │ │ ✗ Heavy Valsalva/weight │',
' │ ✓ Tai Chi (balance) │ │ ✗ Prolonged bending │',
' │ ✓ Balance training │ │ ✗ High-resistance exercise│',
' │ ✓ Otago programme │ │ ✗ Playing wind instruments │',
' │ ✓ Aerobics 30min/day │ │ ✗ Tight neck clothing │',
' │ (lowers IOP 2-3 mmHg) │ │ (compresses jugular vein)│',
' └─────────────────────────────┘ └──────────────────────────┘'
], 'Exercise Prescription Summary'),
h2('C. LOW VISION REHABILITATION SERVICES'),
bullet('Near Magnification: Handheld/stand/electronic magnifiers (electronic = gold standard)'),
bullet('Field Enhancement: Minifiers, reverse telescopes, prisms for peripheral field loss'),
bullet('Glare Control: Polarizing lenses, anti-reflective coatings, absorptive tints'),
bullet('Contrast Enhancement: High-contrast materials, bold-line paper, good consistent lighting'),
bullet('Orientation & Mobility Training: Systematic scanning, white cane technique, guide techniques'),
bullet('ADL Aids: Talking watches/clocks/phones, large-print materials, tactile markers'),
bullet('Psychosocial Support: Peer groups, counseling, patient education'),
];
// ─── SECTION 9: MULTIDISCIPLINARY TEAM ─────────────────────────────────────
const section9 = [
h1('9. MULTIDISCIPLINARY TEAM (MDT)'),
...asciiDiagram([
' ┌─────────────┐',
' │ PATIENT │',
' └──────┬──────┘',
' │',
' ┌─────────────────┼─────────────────┐',
' ▼ ▼ ▼',
' ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐',
' │ Ophthalmol. │ │ Physio- │ │ Low Vision │',
' │ (IOP, drugs,│ │ therapist │ │ Specialist │',
' │ surgery) │ │ (balance, │ │ (magnifiers, │',
' └─────────────┘ │ gait, ADL) │ │ field aids) │',
' └─────────────┘ └─────────────────┘',
' ▼ ▼',
' ┌─────────────┐ ┌─────────────────┐',
' │ Occupational│ │ O&M Specialist │',
' │ Therapist │ │ (orientation & │',
' │ (home mods, │ │ mobility) │',
' │ work) │ └─────────────────┘',
' └─────────────┘'
], 'MDT Team in Glaucoma Rehabilitation'),
];
// ─── SECTION 10: EXAM MNEMONICS ─────────────────────────────────────────────
const section10 = [
h1('10. EXAM MNEMONICS & QUICK RECALL'),
...asciiDiagram([
' GLAUCOMA (mnemonic):',
' G - Ganglion cell loss (hallmark)',
' L - Loss of peripheral vision first',
' A - Aqueous humor outflow obstruction',
' U - Usual IOP >21 mmHg',
' C - Cup/Disc ratio >0.7 suspicious',
' O - Open vs Closed angle types',
' M - Medical (drops) → Laser → Surgery',
' A - Asymptomatic until late (POAG)',
], ''),
...asciiDiagram([
' TREATMENT LADDER:',
' 1st: Topical drops (Prostaglandin analogues = FIRST LINE)',
' 2nd: Add beta-blocker or CAI',
' 3rd: SLT (Selective Laser Trabeculoplasty)',
' 4th: Trabeculectomy ± MMC',
' 5th: GDD (Glaucoma Drainage Device)',
' 6th: Cyclophotocoagulation (last resort)',
], 'Treatment Ladder'),
...asciiDiagram([
' RISK FACTORS (mnemonic - "OLD MAP"):',
' O - Old age (>60 years)',
' L - Large C/D ratio (>0.7) / Family history',
' D - Dark skin (Afro-Caribbean - 4x risk)',
' M - Myopia (POAG), hypermetropia (PACG)',
' A - Asian / Female (PACG)',
' P - Previous trauma / Pseudoexfoliation',
], 'Risk Factors Mnemonic'),
importantBox('KEY EXAM FACTS TO MEMORISE:\n• POAG: Most common, bilateral, painless, open angle, peripheral field loss first\n• PACG Acute: EMERGENCY - red eye, severe pain, N/V, halos, high IOP (>40 mmHg)\n• NTG: Normal IOP (<21 mmHg) but optic nerve damage - vascular cause\n• Prostaglandins = 1st line medical Rx\n• Trabeculectomy = gold standard surgical Rx\n• VF defect detected ONLY after 40% RGC loss\n• ISNT rule: Inferior > Superior > Nasal > Temporal (NRR width)'),
];
// ─── ASSEMBLE DOCUMENT ─────────────────────────────────────────────────────
const doc = new Document({
styles: {
default: {
document: {
run: { font: 'Calibri', size: 22 }
}
}
},
sections: [{
children: [
...titlePage,
...section1,
new Paragraph({ children: [new PageBreak()] }),
...section2,
new Paragraph({ children: [new PageBreak()] }),
...section3,
...section4,
new Paragraph({ children: [new PageBreak()] }),
...section5,
new Paragraph({ children: [new PageBreak()] }),
...section6,
...section7,
new Paragraph({ children: [new PageBreak()] }),
...section8,
new Paragraph({ children: [new PageBreak()] }),
...section9,
...section10,
]
}]
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync('/home/daytona/workspace/glaucoma-notes/Glaucoma_Comprehensive_Notes.docx', buffer);
console.log('SUCCESS: Document created!');
}).catch(err => {
console.error('ERROR:', err.message);
});
cd /home/daytona/workspace/glaucoma-notes && node glaucoma_notes.js 2>&1
python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/works…
ls -lh /home/daytona/workspace/glaucoma-notes/ && python3 -c "from zipfile impor…
Glaucoma Comprehensive Notes
Word Document · DOCX
GLAUCOMA
├── PRIMARY
│ ├── POAG (80%) - open angle, painless, bilateral
│ └── PACG - narrow/closed angle, acute emergency
└── SECONDARY
├── Steroid-induced
├── Pigmentary / Pseudoexfoliation
├── Neovascular (diabetes, CRVO)
├── Traumatic
└── Uveitic
Ciliary Body (production)
↓
Posterior Chamber
↓ (through pupil)
Anterior Chamber
↓
┌──────────────────────┬──────────────────┐
Trabecular Meshwork Uveoscleral pathway
(80-90%) (10-20%)
↓
Schlemm's Canal → Episcleral Veins → Systemic Circulation
NRR Width: Inferior > Superior > Nasal > Temporal
C/D Ratio: Normal <0.5 | Suspicious >0.6 | Significant >0.7
Asymmetry ≥0.2 between eyes = suspicious
Elevated IOP / Vascular Insufficiency
↓
Mechanical stress on Lamina Cribrosa
↓
Axonal compression of RGC axons
↓
Interrupted axoplasmic flow
↓
RGC Apoptosis
↓
Optic Nerve Atrophy + Visual Field Loss
| Stage | Defect |
|---|---|
| 1 | Isolated paracentral scotoma |
| 2 | Arcuate (Bjerrum) scotoma |
| 3 | Nasal step |
| 4 | Double arcuate (ring scotoma) |
| 5 | Tunnel vision |
| 6 | Total blindness |
| Drug Class | Example | Mechanism | IOP Drop |
|---|---|---|---|
| Prostaglandin (1st line) | Latanoprost | ↑ Uveoscleral outflow | 25-35% |
| Beta-blocker | Timolol | ↓ Aqueous production | 20-25% |
| Alpha-2 agonist | Brimonidine | ↓ Production + ↑ Outflow | 20-25% |
| CAI | Dorzolamide | ↓ Aqueous production | 15-20% |
| Miotics | Pilocarpine | ↑ Trabecular outflow | 20-25% |
| Problem | Goals | Interventions |
|---|---|---|
| Impaired Balance / Falls | Reduce fall risk ≥50%, improve static/dynamic balance | Single-leg stance, tandem walking, Otago programme, VOR exercises |
| Altered Gait | Normalize gait, safe community ambulation | Gait retraining, obstacle courses, head-scanning training |
| ADL Limitations (reading 88%, mobility 67%) | Independence in ADLs, reading, home navigation | Eccentric fixation training, electronic magnifiers, home modification |
| Deconditioning | Improve aerobic capacity, lower IOP via exercise | Walking/cycling 30 min/day x5; AVOID headstands, heavy Valsalva |
| Visual Field Deficit | Compensatory scanning strategies | Head-swing sweeps, saccadic training, prism lenses, O&M training |
| Psychosocial / Depression | Self-efficacy, QoL, social participation | Education, group exercise, relaxation, CBS counseling, MDT referral |
| Post-Surgical | Safe activity resumption, IOP protection | Phase 1: light ADLs; Phase 2: gradual walking; AVOID heavy lifting, inversion |
not satisfied atleat compete details from pdf
cd /home/daytona/workspace/attachments/1f65742d-fb7e-41ae-a208-cfd5382f96c2 && p…