visual impairment and blindness
"visual impairment" OR "blindness" causes epidemiology
visual impairment blindness causes classification management 2025
"Visual acuity of less than 3/60 (Snellen) or its equivalent."
| Category | Visual Acuity |
|---|---|
| Mild | Worse than 6/12 |
| Moderate | Worse than 6/18 |
| Severe | Worse than 6/60 |
| Blindness | Worse than 3/60 |
| Strategy | Examples |
|---|---|
| Prevention | Vitamin A supplementation, trachoma control, eye safety programs |
| Treatment | Cataract surgery, refractive error correction (glasses/surgery) |
| Rehabilitation | Low vision aids, white canes, Braille, mobility training |
india - National Programme for Control of Blindness and Visual Impairment (NPCB&VI) make a revision flowchart
A detailed medical revision flowchart titled "National Programme for Control of Blindness and Visual Impairment (NPCB&VI) - India" for medical students. The flowchart should be structured top-to-bottom with clear boxes and arrows, on a white background with clean typography. Structure the flowchart as follows: TOP HEADER BOX (dark blue): "NPCB&VI – India | Centrally Sponsored Scheme | Funding: 60:40 (States) | 90:10 (NE States + Sikkim)" Second row (orange box): "GOAL: Reduce prevalence of blindness to 0.3% by 2020 | Previous name: NPCB → Renamed to NPCB&VI" Arrow down to: "INDIA STATISTICS" box (teal): - Old definition: Cannot count fingers at 6m | New (WHO aligned): Cannot count fingers at 3m - Prevalence: 1.0% (2006-07) → 0.36% (2015-18) - Blind population: 1.20 crore → 80 lakh (after new definition) Arrow down splits into THREE BRANCHES labeled "LEVELS OF CARE": LEFT BRANCH (green box) "PRIMARY EYE CARE": - Village health guides + MPW - Treat: conjunctivitis, trachoma, xerophthalmia, foreign bodies - Drugs: tetracycline, Vit A capsules - Refer difficult cases to PHC - 1 VHG per 1000 pop; 2 MPW per 5000 MIDDLE BRANCH (blue box) "SECONDARY CARE": - PHC + District Hospitals - Cataract surgery (eye camps) - Trichiasis, entropion, glaucoma, trauma - Mobile eye clinics - Cataract = 66.2% of blindness in India RIGHT BRANCH (purple box) "TERTIARY CARE": - Medical Colleges + National Institutes - Retinal detachment surgery - Corneal grafting (Eye Banks) - National Institute for Blind – Dehradun - Rehabilitation + special schools Arrow down to NATIONAL INITIATIVES box (dark teal): - Dedicated eye units in NE/hilly states - Contractual ophthalmic manpower - Mobile ophthalmic district units - Diabetic retinopathy, glaucoma, refractive errors, corneal transplant, vitreo-retinal surgery, childhood blindness Arrow down to MAJOR CAUSES BOX (red-orange): BLINDNESS: Cataract 66.2% | Posterior segment 5.9% | Glaucoma 5.5% | Refractive error 0.1% MODERATE-SEVERE VI: Refractive error 53% | Cataract 25% | AMD 4% | Glaucoma 2% | DR 1% Arrow down to GLOBAL EYE HEALTH ACTION PLAN 2014-19 box (grey): - Reduce avoidable VI by 25% (from 2010 baseline) by 2019 - Principles: Universal access, Human rights, Evidence-based, Life-course approach - 3 Indicators: (1) Prevalence/causes (2) Eye care personnel (3) Cataract surgery rate BOTTOM BOX (yellow): "80% of blindness is AVOIDABLE – Treatable or Preventable" Use color-coded boxes, bold headings, clear directional arrows, and make it visually organized like a high-quality medical exam flowchart.
404 Not Found. {'message': '{\n "error": {\n "code": 404,\n "message": "Publisher model `projects/engaged-beaker-474810-u2/locations/global/publishers/google/models/gemini-3-pro-image-preview` was not found or your project does not have access to it. Ensure you are using a valid model name and that the model is available in the specified region. For more information, see: https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations.",\n "status": "NOT_FOUND"\n }\n}\n', 'status': 'Not Found'}
We encountered an error while processing your request. Please try again or reach out to us for help.
make a flowchart
mkdir -p /tmp/workspace/npcb-flowchart && ls /tmp/workspace/
~/npcb-flowchart/generate_flowchart.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
fig, ax = plt.subplots(figsize=(22, 34))
ax.set_xlim(0, 22)
ax.set_ylim(0, 34)
ax.axis('off')
fig.patch.set_facecolor('#F7F9FC')
# ─── colour palette ───────────────────────────────────────────
C = {
'header': '#1A3A5C', # dark navy
'goal': '#D64E12', # strong orange-red
'stats': '#1E7A8C', # teal
'primary': '#2A7A3B', # green
'second': '#1A5EA8', # blue
'tertiary':'#6A3D9A', # purple
'national':'#B8860B', # dark gold
'causes': '#C0392B', # red
'global': '#4A4A4A', # dark grey
'footer': '#1A7A1A', # dark green
'arrow': '#333333',
'white': '#FFFFFF',
'ltblue': '#EAF4FB',
'ltgreen': '#EAF7EC',
'ltpurple':'#F3EBF9',
'ltyellow':'#FFFDE7',
'ltred': '#FDEDEC',
'ltgold': '#FEF9E7',
'ltteal': '#E8F6F9',
}
def box(ax, x, y, w, h, bg, border, text, fs=9.5, bold=False,
text_color='black', pad=0.18, valign='center', wrap=True):
rect = FancyBboxPatch((x, y), w, h,
boxstyle=f"round,pad={pad}",
linewidth=2, edgecolor=border,
facecolor=bg, zorder=3)
ax.add_patch(rect)
weight = 'bold' if bold else 'normal'
ax.text(x + w/2, y + h/2, text,
ha='center', va=valign,
fontsize=fs, fontweight=weight,
color=text_color, wrap=wrap,
multialignment='center',
zorder=4,
bbox=dict(boxstyle='square,pad=0', fc='none', ec='none'))
def arrow(ax, x1, y1, x2, y2, color='#333333', lw=2):
ax.annotate('', xy=(x2, y2), xytext=(x1, y1),
arrowprops=dict(arrowstyle='->', color=color,
lw=lw, mutation_scale=18),
zorder=5)
def label_arrow(ax, x, y, text, fs=8, color='#555555'):
ax.text(x, y, text, ha='center', va='center',
fontsize=fs, color=color, style='italic', zorder=6)
# ══════════════════════════════════════════════════════════════
# ROW 1 – TITLE HEADER
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 31.8, 21, 1.8, C['header'], C['header'],
"NATIONAL PROGRAMME FOR CONTROL OF BLINDNESS & VISUAL IMPAIRMENT\n(NPCB&VI) — INDIA | Revision Flowchart",
fs=14, bold=True, text_color=C['white'])
arrow(ax, 11, 31.8, 11, 31.3)
# ══════════════════════════════════════════════════════════════
# ROW 2 – FUNDING & GOAL
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 29.6, 9.8, 1.6, '#FFF3E0', C['goal'],
"FUNDING\nCentrally Sponsored Scheme\n60:40 (All States) | 90:10 (NE States + Sikkim)",
fs=9.5, bold=False)
box(ax, 11.2, 29.6, 10.3, 1.6, '#FFEBEE', C['goal'],
"GOAL\nReduce prevalence of blindness\nto ≤ 0.3% by 2020\n(Old name: NPCB → Renamed NPCB&VI)",
fs=9.5, bold=False)
arrow(ax, 11, 29.6, 11, 29.1)
# ══════════════════════════════════════════════════════════════
# ROW 3 – INDIA STATISTICS
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 26.8, 21, 2.2, C['ltteal'], C['stats'],
"INDIA — KEY STATISTICS\n"
"▸ Old definition: Cannot count fingers at 6 m → New (WHO-aligned): Cannot count fingers at 3 m\n"
"▸ Prevalence: 1.0% (2006–07) → 0.36% (2015–18) ▸ Blind population: 1.20 cr → 80 lakh (post redefinition)\n"
"▸ Principal cause: Cataract — 66.2% | Glaucoma prevalence 5.5% | Posterior segment pathology 5.9%",
fs=9.5, bold=False)
arrow(ax, 11, 26.8, 11, 26.3)
# ══════════════════════════════════════════════════════════════
# ROW 4 – CAUSES PANEL (2 boxes side by side)
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 24.0, 10.0, 2.2, C['ltred'], C['causes'],
"CAUSES OF BLINDNESS (India / Global)\n"
"1. Cataract (un-operated) — 35% (global) / 66.2% (India)\n"
"2. Uncorrected refractive error — 21%\n"
"3. Glaucoma — 8% 4. Corneal opacities 5. Trachoma",
fs=9, bold=False)
box(ax, 11.2, 24.0, 10.3, 2.2, C['ltred'], C['causes'],
"CAUSES OF MODERATE–SEVERE VISION IMPAIRMENT\n"
"1. Uncorrected refractive errors — 53%\n"
"2. Un-operated cataract — 25%\n"
"3. AMD 4% 4. Glaucoma 2% 5. Diabetic retinopathy 1%",
fs=9, bold=False)
# connecting arrows from stats to causes
arrow(ax, 5.5, 26.8, 5.5, 26.2)
arrow(ax, 5.5, 26.2, 5.5, 24.0+2.2) # top of causes box left
arrow(ax, 16.4, 26.8, 16.4, 26.2)
arrow(ax, 16.4, 26.2, 16.4, 24.0+2.2)
arrow(ax, 11, 24.0, 11, 23.5)
# ══════════════════════════════════════════════════════════════
# ROW 5 – LEVELS OF CARE HEADER
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 22.7, 21, 0.75, '#E3F2FD', C['second'],
"METHODS OF INTERVENTION — 3 LEVELS OF EYE CARE",
fs=11, bold=True, text_color=C['second'])
# branch arrows
arrow(ax, 11, 22.7, 4.0, 22.1) # to primary
arrow(ax, 11, 22.7, 11, 22.1) # to secondary
arrow(ax, 11, 22.7, 18.0, 22.1) # to tertiary
# ══════════════════════════════════════════════════════════════
# ROW 6 – THREE CARE COLUMNS
# ══════════════════════════════════════════════════════════════
h_care = 5.4
# --- PRIMARY ---
box(ax, 0.2, 16.6, 6.8, h_care, C['ltgreen'], C['primary'],
"PRIMARY EYE CARE\n\n"
"Providers:\n"
"▸ Village Health Guides (VHG)\n"
"▸ Multi-Purpose Workers (MPW)\n\n"
"Coverage:\n"
"▸ 1 VHG per 1,000 population\n"
"▸ 2 MPW per 5,000 population\n\n"
"Conditions treated:\n"
"▸ Acute conjunctivitis\n"
"▸ Ophthalmia neonatorum\n"
"▸ Trachoma\n"
"▸ Superficial foreign bodies\n"
"▸ Xerophthalmia\n\n"
"Drugs provided:\n"
"▸ Topical tetracycline\n"
"▸ Vitamin A capsules\n"
"▸ Eye bandages & shields\n\n"
"Action:\n"
"▸ Refer difficult cases to PHC\n"
"▸ Promote hygiene, sanitation,\n"
" good diet, safety",
fs=8.8, bold=False, valign='top')
# --- SECONDARY ---
box(ax, 7.6, 16.6, 6.8, h_care, C['ltblue'], C['second'],
"SECONDARY CARE\n\n"
"Providers:\n"
"▸ PHC & District Hospitals\n"
"▸ Eye departments / clinics\n"
"▸ Mobile eye clinics\n\n"
"Conditions managed:\n"
"▸ Cataract surgery (eye camps)\n"
"▸ Trichiasis / Entropion\n"
"▸ Glaucoma\n"
"▸ Ocular trauma\n\n"
"Highlights:\n"
"▸ Cataract = 62–66% blindness\n"
" in India\n"
"▸ Eye camp approach highly\n"
" successful + community\n"
" participation\n"
"▸ Mobile units: problem-specific,\n"
" inexpensive, peripheral care\n"
"▸ General health surveys at camps\n"
"▸ Adequate follow-up & evaluation",
fs=8.8, bold=False, valign='top')
# --- TERTIARY ---
box(ax, 15.0, 16.6, 6.8, h_care, C['ltpurple'], C['tertiary'],
"TERTIARY CARE\n\n"
"Providers:\n"
"▸ Medical Colleges\n"
"▸ National/Regional Institutes\n\n"
"Services:\n"
"▸ Retinal detachment surgery\n"
"▸ Corneal grafting\n"
"▸ Complex eye surgeries\n\n"
"Eye Banks:\n"
"▸ Most states have Corneal\n"
" Grafting Acts\n"
"▸ Eye Banks established\n\n"
"Rehabilitation:\n"
"▸ Special schools for the blind\n"
"▸ Gainful employment\n"
"▸ National Institute for the Blind\n"
" — Dehradun (U.P.)",
fs=8.8, bold=False, valign='top')
# arrows from care boxes down
arrow(ax, 4.0, 16.6, 4.0, 16.1)
arrow(ax, 11, 16.6, 11, 16.1)
arrow(ax, 18.5, 16.6, 18.5, 16.1)
# converge
arrow(ax, 4.0, 16.1, 11, 15.8)
arrow(ax, 11, 16.1, 11, 15.8)
arrow(ax, 18.5, 16.1, 11, 15.8)
# ══════════════════════════════════════════════════════════════
# ROW 7 – NATIONAL INITIATIVES
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 13.2, 21, 2.5, C['ltgold'], C['national'],
"NATIONAL INITIATIVES UNDER NPCB&VI\n"
"▸ Dedicated eye units in NE States (including Sikkim) & hilly areas\n"
"▸ Contractual ophthalmic manpower: Ophthalmic surgeons, assistants, eye donation counsellors\n"
"▸ Multipurpose District Mobile Ophthalmic Units — diagnosis & management in difficult areas\n"
"▸ Services beyond cataract: Diabetic retinopathy | Glaucoma | Refractive errors | Corneal transplantation | Vitreo-retinal surgery | Childhood blindness",
fs=9.2, bold=False)
arrow(ax, 11, 15.8, 11, 15.7)
arrow(ax, 11, 15.7, 11, 13.2+2.5)
arrow(ax, 11, 13.2, 11, 12.7)
# ══════════════════════════════════════════════════════════════
# ROW 8 – INITIAL ASSESSMENT
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 11.2, 21, 1.4, '#F0F0F0', '#888888',
"INITIAL ASSESSMENT | Step 1: Prevalence surveys → assess magnitude, geographic distribution & causes\n"
"→ Essential for setting priorities and designing intervention programmes",
fs=9, bold=False)
arrow(ax, 11, 11.2, 11, 10.7)
# ══════════════════════════════════════════════════════════════
# ROW 9 – GLOBAL EYE HEALTH ACTION PLAN
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 8.8, 21, 2.3, '#ECEFF1', '#607D8B',
"GLOBAL EYE HEALTH ACTION PLAN 2014–2019 (WHO)\n"
"Goal: Reduce avoidable visual impairment by 25% by 2019 (from 2010 baseline)\n"
"5 Principles: Universal access & equity | Human rights | Evidence-based practice | Life-course approach | Empowerment of visually impaired\n"
"3 Progress Indicators: (1) Prevalence & causes of VI (2) Number of eye care personnel (3) Cataract surgery rate",
fs=9, bold=False)
arrow(ax, 11, 8.8, 11, 8.3)
# ══════════════════════════════════════════════════════════════
# ROW 10 – VISION 2020 + KEY STATS BAND
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 6.6, 21, 1.6, '#E8F5E9', '#2E7D32',
"VISION 2020: The Right to Sight (WHO + IAPB)\n"
"Strategy: Prevention → Treatment → Rehabilitation | Targeted: avoidable blindness (80% of all blindness is avoidable)",
fs=9.2, bold=False)
arrow(ax, 11, 6.6, 11, 6.1)
# ══════════════════════════════════════════════════════════════
# ROW 11 – SPECIAL POPULATIONS
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 4.5, 9.8, 1.7, '#E3F2FD', '#1565C0',
"CHILDHOOD BLINDNESS\n"
"▸ Xerophthalmia (Vit A deficiency) — declining\n"
"▸ Congenital cataract / glaucoma\n"
"▸ Retinopathy of prematurity\n"
"▸ Optic atrophy (meningitis)\n"
"▸ Uncorrected refractive errors",
fs=8.8)
box(ax, 11.2, 4.5, 10.3, 1.7, '#FFF3E0', '#E65100',
"ELDERLY (≥50 yrs)\n"
"▸ 82% of visually impaired are ≥50 yrs\n"
"▸ Senile cataract (1 decade earlier vs West)\n"
"▸ AMD, Glaucoma, Diabetic retinopathy\n"
"▸ Population ageing → rising burden",
fs=8.8)
arrow(ax, 11, 6.6, 5.5, 6.2)
arrow(ax, 5.5, 6.2, 5.5, 4.5+1.7)
arrow(ax, 11, 6.6, 16.4, 6.2)
arrow(ax, 16.4, 6.2, 16.4, 4.5+1.7)
# ══════════════════════════════════════════════════════════════
# ROW 12 – FOOTER KEY FACT
# ══════════════════════════════════════════════════════════════
box(ax, 0.5, 2.8, 21, 1.5, '#E8F5E9', C['footer'],
"KEY EXAM FACT ★\n"
"80% of all blindness is AVOIDABLE (treatable or preventable) — Glasses & Cataract surgery are highest-yield public health interventions",
fs=10, bold=True, text_color='#1A5A1A')
# ══════════════════════════════════════════════════════════════
# Source credit
# ══════════════════════════════════════════════════════════════
ax.text(11, 2.3, "Source: Park's Textbook of Preventive & Social Medicine | Govt. of India NPCB&VI 2017-18 | WHO Fact Sheets",
ha='center', va='center', fontsize=7.5, color='#888888', style='italic')
plt.tight_layout(pad=0)
plt.savefig('/tmp/workspace/npcb-flowchart/NPCB_VI_Flowchart.png',
dpi=160, bbox_inches='tight', facecolor=fig.get_facecolor())
print("Saved successfully.")
cd /tmp/workspace/npcb-flowchart && python generate_flowchart.py 2>&1
Download the NPCB&VI flowchart as PNG