Principle of ALTS advanced life trauma support in surgery for homeopathy student

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Loading Image
Finding Sources
I now have all the information needed for a comprehensive answer. Let me compose it.

ATLS - Advanced Trauma Life Support: Principles for Surgery Students

Note: The question mentions "ALTS" - this is the same as ATLS (Advanced Trauma Life Support). ATLS is the correct and standard term used in surgery.

What is ATLS?

ATLS was developed by the American College of Surgeons Committee on Trauma (ACS-COT) in the late 1970s and first introduced in 1980. It is now taught in over 60 countries. It provides a standardized, systematic approach to rapidly identify life-threatening injuries and initiate treatment for trauma patients.
The core premise: "Appropriate and timely care can improve the outcome for the injured patient."
  • Schwartz's Principles of Surgery, 11th Ed.
  • Mulholland and Greenfield's Surgery, 7th Ed.

The Foundational Principle: "What Kills First, Should Be Managed First"

ATLS is built on the time-dependence principle - every condition has a timeline from injury to death or irreversible damage. Interventions must be ranked and executed within these time windows:
Estimated time from incident to death for various conditions
Figure: Time from injury to death - airway obstruction kills fastest (minutes), while ischaemic limb allows more time. Source: Bailey & Love's Short Practice of Surgery, 28th Ed.
As Bailey & Love's Surgery explains: "The seriousness and immediate impact of a specific clinical condition should dictate its prioritisation."

The Four Phases of ATLS Management

PhasePurpose
1. Primary Survey + Concurrent ResuscitationIdentify and treat immediate life threats
2. Secondary Survey + Diagnostic EvaluationIdentify ALL injuries (head-to-toe)
3. Definitive CareOperative or non-operative treatment
4. Tertiary SurveyDelayed re-evaluation for missed injuries

Phase 1: The Primary Survey - (C)-ABCDE

Modern ATLS begins with (C)ABCDE - the "C" for Catastrophic haemorrhage was added to address external life-threatening bleeding before anything else.

C - Catastrophic Haemorrhage Control

  • Direct pressure, tourniquets, wound packing
  • Applied before airway management if massive external bleeding is present
  • Example: mangled extremity with arterial bleeding - apply tourniquet first

A - Airway with Cervical Spine Protection

Ensuring a patent airway is the first priority of the primary survey. Efforts to restore cardiovascular integrity will be futile unless blood oxygen content is adequate.
Manoeuvres (jaw thrust > chin lift in trauma):
  • Suction blood, vomit, teeth, foreign bodies
  • Oral airway / nasal trumpet
  • Definitive airway (endotracheal intubation)
Indications for definitive airway:
  1. Apnoea
  2. Unable to protect airway (GCS <8)
  3. Impending compromise (hematoma, burns, swelling)
  4. Inability to maintain oxygenation
Cervical spine: All blunt trauma patients are assumed to have an unstable cervical spine until proven otherwise. Apply hard cervical collar + sandbags + tape (not soft collar - it does not immobilize). For penetrating neck injury, cervical collars are NOT recommended.
Airway options:
  • Orotracheal intubation (preferred) - requires RSI
  • Nasotracheal - only if spontaneously breathing
  • Surgical - cricothyroidotomy when intubation fails
  • Schwartz's Principles of Surgery, 11th Ed., p. 211-212

B - Breathing and Ventilation

A patent airway is not sufficient - adequate ventilation requires functioning lungs, chest wall, and diaphragm.
Immediately life-threatening conditions (treat during primary survey):
ConditionSignsTreatment
Tension pneumothoraxAbsent breath sounds, tracheal deviation, hypotensionNeedle decompression (2nd ICS MCL), then chest tube
Open pneumothoraxSucking chest woundOcclusive dressing (3-sided)
Massive haemothoraxDullness on percussion, hypotensionChest tube (large-bore)
Flail chestParadoxical movementO2, positive pressure ventilation
Note: Spinal cord injury above C5 can paralyze the diaphragm, causing profound respiratory failure. Any SCI affects intercostal/abdominal muscles, reducing thoracic volume.

C - Circulation with Haemorrhage Control

The most common cause of early preventable death in trauma is haemorrhagic shock.
The "5 places blood can hide" (Mulholland & Greenfield):
  1. Pleural space
  2. Intra-abdominal cavity
  3. Pelvis / retroperitoneal space
  4. Soft tissues at long bone fracture sites
  5. Externally
Assessment:
  • Pulse rate, quality, BP
  • Skin: colour, temperature, capillary refill
  • Level of consciousness (brain perfusion)
Classes of Haemorrhagic Shock:
ClassBlood LossHRBPRRMental Status
I<750 mL (<15%)<100Normal14-20Anxious
II750-1500 mL (15-30%)100-120Normal20-30Anxious
III1500-2000 mL (30-40%)120-140Decreased30-40Confused
IV>2000 mL (>40%)>140Decreased>35Lethargic
Resuscitation:
  • Two large-bore IV lines (antecubital)
  • 1 L crystalloid bolus (Ringer's lactate preferred over normal saline - less hyperchloraemic acidosis)
  • For ongoing hemorrhage: Massive Transfusion Protocol (MTP) - packed red cells : FFP : platelets in 1:1:1 ratio
  • Control Trauma-Induced Coagulopathy (TIC)
Specific diagnoses during C:
  • Pericardial tamponade: Beck's triad (hypotension, muffled heart sounds, JVD) - treat with pericardiocentesis or thoracotomy
  • FAST ultrasound: identifies free fluid in abdomen/pericardium in minutes
  • Pelvic binder for open-book pelvic fractures
Responders to fluid resuscitation:
  • Rapid responder: hemorrhage <20% blood volume (likely controlled)
  • Transient responder: moderate hemorrhage, ongoing bleeding - needs urgent intervention
  • Non-responder: massive ongoing hemorrhage, likely >40% loss - needs immediate surgery

D - Disability (Neurological Status)

A rapid neurological assessment at the end of the primary survey.
AVPU Scale (quick screen):
  • A - Alert
  • V - responds to Voice
  • P - responds to Pain
  • U - Unresponsive
Glasgow Coma Scale (GCS):
ComponentScore
Eye opening (spontaneous to pain)4-1
Verbal (oriented to no sound)5-1
Motor (obeys commands to no response)6-1
  • GCS ≤8 = severe TBI, requires definitive airway
  • Pupil size and reactivity (unequal pupils suggest herniation)
Hypoglycemia must be excluded as a reversible cause of altered mental status.

E - Exposure and Environmental Control

  • Fully undress the patient (cut clothing off)
  • Complete top-to-toe physical inspection, including the back (log-roll)
  • Cover immediately to prevent hypothermia - hypothermia worsens coagulopathy
Lethal Triad of Trauma (must prevent):
  1. Hypothermia
  2. Acidosis
  3. Coagulopathy

Phase 2: Secondary Survey

Only begins after the primary survey is complete and resuscitation is underway. The goal is to identify ALL injuries.
Components:
  • AMPLE history: Allergies, Medications, Past history, Last meal, Events of injury
  • Head-to-toe physical examination
  • Neurological exam
  • Back examination (log-roll)
  • Radiological evaluation: CXR, pelvic X-ray, FAST, CT scan (when hemodynamically stable)
  • Adjuncts: ECG, urinary catheter, gastric tube, laboratory tests
Key investigations:
  • FAST exam - free fluid in peritoneum / pericardium
  • CT trauma scan ("trauma pan-scan") - gold standard in stable patients
  • Diagnostic peritoneal aspiration (DPA) - superior to FAST for abdominal blood in hemodynamically unstable patients when CT is not possible

The "Golden Hour" Concept

ATLS emphasizes that timely prioritized interventions during the first 60 minutes (the "golden hour") are necessary to prevent death and disability. The two main killers in the golden hour are:
  1. Hemorrhage - number one cause of preventable death in the first 6 hours
  2. Traumatic Brain Injury (TBI) - treatment remains mostly supportive
  • Mulholland and Greenfield's Surgery, 7th Ed., p. 1043

Trimodal Distribution of Trauma Deaths (Trunkey's Model)

PeakTimingCauseIntervention
1st (Immediate)Seconds to minutesAortic rupture, brain stem injuryPrevention only
2nd (Early)Minutes to hours"Golden hour" - haemorrhage, airwayATLS addresses this peak
3rd (Late)Days to weeksSepsis, MODSICU care

ATLS Objectives (Summary)

The ATLS program enables providers to:
  1. Assess the patient's condition rapidly and accurately
  2. Resuscitate and stabilize the patient according to priority
  3. Determine if the patient's needs exceed a facility's capacity
  4. Arrange appropriate interhospital transfer
  5. Ensure optimum care does not deteriorate at any stage
  • Mulholland and Greenfield's Surgery, 7th Ed.

Key Points for Exam (Homeopathy / BHMS Surgery Paper)

  • ATLS was developed by ACS-COT in 1978-1980
  • Primary survey = (C)ABCDE; Secondary survey = head-to-toe after stabilization
  • Airway takes first priority; C-spine must be protected simultaneously
  • Airway obstruction is the fastest killer (see timeline diagram above)
  • All unconscious trauma patients = assume cervical spine injury until proven otherwise
  • GCS <8 = immediate definitive airway
  • Five places for occult haemorrhage: chest, abdomen, pelvis, long bones, external
  • Shock types in trauma: haemorrhagic (most common), neurogenic, cardiogenic (tamponade), obstructive (tension pneumo)
  • Lethal triad: hypothermia + acidosis + coagulopathy
  • FAST ultrasound is a key adjunct to the primary survey
  • Tertiary survey catches missed injuries after the patient is stabilized

What is the Glasgow Coma Scale and how is it used in trauma?

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Reading File
Finding Sources
I now have comprehensive, authoritative content from multiple textbooks. Here is the complete answer:

Glasgow Coma Scale (GCS) - Complete Guide for Surgery Students


History and Origin

The GCS was originally developed in 1974 by Graham Teasdale and Bryan Jennett at the University of Glasgow. It was designed as a reproducible, standardized tool for assessing the level of consciousness after brain injury - particularly traumatic brain injury (TBI).
  • Sabiston Textbook of Surgery, The Biological Basis of Modern Surgical Practice

The GCS: Three Components

The GCS scores three independent behavioural responses. The scores are added for a total of 3 to 15.

1. Eye Opening (E) - Maximum 4 points

ScoreResponse
4Opens spontaneously
3Opens to speech (verbal command)
2Opens to pain
1No eye opening

2. Verbal Response (V) - Maximum 5 points

ScoreResponse
5Oriented (knows who, where, when)
4Confused (speaks in sentences but disoriented)
3Inappropriate words (random, no conversation)
2Incomprehensible sounds (moans, grunts)
1No verbal response

3. Motor Response (M) - Maximum 6 points

ScoreResponse
6Obeys commands
5Localizes to painful stimulus (moves hand toward pain)
4Withdraws from pain (pulls away)
3Flexion to pain - Decorticate posturing (wrist/elbow flexion)
2Extension to pain - Decerebrate posturing (limb extension, internal rotation)
1No motor response
Memory tip: E4V5M6 = 15 = fully conscious. The motor score carries the most prognostic weight of the three components.
  • Sabiston Textbook of Surgery; Plum and Posner's Diagnosis and Treatment of Stupor and Coma; Schwartz's Principles of Surgery, 11th Ed.

TBI Severity Classification by GCS

GCS Total ScoreTBI Severity
13 - 15Mild TBI
9 - 12Moderate TBI
3 - 8Severe TBI
Critical threshold: GCS ≤ 8 = patient cannot protect their airway → requires immediate definitive airway (endotracheal intubation)
  • Tintinalli's Emergency Medicine; Current Surgical Therapy, 14th Ed.; Sabiston Textbook of Surgery

Special Notation: Intubated Patients

When a patient is intubated and verbal response cannot be assessed, the letter "T" is placed after the score:
  • Best possible score for an intubated patient = 10T (E4 + M6 + T)
  • Written as, e.g., 8T or GCS 8T
  • Schwartz's Principles of Surgery, 11th Ed.

How GCS is Used in Trauma (ATLS Context)

During the Primary Survey (D = Disability)

The GCS is assessed as part of "D - Disability" in the ATLS primary survey (ABCDE). Key rules:
  1. Assess GCS only after A, B, C are stabilized - a low GCS may simply reflect poor cerebral perfusion from haemorrhagic shock or hypoglycaemia, not brain injury
  2. Assess before giving sedatives or paralytics - medications confound the score
  3. If GCS ≤ 8 → plan and execute intubation carefully with attention to:
    • Adequate preoxygenation
    • Pre-intubation resuscitation (avoid hypotension)
    • Avoid hypoxia, hyperventilation (these cause secondary brain injury)

Repeated Assessment

The GCS is not a one-time score - it must be repeated serially:
  • Every 30 minutes in prehospital setting
  • With any change in mental status
  • A falling GCS indicates deterioration and demands urgent action
  • A rising GCS after resuscitation often means the initial depression was due to shock or hypoglycaemia, not TBI
"An initial depressed GCS may reflect true TBI severity, but it may also reflect haemorrhagic shock with poor perfusion to the brain or the impact of hypoglycaemia, seizure activity, sedatives, or other ingestions." - Sabiston Textbook of Surgery

Pupil Examination - Always Paired With GCS

In trauma, the GCS is always assessed together with pupil examination:
FindingInterpretation
Unilateral fixed, dilated pupilTranstentorial herniation (CN III compression) - surgical emergency
Bilateral fixed, dilated pupilsGlobal cerebral anoxia - dismal prognosis
Anisocoria (>1 mm difference)Rising ICP - reimaging needed
Normal pupils, depressed GCSTBI or metabolic/toxic cause
The cause of unilateral fixed dilated pupil in TBI = expanding epidural or subdural haematoma compressing CN III from above (uncal herniation).
  • Sabiston Textbook of Surgery

GCS and Secondary Brain Injury

Primary brain injury = direct mechanical damage at moment of trauma (irreversible).
Secondary brain injury = preventable, occurs hours later due to:
  • Hypoxia (SpO2 <90%)
  • Hypotension (SBP <100 mmHg in adults)
  • Hyperventilation / hypocarbia (causes cerebral vasoconstriction)
  • Hypoglycaemia
  • Seizures
  • Raised ICP
Goals for TBI patients in the ED/ICU:
ParameterTarget
SpO2≥90% prehospital / ≥94% ICU
SBP100-150 mmHg prehospital
ETCO235-40 mmHg (normal)
ICP<22 mmHg
CPP (cerebral perfusion pressure)60-70 mmHg
Temperature36-37.9°C
Blood glucose100-180 mg/dL
  • Sabiston Textbook of Surgery; Brain Trauma Foundation Guidelines

Cushing's Triad - Signs of Impending Herniation

When a patient has GCS <9 plus the following three signs, immediate hyperventilation (target ETCO2 30-35) is indicated as a bridge to surgery:
  1. Hypertension (rising BP)
  2. Bradycardia
  3. Irregular breathing
This is a medical emergency - likely uncal herniation from epidural/subdural haematoma. Urgent CT and neurosurgical evacuation required.

GCS in Scoring Systems

GCS is a component of multiple trauma outcome-prediction tools:
Scoring SystemWhat it does
RTS (Revised Trauma Score)Uses GCS + SBP + RR to predict survival
TRISS (Trauma and Injury Severity Score)Combines RTS + ISS + age
APACHE IIICU severity scoring (uses GCS)
ISS (Injury Severity Score)Uses AIS scores, anatomical injuries
  • Current Surgical Therapy, 14th Ed.

Paediatric GCS Modifications

In children under 4 years, verbal responses are modified:
ScoreVerbal (Child <4 yrs)Verbal (Infant)
5Oriented speech, interactsCoos, babbles
4Confused, consolableIrritable cry
3Inappropriate, inconsolableCries to pain
2Incomprehensible, agitatedMoans to pain
1No responseNo response
  • Tintinalli's Emergency Medicine, A Comprehensive Study Guide

Limitations of GCS

The GCS is a behavioural scale with several important limitations:
LimitationExplanation
Confounded by alcohol/drugsIntoxication mimics low GCS
Confounded by paralyticsCannot assess after RSI
Ocular traumaCannot assess eye opening
Spinal cord injuryCannot assess motor response accurately
Does not reflect pathophysiologyTwo patients with GCS 7 may have very different injuries
Poor granularity in mild TBINot designed for mTBI (GCS 13-15 range)
Serial natureDesigned for trend monitoring, less useful as a single-point value
"The motor score independently correlates with outcome, almost as well as the full score." - Tintinalli's Emergency Medicine

Quick Bedside Alternative: AVPU Scale

Used for rapid primary survey screening before calculating full GCS:
LetterMeaning
AAlert
VResponds to Voice
PResponds to Pain
UUnresponsive
AVPU "P" roughly corresponds to GCS ~8. AVPU "U" = GCS 3.
  • Plum and Posner's Diagnosis and Treatment of Stupor and Coma

Exam Summary Box

FeatureDetail
Developed1974, Glasgow, Teasdale & Jennett
Total range3 (worst) to 15 (best)
ComponentsEyes (4) + Verbal (5) + Motor (6)
Most prognostic componentMotor response
Severe TBIGCS 3-8
Moderate TBIGCS 9-12
Mild TBIGCS 13-15
Intubation thresholdGCS ≤8
Intubated notation"T" suffix (e.g., 8T)
When to assessAfter ABC stabilized, before sedatives
FrequencyEvery 30 min prehospital; with any change
Herniation signsUnequal/fixed-dilated pupils + falling GCS

Hypermetropia

Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
I now have good content from Kanski covering the correction of hypermetropia, the refractive procedures section, and the paediatric prescribing section. The library has scattered rather than a single dedicated hypermetropia chapter. I have enough from multiple authoritative sources (Kanski, Adams & Victor for accommodative esotropia) to compose a comprehensive answer. Let me now write the full response.

Hypermetropia (Hyperopia) - Complete Notes for Students


Definition

Hypermetropia (also called hyperopia or far-sightedness) is a refractive error in which parallel rays of light from a distant object, entering a relaxed (unaccommodated) eye, come to focus behind the retina rather than on it.
The word comes from Greek: hyper (over/beyond) + metron (measure) + ops (eye).

Basic Optics - Understanding the Problem

In a normal (emmetropic) eye, the total refracting power of the eye (cornea + lens) focuses parallel light rays exactly on the retina.
In hypermetropia, the focus point falls behind the retina because:
  • The eyeball is too short (axial hypermetropia - most common), OR
  • The cornea is too flat (reduced curvature), OR
  • The lens is too weak (reduced refracting power)
The result: the image formed on the retina is blurred.

Types of Hypermetropia

By Cause

TypeMechanism
AxialEyeball is shorter than normal (most common type)
CurvatureCornea or lens has reduced curvature (flatter than normal)
IndexRefractive index of lens is reduced (e.g. in diabetes)
PositionalLens displaced posteriorly
Absence of lensAphakia - extreme hypermetropia after lens removal

By Degree

GradeDiopters
Low (mild)Up to +2.00 D
Moderate+2.00 to +5.00 D
HighAbove +5.00 D

By Accommodation Status (Clinical Classification)

TypeMeaning
LatentOvercome entirely by accommodation; not revealed on standard refraction - only found on cycloplegic refraction
ManifestPart that cannot be overcome by accommodation (revealed by standard refraction)
FacultativePart of manifest hypermetropia that can still be overcome by accommodation (patient can see clearly but at cost of effort)
AbsoluteManifest hypermetropia that cannot be overcome even by maximum accommodation (patient always blurred)
TotalLatent + Manifest (only revealed under full cycloplegia)
Total = Latent + Manifest; Manifest = Facultative + Absolute

Role of Accommodation

Accommodation is the ability of the lens to increase its curvature (and thus its power) to bring near objects into focus. In young hypermetropes, the lens can accommodate to compensate for the refractive error:
  • A young hypermetrope uses accommodation to see distant objects clearly (uses up latent + facultative hypermetropia)
  • To see near objects, they must accommodate even more
  • Over time, accommodation becomes fatigued → symptoms appear
This is why young children are often asymptomatic despite significant hypermetropia - their powerful accommodation compensates. As the accommodative amplitude decreases with age (presbyopia), symptoms emerge.

Clinical Features / Symptoms

Asthenopia (Ocular Fatigue)

  • Headaches - especially frontal/brow, worse after near work (reading, computer, writing)
  • Eye strain, aching eyes
  • Blurring of vision after prolonged near work
  • Symptoms worse in the evening (fatigue)

Visual Symptoms

  • Near vision is blurred more than distance in moderate hypermetropia
  • In high hypermetropia: both near and distance vision are blurred
  • Difficulty maintaining clear vision for sustained reading

Convergence-Accommodation Link - Squint

  • To use accommodation, the eyes must also converge (accommodation-convergence reflex)
  • Excessive accommodation in hypermetropia drives excessive convergenceesotropia (convergent squint)
  • This is called accommodative esotropia - the most important clinical complication of uncorrected hypermetropia in children
"One type of esotropia, called accommodative esotropia, is an acquired problem in children that relates to hypermetropia (farsightedness) with compensatory engagement of the near response that drives the eyes to converge." - Adams and Victor's Principles of Neurology, 12th Ed.

Amblyopia

  • If accommodative esotropia is untreated, the deviating eye may develop amblyopia (lazy eye) - irreversible if not treated before age 7-8 (critical period of visual development)

Hypermetropia in Children - Special Considerations

  • Most newborns are hypermetropic (+2 to +3 D) - this is physiological
  • Hypermetropia may increase until age 6, then levels off between ages 6-8, and subsequently decreases (emmetropization)
  • Mild hypermetropia (up to ~3 D) in a child without squint or symptoms does NOT need correction - fully correcting it may actually interfere with normal emmetropization

When to Prescribe in Children

SituationAction
<4 D without squint, no symptomsUsually no correction needed
>4 D without squintGive two-thirds correction
Any hypermetropia + esotropia (squint)Full cycloplegic correction, even under age 2
Amblyopia riskCorrect and patch
Clinical tip: In the presence of esotropia, the full cycloplegic hypermetropic correction must be prescribed, even in infants under 2 years.
  • Kanski's Clinical Ophthalmology, 10th Ed.

Diagnosis

Subjective Refraction

  • Standard refraction using a trial frame / phoropter
  • Best corrected visual acuity (BCVA) with plus (+) lenses
  • Will only reveal manifest hypermetropia

Cycloplegic Refraction (Essential for Children)

  • Cycloplegic drops (e.g. cyclopentolate 1%, atropine 1%) paralyze the ciliary muscle → eliminates accommodation → reveals total hypermetropia (including latent component)
  • Mandatory in children because they have powerful accommodation that masks the true refractive error
  • The difference between cycloplegic and non-cycloplegic refraction = latent hypermetropia

Retinoscopy

  • Objective method using a retinoscope
  • Performed under cycloplegia in children
  • Hypermetropia shows "with" movement of the reflex

Corneal Topography

  • Assesses corneal curvature
  • Identifies curvature-based hypermetropia

Fundus Appearance in Hypermetropia

FeatureDescription
Small optic discAppears crowded/small (pseudo-papilloedema)
Disc hyperaemiaMay appear mildly pink/pink-red
Macular areaMay appear normal or with slight lustre
Cup:disc ratioSmall or absent cup
Important: The small, crowded disc in high hypermetropia can mimic papilloedema on fundoscopy - always differentiate by checking for raised ICP signs.

Complications of Uncorrected Hypermetropia

ComplicationMechanism
Accommodative esotropiaExcessive accommodation drives convergence
AmblyopiaFrom uncorrected esotropia or anisometropia
AsthenopiaChronic accommodative effort
Angle-closure glaucomaSmall hypermetropic eyes have shallow anterior chambers and narrow angles → predisposed to angle closure
Central serous chorioretinopathyMacular serous detachment can induce hypermetropia

Angle-Closure Glaucoma Link

  • Hypermetropic eyes are anatomically small → shallow anterior chamber → narrow iridocorneal angle
  • This predisposes to primary angle-closure glaucoma (PACG)
  • Classic: hypermetropic, older female, triggered by pupil dilation (dim light, drugs)
  • Presents with: severe eye pain, haloes around lights, headache, vomiting, rock-hard eye

Treatment / Correction

1. Spectacles (Glasses)

  • Convex (plus, converging) lenses are used
  • They converge light rays before entering the eye so that focus falls on (not behind) the retina
  • Plus lenses are written as +1.0, +2.5, etc.
  • Full correction may be given for adults; partial (two-thirds) correction in children without squint

2. Contact Lenses

  • Convex contact lenses (higher power than equivalent spectacle lens due to vertex distance)
  • Suitable for moderate-high hypermetropia
  • Improved cosmesis and wider visual field

3. Surgical Correction (Refractive Surgery)

ProcedureDetails
Surface ablation (PRK/LASEK)Corrects low degrees of hypermetropia
LASIKCan correct up to +4.00 D of hypermetropia
Conductive Keratoplasty (CK)Radiofrequency energy applied to corneal periphery → stromal shrinkage → steepens central cornea; corrects low-moderate hypermetropia; complications include regression and induced astigmatism
Clear Lens ExtractionRemoval of natural lens + implantation of intraocular lens (IOL); used for high hypermetropia
Phakic IOL implantLens inserted with natural lens in situ; for high refractive errors
"Intraocular surgical procedures are the only options for high degrees of refractive error."
  • Kanski's Clinical Ophthalmology, 10th Ed.

Hypermetropia vs. Myopia - Quick Comparison

FeatureHypermetropiaMyopia
Focus of imageBehind retinaIn front of retina
Eye sizeShort axial lengthLong axial length
Near visionMore affected (moderate)Better than distance
Distance visionMay be good (mild cases)Always blurred
Lens for correctionConvex (+) / PlusConcave (-) / Minus
Disc appearanceSmall, crowdedNormal to large
Anterior chamberShallowDeep
Glaucoma riskAngle-closureOpen-angle
Squint associationEsotropia (convergent)Exotropia (divergent)

Key Points for Exam (Homeopathy / BHMS Surgery & Ophthalmology)

  • Hypermetropia = light focuses behind retina
  • Caused most commonly by short axial length
  • Convex (+) lenses correct it
  • Young hypermetropes are asymptomatic due to powerful accommodation
  • Latent hypermetropia = overcome by accommodation; only seen on cycloplegic refraction
  • Cycloplegic refraction is mandatory in children (cyclopentolate/atropine)
  • Most common complication = accommodative esotropia → amblyopia if untreated
  • Predisposes to acute angle-closure glaucoma (shallow anterior chamber)
  • Surgical correction: LASIK up to +4 D; high degrees need IOL surgery
  • Most neonates are hypermetropic - normal, corrects with growth (emmetropization)
  • In esotropia: prescribe full cycloplegic correction, even in infants <2 years

Generate a quick reference PDF on refractive errors

Reading File
Running Command

mkdir -p /home/daytona/workspace/refractive-errors && ls /home/daytona/workspace…

Writing File

~/refractive-errors/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/refractive-errors/Refractive_Errors_Quick_Reference.pdf"

# ── Colour palette ──────────────────────────────────────────────
NAVY     = colors.HexColor("#1A3557")
TEAL     = colors.HexColor("#0D7377")
GOLD     = colors.HexColor("#F0A500")
LTBLUE   = colors.HexColor("#D6E8F7")
LTGREEN  = colors.HexColor("#D6F0E8")
LTYELLOW = colors.HexColor("#FFF8E1")
LTORANGE = colors.HexColor("#FDE8D8")
LTGRAY   = colors.HexColor("#F4F6F9")
WHITE    = colors.white
DARK     = colors.HexColor("#1C1C1C")
MIDGRAY  = colors.HexColor("#6B7280")

# ── Document ────────────────────────────────────────────────────
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm, leftMargin=1.8*cm,
    topMargin=1.5*cm, bottomMargin=1.5*cm,
    title="Refractive Errors – Quick Reference",
    author="Orris Medical Library"
)

# ── Styles ──────────────────────────────────────────────────────
base = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

TITLE = S("TITLE",
    fontSize=22, leading=28, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_CENTER)

SUBTITLE = S("SUBTITLE",
    fontSize=11, leading=16, textColor=LTBLUE,
    fontName="Helvetica", alignment=TA_CENTER)

H1 = S("H1",
    fontSize=13, leading=17, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_LEFT,
    spaceAfter=2)

H2 = S("H2",
    fontSize=11, leading=15, textColor=NAVY,
    fontName="Helvetica-Bold", alignment=TA_LEFT,
    spaceBefore=6, spaceAfter=3)

BODY = S("BODY",
    fontSize=9, leading=13, textColor=DARK,
    fontName="Helvetica", alignment=TA_JUSTIFY,
    spaceAfter=4)

SMALL = S("SMALL",
    fontSize=8, leading=11, textColor=DARK,
    fontName="Helvetica")

BOLD_SMALL = S("BOLD_SMALL",
    fontSize=8.5, leading=12, textColor=NAVY,
    fontName="Helvetica-Bold")

TIP = S("TIP",
    fontSize=8.5, leading=12, textColor=colors.HexColor("#7B3F00"),
    fontName="Helvetica-BoldOblique")

CELL = S("CELL",
    fontSize=8, leading=11, textColor=DARK, fontName="Helvetica")

CELLB = S("CELLB",
    fontSize=8, leading=11, textColor=NAVY, fontName="Helvetica-Bold")

HCELL = S("HCELL",
    fontSize=8.5, leading=12, textColor=WHITE, fontName="Helvetica-Bold")

PAGE_W = A4[0] - 3.6*cm   # usable width

# ── Helper: section header banner ───────────────────────────────
def section_banner(text, bg=NAVY):
    data = [[Paragraph(text, H1)]]
    t = Table(data, colWidths=[PAGE_W])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("ROUNDEDCORNERS", [4]),
    ]))
    return t

# ── Helper: coloured info box ────────────────────────────────────
def info_box(title, lines, bg=LTBLUE, title_color=NAVY):
    title_style = S("ib_title", fontSize=9, leading=12,
                    textColor=title_color, fontName="Helvetica-Bold")
    body_style  = S("ib_body",  fontSize=8.5, leading=12,
                    textColor=DARK, fontName="Helvetica")
    content = [Paragraph(title, title_style)]
    for line in lines:
        content.append(Paragraph(line, body_style))
    data = [[c] for c in content]
    t = Table([[Paragraph(title, title_style)]] +
              [[Paragraph(l, body_style)] for l in lines],
              colWidths=[PAGE_W])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (-1,-1), bg),
        ("TOPPADDING",    (0,0), (0,0),   6),
        ("BOTTOMPADDING", (0,-1),(-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
        ("LINEBELOW",     (0,0), (-1,0),  0.5, title_color),
    ]))
    return t

# ── Helper: standard table ───────────────────────────────────────
def std_table(headers, rows, col_widths, bg_header=NAVY, alt=LTGRAY):
    header_row = [Paragraph(h, HCELL) for h in headers]
    data = [header_row]
    for i, row in enumerate(rows):
        styled = [Paragraph(str(c), CELL) for c in row]
        data.append(styled)
    t = Table(data, colWidths=col_widths, repeatRows=1)
    style = [
        ("BACKGROUND",    (0,0),  (-1,0),  bg_header),
        ("TOPPADDING",    (0,0),  (-1,-1), 5),
        ("BOTTOMPADDING", (0,0),  (-1,-1), 5),
        ("LEFTPADDING",   (0,0),  (-1,-1), 6),
        ("RIGHTPADDING",  (0,0),  (-1,-1), 6),
        ("GRID",          (0,0),  (-1,-1), 0.4, colors.HexColor("#C5D5E8")),
        ("ROWBACKGROUNDS",(0,1),  (-1,-1), [WHITE, alt]),
        ("VALIGN",        (0,0),  (-1,-1), "TOP"),
    ]
    t.setStyle(TableStyle(style))
    return t

# ════════════════════════════════════════════════════════════════
# BUILD STORY
# ════════════════════════════════════════════════════════════════
story = []

# ── COVER BANNER ────────────────────────────────────────────────
cover_data = [[
    Paragraph("REFRACTIVE ERRORS", TITLE),
    Paragraph("Quick Reference Guide  •  Ophthalmology", SUBTITLE),
    Paragraph("Myopia  •  Hypermetropia  •  Astigmatism  •  Presbyopia", SUBTITLE),
]]
cover = Table([[
    Paragraph("REFRACTIVE ERRORS", TITLE),
],
[
    Paragraph("Quick Reference Guide  •  Ophthalmology", SUBTITLE),
],
[
    Paragraph("Myopia  •  Hypermetropia  •  Astigmatism  •  Presbyopia", SUBTITLE),
]], colWidths=[PAGE_W])
cover.setStyle(TableStyle([
    ("BACKGROUND",    (0,0), (-1,-1), NAVY),
    ("TOPPADDING",    (0,0), (-1,0),  18),
    ("BOTTOMPADDING", (0,-1),(-1,-1), 18),
    ("LEFTPADDING",   (0,0), (-1,-1), 16),
    ("RIGHTPADDING",  (0,0), (-1,-1), 16),
    ("ROUNDEDCORNERS",[6]),
]))
story.append(cover)
story.append(Spacer(1, 0.35*cm))

# ── DEFINITION BOX ──────────────────────────────────────────────
defn_rows = [
    ["Emmetropia",   "Normal eye – parallel rays focus exactly on retina at rest"],
    ["Ametropia",    "Any refractive error (myopia, hypermetropia, astigmatism)"],
    ["Accommodation","Ability of lens to increase power (increase curvature) for near vision"],
    ["Dioptre (D)",  "Unit of lens power = 1 / focal length in metres"],
]
story.append(section_banner("▸  KEY DEFINITIONS"))
story.append(Spacer(1, 0.15*cm))
story.append(std_table(
    ["Term", "Meaning"],
    defn_rows,
    [4.5*cm, PAGE_W - 4.5*cm],
    bg_header=TEAL
))
story.append(Spacer(1, 0.35*cm))

# ════════════════════════════════════════════
# SECTION 1 – MYOPIA
# ════════════════════════════════════════════
story.append(section_banner("1.  MYOPIA  (Short-sightedness / Near-sightedness)", bg=colors.HexColor("#1A3557")))
story.append(Spacer(1, 0.15*cm))

story.append(Paragraph("Definition & Optics", H2))
story.append(Paragraph(
    "Parallel rays of light focus <b>in front of</b> the retina in a relaxed eye. "
    "The eye is optically <b>too powerful</b> for its axial length (long eye or steep cornea). "
    "Near objects can be seen clearly; distance vision is blurred.",
    BODY))

story.append(Paragraph("Types by Cause", H2))
myopia_types = [
    ["Axial", "Eyeball too long (most common)"],
    ["Curvature", "Cornea / lens too curved (steep)"],
    ["Index", "Higher refractive index of lens (e.g. nuclear sclerotic cataract – 'second sight')"],
    ["Positional", "Lens displaced anteriorly"],
]
story.append(std_table(["Type", "Mechanism"], myopia_types,
    [3.5*cm, PAGE_W-3.5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Degrees of Myopia", H2))
myopia_deg = [
    ["Low (mild)",    "Up to −3.00 D"],
    ["Moderate",      "−3.00 D to −6.00 D"],
    ["High (pathological)", "Greater than −6.00 D – risk of complications"],
]
story.append(std_table(["Grade", "Dioptre Range"], myopia_deg,
    [4.5*cm, PAGE_W-4.5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Clinical Features", H2))
myopia_cf = [
    ["Blurred distance vision", "Near vision unaffected (or better than average)"],
    ["Squinting / half-closing eyes", "To reduce circle of confusion"],
    ["Large eyes / prominent globes", "In high axial myopia"],
    ["Fundus: large disc, temporal crescent", "Peripapillary atrophy, pale disc"],
    ["Posterior staphyloma", "Outpouching of posterior sclera in pathological myopia"],
]
story.append(std_table(["Feature", "Notes"], myopia_cf,
    [5*cm, PAGE_W-5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Complications (High Myopia)", H2))
myopia_comp = [
    ["Retinal detachment", "Vitreous traction on peripheral retina → tears → detachment"],
    ["Lattice degeneration", "Peripheral retinal thinning → predisposes to breaks"],
    ["Posterior staphyloma", "Ectasia of posterior segment"],
    ["Choroidal neovascularisation (CNV)", "Subretinal membrane → vision loss"],
    ["Open-angle glaucoma", "Increased susceptibility"],
    ["Cataract (nuclear)", "Earlier onset in pathological myopia"],
    ["Macular haemorrhage (Fuchs spot)", "Subretinal haemorrhage at macula"],
]
story.append(std_table(["Complication", "Mechanism / Note"], myopia_comp,
    [5.5*cm, PAGE_W-5.5*cm], bg_header=colors.HexColor("#8B0000")))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Correction / Treatment", H2))
myopia_rx = [
    ["Spectacles", "Concave (−) / diverging lenses"],
    ["Contact lenses", "Concave contact lenses"],
    ["LASIK", "Laser ablates central cornea to flatten it; most common refractive surgery"],
    ["PRK / LASEK", "Surface ablation – good for thin corneas"],
    ["Phakic IOL (ICL)", "Implantable collamer lens (−3 to −20.5 D); for high myopia"],
    ["Radial keratotomy (RK)", "Historical; incisions flatten cornea"],
    ["Orthokeratology", "Rigid contact lenses worn overnight to reshape cornea temporarily"],
]
story.append(std_table(["Method", "Details"], myopia_rx,
    [4*cm, PAGE_W-4*cm], bg_header=TEAL))
story.append(Spacer(1, 0.15*cm))
story.append(info_box("⚠  Key Clinical Point",
    ["Concave (minus/diverging) lenses are used for myopia. In retinoscopy, myopia shows an AGAINST movement of the reflex."],
    bg=LTYELLOW, title_color=colors.HexColor("#7B3F00")))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 2 – HYPERMETROPIA
# ════════════════════════════════════════════
story.append(section_banner("2.  HYPERMETROPIA  (Hyperopia / Far-sightedness)", bg=TEAL))
story.append(Spacer(1, 0.15*cm))

story.append(Paragraph("Definition & Optics", H2))
story.append(Paragraph(
    "Parallel rays of light focus <b>behind</b> the retina in a relaxed eye. "
    "The eye is optically <b>too weak</b> for its axial length (short eye or flat cornea). "
    "Near vision is affected more than distance in moderate cases; both are blurred in high hypermetropia.",
    BODY))

story.append(Paragraph("Types by Accommodation Status", H2))
hyp_types = [
    ["Latent",      "Overcome entirely by accommodation; revealed only on cycloplegic refraction"],
    ["Manifest",    "Cannot be overcome by max accommodation (= Facultative + Absolute)"],
    ["Facultative", "Part of manifest that CAN still be overcome by accommodation"],
    ["Absolute",    "Cannot be overcome even by maximum accommodation"],
    ["Total",       "Latent + Manifest (only seen under full cycloplegia)"],
]
story.append(std_table(["Type", "Description"], hyp_types,
    [3.5*cm, PAGE_W-3.5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph("Formula: Total = Latent + Manifest;   Manifest = Facultative + Absolute", BOLD_SMALL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Clinical Features", H2))
hyp_cf = [
    ["Asthenopia", "Frontal headache, eye-strain, worse after near work / end of day"],
    ["Blurred near vision", "More affected than distance in moderate hypermetropia"],
    ["Both near & distance blurred", "In high hypermetropia (accommodation exhausted)"],
    ["Accommodative esotropia", "Excessive accommodation drives convergence → convergent squint"],
    ["Amblyopia", "From untreated esotropia or anisometropia"],
    ["Small crowded optic disc", "Pseudo-papilloedema appearance on fundoscopy"],
    ["Shallow anterior chamber", "Predisposes to angle-closure glaucoma"],
]
story.append(std_table(["Feature", "Notes"], hyp_cf,
    [5*cm, PAGE_W-5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Hypermetropia in Children", H2))
hyp_kids = [
    ["Birth", "Most neonates are hypermetropic (+2 to +3 D) – physiological"],
    ["Up to age 6", "Hypermetropia may increase (emmetropization process)"],
    ["Age 6–8", "Levels off; decreases thereafter"],
    ["<4 D without squint", "Generally NOT corrected unless symptomatic"],
    [">4 D without squint", "Give two-thirds correction"],
    ["Any + esotropia", "Full cycloplegic correction, even under age 2"],
]
story.append(std_table(["Age / Situation", "Action / Note"], hyp_kids,
    [5*cm, PAGE_W-5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.15*cm))
story.append(info_box("⚠  Key Clinical Point",
    ["Cycloplegic refraction (cyclopentolate/atropine) is MANDATORY in children to reveal total hypermetropia including the latent component. Convex (+/plus) lenses correct hypermetropia. Retinoscopy shows a WITH movement."],
    bg=LTGREEN, title_color=TEAL))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Correction / Treatment", H2))
hyp_rx = [
    ["Spectacles", "Convex (+) / converging lenses"],
    ["Contact lenses", "Plus contact lenses"],
    ["Surface ablation (PRK/LASEK)", "Corrects low degrees"],
    ["LASIK", "Up to +4.00 D"],
    ["Conductive keratoplasty (CK)", "RF energy to corneal periphery → steepens centre; low-moderate hypermetropia; regression common"],
    ["Clear lens extraction + IOL", "High hypermetropia; IOL replaces natural lens"],
    ["Phakic IOL", "For high refractive errors; natural lens retained"],
]
story.append(std_table(["Method", "Details"], hyp_rx,
    [4.5*cm, PAGE_W-4.5*cm], bg_header=TEAL))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 3 – ASTIGMATISM
# ════════════════════════════════════════════
story.append(section_banner("3.  ASTIGMATISM", bg=colors.HexColor("#2E6B3E")))
story.append(Spacer(1, 0.15*cm))

story.append(Paragraph("Definition & Optics", H2))
story.append(Paragraph(
    "The cornea (or lens) has <b>different curvatures in different meridians</b>. "
    "Light rays in different planes come to focus at different points, producing a blurred or distorted image at all distances. "
    "Instead of a point focus, two focal lines (focal conoid of Sturm) are formed.",
    BODY))

story.append(Paragraph("Types of Astigmatism", H2))
astig_types = [
    ["Regular", "Principal meridians are 90° apart; correctable with cylindrical lenses"],
    ["Irregular", "Meridians not perpendicular (e.g. keratoconus, corneal scar); NOT correctable with standard lenses – needs RGP contact lenses"],
    ["With-the-rule (WTR)", "Vertical meridian steeper (more powerful); corrected with plus cylinder at 90°; common in young"],
    ["Against-the-rule (ATR)", "Horizontal meridian steeper; corrected with plus cylinder at 180°; common in elderly"],
    ["Oblique", "Principal meridians between 30°–60° and 120°–150°"],
]
story.append(std_table(["Type", "Description"], astig_types,
    [4*cm, PAGE_W-4*cm], bg_header=colors.HexColor("#2E6B3E")))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Types by Refraction (Lenses Required)", H2))
astig_refr = [
    ["Simple myopic",       "One meridian emmetropic, other myopic – one plane focused on retina, other in front"],
    ["Simple hypermetropic","One meridian emmetropic, other hypermetropic"],
    ["Compound myopic",     "Both meridians myopic but different degrees"],
    ["Compound hypermetropic","Both meridians hypermetropic but different degrees"],
    ["Mixed",               "One meridian myopic, other hypermetropic – focal lines on either side of retina"],
]
story.append(std_table(["Type", "Description"], astig_refr,
    [5*cm, PAGE_W-5*cm], bg_header=colors.HexColor("#2E6B3E")))
story.append(Spacer(1, 0.2*cm))

story.append(Paragraph("Clinical Features & Correction", H2))
astig_cf = [
    ["Blurred vision at all distances", "Both near and far affected"],
    ["Distorted / tilted appearance", "Objects may appear stretched"],
    ["Asthenopia and headaches", "Effort to compensate"],
    ["Head tilting", "To align principal meridian for better focus"],
    ["Spectacles", "Cylindrical lenses (spherocylindrical prescription)"],
    ["Contact lenses", "Toric (hard RGP) lenses; RGP mandatory for irregular astigmatism"],
    ["LASIK / PRK", "For regular astigmatism"],
    ["Limbal relaxing incisions", "Surgical correction of corneal astigmatism"],
]
story.append(std_table(["Feature / Treatment", "Notes"], astig_cf,
    [5.5*cm, PAGE_W-5.5*cm], bg_header=colors.HexColor("#2E6B3E")))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 4 – PRESBYOPIA
# ════════════════════════════════════════════
story.append(section_banner("4.  PRESBYOPIA  (Age-related loss of accommodation)", bg=colors.HexColor("#6B4226")))
story.append(Spacer(1, 0.15*cm))

story.append(Paragraph("Definition & Mechanism", H2))
story.append(Paragraph(
    "Progressive, age-related <b>loss of accommodative amplitude</b> due to "
    "hardening (sclerosis) of the crystalline lens and weakening of ciliary muscle. "
    "The lens loses its elasticity and cannot change shape to focus near objects. "
    "Onset typically around <b>40–45 years</b>.",
    BODY))

presbyopia_data = [
    ["Onset", "~40–45 years; earlier in hypermetropes, later in myopes"],
    ["Mechanism", "Lens nucleus sclerosis → reduced elasticity → cannot accommodate"],
    ["Symptom", "Difficulty reading fine print; holds reading material further away ('arm's length reading')"],
    ["Associated", "Frontal headache after near work; need for brighter light"],
    ["Correction", "Convex (+) reading glasses (addition over distance correction)"],
    ["Addition power", "+1.00 D at 40 yrs → gradually increases to +3.00 D by age 60"],
    ["Bifocals", "Distance correction above + reading addition below in same lens"],
    ["Progressive lenses", "Gradual power change from distance to near; no visible line"],
    ["Reading glasses", "For emmetropes or those who remove distance glasses to read"],
    ["Surgical options", "Monovision LASIK, conductive keratoplasty, accommodating IOL, EDOF IOL"],
]
story.append(std_table(["Parameter", "Detail"], presbyopia_data,
    [4*cm, PAGE_W-4*cm], bg_header=colors.HexColor("#6B4226")))
story.append(Spacer(1, 0.15*cm))
story.append(info_box("📌  Clinical Note on Presbyopia",
    ["Myopes may appear to develop presbyopia later because they remove their distance glasses to read. A new hypermetrope presenting after age 40 may appear to have suddenly developed presbyopia – the previously latent hypermetropia is now unmasked as accommodative amplitude decreases."],
    bg=LTORANGE, title_color=colors.HexColor("#7B3F00")))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 5 – COMPARISON TABLE
# ════════════════════════════════════════════
story.append(section_banner("5.  COMPARISON AT A GLANCE", bg=NAVY))
story.append(Spacer(1, 0.15*cm))

comp_headers = ["Feature", "Myopia", "Hypermetropia", "Astigmatism", "Presbyopia"]
comp_rows = [
    ["Focus",           "In front of retina",       "Behind retina",         "Two focal lines",           "Behind retina (near)"],
    ["Eye size",        "Long axial length",         "Short axial length",    "Normal / abnormal cornea",  "Normal"],
    ["Near vision",     "Clear",                     "Blurred (moderate)",    "Blurred",                   "Blurred"],
    ["Distance vision", "Blurred",                   "Clear (mild/moderate)", "Blurred",                   "Clear"],
    ["Correction lens", "Concave (−)",               "Convex (+)",            "Cylindrical (±)",           "Convex (+) addition"],
    ["Retinoscopy",     "Against movement",          "With movement",         "Scissors / mixed",          "With movement (near)"],
    ["Squint risk",     "Exotropia",                 "Esotropia",             "Amblyopia risk",            "None"],
    ["Glaucoma risk",   "Open-angle ↑",              "Angle-closure ↑",       "Variable",                  "Low"],
    ["Fundus",          "Large disc, staphyloma",    "Small crowded disc",    "Usually normal",            "Normal"],
    ["Onset",           "Childhood/teens",           "Birth (physiological)", "Any age",                   "~40–45 years"],
]
col_w = [3.8*cm, 3.3*cm, 3.5*cm, 3.3*cm, 3.3*cm]
story.append(std_table(comp_headers, comp_rows, col_w, bg_header=NAVY))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 6 – ANISOMETROPIA
# ════════════════════════════════════════════
story.append(section_banner("6.  ANISOMETROPIA & ANISEIKONIA", bg=colors.HexColor("#4A235A")))
story.append(Spacer(1, 0.15*cm))
aniso = [
    ["Anisometropia", "Unequal refractive error between the two eyes (>1 D difference)"],
    ["Significance", "Leads to unequal retinal image size → fusion difficulty → suppression → amblyopia"],
    ["Amblyopia risk", "High in children; >2.5 D anisometropia = significant risk"],
    ["Treatment", "Full correction of the difference; patching of dominant eye; atropine penalisation"],
    ["Aniseikonia", "Unequal image size perceived by the two eyes; worsened by spectacles in high anisometropia"],
    ["Contact lens advantage", "Reduce aniseikonia compared to spectacles (less vertex distance magnification difference)"],
]
story.append(std_table(["Term / Feature", "Description"], aniso,
    [4.5*cm, PAGE_W-4.5*cm], bg_header=colors.HexColor("#4A235A")))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 7 – REFRACTIVE SURGERY OVERVIEW
# ════════════════════════════════════════════
story.append(section_banner("7.  REFRACTIVE SURGERY – OVERVIEW", bg=colors.HexColor("#0D4C6E")))
story.append(Spacer(1, 0.15*cm))

surg_rows = [
    ["LASIK", "Flap + excimer laser ablation of stroma", "Myopia, hypermetropia, astigmatism", "Dry eye, flap complications, ectasia"],
    ["LASEK / PRK", "Surface ablation; epithelium removed/replaced", "Myopia (thin corneas)", "Slower recovery, haze"],
    ["SMILE", "Flapless – lenticule extracted through small incision", "Myopia, mild astigmatism", "Limited hypermetropia correction"],
    ["Phakic IOL (ICL)", "Lens implanted in front of natural lens", "High myopia/hypermetropia", "Cataract, uveitis, angle closure"],
    ["Clear lens extraction", "Natural lens removed, IOL implanted", "High hypermetropia; presbyopia", "Retinal detachment risk (myopia)"],
    ["Conductive keratoplasty", "RF energy to corneal periphery", "Low–moderate hypermetropia; presbyopia", "Regression, induced astigmatism"],
    ["Limbal relaxing incisions", "Arcuate corneal incisions", "Corneal astigmatism", "Under/overcorrection"],
]
story.append(std_table(
    ["Procedure", "Mechanism", "Indications", "Complications"],
    surg_rows,
    [3*cm, 4*cm, 4.5*cm, PAGE_W-11.5*cm],
    bg_header=colors.HexColor("#0D4C6E")
))
story.append(Spacer(1, 0.4*cm))

# ════════════════════════════════════════════
# SECTION 8 – EXAM HIGH-YIELD POINTS
# ════════════════════════════════════════════
story.append(section_banner("8.  HIGH-YIELD EXAM POINTS", bg=colors.HexColor("#8B0000")))
story.append(Spacer(1, 0.15*cm))

exam_rows = [
    ["Myopia correction", "Concave / minus / diverging lens"],
    ["Hypermetropia correction", "Convex / plus / converging lens"],
    ["Presbyopia correction", "Convex (+) addition (bifocals / reading glasses)"],
    ["Astigmatism correction", "Cylindrical lens; toric contact lens"],
    ["Irregular astigmatism correction", "Rigid gas-permeable (RGP) contact lenses only"],
    ["Retinoscopy: myopia reflex", "AGAINST movement"],
    ["Retinoscopy: hypermetropia reflex", "WITH movement"],
    ["Cycloplegia mandatory", "Children – to reveal latent hypermetropia"],
    ["Cycloplegic drug used", "Cyclopentolate 1% (children); Atropine 1% (young children)"],
    ["Hypermetropia → squint type", "Esotropia (convergent squint)"],
    ["Myopia → squint type", "Exotropia (divergent squint)"],
    ["Hypermetropia → glaucoma type", "Angle-closure glaucoma (shallow AC)"],
    ["Myopia → glaucoma type", "Open-angle glaucoma"],
    ["High myopia: lethal complication", "Retinal detachment, macular degeneration"],
    ["Accommodation formula", "Total H = Latent + Manifest; Manifest = Facultative + Absolute"],
    ["Presbyopia onset", "~40–45 years; due to lens sclerosis"],
    ["LASIK limit for hypermetropia", "Up to +4.00 D"],
    ["Neonates: default refraction", "Hypermetropic (+2 to +3 D) – physiological"],
    ["Emmetropization", "Process by which the eye grows to become emmetropic; complete ~age 6–8"],
    ["Second sight in myopia", "Nuclear cataract increases lens index → induced myopia → patient reads without glasses temporarily"],
    ["Aphakia", "Absence of lens → extreme hypermetropia; corrected with thick (+10 to +13 D) lenses or IOL"],
    ["Pseudophakia", "Artificial IOL in place of natural lens"],
]
story.append(std_table(
    ["Topic", "Key Fact"],
    exam_rows,
    [6*cm, PAGE_W-6*cm],
    bg_header=colors.HexColor("#8B0000")
))
story.append(Spacer(1, 0.3*cm))

# ── FOOTER NOTE ─────────────────────────────────────────────────
footer_style = S("FOOTER",
    fontSize=7.5, leading=11, textColor=MIDGRAY,
    fontName="Helvetica-Oblique", alignment=TA_CENTER)
story.append(HRFlowable(width=PAGE_W, thickness=0.5, color=MIDGRAY))
story.append(Spacer(1, 0.1*cm))
story.append(Paragraph(
    "Sources: Kanski's Clinical Ophthalmology 10th Ed. • Adams & Victor's Principles of Neurology 12th Ed. • "
    "Plum & Posner's Diagnosis and Treatment of Stupor and Coma  |  "
    "Generated by Orris Medical Library · For educational use only",
    footer_style
))

# ── BUILD ────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
Running Command

python3 /home/daytona/workspace/refractive-errors/generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/refractive-errors/

Your PDF is ready! Here's the download link:

Refractive Errors Quick Reference

PDF Document · PDF


What's inside the PDF (8 colour-coded sections):
SectionContent
Key DefinitionsEmmetropia, ametropia, accommodation, dioptre
MyopiaTypes, degrees, features, complications, correction
HypermetropiaAccommodation types (latent/manifest/absolute), paediatric prescribing, correction
AstigmatismRegular vs irregular, WTR/ATR, refractive subtypes, correction
PresbyopiaMechanism, addition power progression, correction options
Comparison TableAll 4 conditions side-by-side (lens type, squint risk, glaucoma, fundus, onset)
Anisometropia & AniseikoniaDefinition, amblyopia risk, contact lens advantage
Refractive SurgeryLASIK, PRK, SMILE, ICL, CK - indications and complications
22 High-Yield Exam PointsRapid-fire key facts table for exams
Sources: Kanski's Clinical Ophthalmology 10th Ed., Adams & Victor's Principles of Neurology 12th Ed., Plum & Posner's Stupor and Coma.
This is a shared conversation. Sign in to Orris to start your own chat.