Left eyelid hordeolum or stye ... Write a prescription mention eye hygiene alongside the medication and if system antibiotic needed or not .

Reading File
Finding Sources
Finding Sources
Searching PubMed

hordeolum stye treatment management

Reading File
Reading File
Reading File
Finding Sources
Reading File
Reading File
Reading File
Loading Image
I have all the information needed. Here is the complete clinical write-up:

External Hordeolum (Stye) — Left Eyelid

External hordeolum — erythematous, tender pustule at the eyelid margin
External hordeolum: acute staphylococcal abscess of a lash follicle and adjacent gland of Zeis/Moll at the eyelid margin — Tintinalli's Emergency Medicine

Background

A hordeolum is an acute staphylococcal abscess of the eyelid glands:
  • External hordeolum (stye) — abscess of a lash follicle and the glands of Zeis or Moll; presents as a tender pustule at the eyelid margin
  • Internal hordeolum — abscess of a meibomian gland; pustule visible on the inner tarsal surface
The typical organism is Staphylococcus aureus. It can occasionally evolve into preseptal cellulitis if untreated.

📋 Prescription


Patient: __________________ Date: 12/05/2026 Diagnosis: External hordeolum (stye) — Left upper/lower eyelid (circle one)

Rx

1. Erythromycin ophthalmic ointment 0.5% Apply a thin ribbon to the left eyelid margin b.i.d. × 10 days (Alternative: Bacitracin oint. 500 units/g — or — Tobramycin oint. 0.3% b.i.d. × 10 days)
Antibiotic ointment is preferred over drops for hordeolum because it prolongs contact time at the eyelid margin.

🧼 Eye Hygiene Instructions (Non-Negotiable — First-Line Therapy)

StepInstruction
Warm compressesApply a clean warm (not hot) compress to the closed left eye for 10–15 minutes, 4× per day (q.i.d.). Reheat the cloth as needed to maintain warmth throughout. This is the single most important step — it softens the secretion and promotes spontaneous drainage.
Gentle massageAfter each warm compress, gently massage over the lesion toward the eyelid margin with a clean fingertip to encourage drainage.
Lid scrubsUsing a cotton swab or clean lint-free pad moistened with dilute baby shampoo (1 drop in 1 cup of cooled boiled water) or commercial lid-scrub pads (e.g., Sterilid, OcuSoft), gently scrub along the base of the lashes once daily. This removes crust, bacteria, and debris.
No squeezingDo not attempt to squeeze or puncture the stye — this risks spreading the infection.
No eye make-upAvoid eyeliner, mascara, and eye shadow on the affected eye until fully resolved. Discard any eye cosmetics used around the time of infection.
No contact lensesAvoid contact lens wear until the lesion resolves.
Hand hygieneWash hands thoroughly before and after touching the eye area.
Do not shareNo sharing of towels, pillowcases, or face cloths with others during the infection.

⚕️ Systemic Antibiotics — Are They Needed?

In the uncomplicated external hordeolum: NO systemic antibiotics are indicated.
Warm compresses + topical antibiotic ointment are sufficient in the vast majority of cases. Systemic antibiotics are reserved exclusively for the following situations:
SituationAction
Significant surrounding preseptal (periorbital) cellulitis (eyelid erythema spreading beyond the stye, diffuse warmth, edema)Oral antibiotics indicated — e.g., Amoxicillin-clavulanate 875/125 mg p.o. b.i.d. × 7 days, or Clindamycin 300 mg t.i.d. × 7 days if penicillin-allergic
Recurrent or multiple hordeola, or associated ocular rosacea / blepharitisConsider doxycycline 20–50 mg p.o. daily (low-dose, for anti-inflammatory and antibacterial effect) — long-term use under specialist supervision
Failed medical therapy after 2–3 weeks / abscess not drainingRefer to ophthalmologist for incision and drainage (I&D) — do not attempt in primary care
Systemic signs (fever, lymphadenopathy, immunocompromise)Escalate to systemic antibiotics + ophthalmology referral
⚠️ Note: Tetracyclines (doxycycline) are contraindicated in pregnancy, nursing women, and children ≤8 years.

Follow-Up

  • Review in 2–3 weeks if no improvement
  • Urgent review if spreading erythema, fever, or visual change — to rule out preseptal/orbital cellulitis
  • Persistent nodule after 4 weeks → refer ophthalmology for possible intralesional triamcinolone injection or incision and curettage (I&C)
  • Recurrent or atypical chalazion/hordeolum in older patients → pathology specimen to exclude sebaceous carcinoma

Prescriber: __________________ Signature: __________________

Sources: The Wills Eye Manual 7th ed., §6.2; Tintinalli's Emergency Medicine 9th ed., Ch. 241; Goodman & Gilman's Pharmacological Basis of Therapeutics; Rosen's Emergency Medicine 9th ed., Ch. 57

2

Asking for Preferences
The user likely means the internal hordeolum (meibomian gland abscess) — which was listed as point #2 in the previous answer. Here is the prescription for that:

Internal Hordeolum — Left Eyelid

(Acute staphylococcal abscess of the meibomian gland — pustule on the inner tarsal surface)

Patient: __________________ Date: 12/05/2026 Diagnosis: Internal hordeolum — Left eyelid

Rx

1. Erythromycin ophthalmic ointment 0.5% Apply to the left eyelid margin (and inner lid if tolerated) b.i.d. × 10 days
(Alternative: Tobramycin 0.3% ointment b.i.d. × 10 days — or — Bacitracin 500 units/g ointment b.i.d. × 10 days)
Internal hordeola sit deeper within the tarsal plate (meibomian gland), so topical antibiotic penetration is limited — warm compresses and massage are especially critical.

🧼 Eye Hygiene Instructions

StepInstruction
Warm compressesClean warm compress over the closed left eye, 10–15 minutes q.i.d. Reheat the cloth frequently to maintain adequate warmth throughout each session.
Firm massageAfter each compress, press and massage the eyelid firmly (from the outer skin surface) toward the lid margin to express the gland contents. This is particularly important for internal hordeola since the duct opens onto the inner lid.
Lid scrubsOnce daily: clean the lash line with a cotton-tipped applicator moistened with diluted baby shampoo or commercial lid-scrub pads (OcuSoft/Sterilid).
No squeezingDo not attempt self-drainage — the tarsal plate is rigid and uncontrolled pressure risks rupture into the orbit.
No eye make-upAvoid all eye cosmetics until fully resolved. Discard any previously used eye cosmetics.
No contact lensesStop contact lens wear until resolution.
Hand hygieneWash hands before and after any lid contact.

⚕️ Systemic Antibiotics

Routine uncomplicated internal hordeolum: NOT required.
Internal hordeola are managed identically to external ones — warm compresses + topical antibiotics are the standard of care.
Systemic antibiotics are indicated only if:
ConditionRegimen
Spreading preseptal cellulitis (diffuse lid erythema, edema, warmth beyond the lesion)Amoxicillin-clavulanate 875/125 mg p.o. b.i.d. × 7 days
Penicillin allergyClindamycin 300 mg p.o. t.i.d. × 7 days
Recurrent lesions or associated ocular rosaceaDoxycycline 100 mg p.o. b.i.d. × 1–2 weeks, then taper to 20–50 mg daily (long-term, under specialist care) — contraindicated in pregnancy, nursing, and children ≤8 years
Systemic signs (fever, lymphadenopathy, immunocompromise)Systemic antibiotics + urgent ophthalmology referral

Follow-Up & Escalation

  • Review in 2–3 weeks if no improvement
  • Eyelid eversion + slit lamp exam to confirm diagnosis and locate the internal pointing of the abscess
  • No resolution after 3–4 weeks → refer ophthalmology for incision and drainage from the inner tarsal surface (performed under local anaesthesia — the approach is from the conjunctival side to avoid skin scarring)
  • Recurrent or atypical lesion in an older patient → biopsy to exclude sebaceous carcinoma
  • Signs of preseptal/orbital spread (proptosis, restricted eye movement, pain on eye movement, visual change) → urgent ophthalmology referral same day

Prescriber: __________________ Signature: __________________

Sources: The Wills Eye Manual 7th ed. §6.2; Tintinalli's Emergency Medicine 9th ed. Ch. 241; Goodman & Gilman's Pharmacological Basis of Therapeutics; Rosen's Emergency Medicine 9th ed. Ch. 57

Create a patient education handout on stye care and prevention

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"

Running Command

mkdir -p /home/daytona/workspace/stye-handout && ls /home/daytona/skills/docx/

Writing File

~/stye-handout/create_handout.js

const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
  VerticalAlign, ImageRun, PageBreak
} = require('docx');
const fs = require('fs');

// ── helpers ────────────────────────────────────────────────────────────────
const BRAND_BLUE   = "1E5799";
const LIGHT_BLUE   = "D6E8FA";
const ACCENT_GREEN = "1A7A4E";
const LIGHT_GREEN  = "D6F0E4";
const WARN_RED     = "C0392B";
const LIGHT_RED    = "FDECEA";
const LIGHT_YELLOW = "FFF9E6";
const ACCENT_ORANGE= "D35400";
const WHITE        = "FFFFFF";
const DARK_TEXT    = "1A1A2E";

function heading1(text) {
  return new Paragraph({
    children: [new TextRun({ text, bold: true, size: 34, color: WHITE, font: "Calibri" })],
    alignment: AlignmentType.CENTER,
    shading: { type: ShadingType.SOLID, color: BRAND_BLUE },
    spacing: { before: 0, after: 80 },
    indent: { left: 200, right: 200 },
  });
}

function sectionHeader(text, bgColor = BRAND_BLUE) {
  return new Paragraph({
    children: [new TextRun({ text: "  " + text, bold: true, size: 24, color: WHITE, font: "Calibri" })],
    shading: { type: ShadingType.SOLID, color: bgColor },
    spacing: { before: 200, after: 60 },
  });
}

function subHeader(text, color = BRAND_BLUE) {
  return new Paragraph({
    children: [new TextRun({ text, bold: true, size: 22, color: color, font: "Calibri" })],
    spacing: { before: 140, after: 40 },
  });
}

function body(text, bold = false, color = DARK_TEXT) {
  return new Paragraph({
    children: [new TextRun({ text, bold, size: 20, color, font: "Calibri" })],
    spacing: { before: 30, after: 30 },
  });
}

function bullet(text, bold = false, color = DARK_TEXT) {
  return new Paragraph({
    bullet: { level: 0 },
    children: [new TextRun({ text, bold, size: 20, color, font: "Calibri" })],
    spacing: { before: 20, after: 20 },
    indent: { left: 360, hanging: 180 },
  });
}

function spacer(lines = 1) {
  return new Paragraph({ children: [new TextRun({ text: "", size: 20 })], spacing: { before: lines * 60, after: 0 } });
}

function highlightBox(text, bg, textColor = DARK_TEXT) {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top:    { style: BorderStyle.NONE },
      bottom: { style: BorderStyle.NONE },
      left:   { style: BorderStyle.NONE },
      right:  { style: BorderStyle.NONE },
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            shading: { type: ShadingType.SOLID, color: bg },
            borders: {
              top:    { style: BorderStyle.NONE },
              bottom: { style: BorderStyle.NONE },
              left:   { style: BorderStyle.NONE },
              right:  { style: BorderStyle.NONE },
            },
            children: [
              new Paragraph({
                children: [new TextRun({ text, size: 20, color: textColor, font: "Calibri" })],
                spacing: { before: 80, after: 80 },
                indent: { left: 200, right: 200 },
              })
            ],
          })
        ]
      })
    ]
  });
}

function twoColRow(icon, heading, detail) {
  return new TableRow({
    children: [
      new TableCell({
        width: { size: 8, type: WidthType.PERCENTAGE },
        shading: { type: ShadingType.SOLID, color: LIGHT_BLUE },
        borders: {
          top:    { style: BorderStyle.NONE },
          bottom: { style: BorderStyle.NONE },
          left:   { style: BorderStyle.NONE },
          right:  { style: BorderStyle.NONE },
        },
        verticalAlign: VerticalAlign.CENTER,
        children: [new Paragraph({
          children: [new TextRun({ text: icon, size: 28 })],
          alignment: AlignmentType.CENTER,
          spacing: { before: 60, after: 60 },
        })]
      }),
      new TableCell({
        width: { size: 92, type: WidthType.PERCENTAGE },
        borders: {
          top:    { style: BorderStyle.NONE },
          bottom: { style: BorderStyle.NONE },
          left:   { style: BorderStyle.NONE },
          right:  { style: BorderStyle.NONE },
        },
        children: [
          new Paragraph({
            children: [new TextRun({ text: heading, bold: true, size: 20, font: "Calibri", color: BRAND_BLUE })],
            spacing: { before: 40, after: 10 },
            indent: { left: 160 },
          }),
          new Paragraph({
            children: [new TextRun({ text: detail, size: 20, font: "Calibri", color: DARK_TEXT })],
            spacing: { before: 0, after: 60 },
            indent: { left: 160 },
          }),
        ]
      })
    ]
  });
}

function stepTable(steps) {
  // steps = [{icon, heading, detail}]
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      insideH: { style: BorderStyle.SINGLE, size: 2, color: "D0E8F5" },
      insideV: { style: BorderStyle.NONE },
      top:     { style: BorderStyle.NONE },
      bottom:  { style: BorderStyle.NONE },
      left:    { style: BorderStyle.NONE },
      right:   { style: BorderStyle.NONE },
    },
    rows: steps.map(s => twoColRow(s.icon, s.heading, s.detail))
  });
}

function warnTable(rows) {
  const makeRow = (sym, txt, last=false) => new TableRow({
    children: [
      new TableCell({
        width: { size: 6, type: WidthType.PERCENTAGE },
        shading: { type: ShadingType.SOLID, color: LIGHT_RED },
        borders: {
          top:    { style: BorderStyle.NONE },
          bottom: last ? { style: BorderStyle.NONE } : { style: BorderStyle.SINGLE, size:2, color:"F5C6CB" },
          left:   { style: BorderStyle.NONE },
          right:  { style: BorderStyle.NONE },
        },
        verticalAlign: VerticalAlign.CENTER,
        children: [new Paragraph({ children:[new TextRun({text:sym,size:24})], alignment:AlignmentType.CENTER, spacing:{before:40,after:40} })]
      }),
      new TableCell({
        shading: { type: ShadingType.SOLID, color: LIGHT_RED },
        borders: {
          top:    { style: BorderStyle.NONE },
          bottom: last ? { style: BorderStyle.NONE } : { style: BorderStyle.SINGLE, size:2, color:"F5C6CB" },
          left:   { style: BorderStyle.NONE },
          right:  { style: BorderStyle.NONE },
        },
        children: [new Paragraph({ children:[new TextRun({text:txt,size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:40,after:40}, indent:{left:120} })]
      })
    ]
  });
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: { top:{style:BorderStyle.NONE}, bottom:{style:BorderStyle.NONE}, left:{style:BorderStyle.NONE}, right:{style:BorderStyle.NONE}, insideH:{style:BorderStyle.NONE}, insideV:{style:BorderStyle.NONE} },
    rows: rows.map((r,i) => makeRow(r[0], r[1], i===rows.length-1))
  });
}

// ── Document ───────────────────────────────────────────────────────────────
const doc = new Document({
  creator: "Orris Clinical AI",
  title: "Stye (Hordeolum) — Patient Education Handout",
  description: "Patient handout on stye care and prevention",
  styles: {
    default: {
      document: {
        run: { font: "Calibri", size: 20, color: DARK_TEXT }
      }
    }
  },
  sections: [{
    properties: {
      page: {
        margin: { top: 720, bottom: 720, left: 900, right: 900 }
      }
    },
    children: [

      // ── TITLE BLOCK ─────────────────────────────────────────────────────
      heading1("👁  STYE (HORDEOLUM)  👁"),
      new Paragraph({
        children: [new TextRun({ text: "Patient Education & Home Care Guide", bold: true, size: 26, color: BRAND_BLUE, font: "Calibri" })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 120, after: 60 },
      }),
      new Paragraph({
        children: [new TextRun({ text: "Prepared by your healthcare provider  •  Keep this for reference", size: 18, color: "777777", font: "Calibri", italics: true })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 0, after: 200 },
      }),

      // ── WHAT IS A STYE ───────────────────────────────────────────────────
      sectionHeader("🔍  WHAT IS A STYE?"),
      spacer(0.5),
      body("A stye (medical name: hordeolum) is a painful, red, pus-filled bump that forms on the edge of your eyelid. It is caused by a bacterial infection — most commonly Staphylococcus aureus — of the small oil or sweat glands at the base of your eyelashes."),
      spacer(0.5),

      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        borders: { top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE},insideH:{style:BorderStyle.NONE},insideV:{style:BorderStyle.NONE} },
        rows: [new TableRow({ children: [
          new TableCell({
            width: { size: 50, type: WidthType.PERCENTAGE },
            shading: { type: ShadingType.SOLID, color: LIGHT_BLUE },
            borders: { top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE} },
            children: [
              new Paragraph({ children:[new TextRun({text:"External Stye",bold:true,size:21,color:BRAND_BLUE,font:"Calibri"})], spacing:{before:80,after:30}, indent:{left:160} }),
              new Paragraph({ children:[new TextRun({text:"Appears on the outer eyelid margin, at the base of an eyelash. You can see a small, yellow-tipped pustule.",size:19,font:"Calibri",color:DARK_TEXT})], spacing:{before:0,after:80}, indent:{left:160} }),
            ]
          }),
          new TableCell({ width:{size:3,type:WidthType.PERCENTAGE}, borders:{top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE}}, children:[new Paragraph({children:[new TextRun({text:"",size:20})]})]}),
          new TableCell({
            width: { size: 47, type: WidthType.PERCENTAGE },
            shading: { type: ShadingType.SOLID, color: LIGHT_GREEN },
            borders: { top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE} },
            children: [
              new Paragraph({ children:[new TextRun({text:"Internal Stye",bold:true,size:21,color:ACCENT_GREEN,font:"Calibri"})], spacing:{before:80,after:30}, indent:{left:160} }),
              new Paragraph({ children:[new TextRun({text:"Develops inside the eyelid (meibomian gland). More painful; the bump is visible on the inner surface of the lid.",size:19,font:"Calibri",color:DARK_TEXT})], spacing:{before:0,after:80}, indent:{left:160} }),
            ]
          }),
        ]})]
      }),
      spacer(0.5),
      body("Most styes resolve on their own within 7–10 days with proper home care."),
      spacer(1),

      // ── SYMPTOMS ─────────────────────────────────────────────────────────
      sectionHeader("⚠️  SYMPTOMS YOU MAY NOTICE"),
      spacer(0.5),
      bullet("Red, swollen, tender bump on the eyelid"),
      bullet("Pain or soreness when blinking"),
      bullet("A feeling of grittiness or something in the eye"),
      bullet("Crusting around the eyelashes"),
      bullet("Watery eye or mild discharge"),
      bullet("Sensitivity to light (in some cases)"),
      spacer(1),

      // ── HOME CARE ────────────────────────────────────────────────────────
      sectionHeader("🏠  HOME CARE STEPS — Do These Every Day"),
      spacer(0.5),
      body("The most important treatment is the warm compress. Medication alone is not enough."),
      spacer(0.5),

      stepTable([
        {
          icon: "1️⃣",
          heading: "Warm Compresses — 4 times daily (most important step!)",
          detail: "Soak a clean cloth or face flannel in warm (not hot) water. Wring it out and place over your CLOSED eye. Hold for 10–15 minutes. Reheat the cloth every few minutes to keep it warm throughout. The warmth softens the blocked gland and helps the stye drain naturally."
        },
        {
          icon: "2️⃣",
          heading: "Gentle Massage",
          detail: "After each warm compress, use a clean fingertip to very gently massage the stye in the direction of the eyelid margin. This helps the blocked material drain. Wash your hands before and after."
        },
        {
          icon: "3️⃣",
          heading: "Lid Scrubs — Once daily",
          detail: "Using a cotton bud or clean lint-free pad, apply a tiny drop of baby shampoo diluted in a cup of cooled boiled water. Gently wipe along the BASE of the eyelashes (like windscreen wipers). This removes crust and bacteria. Commercial lid-scrub pads (e.g. OcuSoft, Sterilid) are a ready-made alternative."
        },
        {
          icon: "4️⃣",
          heading: "Apply Your Prescribed Eye Ointment",
          detail: "Apply the antibiotic ointment as directed by your doctor — usually twice daily (morning and night) along the eyelid margin. Wash hands first. Pull down the lower lid gently and apply a thin ribbon of ointment. Blink to spread it. Expect mild blurring for a few minutes."
        },
      ]),
      spacer(1),

      // ── DO NOT ───────────────────────────────────────────────────────────
      sectionHeader("🚫  WHAT NOT TO DO", WARN_RED),
      spacer(0.5),
      warnTable([
        ["🚫", "Do NOT squeeze, pop, or try to pierce the stye — this can spread the infection deeper into the eyelid or cause serious complications."],
        ["💄", "Do NOT wear eye make-up (mascara, eyeliner, eye shadow) until the stye has fully healed. Throw away any eye cosmetics you used around the time the stye developed — they may be contaminated."],
        ["👁", "Do NOT wear contact lenses until the stye has healed completely."],
        ["💊", "Do NOT use steroid eye drops or other people's eye drops without asking your doctor first."],
        ["🙌", "Do NOT rub or touch your eye unnecessarily."],
      ]),
      spacer(1),

      // ── PREVENTION ───────────────────────────────────────────────────────
      sectionHeader("✅  PREVENTION — How to Stop Styes Coming Back", ACCENT_GREEN),
      spacer(0.5),
      body("Styes often recur in people who are prone to them. Good daily habits make a big difference:"),
      spacer(0.5),

      subHeader("Hand & Face Hygiene", ACCENT_GREEN),
      bullet("Wash your hands thoroughly before touching your eyes or face."),
      bullet("Avoid rubbing your eyes with unwashed hands."),
      bullet("Change pillowcases and towels at least twice a week."),
      bullet("Never share towels, pillowcases, or face cloths."),

      subHeader("Eye Cosmetic Hygiene", ACCENT_GREEN),
      bullet("Replace eye make-up (especially mascara) every 3 months."),
      bullet("Never share eye make-up with anyone."),
      bullet("Always remove eye make-up completely before going to bed."),
      bullet("Do not apply eyeliner on the inner rim (waterline) of the eye — this blocks gland openings."),

      subHeader("Contact Lens Care", ACCENT_GREEN),
      bullet("Always wash hands before inserting or removing lenses."),
      bullet("Follow your optician's cleaning and replacement schedule strictly."),
      bullet("Never sleep in contact lenses unless prescribed to do so."),

      subHeader("Daily Lid Hygiene (especially if you have blepharitis or oily skin)", ACCENT_GREEN),
      bullet("A daily gentle lid scrub (as described above) is the single best prevention strategy for recurrent styes."),
      bullet("If you have blepharitis (chronic red, flaky eyelids) or acne rosacea, your doctor may recommend long-term lid hygiene and low-dose antibiotics — follow their advice."),
      spacer(1),

      // ── WHEN TO SEE A DOCTOR ─────────────────────────────────────────────
      highlightBox(
        "⚕️  WHEN TO CONTACT YOUR DOCTOR URGENTLY\n\n" +
        "• The stye or redness is spreading across the eyelid or cheek\n" +
        "• Your eyelid is very swollen and difficult or impossible to open\n" +
        "• You develop a fever or feel generally unwell\n" +
        "• You notice pain when moving your eye, or double/blurred vision\n" +
        "• The stye has not improved at all after 2–3 weeks of treatment\n" +
        "• You get styes repeatedly in the same place",
        LIGHT_RED,
        WARN_RED
      ),
      spacer(1),

      // ── KEY REMINDERS ─────────────────────────────────────────────────────
      new Table({
        width: { size: 100, type: WidthType.PERCENTAGE },
        borders: { top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE},insideH:{style:BorderStyle.NONE},insideV:{style:BorderStyle.NONE} },
        rows: [new TableRow({ children: [
          new TableCell({
            shading: { type: ShadingType.SOLID, color: LIGHT_YELLOW },
            borders: { top:{style:BorderStyle.NONE},bottom:{style:BorderStyle.NONE},left:{style:BorderStyle.NONE},right:{style:BorderStyle.NONE} },
            children: [
              new Paragraph({ children:[new TextRun({text:"💡  KEY REMINDERS",bold:true,size:22,color:ACCENT_ORANGE,font:"Calibri"})], spacing:{before:100,after:60}, indent:{left:200} }),
              new Paragraph({ children:[new TextRun({text:"✔  Warm compresses 4× daily are the cornerstone of treatment",size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:30,after:20}, indent:{left:260} }),
              new Paragraph({ children:[new TextRun({text:"✔  Complete the full course of your antibiotic ointment even if the stye improves early",size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:20,after:20}, indent:{left:260} }),
              new Paragraph({ children:[new TextRun({text:"✔  Most styes heal in 7–14 days with proper care",size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:20,after:20}, indent:{left:260} }),
              new Paragraph({ children:[new TextRun({text:"✔  Never squeeze the stye",size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:20,after:20}, indent:{left:260} }),
              new Paragraph({ children:[new TextRun({text:"✔  Good hand and lid hygiene prevents recurrence",size:20,font:"Calibri",color:DARK_TEXT})], spacing:{before:20,after:100}, indent:{left:260} }),
            ]
          })
        ]})]
      }),
      spacer(1),

      // ── FOOTER ───────────────────────────────────────────────────────────
      new Paragraph({
        children: [new TextRun({ text: "This handout is for general patient education. Always follow the specific advice given by your own doctor or healthcare team.", size: 16, color: "888888", italics: true, font: "Calibri" })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 200, after: 0 },
      }),
      new Paragraph({
        children: [new TextRun({ text: `Produced: ${new Date().toLocaleDateString('en-GB', {day:'2-digit',month:'long',year:'numeric'})}  •  Sources: The Wills Eye Manual 7th ed. · Tintinalli's Emergency Medicine 9th ed.`, size: 16, color: "888888", italics: true, font: "Calibri" })],
        alignment: AlignmentType.CENTER,
        spacing: { before: 30, after: 0 },
      }),

    ]
  }]
});

Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/stye-handout/Stye_Patient_Education_Handout.docx", buffer);
  console.log("Done: Stye_Patient_Education_Handout.docx created");
}).catch(err => {
  console.error("Error:", err);
  process.exit(1);
});
Running Command

cd /home/daytona/workspace/stye-handout && node create_handout.js 2>&1

Running Command

python3 /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/stye-handout/Stye_Patient_Education_Handout.docx 2>&1

Running Command

cd /home/daytona/workspace/stye-handout && python3 -c " import zipfile, os z = zipfile.ZipFile('Stye_Patient_Education_Handout.docx') names = z.namelist() print('Files in docx:', names[:10]) # Check word/document.xml exists and has content xml = z.read('word/document.xml') print('document.xml size:', len(xml), 'bytes') print('Valid ZIP:', True) "

The file is valid. Here it is:

Stye Patient Education Handout

Word Document · DOCX


The handout is a fully formatted, colour-coded single-page Word document. Here's what's inside:
SectionContent
What is a Stye?Plain-language explanation + two-column box distinguishing external vs internal hordeolum
SymptomsBulleted checklist of what to expect
Home Care StepsNumbered icon-table: warm compress → massage → lid scrubs → antibiotic ointment with full instructions per step
What NOT to DoRed-highlighted table — no squeezing, no make-up, no contact lenses
PreventionSub-sections on hand hygiene, cosmetic hygiene, contact lens care, daily lid hygiene
When to See a Doctor UrgentlyRed alert box with red-flag warning signs
Key RemindersYellow summary box with 5 take-home points
FooterDate + textbook sources
Designed to be printed on A4 and handed to patients directly. Let me know if you'd like any changes — language level, language translation, logo, clinic name, or additional content.

Left upper eyelid external hordeolum or stye ... Write a prescription mention eye hygiene alongside the medication

Based on the authoritative sources already in context (Wills Eye Manual §6.2, Tintinalli's, Goodman & Gilman's), here is the focused prescription:

📋 PRESCRIPTION


Patient:_________________________________
Date:12 / 05 / 2026
Diagnosis:External hordeolum (stye) — Left upper eyelid
Organism:Staphylococcus aureus (typical)

℞ MEDICATION

Erythromycin Ophthalmic Ointment 0.5% Apply a thin ribbon along the left upper eyelid margin Twice daily (b.i.d.) — morning and at bedtime — × 10 days Disp: 1 tube (3.5 g)
How to apply: Wash hands. Gently pull down the lower lid. Squeeze a small ribbon (~1 cm) of ointment into the conjunctival sac. Blink to spread. Expect mild blurring for 1–2 minutes — this is normal.
Alternatives (if erythromycin unavailable):
  • Bacitracin ointment 500 units/g — b.i.d. × 10 days, OR
  • Tobramycin ophthalmic ointment 0.3% — b.i.d. × 10 days

🧼 EYE HYGIENE — Written on the Prescription (Mandatory)

Hygiene is co-equal to medication — the antibiotic ointment alone is insufficient without these measures.
1. Warm Compresses — 4× daily (q.i.d.) Soak a clean cloth in warm (not hot) water. Apply over the closed left eye for 10–15 minutes. Reheat the cloth every 2–3 minutes to maintain warmth throughout. This softens the blocked gland and promotes natural drainage. Perform before applying the ointment each session.
2. Gentle Massage — after each warm compress With a clean fingertip, gently press and massage the left upper eyelid toward the lash margin to encourage the gland to drain.
3. Eyelid Margin Scrub — once daily Using a cotton-tipped applicator moistened with diluted baby shampoo (1 drop in a cup of cooled boiled water) or commercial lid-scrub pads (OcuSoft / Sterilid), gently scrub along the base of the upper lashes.
4. Hand hygiene — wash hands thoroughly before and after all eye contact.
5. No squeezing — do not attempt to pop or puncture the stye.
6. Cosmetics & lenses — avoid eye make-up and contact lenses on the affected eye until fully healed. Discard any mascara or eyeliner used around the time of onset.

⚕️ SYSTEMIC ANTIBIOTICS

Not required for this uncomplicated external hordeolum.
Prescribe systemic antibiotics only if preseptal cellulitis develops (spreading eyelid erythema, diffuse warmth, fever) — in that event: Amoxicillin-clavulanate 875/125 mg p.o. b.i.d. × 7 days (or Clindamycin 300 mg t.i.d. if penicillin-allergic).

🔁 FOLLOW-UP & ESCALATION

TimeframeAction
2–3 weeksReview if no improvement
Not resolved at 4 weeksRefer ophthalmology — intralesional triamcinolone injection or incision & drainage (I&D)
Any time — spreading redness, fever, restricted eye movement, visual changeUrgent same-day ophthalmology referral → rule out preseptal/orbital cellulitis

Prescriber: _________________________ Signature: _________________________
Sources: The Wills Eye Manual 7th ed. §6.2; Tintinalli's Emergency Medicine 9th ed. Ch. 241; Goodman & Gilman's Pharmacological Basis of Therapeutics
This is a shared conversation. Sign in to Orris to start your own chat.