Make a pdf on the topic glaucoma surgeries covering all the steps , indications and contraindications, latest and recent advances
Make a pdf on the topic glaucoma surgeries covering all the steps , indications and contraindications, latest and recent advances
glaucoma surgery trabeculectomy MIGS outcomes
glaucoma surgery recent advances 2024 2025 MIGS minimally invasive
PMID: 38332948
PMID: 39089358
mkdir -p /tmp/workspace/glaucoma-surgery && ls /tmp/workspace/
~/glaucoma-surgery/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfgen import canvas
from reportlab.platypus.flowables import Flowable
import os
OUTPUT_PATH = "/tmp/workspace/glaucoma-surgery/Glaucoma_Surgeries.pdf"
# ── Colours ─────────────────────────────────────────────────────────────
DARK_BLUE = colors.HexColor("#0D3B6E")
MED_BLUE = colors.HexColor("#1565A7")
LIGHT_BLUE = colors.HexColor("#D6E8FA")
ACCENT = colors.HexColor("#00897B")
GOLD = colors.HexColor("#E8A020")
GREY_BG = colors.HexColor("#F4F6F9")
GREY_TEXT = colors.HexColor("#444444")
WHITE = colors.white
# ── Styles ───────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def make_style(name, parent="Normal", **kw):
s = ParagraphStyle(name, parent=styles[parent], **kw)
return s
cover_title = make_style("CoverTitle",
fontSize=34, textColor=WHITE, alignment=TA_CENTER,
fontName="Helvetica-Bold", leading=42, spaceAfter=14)
cover_sub = make_style("CoverSub",
fontSize=16, textColor=LIGHT_BLUE, alignment=TA_CENTER,
fontName="Helvetica", leading=22, spaceAfter=8)
cover_date = make_style("CoverDate",
fontSize=12, textColor=WHITE, alignment=TA_CENTER,
fontName="Helvetica-Oblique", spaceAfter=6)
h1 = make_style("H1",
fontSize=20, textColor=WHITE, fontName="Helvetica-Bold",
leading=26, spaceBefore=18, spaceAfter=10, alignment=TA_CENTER)
h2 = make_style("H2",
fontSize=14, textColor=MED_BLUE, fontName="Helvetica-Bold",
leading=20, spaceBefore=14, spaceAfter=6, borderPadding=(0,0,2,0))
h3 = make_style("H3",
fontSize=12, textColor=ACCENT, fontName="Helvetica-Bold",
leading=16, spaceBefore=10, spaceAfter=4)
body = make_style("Body",
fontSize=10.5, textColor=GREY_TEXT, fontName="Helvetica",
leading=16, spaceAfter=5, alignment=TA_JUSTIFY)
bullet = make_style("Bullet",
fontSize=10.5, textColor=GREY_TEXT, fontName="Helvetica",
leading=15, spaceAfter=3, leftIndent=14, firstLineIndent=-10,
alignment=TA_JUSTIFY)
caption = make_style("Caption",
fontSize=8.5, textColor=colors.grey, fontName="Helvetica-Oblique",
alignment=TA_CENTER, spaceAfter=4)
note_style = make_style("Note",
fontSize=9.5, textColor=DARK_BLUE, fontName="Helvetica-Oblique",
leftIndent=10, alignment=TA_JUSTIFY, spaceAfter=4)
evidence_style = make_style("Evidence",
fontSize=9, textColor=colors.HexColor("#555555"), fontName="Helvetica",
leading=13, leftIndent=12, spaceAfter=3, alignment=TA_JUSTIFY)
# ── Helper: section header band ─────────────────────────────────────────
class BandedHeader(Flowable):
def __init__(self, text, width, colour=DARK_BLUE):
Flowable.__init__(self)
self.text = text
self._w = width
self.colour = colour
self.height = 36
def draw(self):
c = self.canv
c.setFillColor(self.colour)
c.roundRect(0, 0, self._w, self.height, 6, fill=1, stroke=0)
c.setFillColor(WHITE)
c.setFont("Helvetica-Bold", 14)
c.drawString(12, 11, self.text)
def wrap(self, *args):
return self._w, self.height + 6
def banded(text, w=17*cm, colour=DARK_BLUE):
return BandedHeader(text, w, colour)
def bp(text):
return Paragraph(f"\u2022\u00a0 {text}", bullet)
def para(text):
return Paragraph(text, body)
def h2p(text):
return Paragraph(text, h2)
def h3p(text):
return Paragraph(text, h3)
def sp(n=6):
return Spacer(1, n)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#CCCCCC"), spaceAfter=6)
def note(text):
return Paragraph(f"<i>{text}</i>", note_style)
def evidence(pmid, text):
return Paragraph(f"[PMID {pmid}] {text}", evidence_style)
def box_table(rows, col_widths, header_colour=DARK_BLUE):
"""Simple table with coloured header row."""
t = Table(rows, colWidths=col_widths, repeatRows=1)
style = TableStyle([
("BACKGROUND", (0,0), (-1,0), header_colour),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 10),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 9.5),
("BACKGROUND", (0,1), (-1,-1), GREY_BG),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#BBBBBB")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING",(0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
("WORDWRAP", (0,0), (-1,-1), "CJK"),
])
t.setStyle(style)
return t
# ── Page numbering ───────────────────────────────────────────────────────
def footer_canvas(canvas_obj, doc):
canvas_obj.saveState()
W, H = A4
canvas_obj.setFont("Helvetica", 8)
canvas_obj.setFillColor(colors.HexColor("#888888"))
canvas_obj.drawString(2*cm, 1.1*cm, "Glaucoma Surgeries – Comprehensive Clinical Reference")
canvas_obj.drawRightString(W - 2*cm, 1.1*cm, f"Page {doc.page}")
canvas_obj.setStrokeColor(colors.HexColor("#CCCCCC"))
canvas_obj.line(2*cm, 1.4*cm, W - 2*cm, 1.4*cm)
canvas_obj.restoreState()
# ── Document build ───────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT_PATH,
pagesize=A4,
topMargin=2*cm, bottomMargin=2.2*cm,
leftMargin=2*cm, rightMargin=2*cm,
title="Glaucoma Surgeries – Comprehensive Clinical Reference",
author="Orris Medical AI",
)
PW = A4[0] - 4*cm # usable width
story = []
# ════════════════════════════════════════════════════════════
# COVER PAGE
# ════════════════════════════════════════════════════════════
class CoverPage(Flowable):
def draw(self):
c = self.canv
W, H = A4
# background gradient simulation – two rects
c.setFillColor(DARK_BLUE)
c.rect(0, 0, W, H, fill=1, stroke=0)
c.setFillColor(MED_BLUE)
c.rect(0, H*0.4, W, H*0.6, fill=1, stroke=0)
# decorative circle
c.setFillColor(colors.HexColor("#0A2D55"))
c.circle(W*0.82, H*0.72, 120, fill=1, stroke=0)
c.setFillColor(colors.HexColor("#0B3460"))
c.circle(W*0.1, H*0.15, 80, fill=1, stroke=0)
# title
c.setFillColor(WHITE)
c.setFont("Helvetica-Bold", 38)
c.drawCentredString(W/2, H*0.62, "GLAUCOMA SURGERIES")
c.setFont("Helvetica-Bold", 22)
c.setFillColor(LIGHT_BLUE)
c.drawCentredString(W/2, H*0.55, "A Comprehensive Clinical Reference")
# divider line
c.setStrokeColor(GOLD)
c.setLineWidth(3)
c.line(W*0.2, H*0.52, W*0.8, H*0.52)
# subtitle items
c.setFillColor(WHITE)
c.setFont("Helvetica", 13)
items = [
"Indications & Contraindications",
"Step-by-Step Surgical Technique",
"Complications & Their Management",
"Recent Advances & MIGS 2024–2026",
]
y = H*0.47
for item in items:
c.drawCentredString(W/2, y, f"• {item}")
y -= 22
# date
c.setFont("Helvetica-Oblique", 11)
c.setFillColor(LIGHT_BLUE)
c.drawCentredString(W/2, H*0.28, "Based on Kanski's Clinical Ophthalmology 10th Ed. + PubMed Evidence 2024–2026")
c.drawCentredString(W/2, H*0.25, "Compiled: July 2026")
# bottom bar
c.setFillColor(GOLD)
c.rect(0, 0, W, 0.7*cm, fill=1, stroke=0)
def wrap(self, *args):
return A4
story.append(CoverPage())
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# TABLE OF CONTENTS (static)
# ════════════════════════════════════════════════════════════
story.append(banded("TABLE OF CONTENTS", PW))
story.append(sp(10))
toc_data = [
("1.", "Introduction & Overview of Glaucoma Surgery", "3"),
("2.", "Trabeculectomy (Standard Filtration Surgery)", "4"),
("3.", "Antimetabolites in Filtration Surgery", "7"),
("4.", "Ex-PRESS Mini-Shunt", "8"),
("5.", "Non-Penetrating Glaucoma Surgery", "9"),
("6.", "Glaucoma Drainage Devices (Tube Shunts)", "10"),
("7.", "Cyclodestructive Procedures", "13"),
("8.", "Minimally Invasive Glaucoma Surgery (MIGS)", "14"),
("9.", "Goniotomy & Trabeculotomy (Congenital Glaucoma)", "18"),
("10.", "Recent Advances & Emerging Therapies (2024–2026)", "19"),
("11.", "Comparative Summary Table", "21"),
("12.", "References", "22"),
]
for num, title, page in toc_data:
row = Table(
[[Paragraph(num, body), Paragraph(title, body), Paragraph(page, body)]],
colWidths=[1*cm, 13.5*cm, 2.5*cm]
)
row.setStyle(TableStyle([
("LEFTPADDING", (0,0), (-1,-1), 2),
("RIGHTPADDING", (0,0), (-1,-1), 2),
("BOTTOMPADDING",(0,0), (-1,-1), 3),
("TOPPADDING", (0,0), (-1,-1), 3),
]))
story.append(row)
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 1 – INTRODUCTION
# ════════════════════════════════════════════════════════════
story.append(banded("1. Introduction & Overview of Glaucoma Surgery", PW))
story.append(sp(8))
story.append(para(
"Glaucoma is a leading cause of irreversible blindness worldwide, characterised by progressive optic neuropathy "
"with characteristic visual field loss. The primary modifiable risk factor is elevated intraocular pressure (IOP). "
"When medical and laser therapies fail to achieve adequate IOP control, or when the target IOP requires levels "
"unattainable with medications alone, surgical intervention is indicated."
))
story.append(para(
"The goal of glaucoma surgery is to lower IOP sufficiently to halt or retard progressive optic nerve damage. "
"Surgery may work by improving aqueous outflow (filtration procedures, drainage devices, angle-based surgery) "
"or by reducing aqueous production (cyclodestructive procedures). The choice of procedure depends on the type "
"and severity of glaucoma, prior treatments, patient factors, and surgeon expertise."
))
story.append(sp(6))
story.append(h2p("Classification of Glaucoma Surgical Procedures"))
class_data = [
[Paragraph("<b>Category</b>", body), Paragraph("<b>Examples</b>", body), Paragraph("<b>Mechanism</b>", body)],
[Paragraph("Filtration Surgery", body), Paragraph("Trabeculectomy, Ex-PRESS shunt", body), Paragraph("Subconjunctival aqueous drainage", body)],
[Paragraph("Non-Penetrating Surgery", body), Paragraph("Deep sclerectomy, Viscocanalostomy", body), Paragraph("Trabecular-Descemet filtration (no AC entry)", body)],
[Paragraph("Glaucoma Drainage Devices", body), Paragraph("Ahmed, Baerveldt, PAUL", body), Paragraph("Long-tube episcleral reservoir", body)],
[Paragraph("MIGS", body), Paragraph("iStent, Hydrus, XEN, GATT, Trabectome", body), Paragraph("Trabecular bypass, canaloplasty, subconjunctival", body)],
[Paragraph("Cyclodestructive", body), Paragraph("Diode laser cyclophotocoagulation, ECP", body), Paragraph("Reduce aqueous production by ciliary body ablation", body)],
[Paragraph("Congenital Surgery", body), Paragraph("Goniotomy, Trabeculotomy", body), Paragraph("Opening Schlemm's canal ab-interno / ab-externo", body)],
]
story.append(box_table(class_data, [3.5*cm, 5.5*cm, 8*cm]))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 2 – TRABECULECTOMY
# ════════════════════════════════════════════════════════════
story.append(banded("2. Trabeculectomy", PW))
story.append(sp(8))
story.append(para(
"Trabeculectomy remains the gold standard for glaucoma surgery. It creates a guarded fistula – protected by a "
"lamellar scleral trapdoor – through which aqueous flows from the anterior chamber into the subconjunctival "
"space, forming a filtering bleb. The superficial scleral flap acts as a resistance mechanism preventing "
"excessive drainage and hypotony."
))
story.append(sp(6))
story.append(h2p("2.1 Indications"))
indications_trab = [
"Failure of maximum tolerated medical therapy to achieve adequate IOP control",
"Progressive optic nerve/visual field deterioration despite apparently adequate IOP on medication",
"Advanced glaucoma requiring a very low target IOP (e.g. <12 mmHg) – early surgery may be superior in young patients",
"Patient preference to be free of lifelong topical medications",
"Poor compliance with or intolerance to topical medications",
"Angle closure with persistent IOP elevation after iridotomy/lens extraction",
"Secondary glaucomas: exfoliation, pigmentary, inflammatory (with caution)",
]
for i in indications_trab:
story.append(bp(i))
story.append(sp(6))
story.append(h2p("2.2 Contraindications"))
contraindications_trab = [
("Absolute", [
"Active conjunctival/corneal infection",
"Severe uncontrolled uveitis (active inflammation)",
"Neovascular glaucoma without prior panretinal photocoagulation",
]),
("Relative", [
"Extensive conjunctival scarring (previous surgery, burns, ocular cicatricial pemphigoid, Stevens-Johnson) – consider tube shunt instead",
"Very young children – goniotomy / trabeculotomy preferred",
"Advanced lens pathology simultaneously requiring cataract surgery (combined approach or staged)",
"Primary angle-closure glaucoma without prior lens extraction (risk of malignant glaucoma; cataract extraction ± trabeculectomy preferred)",
"Patient unable to attend follow-up for bleb management",
]),
]
for label, items in contraindications_trab:
story.append(h3p(label))
for item in items:
story.append(bp(item))
story.append(sp(6))
story.append(h2p("2.3 Pre-operative Preparation"))
preop = [
"Constrict the pupil with pilocarpine 2% immediately preoperatively",
"Full ocular examination: IOP, gonioscopy, optic disc assessment, visual fields",
"Cease prostaglandin analogues 2–4 weeks before (controversial but may reduce inflammation)",
"Control IOP medically to lowest possible level before surgery",
"Informed consent: explain bleb management, need for follow-up, risk of failure, infection",
]
for p in preop:
story.append(bp(p))
story.append(sp(6))
story.append(h2p("2.4 Step-by-Step Surgical Technique"))
story.append(note(
"The following describes the standard limbal-based technique. Fornix-based conjunctival flaps are equally common. "
"Procedures are performed under peribulbar or sub-Tenon anaesthesia."
))
story.append(sp(4))
steps = [
("Step 1 – Bridle Suture",
"A 4-0 silk bridle suture is placed under the superior rectus muscle or in the superior cornea to rotate the globe inferiorly and expose the superior limbus."),
("Step 2 – Conjunctival Flap",
"A limbal-based (or fornix-based) conjunctival and Tenon's capsule flap is fashioned superiorly, typically at 12 o'clock to reduce bleb dysaesthesia. Haemostasis achieved with cautery."),
("Step 3 – Episcleral Preparation",
"Episcleral tissue is cleared. Major blood vessels are cauterized to prevent intraoperative haemorrhage."),
("Step 4 – Antimetabolite Application (if used)",
"Mitomycin C (0.2–0.4 mg/ml, 2–3 minutes) or 5-FU (50 mg/ml, 5 minutes) soaked sponges placed under the Tenon flap before sclerotomy creation. Sponges removed; site copiously irrigated with BSS."),
("Step 5 – Scleral Flap Creation",
"Incisions are made through approximately 50% of scleral thickness to create a lamellar 'trapdoor' scleral flap. Flap dimensions: rectangular (3×3–4 mm), trapezoidal, or triangular. The flap is dissected forward into clear cornea."),
("Step 6 – Paracentesis",
"A temporal clear corneal paracentesis is made to allow anterior chamber (AC) access for anterior chamber deepening and pressure testing intraoperatively."),
("Step 7 – Sclerostomy (Internal Opening)",
"The AC is entered along most of the width of the trapdoor base. A block of deep scleral tissue is excised using a Kelly punch (or Vannas scissors) to create the sclerostomy – the internal opening through which aqueous will drain."),
("Step 8 – Peripheral Iridectomy",
"A peripheral iridectomy is performed to prevent iris plugging of the sclerostomy. This is sometimes omitted in pseudophakic eyes but carries a small risk of iris prolapse."),
("Step 9 – Scleral Flap Closure",
"The scleral flap is sutured at its posterior corners (10-0 nylon). Options: lightly opposed sutures (for immediate flow), tightly closed releasable or laser-lysable sutures (to titrate postoperative drainage). Additional radial edge sutures reduce lateral leaks."),
("Step 10 – Pressure Testing",
"Balanced salt solution (BSS) injected through the paracentesis to deepen the AC and test fistula patency. The bleb should elevate gently."),
("Step 11 – Conjunctival Closure",
"The conjunctiva/Tenon capsule flap is sutured watertight (10-0 nylon or 8-0 Vicryl). The Seidel test confirms no leak."),
("Step 12 – Postoperative",
"Atropine 1% instilled. Subconjunctival steroid and antibiotic injection. Topical steroid 4×/day for 2 weeks, then steroid alone for 8–12 weeks. Frequent follow-up for bleb management."),
]
for title_step, desc in steps:
story.append(KeepTogether([
h3p(title_step),
para(desc),
sp(3),
]))
story.append(sp(6))
story.append(h2p("2.5 Postoperative Complications"))
comps = [
("Shallow/Flat Anterior Chamber",
"Due to pupillary block (non-patent PI), overfiltration (excess flow through scleral flap or bleb leak), or malignant glaucoma. "
"Pupillary block: Nd:YAG laser to iridectomy site or new laser iridotomy. "
"Overfiltration: atropine, compression suture, autologous blood injection. "
"Malignant: cycloplegics, IOP lowering, vitreous aspiration if needed."),
("Hypotony Maculopathy",
"IOP <6 mmHg causing chorioretinal folds, reduced visual acuity. Management: autologous blood injection to bleb, compression sutures, surgical revision."),
("Bleb Failure / Elevated IOP",
"Extrascleral fibrosis (most common), scleral scarring, intraocular blockage. "
"Management: digital massage, laser suture lysis/release of releasable sutures (within 2–4 weeks), needling with 5-FU injection (later), re-operate."),
("Bleb-Associated Infection / Endophthalmitis",
"Incidence ~0.2–0.5% per year (higher with thin avascular blebs and MMC). Presents with pain, red eye, pus in bleb/AC. "
"Treatment: urgent vitreous tap + intravitreal antibiotics, topical + systemic antibiotics, possible vitrectomy."),
("Late Bleb Leakage",
"Seidel positive thin-walled bleb, often after MMC. Management: bandage contact lens, autologous serum, surgical repair."),
("Cataract Formation",
"Progressive lens opacity after any intraocular surgery. Phaco-trabeculectomy can be staged or combined."),
("Choroidal Detachment",
"From hypotony; most resolve spontaneously. Surgical drainage if kissing/flat AC."),
("Sympathetic Ophthalmia",
"Rare; bilateral granulomatous uveitis after penetrating surgery – immunosuppression required."),
]
comp_rows = [[Paragraph("<b>Complication</b>", body), Paragraph("<b>Description & Management</b>", body)]]
for comp, desc in comps:
comp_rows.append([Paragraph(comp, body), Paragraph(desc, body)])
story.append(box_table(comp_rows, [4.5*cm, 12.5*cm]))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 3 – ANTIMETABOLITES
# ════════════════════════════════════════════════════════════
story.append(banded("3. Antimetabolites in Filtration Surgery", PW))
story.append(sp(8))
story.append(para(
"Adjunctive antimetabolites inhibit the fibroblast proliferation that drives bleb failure. They are used to improve "
"the long-term success of trabeculectomy. Two agents are available: Mitomycin C (MMC) and 5-Fluorouracil (5-FU). "
"Their use is balanced against increased risks of bleb-related complications."
))
story.append(sp(4))
story.append(h2p("3.1 Indications for Antimetabolites"))
story.append(para("Risk factors for surgical failure mandate their use:"))
am_ind = [
"Previous failed trabeculectomy or MIGS surgery",
"Previous conjunctival or intraocular surgery (e.g. cataract extraction)",
"Secondary glaucoma (neovascular, inflammatory, post-traumatic)",
"Demographic risk: patients of Black African descent, age < 65 years",
"Chronic topical medications use > 3 years (especially sympathomimetics – causes conjunctival scarring)",
"Uveitic glaucoma",
"Glaucoma associated with aniridia, Sturge-Weber syndrome",
]
for a in am_ind:
story.append(bp(a))
story.append(sp(6))
story.append(h2p("3.2 Mitomycin C (MMC)"))
story.append(para(
"MMC is an alkylating agent that inhibits DNA synthesis and cross-links DNA, producing more potent and durable "
"anti-fibrotic effects than 5-FU. Standard concentration: 0.2–0.4 mg/ml for 2–3 minutes, applied on "
"cellulose sponges under the dissected Tenon's flap before sclerotomy creation. The area is copiously irrigated "
"with BSS after sponge removal. Postoperatively thin avascular blebs form, associated with a higher risk of late "
"bleb leakage and infection."
))
story.append(h2p("3.3 5-Fluorouracil (5-FU)"))
story.append(para(
"5-FU retards fibroblast proliferation by blocking DNA synthesis. Less potent than MMC. "
"Intraoperative: 50 mg/ml sponges for 5 minutes. Postoperative subconjunctival injections (5 mg in 0.1 ml, "
"up to 5 injections over 2 weeks) can supplement the effect. Complications include corneal epithelial defects "
"and punctate keratitis."
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 4 – EX-PRESS MINI-SHUNT
# ════════════════════════════════════════════════════════════
story.append(banded("4. Ex-PRESS Mini-Shunt", PW))
story.append(sp(8))
story.append(para(
"The Ex-PRESS mini-shunt is a valveless, stainless steel (titanium alloy, MRI-compatible) micro-device inserted "
"under a scleral flap during a modified trabeculectomy. It standardises the drainage aperture, reducing "
"variability compared to Kelly punch excision."
))
story.append(h2p("Technique"))
express_steps = [
"Conjunctival flap and scleral flap fashioned as for standard trabeculectomy",
"A 27-gauge needle is used to enter the anterior chamber (instead of a Kelly punch)",
"The Ex-PRESS shunt is inserted through the needle track into the AC",
"Peripheral iridectomy is NOT required",
"Scleral flap sutured over the device; conjunctiva closed watertight",
]
for s in express_steps:
story.append(bp(s))
story.append(h2p("Advantages"))
express_adv = [
"Lower rate of hypotony and hyphaema compared to standard trabeculectomy",
"Equivalent IOP control",
"Reproducible drainage due to standardised lumen size",
"Avoids traumatic iridectomy",
]
for a in express_adv:
story.append(bp(a))
story.append(h2p("Limitation"))
story.append(para(
"Not suitable for primary angle-closure glaucoma without prior or simultaneous cataract surgery."
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 5 – NON-PENETRATING SURGERY
# ════════════════════════════════════════════════════════════
story.append(banded("5. Non-Penetrating Glaucoma Surgery", PW))
story.append(sp(8))
story.append(para(
"In non-penetrating filtration surgery the anterior chamber is not entered, preserving the trabecular-Descemet "
"membrane as a permeable barrier through which aqueous diffuses. This reduces the risk of postoperative "
"overfiltration and hypotony while achieving IOP reduction. It is technically more demanding than trabeculectomy."
))
story.append(h2p("5.1 Indications"))
story.append(bp("Primary open-angle glaucoma (POAG) – main indication"))
story.append(bp("Other open-angle glaucomas amenable to ab-externo drainage"))
story.append(bp("When target IOP is not in the very low teens (IOP >14–16 mmHg acceptable)"))
story.append(bp("Preferred over trabeculectomy when advanced cupping risks 'snuffing out' central vision with hypotony"))
story.append(h2p("5.2 Contraindications"))
story.append(bp("Angle-closure glaucoma – non-penetrating approach ineffective"))
story.append(bp("Secondary glaucomas with significant trabecular disease (neovascular, inflammatory)"))
story.append(bp("Requirement for very low target IOP (<12 mmHg) – trabeculectomy preferred"))
story.append(h2p("5.3 Procedures"))
story.append(h3p("Deep Sclerectomy"))
story.append(para(
"Two concentric lamellar scleral flaps are fashioned. The deep flap is excised, leaving a thin Descemet window "
"through which aqueous diffuses from the AC subconjunctivally and along suprachoroidal routes, forming a shallow "
"diffuse bleb. Results can be enhanced with a collagen implant at the surgical site and postoperative Nd:YAG "
"goniopuncture to the exposed meshwork."
))
story.append(h3p("Viscocanalostomy"))
story.append(para(
"A filtering window is created with identification and dilation of Schlemm's canal using high-density viscoelastic. "
"The superficial scleral flap is sutured tightly to minimise bleb formation. Aqueous routes include "
"intrascleral lake, micro-ruptures in the juxtacanalicular meshwork, and episcleral collector channels. "
"IOP reduction is generally less than trabeculectomy."
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 6 – DRAINAGE DEVICES (TUBE SHUNTS)
# ════════════════════════════════════════════════════════════
story.append(banded("6. Glaucoma Drainage Devices (Tube Shunts)", PW))
story.append(sp(8))
story.append(para(
"Glaucoma drainage devices (GDDs) create a communication between the anterior chamber and the sub-Tenon space "
"via a silicon tube attached to a posteriorly placed episcleral plate/reservoir. Aqueous drains passively "
"along a pressure gradient, limited by the fibrous capsule that forms around the plate over several weeks. "
"The landmark Tube Versus Trabeculectomy (TVT) Study showed 5-year outcomes similar to MMC-enhanced "
"trabeculectomy but with higher postoperative medication use."
))
story.append(sp(6))
story.append(h2p("6.1 Types of Devices"))
devices = [
("Ahmed Glaucoma Valve (AGV)", "Valved (polypropylene or silicone plate, 184 mm²). The valve prevents hypotony in early postoperative phase. Provides less IOP reduction at 5 years than Baerveldt (ABC Study: 14.7 vs 12.7 mmHg). Higher rate of bleb encapsulation than non-valved devices."),
("Baerveldt Implant", "Non-valved silicone tube with large plate (250 or 350 mm²). Tube ligated intraoperatively (releasable stitch or absorbable ligature) to prevent drainage during early fibrous capsule formation. Lower long-term IOP vs Ahmed."),
("Molteno Implant", "First commercially available GDD. Single- or double-plate polypropylene. Historical gold standard; largely superseded by Ahmed/Baerveldt."),
("PAUL Glaucoma Implant", "Newest valveless GDD. Silicone tube with smaller lumen diameter. Plate area 344 mm² (longer, narrower than Baerveldt). Not placed under rectus muscles – lower risk of diplopia. Promising early results."),
]
dev_rows = [[Paragraph("<b>Device</b>", body), Paragraph("<b>Description & Key Features</b>", body)]]
for dev, desc in devices:
dev_rows.append([Paragraph(dev, body), Paragraph(desc, body)])
story.append(box_table(dev_rows, [4.5*cm, 12.5*cm]))
story.append(sp(8))
story.append(h2p("6.2 Indications for GDD (Over Trabeculectomy)"))
gdd_ind = [
"Severe conjunctival scarring precluding safe trabeculectomy (chemical burns, OCP, prior multiple surgeries)",
"Failed trabeculectomy with antimetabolites – prior bleb failure",
"Secondary glaucomas with poor trabeculectomy success rate: neovascular glaucoma (after PRP), ICE syndrome, traumatic anterior segment disruption, aniridia",
"Uveitic glaucoma refractory to trabeculectomy",
"Aphakic or pseudophakic glaucoma",
"Congenital glaucoma after failed conventional surgery (goniotomy/trabeculotomy)",
"Penetrating keratoplasty with glaucoma",
]
for g in gdd_ind:
story.append(bp(g))
story.append(sp(6))
story.append(h2p("6.3 Contraindications"))
story.append(bp("Adequate IOP control achievable with medical/laser therapy"))
story.append(bp("Active neovascular glaucoma without prior panretinal photocoagulation (PRP first)"))
story.append(bp("Insufficient space for plate placement (rare)"))
story.append(sp(6))
story.append(h2p("6.4 Step-by-Step Technique (General)"))
gdd_steps = [
("Step 1 – Anaesthesia", "Peribulbar or sub-Tenon's block. General anaesthesia in children."),
("Step 2 – Conjunctival Peritomy", "Conjunctival incision in the chosen quadrant (usually superotemporal for Ahmed/Baerveldt, superonasal avoided for PAUL). Relaxing incisions if needed."),
("Step 3 – Plate Positioning", "The episcleral plate is sutured to the sclera 8–10 mm posterior to the limbus using 9-0 or 10-0 nylon non-absorbable sutures. Plate secured with 2–4 passes through plate eyelets."),
("Step 4 – Tube Trimming", "The silicone tube is trimmed to appropriate length: tube tip should lie 2–3 mm within the AC, parallel to iris, away from the endothelium and lens."),
("Step 5 – Tube Ligature (Baerveldt)", "A 7-0 Vicryl ligature (or releasable nylon stitch) is tied firmly around the tube 2–3 mm posterior to the limbus to prevent drainage for the first 4–6 weeks while the fibrous capsule forms."),
("Step 6 – Sclerostomy", "A 23-gauge needle is used to create a track through the limbal sclera for tube insertion, directed into the AC parallel to the iris plane."),
("Step 7 – Tube Insertion", "The tube is inserted through the sclerostomy into the AC. Position confirmed under direct visualisation (operating microscope)."),
("Step 8 – Tube Coverage", "The tube at the limbus is covered with a patch graft (donor sclera, pericardium, cornea, or fascia lata) to prevent tube erosion through conjunctiva. Patch secured with 10-0 nylon sutures."),
("Step 9 – Conjunctival Closure", "Conjunctiva sutured over the plate and tube covering. Watertight closure essential."),
("Step 10 – Postoperative", "Steroid drops for 4–8 weeks. IOP spiking in early weeks (Baerveldt) managed with topical medications until tube opens. Ahmed: drainage from day 1 (valve mechanism)."),
]
for s_title, s_desc in gdd_steps:
story.append(KeepTogether([h3p(s_title), para(s_desc), sp(3)]))
story.append(sp(6))
story.append(h2p("6.5 Complications of GDD"))
gdd_comps = [
"Hypotony and shallow AC (early – overfiltration)",
"Bleb encapsulation / Tenon cyst (more common with Ahmed) – high IOP 1–6 weeks post-op",
"Corneal decompensation – endothelial cell loss from tube tip contact",
"Tube malposition – corneal or lenticular touch (may require repositioning)",
"Tube erosion through conjunctiva – requires patch graft revision",
"Early drainage failure – tube blocked by vitreous, blood, or iris",
"Late drainage failure – ~10% per year (fibrosis of plate capsule)",
"Diplopia / strabismus – especially with superotemporal plates; lower with PAUL",
"Cataract formation",
"Hyphaema",
]
for c in gdd_comps:
story.append(bp(c))
story.append(sp(4))
story.append(note(
"Ahmed Baerveldt Comparison (ABC) Study: Average preoperative IOP 30 mmHg. At 5 years: Ahmed 14.7 mmHg; "
"Baerveldt 12.7 mmHg. Failure rates: 44% Ahmed vs 39% Baerveldt (defined as IOP >21 or <5 mmHg, "
"loss of light perception, reoperation, or implant removal)."
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 7 – CYCLODESTRUCTIVE PROCEDURES
# ════════════════════════════════════════════════════════════
story.append(banded("7. Cyclodestructive Procedures", PW))
story.append(sp(8))
story.append(para(
"Cyclodestructive procedures lower IOP by partially ablating the ciliary body to reduce aqueous production. "
"They are used when other surgical options have failed or are not feasible, or in terminal/painful eyes. "
"Major forms: Diode Laser Transscleral Cyclophotocoagulation (TSCPC), Micropulse Transscleral CPC, "
"and Endoscopic Cyclophotocoagulation (ECP)."
))
story.append(sp(6))
story.append(h2p("7.1 Transscleral Diode Laser CPC (TSCPC)"))
story.append(h3p("Indications"))
tscpc_ind = [
"Refractory glaucoma unresponsive to other surgical treatments",
"Painful blind eye (to reduce IOP and relieve pain)",
"Neovascular glaucoma after failed other treatments",
"Patients unfit for incisional surgery",
"Last resort after multiple failed filtering surgeries",
]
for t in tscpc_ind:
story.append(bp(t))
story.append(h3p("Contraindications"))
story.append(bp("Relatively contraindicated in eyes with useful vision (risk of vision loss)"))
story.append(bp("Active endophthalmitis / significant infection"))
story.append(bp("Eyes with anterior segment neovascularization that has not been treated"))
story.append(h3p("Technique"))
story.append(para(
"Diode laser (810 nm wavelength). Probe applied to sclera 1.5 mm posterior to limbus. "
"Typically 18–20 applications over 270–360° (avoiding 3 and 9 o'clock meridians where long ciliary nerves lie). "
"Energy: 1500–2000 mW, duration 2 seconds. Popping sound indicates optimal treatment. "
"Performed under peribulbar anaesthesia."
))
story.append(h3p("Complications"))
cyclo_comps = [
"Significant IOP spike (24–48 hours)",
"Uveitis, hyphaema",
"Hypotony (over-treatment)",
"Phthisis bulbi (rare, severe over-treatment)",
"Pain (usually controlled with topical NSAIDs and steroids)",
"Sympathetic ophthalmia (very rare)",
]
for c in cyclo_comps:
story.append(bp(c))
story.append(sp(6))
story.append(h2p("7.2 Micropulse Transscleral CPC (MP-TSCPC)"))
story.append(para(
"Delivers laser energy in short pulses with rest periods, allowing thermal relaxation and reducing collateral "
"tissue damage. Less destructive, repeatable, and can be used in eyes with better vision. "
"P3 probe delivers 2000 mW in continuous sweeping motion for 80–100 seconds per hemisphere. "
"Evidence supports IOP lowering of ~30% with improved safety profile vs conventional TSCPC."
))
story.append(h2p("7.3 Endoscopic Cyclophotocoagulation (ECP)"))
story.append(para(
"An endoscope combined with a diode laser is inserted intraocularly (ab-interno) to directly visualise and "
"ablate the ciliary processes. Usually performed in combination with phacoemulsification. "
"Offers more precise treatment with less collateral damage than transscleral approach. "
"Better suited for mild-moderate glaucoma. Complications include hypotony, fibrin reaction, and cystoid macular oedema."
))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 8 – MIGS
# ════════════════════════════════════════════════════════════
story.append(banded("8. Minimally Invasive Glaucoma Surgery (MIGS)", PW))
story.append(sp(8))
story.append(para(
"MIGS is an umbrella term for procedures that reduce IOP with a more favourable safety profile than conventional "
"incisional glaucoma surgery. Key characteristics: ab-interno approach (mostly), minimal tissue disruption, "
"rapid recovery, preservation of future surgical options. Commonly combined with cataract surgery. "
"MIGS is categorised by mechanism: trabecular (Schlemm's canal based), subconjunctival (bleb-forming), "
"and supraciliary/suprachoroidal outflow enhancement."
))
story.append(sp(6))
story.append(h2p("8.1 Indications"))
migs_ind = [
"Mild to moderate open-angle glaucoma with slow visual field progression",
"Target IOP of 15–17 mmHg (modest IOP reduction goal)",
"Combined with phacoemulsification + IOL in patients with concurrent cataract (most common scenario)",
"Reducing topical medication burden in a controlled glaucoma patient",
"Progressive normal-tension glaucoma (selected cases)",
"Failed medical therapy in patients unsuitable for trabeculectomy/tubes",
]
for m in migs_ind:
story.append(bp(m))
story.append(sp(4))
story.append(h2p("8.2 Contraindications"))
migs_contra = [
"Advanced glaucoma requiring very low target IOP (<12 mmHg) – insufficient pressure lowering with MIGS alone",
"Angle-closure glaucoma (most trabecular MIGS require open angle)",
"Eyes with extensive peripheral anterior synechiae (PAS) obliterating angle",
"Neovascular or inflammatory glaucoma (trabecular MIGS ineffective)",
"Primary congenital glaucoma – goniotomy/trabeculotomy preferred",
"Conjunctival scarring for bleb-forming MIGS",
]
for c in migs_contra:
story.append(bp(c))
story.append(sp(6))
story.append(h2p("8.3 Group 1 – Schlemm's Canal-Based Procedures (No Bleb)"))
migs_sc = [
("iStent inject W (Glaukos)",
"Two titanium micro-stents inserted ab-interno through the trabecular meshwork into Schlemm's canal (at 2 separate sites). "
"Bypasses trabecular resistance. FDA-approved combined with phaco. IOP reduction ~30% from baseline (5-year data). "
"Procedure: gonioscopy-guided insertion using disposable injector."),
("Hydrus Microstent (Alcon/Ivantis)",
"A 8 mm crescent-shaped nitinol scaffold inserted into and scaffolding Schlemm's canal, dilating it across 3 clock hours. "
"Horizon Study (5-year RCT): more effective than phaco alone; fewer medications; lower visual field loss rates. "
"Approved for use with cataract surgery."),
("Trabectome (NovaBay)",
"Ablates the trabecular meshwork and inner wall of Schlemm's canal using electrocautery via an ab-interno goniotomy "
"approach. Suitable standalone or with phaco. IOP reduction ~20–30%."),
("Kahook Dual Blade (KDB)",
"A disposable blade that excises a strip of trabecular meshwork via ab-interno goniotomy. "
"Provides a wider excision than single-blade goniotomy. Combined with phaco or standalone."),
("Ab-Interno Canaloplasty (ABiC) / iTrack",
"A flexible illuminated microcatheter is threaded 360° through Schlemm's canal, injecting viscoelastic to "
"dilate the canal and distal collector channels. No tissue excision. Preserves anatomy for future surgery."),
("GATT (Gonioscopy-Assisted Transluminal Trabeculotomy)",
"A suture or catheter cannulates Schlemm's canal and is swept 360° to perform a complete trabeculotomy, "
"opening the entire canal. High IOP reduction (up to 40%), especially effective in secondary open-angle "
"glaucomas. Higher hyphema rate (27.7%). Can be used standalone or with phaco."),
]
for name, desc in migs_sc:
story.append(KeepTogether([h3p(name), para(desc), sp(3)]))
story.append(sp(6))
story.append(h2p("8.4 Group 2 – Bleb-Forming Subconjunctival Devices"))
migs_bleb = [
("XEN Gel Stent (Allergan/AbbVie)",
"A 6 mm porcine gelatin stent (lumen 45 microns) implanted ab-interno from the AC through the sclera into "
"the subconjunctival space, creating a microbleb. Subconjunctival MMC 0.02% (0.1 ml) injected pre-operatively "
"to reduce fibrosis. Bleb needling frequently required (20–40% within 1 year). "
"Stand-alone or combined with phaco. Similar IOP reduction to trabeculectomy but with higher revision rate."),
("PRESERFLO MicroShunt (Santen)",
"A 8.5 mm SIBS polymer tube inserted ab-externo from the AC to a subconjunctival bleb. "
"No plate required. MMC used. Provides equivalent IOP lowering to trabeculectomy at 2 years in POAG "
"(PRESERFLO vs. Trabeculectomy RCT). Lower complication rate."),
("InnFocus MicroShunt",
"Predecessor/variant of Preserflo. Established safety and efficacy in ab-externo subconjunctival drainage."),
]
for name, desc in migs_bleb:
story.append(KeepTogether([h3p(name), para(desc), sp(3)]))
story.append(sp(6))
story.append(h2p("8.5 Group 3 – Supraciliary/Suprachoroidal Drainage"))
story.append(h3p("MINIject (iSTAR Medical)"))
story.append(para(
"A 5 mm silicone implant (STAR biomaterial – interconnected hollow spheres) placed ab-interno into the "
"supraciliary space, protruding 0.5 mm into the AC. Enhances uveoscleral outflow. No bleb, no antimetabolite. "
"No risk of bleb-related infection. Recent studies show IOP reduction of ~25–30% at 3 years. "
"Risk of late corneal endothelial cell loss (~3%)."
))
story.append(h3p("CyPass Micro-Stent (withdrawn)"))
story.append(para(
"Previously FDA-approved supraciliary stent; withdrawn in 2018 due to significant corneal endothelial "
"cell loss at 5 years (COMPASS-XT study). Illustrates importance of long-term safety monitoring in MIGS."
))
story.append(sp(6))
story.append(h2p("8.6 MIGS Outcomes Summary (Recent Evidence)"))
story.append(evidence("39089358",
"Yuan et al. (Am J Ophthalmol 2025) – Meta-analysis of 95 studies, 9,733 eyes: "
"All combined phaco-MIGS superior to phaco alone. GATT achieved the greatest IOP reduction "
"(21.8→12.5 mmHg) but highest hyphema rate (27.7%). "
"TM-bypass IOP: 18.2→14.8 mmHg; non-GATT goniotomy: 20.0→14.6 mmHg."))
story.append(sp(3))
story.append(evidence("38853535",
"Oo et al. (Clin Exp Ophthalmol 2024) – Systematic review & meta-analysis: "
"Angle-based MIGS effective in normal tension glaucoma. Significant IOP and medication reduction "
"with acceptable safety."))
story.append(sp(3))
story.append(evidence("38332948",
"Ontario Health (2024) – Health Technology Assessment of minimally invasive bleb surgery (MIBS): "
"MIBS reduces IOP and medication use; may have fewer adverse events than trabeculectomy "
"(GRADE: Moderate–Very Low). Patients report short recovery and minimal side effects."))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 9 – GONIOTOMY / TRABECULOTOMY
# ════════════════════════════════════════════════════════════
story.append(banded("9. Goniotomy & Trabeculotomy (Congenital Glaucoma)", PW))
story.append(sp(8))
story.append(para(
"These are the primary surgical treatments for primary congenital glaucoma (PCG), targeting the developmental "
"abnormality of the trabecular meshwork that obstructs aqueous outflow."
))
story.append(h2p("9.1 Goniotomy"))
story.append(para(
"Ab-interno incision of the trabecular meshwork under direct gonioscopic visualisation. Requires clear cornea for "
"adequate visualisation. A goniotomy knife is inserted through a temporal clear corneal paracentesis and, "
"under gonioscopic control, the trabecular meshwork is incised over 90–120° of the nasal angle. "
"Success rate ~80–90% in primary congenital glaucoma with clear cornea at first surgery."
))
story.append(h2p("9.2 Trabeculotomy (Ab-Externo)"))
story.append(para(
"A metal probe (trabeculotome) or suture is passed through Schlemm's canal (accessed by radial scleral dissection) "
"and rotated into the AC, breaking through the trabecular meshwork. Used when cornea is cloudy. "
"360° trabeculotomy via iTrack catheter (ab-externo canaloplasty) is now preferred over partial trabeculotomy, "
"offering superior results."
))
story.append(h2p("9.3 When to Proceed to Tube/Trabeculectomy"))
story.append(bp("After 2 failed goniotomy/trabeculotomy procedures"))
story.append(bp("In secondary congenital glaucomas with complex angle anomalies"))
story.append(bp("In older children where GDD may be more suitable"))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 10 – RECENT ADVANCES
# ════════════════════════════════════════════════════════════
story.append(banded("10. Recent Advances & Emerging Therapies (2024–2026)", PW))
story.append(sp(8))
story.append(h2p("10.1 PRESERFLO vs Trabeculectomy – Level I Evidence"))
story.append(para(
"The PRESERFLO MicroShunt has been validated in RCT evidence as non-inferior to trabeculectomy at 2 years for POAG, "
"with fewer complications and no requirement for postoperative laser suture lysis. This positions it as a strong "
"alternative to trabeculectomy, especially for surgeons less experienced in bleb management."
))
story.append(h2p("10.2 GATT and 360-Degree Canaloplasty Expansion"))
story.append(para(
"Gonioscopy-Assisted Transluminal Trabeculotomy (GATT) has gained traction as a standalone procedure for "
"juvenile open-angle glaucoma, secondary open-angle glaucomas (steroid-induced, exfoliation, uveitic), and "
"following failed medical therapy. The 2025 network meta-analysis (PMID 40484184) of microcatheter-assisted MIGS "
"confirms that catheter-based trabeculotomy achieves the greatest absolute IOP reduction among angle-based MIGS."
))
story.append(h2p("10.3 PAUL Glaucoma Implant – Clinical Outcomes 2024"))
story.append(para(
"The PAUL implant (long, narrow valveless GDD) achieves IOP reduction comparable to Baerveldt at 2 years, with "
"a lower rate of diplopia due to its non-rectus placement. Its smaller lumen tube reduces early hypotony. "
"Data from the PAUL trial confirm IOP reduction to 12–14 mmHg with an acceptable safety profile."
))
story.append(h2p("10.4 Micropulse Transscleral CPC – Expanding Role"))
story.append(para(
"MP-TSCPC is being used earlier in the treatment algorithm – even in eyes with moderate glaucoma and reasonable "
"vision – given its favourable safety profile versus conventional diode CPC. "
"Recent data (2024–2025) support IOP reduction of 25–35% with minimal inflammation and repeatability."
))
story.append(h2p("10.5 MINIject 3-Year Data"))
story.append(para(
"The iSTAR STAR II study (3-year follow-up) demonstrates sustained IOP reduction with MINIject "
"supraciliary implant: ~30% reduction from baseline with a significant decrease in medication use. "
"No antimetabolite required; lower infection risk than bleb-forming MIGS."
))
story.append(h2p("10.6 Sustained-Release Drug Delivery Combined with Surgery"))
story.append(para(
"Sustained-release bimatoprost intracameral implant (Durysta) may be combined with MIGS to address both "
"the drainage and production sides of IOP regulation. Research into biodegradable episcleral drug inserts "
"and subconjunctival travoprost is ongoing."
))
story.append(h2p("10.7 Artificial Intelligence in Glaucoma Surgery Planning"))
story.append(para(
"AI-assisted optical coherence tomography (OCT) of the trabecular meshwork and Schlemm's canal is being "
"developed to predict MIGS success and guide device selection. Deep learning models analyse angle morphology "
"from AS-OCT to stratify patients likely to respond to canaloplasty vs subconjunctival drainage."
))
story.append(h2p("10.8 Laser-Assisted Trabeculectomy & Sclerostomy"))
story.append(para(
"Femtosecond and excimer laser–assisted sclerostomy techniques are under investigation to standardise "
"the size and shape of the scleral trapdoor, potentially improving reproducibility of filtration surgery. "
"Early preclinical and Phase I studies are promising."
))
story.append(h2p("10.9 Combined MIGS+Phaco for Normal Tension Glaucoma"))
story.append(evidence("40340860",
"Yu et al. (BMC Ophthalmol 2025) – Meta-analysis confirms MIGS (alone or combined with phaco) effective "
"for normal tension glaucoma: significant IOP and medication reduction, acceptable safety profile."))
story.append(evidence("40437308",
"Tukur et al. (Int Ophthalmol 2025) – Meta-analysis of RCTs: Combined phaco-MIGS superior to phaco alone "
"for visual field outcomes in open-angle glaucoma."))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 11 – COMPARATIVE TABLE
# ════════════════════════════════════════════════════════════
story.append(banded("11. Comparative Summary of Glaucoma Surgeries", PW))
story.append(sp(8))
comp_rows = [
[Paragraph("<b>Procedure</b>", body),
Paragraph("<b>IOP Reduction</b>", body),
Paragraph("<b>Main Indication</b>", body),
Paragraph("<b>Key Risk</b>", body),
Paragraph("<b>Evidence Level</b>", body)],
[Paragraph("Trabeculectomy+MMC", body),
Paragraph("30–50%", body),
Paragraph("Mod-severe POAG, failed meds", body),
Paragraph("Bleb infection, hypotony", body),
Paragraph("Level I (TVT, multiple RCTs)", body)],
[Paragraph("Ahmed Valve", body),
Paragraph("~50% (to ~15 mmHg)", body),
Paragraph("Scarred conjunctiva, NVG, ICE", body),
Paragraph("Encapsulation, corneal decompensation", body),
Paragraph("Level I (ABC Study)", body)],
[Paragraph("Baerveldt Implant", body),
Paragraph("~55% (to ~13 mmHg)", body),
Paragraph("Failed trabeculectomy, refractory", body),
Paragraph("Early hypotony, diplopia", body),
Paragraph("Level I (ABC Study, TVT)", body)],
[Paragraph("PAUL Implant", body),
Paragraph("~50%", body),
Paragraph("Similar to Baerveldt; less diplopia", body),
Paragraph("Hypotony, encapsulation", body),
Paragraph("Level II-III (2024 data)", body)],
[Paragraph("Deep Sclerectomy", body),
Paragraph("20–35%", body),
Paragraph("POAG, low target IOP not required", body),
Paragraph("Descemet perforation, lower efficacy", body),
Paragraph("Level II", body)],
[Paragraph("iStent inject", body),
Paragraph("~25–30%", body),
Paragraph("Mild-mod OAG + cataract", body),
Paragraph("Device malposition", body),
Paragraph("Level I (RCTs)", body)],
[Paragraph("Hydrus Microstent", body),
Paragraph("~30–35%", body),
Paragraph("Mild-mod OAG + cataract", body),
Paragraph("Canal damage, endothelial loss", body),
Paragraph("Level I (Horizon Study)", body)],
[Paragraph("XEN Gel Stent", body),
Paragraph("~30–40%", body),
Paragraph("Mod OAG, failed drops", body),
Paragraph("High needling rate, bleb failure", body),
Paragraph("Level I-II", body)],
[Paragraph("PRESERFLO", body),
Paragraph("~35–45%", body),
Paragraph("POAG (alternative to trab)", body),
Paragraph("Hypotony, fibrosis", body),
Paragraph("Level I (RCT 2024)", body)],
[Paragraph("GATT", body),
Paragraph("~40–50%", body),
Paragraph("Juvenile OAG, sec OAG", body),
Paragraph("Hyphema (27.7%)", body),
Paragraph("Level II-I (meta-analyses 2025)", body)],
[Paragraph("MINIject", body),
Paragraph("~25–30%", body),
Paragraph("Mod OAG, no bleb desired", body),
Paragraph("Corneal endothelial cell loss", body),
Paragraph("Level II (STAR II 3yr)", body)],
[Paragraph("Diode CPC", body),
Paragraph("30–50%", body),
Paragraph("Refractory, painful blind eye", body),
Paragraph("Phthisis, hypotony", body),
Paragraph("Level II-III", body)],
[Paragraph("MP-TSCPC", body),
Paragraph("25–35%", body),
Paragraph("Refractory, moderate vision", body),
Paragraph("Lower but similar to CPC", body),
Paragraph("Level II (2024 data)", body)],
[Paragraph("ECP", body),
Paragraph("~25%", body),
Paragraph("Combined with phaco", body),
Paragraph("Hypotony, CMO", body),
Paragraph("Level II", body)],
[Paragraph("Goniotomy/Trabeculotomy", body),
Paragraph("~50–80% success rate (PCG)", body),
Paragraph("Primary congenital glaucoma", body),
Paragraph("Requires clear cornea (goniotomy)", body),
Paragraph("Level II-III", body)],
]
story.append(box_table(comp_rows,
[3.5*cm, 2.2*cm, 3.8*cm, 3.8*cm, 3.7*cm]))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# SECTION 12 – REFERENCES
# ════════════════════════════════════════════════════════════
story.append(banded("12. References", PW))
story.append(sp(8))
refs = [
"Kanski's Clinical Ophthalmology: A Systematic Approach, 10th Edition. Elsevier, 2023. "
"(Sections 11: Glaucoma Surgery, pp. 416–443)",
"Ontario Health (Technology Assessment). Minimally Invasive Bleb Surgery for Glaucoma: "
"A Health Technology Assessment. Ont Health Technol Assess Ser. 2024. [PMID: 38332948]",
"Yuan PHS, Dorling M, Shah M, Panarelli JF, Durr GM. Combined Microinvasive Glaucoma Surgery "
"With Phacoemulsification in Open-Angle Glaucoma: A Systematic Review and Meta-analysis. "
"Am J Ophthalmol. 2025 Feb. [PMID: 39089358]",
"Oo HH, Hong ASY, Lim SY. Angle-based minimally invasive glaucoma surgery in normal tension "
"glaucoma: A systematic review and meta-analysis. Clin Exp Ophthalmol. 2024. [PMID: 38853535]",
"Tukur HN et al. Visual field outcomes after cataract surgery with or without microinvasive "
"glaucoma surgery in open-angle glaucoma: a systematic review and meta-analysis. "
"Int Ophthalmol. 2025 May. [PMID: 40437308]",
"Yu Z, Wu M, Tao Y. Efficacy analysis of microinvasive glaucoma surgery alone or in combination "
"with phacoemulsification in patients with normal tension glaucoma: a systematic review and "
"meta-analysis. BMC Ophthalmol. 2025 May. [PMID: 40340860]",
"Han L, Mao Y, Sang Q. Efficacy and complications of microcatheter-assisted minimally invasive "
"glaucoma surgery for open-angle glaucoma: A systematic review and network meta-analysis. "
"Surv Ophthalmol. 2025. [PMID: 40484184]",
"Gedde SJ et al. Treatment Outcomes in the Tube Versus Trabeculectomy (TVT) Study After Five Years "
"of Follow-up. Am J Ophthalmol. 2012.",
"Barton K et al. Ahmed Baerveldt Comparison Study: Five-Year Treatment Outcomes. Ophthalmology. 2016.",
"Samuelson TW et al. A Schlemm Canal Microstent for Intraocular Pressure Reduction in Primary "
"Open-Angle Glaucoma and Cataract: The HORIZON Study. Ophthalmology. 2019.",
"Wills Eye Manual, 7th Edition. Lippincott Williams & Wilkins, 2022. (Ch 9: Glaucoma)",
]
for i, ref in enumerate(refs, 1):
story.append(Paragraph(f"{i}. {ref}", evidence_style))
story.append(sp(3))
# Build PDF
doc.build(story, onFirstPage=footer_canvas, onLaterPages=footer_canvas)
print(f"PDF created: {OUTPUT_PATH}")
cd /tmp/workspace/glaucoma-surgery && python generate_pdf.py 2>&1
wrap method. Let me fix it:~/glaucoma-surgery/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/glaucoma-surgery/generate_pdf.py'
cd /tmp/workspace/glaucoma-surgery && python generate_pdf.py 2>&1
ls -lh /tmp/workspace/glaucoma-surgery/Glaucoma_Surgeries.pdf
Glaucoma Surgeries
PDF Document · PDF
| # | Section | Key Content |
|---|---|---|
| 1 | Introduction | Classification table of all glaucoma surgery categories |
| 2 | Trabeculectomy | Full 12-step technique, indications, contraindications, complications table with management |
| 3 | Antimetabolites | MMC vs 5-FU – indications, protocols, risk factors for failure |
| 4 | Ex-PRESS Mini-Shunt | Modified technique, advantages, limitations |
| 5 | Non-Penetrating Surgery | Deep sclerectomy, viscocanalostomy – indications, contraindications, technique |
| 6 | Drainage Devices (GDD) | Ahmed, Baerveldt, PAUL – 10-step technique, indications, complications; ABC Study results |
| 7 | Cyclodestructive | Diode CPC, Micropulse CPC, ECP – indications, contraindications, technique, complications |
| 8 | MIGS | All 3 groups: iStent, Hydrus, Trabectome, KDB, GATT, ABiC, XEN, PRESERFLO, MINIject, CyPass (withdrawn); outcomes with 2024-2025 PubMed evidence |
| 9 | Goniotomy/Trabeculotomy | Congenital glaucoma surgery |
| 10 | Recent Advances 2024-2026 | PRESERFLO RCT, GATT expansion, PAUL outcomes, MP-TSCPC, MINIject 3-yr data, AI planning, drug delivery |
| 11 | Comparative Table | All procedures: IOP reduction %, main indication, key risk, evidence level |
| 12 | References | 11 references including 6 PubMed citations (2024-2025 systematic reviews and meta-analyses) |
Can you make it more elaborate for study material fir pg ophthalmology student
??
mkdir -p /tmp/workspace/glaucoma-pg && ls /tmp/workspace/
???
Check Orris account and purchase credits to resume document generation
Now make the pdf . Please note to make a simple white background and black text
Where is the pdf?
Make a pdf on the topic glaucoma surgeries covering all the steps , indications and contraindications, latest and recent make it elaborate for study material fir pg ophthalmology student Please note to make it in a simple white background and black text