Describe Lakshanas and Chikitsa of Shushkaskhipaka. Explain Structure of Tear Film: Etiology, Clinical Features, and Management of Dry Eye Syndrome and Computer vision
Shushkakshipaka Ayurveda Lakshanas Chikitsa dry eye
https://pmc.ncbi.nlm.nih.gov/articles/PMC4649572
computer vision syndrome digital eye strain symptoms management 2024
| Lakshana | Meaning |
|---|---|
| Gharsha | Grittiness, sandpaper-like foreign body sensation |
| Thoda | Pricking pain in the eye |
| Bheda | Splitting/tearing pain |
| Shushkata | Dryness of the eye |
| Rookshata of Vartma | Dryness of the eyelids |
| Krichronmeelana | Difficulty in opening the eye (especially after sleep) |
| Upadeha | Stickiness/crusting of the eyelids |
| Photophobia | Intolerance to light |
| Lakshana | Meaning |
|---|---|
| Paka | Inflammation, redness of the eye |
| Daha | Burning sensation |
| Shyavata / Raktata | Redness of conjunctiva |
| Ashru hrasa | Reduced/deranged tear secretion |
| Swelling of Vartma | Eyelid swelling |
| Visual disturbance | Transiently blurred vision |
| Treatment | Description |
|---|---|
| Snehapana | Oral administration of medicated ghee (sneha) to pacify Vata-Pitta and nourish Ashru |
| Nasya Karma | Medicated nasal instillation - stimulates lacrimal reflex, reduces doshic vitiation |
| Basti Chikitsa | Medicated enema - the primary Vata-pacifying procedure; systemic Vata control reduces dryness |
| Rasayana | Rejuvenative/adaptogenic herbs (e.g., Amalaki, Ashwagandha) taken orally for long-term restoration |
| Virechana | Therapeutic purgation when Pitta dominance is significant |
| Procedure | Description |
|---|---|
| Seka / Netra Parisheka | Closed-eye irrigation with medicated decoctions or oils; enhances tear film stability; shown clinically equivalent to artificial tear drops (CMC) |
| Ashchyotana | Medicated eye drops - analogous to modern topical lubricants |
| Tarpana | Pooling of medicated ghee in an eye cup formed around the orbit; deeply nourishing for the ocular surface and tear-secreting glands |
| Snehana Putapaka | Expressed juice of medicated ingredients; used when Tarpana alone is insufficient |
| Snehana Anjana (Keshanjana) | Lubricating collyrium applied to the eyelids; Keshanjana specifically is a preparation with hair-derived ingredients shown in clinical trials to provide significant relief in foreign body sensation, burning, dryness, photophobia, and improved Schirmer test/TBUT scores |
| Vidalaka | Application of medicated paste over closed eyelids |

| Test | Normal | Abnormal |
|---|---|---|
| Schirmer Test (unanesthetized) | ≥15 mm / 5 min | <15 mm |
| Schirmer Test (anesthetized - basal) | >10 mm / 5 min | ≤5 mm |
| Tear Break-Up Time (TBUT) | >10 seconds | <10 seconds |
| Tear Meniscus Height | ≥0.5 mm, convex | Reduced/flat |
| Tear Osmolarity | Normal | Elevated |
| MMP-9 (InflammaDry) | Negative | Positive (≥40 ng/mL) |
| Tear Lactoferrin | Normal | Low = aqueous-deficient |
| Staining (fluorescein/rose Bengal) | Absent | Punctate staining |
| Measure | Recommendation |
|---|---|
| Monitor position | Screen center 15-20° below eye level; distance ~50-70 cm (arm's length) |
| Room lighting | Reduce glare; avoid screen brighter than surroundings; anti-glare screen filters |
| Monitor settings | Increase text size; adjust brightness/contrast; blue-light filter in evenings |
| Posture | Sit upright; do not crane neck forward; lumbar support |
| Feature | Shushkakshipaka (Ayurveda) | Dry Eye Syndrome (Modern) | Computer Vision Syndrome |
|---|---|---|---|
| Cause | Vata-Pitta vitiation affecting Ashru | Aqueous deficiency / Evaporative | Prolonged digital screen use |
| Key Symptom | Gharsha, Shushkata, Daha, Paka | Burning, dryness, FB sensation | Eye strain, dryness, headache, neck pain |
| Diagnosis | Clinical lakshanas + Dosha assessment | TBUT, Schirmer, osmolarity | Clinical history + ergonomic assessment |
| Treatment | Tarpana, Keshanjana, Parisheka, Nasya, Basti, Rasayana | Artificial tears, cyclosporine, punctal occlusion, surgery | 20-20-20 rule, lubricants, ergonomics, corrected refraction |
| Prognosis | Sadhya (curable) per Ayurveda | Chronic; manageable | Reversible if habits corrected |
.
Describe Lakshanas and Chikitsa of Shushkaskhipaka. Explain Structure of Tear Film: Etiology, Clinical Features, and Management of Dry Eye Syndrome and Computer vision
| Lakshana | Meaning |
|---|---|
| Gharsha | Grittiness / foreign body sensation |
| Thoda | Pricking pain |
| Bheda | Splitting/tearing pain |
| Shushkata | Dryness of the eye |
| Rookshata of Vartma | Dryness of eyelids |
| Krichronmeelana | Difficulty opening the eye (esp. after sleep) |
| Upadeha | Stickiness/crusting of eyelids |
| Daha | Burning sensation |
| Paka | Inflammation / redness |
| Shyavata/Raktata | Redness of conjunctiva |
| Ashru Hrasa | Reduced/deranged tear secretion |
| Photophobia | Intolerance to light |
| Visual disturbance | Transient blurred vision |
| Treatment | Description |
|---|---|
| Snehapana | Oral medicated ghee - nourishes Ashru, pacifies Vata-Pitta |
| Nasya Karma | Medicated nasal instillation - stimulates lacrimal reflex |
| Basti Chikitsa | Medicated enema - primary Vata-pacifying procedure |
| Virechana | Therapeutic purgation - when Pitta dominates |
| Rasayana | Rejuvenative herbs (Amalaki, Ashwagandha) - long-term restoration |
| Procedure | Description |
|---|---|
| Tarpana | Pooling of medicated ghee in an eye cup around the orbit - deeply nourishing |
| Netra Parisheka / Seka | Closed-eye irrigation with medicated decoctions - clinically shown equivalent to artificial tears (CMC) |
| Ashchyotana | Medicated eye drops |
| Keshanjana | Lubricating collyrium applied to lids - significant relief in burning, dryness, FB sensation, photophobia, improved Schirmer/TBUT |
| Snehana Putapaka | Expressed medicated juice - used when Tarpana is insufficient |
| Vidalaka | Medicated paste applied over closed eyelids |

| Test | Normal | Abnormal |
|---|---|---|
| Schirmer I (unanesthetized) | ≥15 mm/5 min | <15 mm |
| Schirmer I (anesthetized/basal) | >10 mm/5 min | ≤5 mm |
| Tear Break-Up Time (TBUT) | >10 seconds | <10 sec |
| Tear Meniscus Height | ≥0.5 mm | Reduced |
| Tear Osmolarity | Normal | Elevated |
| MMP-9 (InflammaDry) | Negative | Positive ≥40 ng/mL |
| Tear Lactoferrin | Normal | Low = aqueous-deficient |
| Fluorescein/Rose Bengal staining | Absent | Punctate staining |
| Measure | Recommendation |
|---|---|
| Monitor position | Center 15-20° below eye level; 50-70 cm distance |
| Lighting | Reduce glare; anti-glare screen filters |
| Monitor settings | Increase text size; reduce brightness; blue-light filter |
| Posture | Sit upright; lumbar support; do not crane neck |
| Feature | Shushkakshipaka | Dry Eye Syndrome | Computer Vision Syndrome |
|---|---|---|---|
| Cause | Vata-Pitta vitiation, Ashru depletion | Aqueous deficiency / Evaporative | Prolonged digital screen use |
| Key symptom | Gharsha, Shushkata, Paka | Burning, dryness, FB sensation | Eye strain, dryness, headache, neck pain |
| Diagnosis | Clinical Lakshanas + Dosha assessment | TBUT, Schirmer, osmolarity | Clinical history + ergonomic assessment |
| Treatment | Tarpana, Keshanjana, Parisheka, Nasya, Basti, Rasayana | Artificial tears, cyclosporine, punctal occlusion | 20-20-20, lubricants, ergonomics, corrected refraction |
| Prognosis | Sadhya (curable) | Chronic; manageable | Reversible if habits corrected |
Aha make it easy bruh pls 🥀
| Symptom | Simple meaning |
|---|---|
| Gharsha | Gritty / sandy feeling |
| Thoda | Pricking pain |
| Bheda | Splitting pain |
| Shushkata | Dryness |
| Daha | Burning |
| Paka | Redness + inflammation |
| Upadeha | Sticky/crusty eyelids |
| Krichronmeelana | Hard to open eye after sleep |
| Photophobia | Light hurts the eye |

| Layer | Position | Made by | Job |
|---|---|---|---|
| Lipid | Top (outermost) | Meibomian glands | Stops water evaporating |
| Aqueous | Middle (thickest) | Lacrimal gland | Oxygen + antibacterial + washing |
| Mucous | Bottom (innermost) | Goblet cells | Sticks the tear film to the eye |
Easy trick: L-A-M from outside to inside (Lipid → Aqueous → Mucous)
| Type | Cause |
|---|---|
| Aqueous deficient | Not enough tears made (Sjögren's, old age, nerve damage) |
| Evaporative | Tears evaporate too fast (Meibomian gland problem, low blinking) |
| Drugs | Antihistamines, antidepressants, contraceptive pills |
| Post-surgery | After LASIK/cataract surgery |
| Lifestyle | Smoking, screens, dry weather, contact lenses |
| Test | What's normal | Abnormal |
|---|---|---|
| Schirmer's test | ≥15 mm wet in 5 min | <15 mm |
| TBUT (tear break-up time) | >10 seconds | <10 sec |
| Tear meniscus | ≥0.5 mm | Low/flat |
MILD → Artificial tears 4x/day
MODERATE → More frequent drops + Cyclosporine eye drops
+ Lifestyle changes + Punctal plugs
SEVERE → All above + Autologous serum tears
+ Moisture goggles + Surgery (tarsorrhaphy)
Too much screen time = tired, dry, painful eyes + headache + neck pain
Every 20 minutes → look 20 feet away → for 20 seconds
| Fix | How |
|---|---|
| Screen position | Eye level or slightly below; arm's length away |
| Lighting | Reduce glare; anti-glare filters |
| Blink! | Blink consciously and fully |
| Lubricating drops | Use preservative-free artificial tears |
| Spectacles | Correct your glasses prescription; try anti-glare lenses |
| Breaks | Regular rests; do NOT use screens 1 hr before bed |
Shushkakshipaka = Ayurvedic dry eye
→ Symptoms: Gharsha, Daha, Shushkata, Paka
→ Treat: Tarpana, Nasya, Basti, Keshanjana
Tear Film = 3 layers (LAM)
→ Lipid (top) | Aqueous (middle) | Mucous (bottom)
Dry Eye = Aqueous deficient OR Evaporative
→ Test with Schirmer + TBUT
→ Treat: Artificial tears → Cyclosporine → Surgery
CVS = Screen overuse
→ 20-20-20 rule + lubricants + posture fix
Haha yea flash cards maybe or can you create an aesthetic image of these all you said
Aesthetic medical study poster with soft pastel purple and blue tones, clean modern design, titled "Eye Diseases - Quick Study Guide". Divided into 4 elegant sections with icons: Section 1 - "Shushkakshipaka (Ayurvedic Dry Eye)" with lotus/herb icons, listing symptoms: Gharsha (gritty), Daha (burning), Shushkata (dryness), Paka (inflammation), Krichronmeelana (hard to open). Treatments: Tarpana, Nasya, Basti, Keshanjana, Parisheka. Section 2 - "Tear Film Structure (LAM)" showing a beautiful layered diagram: Lipid layer (top, 0.1µm, Meibomian glands), Aqueous layer (middle, 7µm, Lacrimal gland), Mucous layer (bottom, 0.2µm, Goblet cells). Section 3 - "Dry Eye Syndrome" with eye icon, causes: Aqueous deficient, Evaporative, Drugs, Post-surgery. Tests: Schirmer <15mm, TBUT <10sec. Treatment ladder: Mild→Moderate→Severe. Section 4 - "Computer Vision Syndrome" with screen/monitor icon, 20-20-20 rule highlighted, symptoms: eye strain, dryness, headache, neck pain. Fixes: breaks, lubricants, posture, anti-glare. Soft watercolor background, gold accent lines, clean typography, aesthetic student notes style, calming colors.
400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.
We encountered an error while processing your request. Please try again or reach out to us for help.
Haha yea flash cards maybe or can you create an aesthetic image of these all you said
Aesthetic medical study flashcard, soft pastel lavender and dusty rose background, minimalist clean design, titled "Shushkakshipaka - Ayurvedic Dry Eye" in elegant serif font. Lists symptoms with small lotus icons: Gharsha - gritty feeling, Daha - burning, Shushkata - dryness, Paka - redness and inflammation, Upadeha - crusty eyelids, Krichronmeelana - hard to open eyes. Below section titled Chikitsa with herb icons: Tarpana, Nasya, Basti, Keshanjana, Parisheka. Watercolor floral corner decorations, gold accent lines, cozy aesthetic study notes vibe
400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.
We encountered an error while processing your request. Please try again or reach out to us for help.
?
Aesthetic pastel study flashcard set for eye diseases. Soft purple and pink watercolor background. Four small cards arranged in a grid. Card 1: Shushkakshipaka symptoms list. Card 2: Tear Film 3 layers diagram LAM. Card 3: Dry Eye causes and treatment steps. Card 4: Computer Vision Syndrome 20-20-20 rule. Minimalist, clean, cute study notes aesthetic.
400, message: Got more than 4194304 bytes when reading: b'data: {"candidates": [{"content": {"role": "model","parts": [{"inlineData": {"mimeType": "image/png"...'.
We encountered an error while processing your request. Please try again or reach out to us for help.
.
mkdir -p /tmp/workspace/eye-flashcards && ls /tmp/workspace/
~/eye-flashcards/make_flashcards.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.platypus import PageBreak
OUTPUT = "/tmp/workspace/eye-flashcards/Eye_Diseases_Flashcards.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1.5*cm,
rightMargin=1.5*cm,
topMargin=1.5*cm,
bottomMargin=1.5*cm
)
# ── Colour palette ──────────────────────────────────────────
LAVENDER = colors.HexColor("#C9B8E8")
ROSE = colors.HexColor("#F2C4CE")
MINT = colors.HexColor("#B8E8D4")
SKY = colors.HexColor("#B8D8F2")
GOLD = colors.HexColor("#D4A843")
DARK_PUR = colors.HexColor("#4A3560")
DARK_ROSE = colors.HexColor("#7A3A4A")
DARK_MINT = colors.HexColor("#2A6A50")
DARK_SKY = colors.HexColor("#2A4A7A")
WHITE = colors.white
LIGHT_BG = colors.HexColor("#FAF7FF")
styles = getSampleStyleSheet()
def card_title_style(color):
return ParagraphStyle(
"CardTitle",
fontSize=16,
fontName="Helvetica-Bold",
textColor=WHITE,
alignment=TA_CENTER,
spaceAfter=4,
spaceBefore=4,
)
def section_style(color):
return ParagraphStyle(
"Section",
fontSize=11,
fontName="Helvetica-Bold",
textColor=color,
spaceBefore=8,
spaceAfter=2,
)
body_style = ParagraphStyle(
"Body",
fontSize=10,
fontName="Helvetica",
textColor=colors.HexColor("#333333"),
spaceAfter=3,
leading=14,
)
small_style = ParagraphStyle(
"Small",
fontSize=9,
fontName="Helvetica",
textColor=colors.HexColor("#555555"),
spaceAfter=2,
leading=12,
)
center_style = ParagraphStyle(
"Center",
fontSize=10,
fontName="Helvetica",
textColor=colors.HexColor("#333333"),
alignment=TA_CENTER,
spaceAfter=3,
)
def make_card(title, bg_color, text_color, content_rows):
"""Returns a Table acting as a styled flashcard."""
# Title cell
title_para = Paragraph(title, card_title_style(text_color))
title_cell = Table([[title_para]], colWidths=[17*cm])
title_cell.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg_color),
("ROUNDEDCORNERS", [10,10,0,0]),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 14),
("RIGHTPADDING", (0,0), (-1,-1), 14),
]))
# Body cell
body_content = []
for row in content_rows:
body_content.append(row)
body_table = Table([[ Table([[item] for item in body_content], colWidths=[16*cm]) ]],
colWidths=[17*cm])
body_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_BG),
("ROUNDEDCORNERS", [0,0,10,10]),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 14),
("RIGHTPADDING", (0,0), (-1,-1), 14),
("BOX", (0,0), (-1,-1), 1, bg_color),
]))
wrapper = Table([[title_cell], [body_table]], colWidths=[17*cm])
wrapper.setStyle(TableStyle([
("TOPPADDING", (0,0), (-1,-1), 0),
("BOTTOMPADDING", (0,0), (-1,-1), 0),
("LEFTPADDING", (0,0), (-1,-1), 0),
("RIGHTPADDING", (0,0), (-1,-1), 0),
]))
return wrapper
def symptom_table(rows, header_bg, header_fg=WHITE):
data = [[Paragraph("<b>Symptom</b>", small_style), Paragraph("<b>Meaning</b>", small_style)]]
for sym, meaning in rows:
data.append([Paragraph(f"<b>{sym}</b>", small_style), Paragraph(meaning, small_style)])
t = Table(data, colWidths=[5*cm, 10.5*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), header_bg),
("TEXTCOLOR", (0,0), (-1,0), header_fg),
("BACKGROUND", (0,1), (-1,-1), colors.HexColor("#F5F0FF")),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.HexColor("#F5F0FF"), colors.HexColor("#EDE8F8")]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
]))
return t
story = []
# ════════════════════════════════════════════════════════════
# PAGE 1 – COVER
# ════════════════════════════════════════════════════════════
cover = Table(
[[Paragraph("👁️ Eye Diseases", ParagraphStyle("cov1", fontSize=28, fontName="Helvetica-Bold",
textColor=DARK_PUR, alignment=TA_CENTER))],
[Paragraph("Quick Study Flashcards", ParagraphStyle("cov2", fontSize=16, fontName="Helvetica",
textColor=DARK_ROSE, alignment=TA_CENTER))],
[Spacer(1, 0.5*cm)],
[Paragraph("Shushkakshipaka • Tear Film • Dry Eye • CVS",
ParagraphStyle("cov3", fontSize=11, fontName="Helvetica",
textColor=colors.HexColor("#666666"), alignment=TA_CENTER))],
],
colWidths=[17*cm]
)
cover.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#EDE8FF")),
("TOPPADDING", (0,0), (-1,-1), 20),
("BOTTOMPADDING", (0,0), (-1,-1), 20),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
("ROUNDEDCORNERS",(0,0), (-1,-1), [14]),
("BOX", (0,0), (-1,-1), 2, LAVENDER),
]))
story.append(Spacer(1, 4*cm))
story.append(cover)
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# CARD 1 – SHUSHKAKSHIPAKA (Lavender)
# ════════════════════════════════════════════════════════════
syms = [
("Gharsha", "Gritty / sandy feeling in the eye"),
("Thoda", "Pricking pain"),
("Bheda", "Splitting / tearing pain"),
("Shushkata", "Dryness of the eye"),
("Daha", "Burning sensation"),
("Paka", "Redness + inflammation"),
("Upadeha", "Sticky / crusty eyelids"),
("Krichronmeelana", "Difficulty opening eye after sleep"),
("Photophobia", "Intolerance to light"),
]
content1 = [
Paragraph("🔹 What is it?", section_style(DARK_PUR)),
Paragraph("Ayurvedic name for dry eye. <b>Shushka</b>=dry, <b>Akshi</b>=eye, <b>Paka</b>=inflammation. "
"Caused by <b>Vata + Pitta</b> imbalance. Classified as <i>Sarvagata Netra Roga</i>.", body_style),
Spacer(1, 0.2*cm),
Paragraph("🔹 Lakshanas (Symptoms)", section_style(DARK_PUR)),
symptom_table(syms, LAVENDER, DARK_PUR),
Spacer(1, 0.2*cm),
Paragraph("🔹 Chikitsa (Treatment)", section_style(DARK_PUR)),
Paragraph("<b>Systemic:</b> Snehapana (medicated ghee orally) | Nasya (nasal drops) | "
"Basti (medicated enema) | Virechana | Rasayana (herbal tonics)", body_style),
Paragraph("<b>Local (Kriyakalpa):</b> Tarpana (ghee eye bath) | Netra Parisheka (eye wash) | "
"Keshanjana (herbal collyrium) | Ashchyotana (herbal eye drops) | Snehana Putapaka", body_style),
]
story.append(make_card("✦ CARD 1 — Shushkakshipaka (Ayurvedic Dry Eye) ✦",
LAVENDER, DARK_PUR, content1))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# CARD 2 – TEAR FILM (Mint)
# ════════════════════════════════════════════════════════════
tear_data = [
[Paragraph("<b>Layer</b>", small_style),
Paragraph("<b>Position</b>", small_style),
Paragraph("<b>Source</b>", small_style),
Paragraph("<b>Function</b>", small_style)],
[Paragraph("Lipid", small_style),
Paragraph("Outermost (0.1 µm)", small_style),
Paragraph("Meibomian glands", small_style),
Paragraph("Prevents evaporation; surfactant", small_style)],
[Paragraph("Aqueous", small_style),
Paragraph("Middle (7.0 µm)", small_style),
Paragraph("Lacrimal gland", small_style),
Paragraph("O₂, antibacterial, washes debris", small_style)],
[Paragraph("Mucous", small_style),
Paragraph("Innermost (0.2 µm)", small_style),
Paragraph("Goblet cells", small_style),
Paragraph("Sticks tear film to eye surface", small_style)],
]
tear_table = Table(tear_data, colWidths=[2.5*cm, 3.5*cm, 4.5*cm, 6*cm])
tear_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MINT),
("TEXTCOLOR", (0,0), (-1,0), DARK_MINT),
("BACKGROUND", (0,1), (-1,1), colors.HexColor("#E8FFF5")),
("BACKGROUND", (0,2), (-1,2), colors.HexColor("#F0FFF8")),
("BACKGROUND", (0,3), (-1,3), colors.HexColor("#E8FFF5")),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#AADDCC")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
]))
content2 = [
Paragraph("🔹 The 3-Layer Sandwich → Remember: <b>L-A-M</b>", section_style(DARK_MINT)),
Paragraph("(Lipid → Aqueous → Mucous, from outside to inside)", body_style),
Spacer(1, 0.2*cm),
tear_table,
Spacer(1, 0.3*cm),
Paragraph("🔹 Key Facts", section_style(DARK_MINT)),
Paragraph("• <b>Deficient Lipid</b> → Evaporative dry eye", body_style),
Paragraph("• <b>Deficient Aqueous</b> → Aqueous-deficient dry eye (Sjögren's etc.)", body_style),
Paragraph("• <b>Deficient Mucous</b> → Tear film won't stick (Vit A deficiency, cicatrizing conjunctivitis)", body_style),
Paragraph("• <b>Regulation:</b> Androgens control lipid; Oestrogen/progesterone control aqueous & mucus", body_style),
Spacer(1, 0.2*cm),
Paragraph("🔹 Tear Film Spread Needs:", section_style(DARK_MINT)),
Paragraph("1️⃣ Normal blink reflex 2️⃣ Eyelid-eye contact 3️⃣ Normal corneal epithelium", body_style),
]
story.append(make_card("✦ CARD 2 — Structure of the Tear Film ✦",
MINT, DARK_MINT, content2))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# CARD 3 – DRY EYE SYNDROME (Rose)
# ════════════════════════════════════════════════════════════
causes_data = [
[Paragraph("<b>Type</b>", small_style), Paragraph("<b>Examples</b>", small_style)],
[Paragraph("Aqueous deficient", small_style),
Paragraph("Sjögren's, old age, nerve damage, LASIK/PRK surgery", small_style)],
[Paragraph("Evaporative", small_style),
Paragraph("Meibomian gland disease, blepharitis, low blink rate, screens", small_style)],
[Paragraph("Drugs", small_style),
Paragraph("Antihistamines, antidepressants, beta-blockers, diuretics, OCP", small_style)],
[Paragraph("Systemic", small_style),
Paragraph("SLE, RA, Sjögren's, Stevens-Johnson, Vit A deficiency", small_style)],
]
causes_t = Table(causes_data, colWidths=[3.5*cm, 13*cm])
causes_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ROSE),
("TEXTCOLOR", (0,0), (-1,0), DARK_ROSE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.HexColor("#FFF0F3"), colors.HexColor("#FFE8ED")]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#DDAABB")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
]))
tests_data = [
[Paragraph("<b>Test</b>", small_style), Paragraph("<b>Normal</b>", small_style),
Paragraph("<b>Abnormal</b>", small_style)],
[Paragraph("Schirmer's test", small_style), Paragraph("≥15 mm / 5 min", small_style),
Paragraph("< 15 mm", small_style)],
[Paragraph("TBUT (tear break-up time)", small_style), Paragraph("> 10 seconds", small_style),
Paragraph("< 10 sec", small_style)],
[Paragraph("Tear meniscus height", small_style), Paragraph("≥ 0.5 mm, convex", small_style),
Paragraph("Low / flat", small_style)],
]
tests_t = Table(tests_data, colWidths=[5.5*cm, 5*cm, 5*cm])
tests_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ROSE),
("TEXTCOLOR", (0,0), (-1,0), DARK_ROSE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.HexColor("#FFF0F3"), colors.HexColor("#FFE8ED")]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#DDAABB")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
]))
content3 = [
Paragraph("🔹 Causes", section_style(DARK_ROSE)),
causes_t,
Spacer(1, 0.2*cm),
Paragraph("🔹 Symptoms", section_style(DARK_ROSE)),
Paragraph("Burning | Dryness | Gritty feeling | Blurred vision | Watery eyes (reflex!) | Photophobia", body_style),
Spacer(1, 0.2*cm),
Paragraph("🔹 Investigations", section_style(DARK_ROSE)),
tests_t,
Spacer(1, 0.2*cm),
Paragraph("🔹 Treatment Ladder", section_style(DARK_ROSE)),
Paragraph("<b>MILD →</b> Artificial tears 4×/day (preservative-free)", body_style),
Paragraph("<b>MODERATE →</b> Frequent drops + Cyclosporine 0.05% or Lifitegrast 5% + Punctal plugs", body_style),
Paragraph("<b>SEVERE →</b> All above + Autologous serum tears + Moisture goggles + Tarsorrhaphy", body_style),
]
story.append(make_card("✦ CARD 3 — Dry Eye Syndrome ✦",
ROSE, DARK_ROSE, content3))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# CARD 4 – COMPUTER VISION SYNDROME (Sky)
# ════════════════════════════════════════════════════════════
rule_box = Table(
[[Paragraph("⏱ THE 20 - 20 - 20 RULE", ParagraphStyle("rule_h", fontSize=13, fontName="Helvetica-Bold",
textColor=DARK_SKY, alignment=TA_CENTER))],
[Paragraph("Every <b>20 minutes</b> → Look <b>20 feet away</b> → For <b>20 seconds</b>",
ParagraphStyle("rule_b", fontSize=11, fontName="Helvetica", alignment=TA_CENTER,
textColor=colors.HexColor("#333333"))))],
],
colWidths=[16*cm]
)
rule_box.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#DFF0FF")),
("BOX", (0,0), (-1,-1), 2, SKY),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING", (0,0), (-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
mgmt_data = [
[Paragraph("<b>Fix</b>", small_style), Paragraph("<b>How</b>", small_style)],
[Paragraph("Screen position", small_style),
Paragraph("15-20° below eye level, arm's length (50-70 cm) away", small_style)],
[Paragraph("Reduce glare", small_style),
Paragraph("Anti-glare filters, reduce room brightness contrast", small_style)],
[Paragraph("Blink!", small_style),
Paragraph("Consciously blink fully and often; blink exercises", small_style)],
[Paragraph("Lubricating drops", small_style),
Paragraph("Preservative-free artificial tears during/after screen use", small_style)],
[Paragraph("Correct glasses", small_style),
Paragraph("Up-to-date prescription; computer-distance glasses if needed", small_style)],
[Paragraph("Blue-light filter", small_style),
Paragraph("Screen settings + blue-light blocking lenses in evenings", small_style)],
[Paragraph("Posture", small_style),
Paragraph("Sit upright, lumbar support, don't crane neck", small_style)],
]
mgmt_t = Table(mgmt_data, colWidths=[3.5*cm, 13*cm])
mgmt_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), SKY),
("TEXTCOLOR", (0,0), (-1,0), DARK_SKY),
("ROWBACKGROUNDS",(0,1), (-1,-1), [colors.HexColor("#EEF7FF"), colors.HexColor("#E4F0FF")]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#AACCEE")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
]))
content4 = [
Paragraph("🔹 Why Screens Strain Eyes", section_style(DARK_SKY)),
Paragraph("Blink rate drops from <b>20/min → 4-8/min</b> on screens → Tears evaporate → Dryness. "
"Plus: glare, low contrast, sustained focus = eye muscle fatigue.", body_style),
Spacer(1, 0.2*cm),
Paragraph("🔹 Symptoms", section_style(DARK_SKY)),
Paragraph("<b>Ocular:</b> Eye strain, dryness, burning, redness, blurred/double vision, headache, photophobia", body_style),
Paragraph("<b>Body:</b> Neck & shoulder pain, back pain, difficulty sleeping (blue light disrupts melatonin)", body_style),
Spacer(1, 0.2*cm),
rule_box,
Spacer(1, 0.2*cm),
Paragraph("🔹 Management", section_style(DARK_SKY)),
mgmt_t,
]
story.append(make_card("✦ CARD 4 — Computer Vision Syndrome (CVS) ✦",
SKY, DARK_SKY, content4))
story.append(PageBreak())
# ════════════════════════════════════════════════════════════
# CARD 5 – QUICK REVISION CHEAT SHEET (Gold/Lavender)
# ════════════════════════════════════════════════════════════
cheat_data = [
[Paragraph("<b>Topic</b>", small_style),
Paragraph("<b>Key Cause</b>", small_style),
Paragraph("<b>Key Symptom</b>", small_style),
Paragraph("<b>Key Test</b>", small_style),
Paragraph("<b>Key Treatment</b>", small_style)],
[Paragraph("Shushkakshipaka", small_style),
Paragraph("Vata-Pitta vitiation", small_style),
Paragraph("Gharsha, Daha, Paka", small_style),
Paragraph("Clinical Lakshanas", small_style),
Paragraph("Tarpana, Keshanjana, Nasya", small_style)],
[Paragraph("Tear Film", small_style),
Paragraph("LAM layers", small_style),
Paragraph("Instability → dry eye", small_style),
Paragraph("TBUT", small_style),
Paragraph("Address deficient layer", small_style)],
[Paragraph("Dry Eye", small_style),
Paragraph("Aqueous deficient / Evaporative", small_style),
Paragraph("Burning, gritty, watery", small_style),
Paragraph("Schirmer, TBUT", small_style),
Paragraph("Artif. tears → Cyclosporine → Surgery", small_style)],
[Paragraph("CVS", small_style),
Paragraph("Prolonged screen use", small_style),
Paragraph("Eye strain, neck pain, HA", small_style),
Paragraph("Clinical history", small_style),
Paragraph("20-20-20 + lubricants + posture", small_style)],
]
cheat_t = Table(cheat_data, colWidths=[2.8*cm, 3.2*cm, 3.5*cm, 3*cm, 4*cm])
cheat_t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), colors.HexColor("#D4A843")),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1),
[colors.HexColor("#FFF9E8"), colors.HexColor("#FFF3D0"),
colors.HexColor("#FFF9E8"), colors.HexColor("#FFF3D0")]),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCAA44")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("FONTNAME", (0,0), (-1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
content5 = [
Paragraph("🔹 Complete Quick Comparison", section_style(colors.HexColor("#7A5A00"))),
cheat_t,
Spacer(1, 0.4*cm),
Paragraph("🔹 Memory Tricks", section_style(colors.HexColor("#7A5A00"))),
Paragraph("<b>Tear Film layers → L-A-M</b> (Lipid → Aqueous → Mucous)", body_style),
Paragraph("<b>Shushkakshipaka symptoms → G-T-B-S-D-P-U-K</b> "
"(Gharsha, Thoda, Bheda, Shushkata, Daha, Paka, Upadeha, Krichronmeelana)", body_style),
Paragraph("<b>CVS rule → 20-20-20</b> (Every 20 min, look 20 ft, for 20 sec)", body_style),
Paragraph("<b>Dry Eye Rx ladder → Mild/Mod/Severe</b> "
"(Drops → Cyclosporine/Lifitegrast → Surgery)", body_style),
]
story.append(make_card("✦ CARD 5 — Quick Revision Cheat Sheet ✦",
colors.HexColor("#D4A843"), colors.HexColor("#7A5A00"), content5))
# ── Build ────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
cd /tmp/workspace/eye-flashcards && python make_flashcards.py 2>&1
~/eye-flashcards/make_flashcards.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/eye-flashcards/make_flashcards.py'
cd /tmp/workspace/eye-flashcards && python make_flashcards.py 2>&1
Eye Diseases Flashcards
PDF Document · PDF
| Card | Topic | Color |
|---|---|---|
| 🎴 Cover | Title page | Soft lavender |
| Card 1 | Shushkakshipaka - all Lakshanas + Chikitsa | Purple |
| Card 2 | Tear Film Structure (LAM table + key facts) | Mint green |
| Card 3 | Dry Eye Syndrome - causes, tests, treatment ladder | Rose pink |
| Card 4 | Computer Vision Syndrome - symptoms + 20-20-20 rule + management table | Sky blue |
| Card 5 | Quick Revision Cheat Sheet + Memory Tricks | Gold |