Prevention of dengue health talk lesson plan
dengue prevention WHO guidelines 2025 healthcare workers
mkdir -p /home/daytona/workspace/dengue-health-talk && ls /home/daytona/workspace/dengue-health-talk/
~/dengue-health-talk/create_lesson_plan.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, LevelFormat, WidthType, BorderStyle,
ShadingType, VerticalAlign, PageNumber, Header, Footer, PageBreak
} = require('docx');
const fs = require('fs');
// ─── Numbering config ──────────────────────────────────────────────────────────
const numberingConfig = [
{
reference: "bullets",
levels: [{
level: 0, format: LevelFormat.BULLET, text: "\u2022",
alignment: AlignmentType.LEFT,
style: {
paragraph: { indent: { left: 360, hanging: 360 } },
run: { font: "Arial" }
}
}, {
level: 1, format: LevelFormat.BULLET, text: "\u25E6",
alignment: AlignmentType.LEFT,
style: {
paragraph: { indent: { left: 720, hanging: 360 } },
run: { font: "Arial" }
}
}]
},
{
reference: "ordered",
levels: [{
level: 0, format: LevelFormat.DECIMAL, text: "%1.",
alignment: AlignmentType.LEFT,
style: {
paragraph: { indent: { left: 360, hanging: 360 } },
run: { font: "Arial" }
}
}]
}
];
// ─── Helper functions ──────────────────────────────────────────────────────────
function h1(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text, bold: true, size: 32, font: "Arial", color: "1B5E20" })] });
}
function h2(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text, bold: true, size: 26, font: "Arial", color: "1565C0" })] });
}
function h3(text) {
return new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text, bold: true, size: 24, font: "Arial", color: "4A4A4A" })] });
}
function body(text, opts = {}) {
return new Paragraph({
children: [new TextRun({ text, font: "Arial", size: 22, ...opts })],
spacing: { after: 80 }
});
}
function bold(text) { return body(text, { bold: true }); }
function bullet(text, level = 0) {
return new Paragraph({
numbering: { reference: "bullets", level },
children: [new TextRun({ text, font: "Arial", size: 22 })],
spacing: { after: 60 }
});
}
function numbered(text) {
return new Paragraph({
numbering: { reference: "ordered", level: 0 },
children: [new TextRun({ text, font: "Arial", size: 22 })],
spacing: { after: 60 }
});
}
function spacer() {
return new Paragraph({ children: [new TextRun("")], spacing: { after: 120 } });
}
function divider() {
return new Paragraph({
children: [new TextRun({ text: "", font: "Arial" })],
border: { bottom: { style: BorderStyle.SINGLE, size: 4, color: "BDBDBD" } },
spacing: { after: 120 }
});
}
// ─── Colored info box (shaded paragraph) ──────────────────────────────────────
function infoBox(text, shade = "E8F5E9") {
return new Paragraph({
children: [new TextRun({ text, font: "Arial", size: 22, italics: true })],
shading: { type: ShadingType.CLEAR, fill: shade },
spacing: { before: 80, after: 80 },
indent: { left: 360, right: 360 }
});
}
// ─── Table helper ─────────────────────────────────────────────────────────────
function makeTable(headers, rows, colWidths) {
const headerCells = headers.map((h, i) =>
new TableCell({
shading: { type: ShadingType.CLEAR, fill: "1565C0" },
verticalAlign: VerticalAlign.CENTER,
width: { size: colWidths[i], type: WidthType.DXA },
children: [new Paragraph({
alignment: AlignmentType.CENTER,
children: [new TextRun({ text: h, bold: true, font: "Arial", size: 20, color: "FFFFFF" })]
})]
})
);
const dataRows = rows.map((row, ri) =>
new TableRow({
children: row.map((cell, ci) =>
new TableCell({
shading: { type: ShadingType.CLEAR, fill: ri % 2 === 0 ? "FFFFFF" : "F5F5F5" },
verticalAlign: VerticalAlign.CENTER,
width: { size: colWidths[ci], type: WidthType.DXA },
children: [new Paragraph({
children: [new TextRun({ text: cell, font: "Arial", size: 20 })]
})]
})
)
})
);
return new Table({
width: { size: 9026, type: WidthType.DXA },
rows: [new TableRow({ children: headerCells }), ...dataRows]
});
}
// ─── DOCUMENT ─────────────────────────────────────────────────────────────────
const doc = new Document({
numbering: { config: numberingConfig },
styles: {
default: { document: { run: { font: "Arial", size: 22 } } }
},
sections: [{
properties: {
page: {
size: { width: 11906, height: 16838 }, // A4
margin: { top: 1134, right: 1134, bottom: 1134, left: 1134 } // ~0.79in
}
},
headers: {
default: new Header({
children: [new Paragraph({
alignment: AlignmentType.RIGHT,
children: [new TextRun({ text: "Prevention of Dengue – Health Talk Lesson Plan | Healthcare Workers", font: "Arial", size: 18, color: "757575" })]
})]
})
},
footers: {
default: new Footer({
children: [new Paragraph({
alignment: AlignmentType.CENTER,
children: [
new TextRun({ text: "Page ", font: "Arial", size: 18, color: "757575" }),
new PageNumber(),
new TextRun({ text: " | Prepared: July 2026 | Source: WHO 2025, Park's Textbook of Preventive & Social Medicine", font: "Arial", size: 18, color: "757575" })
]
})]
})
},
children: [
// ═══════════════════════════════════════════════════════════════════
// TITLE BLOCK
// ═══════════════════════════════════════════════════════════════════
new Paragraph({
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: "1B5E20" },
spacing: { before: 0, after: 0 },
children: [new TextRun({ text: " ", font: "Arial", size: 4 })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: "1B5E20" },
spacing: { before: 160, after: 60 },
children: [new TextRun({ text: "HEALTH TALK LESSON PLAN", font: "Arial", size: 36, bold: true, color: "FFFFFF" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: "1B5E20" },
spacing: { before: 0, after: 160 },
children: [new TextRun({ text: "Prevention of Dengue Fever", font: "Arial", size: 52, bold: true, color: "FFFFFF" })]
}),
new Paragraph({
alignment: AlignmentType.CENTER,
shading: { type: ShadingType.CLEAR, fill: "2E7D32" },
spacing: { before: 80, after: 80 },
children: [new TextRun({ text: "Target Audience: Healthcare Workers | Duration: 15–20 Minutes | Date: July 2, 2026", font: "Arial", size: 20, color: "FFFFFF" })]
}),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// LESSON OVERVIEW TABLE
// ═══════════════════════════════════════════════════════════════════
h2("LESSON OVERVIEW"),
divider(),
makeTable(
["Field", "Details"],
[
["Topic", "Prevention of Dengue Fever"],
["Target Audience", "Healthcare workers (nurses, midwives, community health workers, physicians)"],
["Duration", "15–20 minutes"],
["Setting", "Hospital ward, clinic, or community health facility"],
["Date", "July 2, 2026"],
["Facilitator", "___________________________________"],
["Mode", "Face-to-face lecture with Q&A"],
["Materials Needed", "Whiteboard/flip chart, printed handout, sample dengue warning-sign card"]
],
[1800, 7226]
),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// LEARNING OBJECTIVES
// ═══════════════════════════════════════════════════════════════════
h2("LEARNING OBJECTIVES"),
divider(),
body("By the end of this 15–20 minute session, participants will be able to:"),
spacer(),
numbered("Describe the etiology, vector, and transmission cycle of dengue fever."),
numbered("Identify the clinical phases and warning signs of dengue infection."),
numbered("Apply individual and environmental prevention strategies in their clinical and community settings."),
numbered("Explain the role of healthcare workers in dengue surveillance and early case detection."),
numbered("Counsel patients and families on home-based prevention measures."),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// BACKGROUND / RATIONALE
// ═══════════════════════════════════════════════════════════════════
h2("BACKGROUND AND RATIONALE"),
divider(),
body("Dengue is a viral infection caused by the dengue virus (DENV), transmitted to humans through the bite of infected Aedes aegypti (and Aedes albopictus) mosquitoes. It is one of the fastest-growing vector-borne diseases globally."),
spacer(),
infoBox("WHO KEY FACTS (2025): About half the world's population is now at risk. An estimated 100–400 million infections occur each year. Over 5.6 billion people are at risk as Aedes mosquitoes spread to new regions due to climate change, urbanization, and travel.", "E3F2FD"),
spacer(),
body("There are 4 serotypes (DENV-1 to DENV-4). Secondary infection with a different serotype carries a higher risk of severe dengue (dengue haemorrhagic fever / dengue shock syndrome). Prevention and vector control remain the primary strategies, as there is no specific antiviral treatment."),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// TIMED LESSON PLAN
// ═══════════════════════════════════════════════════════════════════
h2("TIMED LESSON PLAN"),
divider(),
// ── PART 1 ──
h3("PART 1 – Introduction and Epidemiology (3 minutes)"),
spacer(),
bold("Facilitator Actions:"),
bullet("Introduce yourself and state the topic and objectives."),
bullet("Ask a quick engagement question: "How many of you have encountered a dengue case in the last month?""),
bullet("Share global and local burden data."),
spacer(),
bold("Key Content Points:"),
bullet("Dengue is endemic in tropical and subtropical regions worldwide."),
bullet("Cases are rising – record numbers reported in 2024–2025 (WHO, 2025)."),
bullet("The Aedes aegypti mosquito bites primarily during the day (early morning, late afternoon)."),
bullet("Incubation period: 3–10 days (commonly 5–6 days)."),
bullet("Four serotypes; immunity after infection is serotype-specific only."),
spacer(),
infoBox("FACILITATOR TIP: Use a local dengue case count from your facility or municipality to make the data relevant and impactful.", "FFF9C4"),
spacer(),
// ── PART 2 ──
h3("PART 2 – Clinical Phases and Warning Signs (4 minutes)"),
spacer(),
bold("Facilitator Actions:"),
bullet("Walk through the 3 clinical phases using a whiteboard or flip chart."),
bullet("Emphasize warning signs that require immediate hospital referral."),
spacer(),
bold("Three Clinical Phases of Dengue:"),
spacer(),
makeTable(
["Phase", "Duration", "Key Features"],
[
["Febrile Phase", "Days 1–3", "Sudden high fever (39–40°C), severe headache, retro-orbital pain, myalgia, arthralgia, flushing, rash. Leukopenia begins."],
["Critical Phase", "Days 4–6\n(around defervescence)", "Plasma leakage, risk of shock. Platelet count drops rapidly. Warning signs appear. Most deaths occur here."],
["Recovery Phase", "Days 7–10", "Fluid reabsorption. Risk of fluid overload. Bradycardia and rash common. General improvement."]
],
[1500, 1800, 5726]
),
spacer(),
bold("WARNING SIGNS (refer to hospital immediately if present):"),
bullet("Severe abdominal pain or tenderness"),
bullet("Persistent vomiting"),
bullet("Rapid breathing or clinical fluid accumulation (ascites, pleural effusion)"),
bullet("Mucosal bleeding (gum bleeding, epistaxis, haematemesis, melaena)"),
bullet("Lethargy, restlessness, or confusion"),
bullet("Liver enlargement > 2 cm"),
bullet("Platelet count < 20,000 cells/mm³"),
bullet("Rise in haematocrit concurrent with rapid drop in platelet count"),
spacer(),
infoBox("CLINICAL NOTE: A narrowing pulse pressure (≤20 mmHg) is an early sign of dengue shock syndrome. The inexperienced clinician may miss this by focusing only on systolic pressure.", "FFE0E0"),
spacer(),
// ── PART 3 ──
h3("PART 3 – Prevention Strategies (6 minutes)"),
spacer(),
body("Prevention is the ONLY reliable control strategy. There is no specific antiviral treatment for dengue. Emphasize the following three pillars:"),
spacer(),
bold("A. Vector Control (Environmental Measures)"),
bullet("Eliminate mosquito breeding sites (key message: 'No water, no mosquito')"),
bullet("Cover, empty, or treat all water-storage containers (drums, pots, flower vases) weekly"),
bullet("Practice the 'Weekly Dry Day' – community-wide cleaning of potential breeding sites every week"),
bullet("Manage rooftops, porticos, and sunshades where water collects"),
bullet("Use larvicides (temephos) in water containers that cannot be emptied"),
bullet("Conduct indoor residual spraying and space spraying during outbreaks (fogging)"),
bullet("Enforce proper solid-waste management; remove discarded tires, cans, containers"),
spacer(),
bold("B. Personal Protection Measures"),
bullet("Wear long-sleeved shirts and long pants, especially during peak biting hours (early morning, late afternoon)"),
bullet("Apply insect repellent containing DEET, picaridin, or IR3535 on exposed skin"),
bullet("Use mosquito bed nets (especially for infants and young children who nap during the day)"),
bullet("Install window and door screens"),
bullet("Use mosquito coils, mats, plug-in repellents, or electric vaporizers indoors"),
bullet("Isolate febrile dengue patients under bed nets to prevent further transmission"),
spacer(),
bold("C. Dengue Vaccine (Dengvaxia – CYD-TDV)"),
bullet("Available in some endemic countries; indicated only in seropositive individuals aged 9–45 years"),
bullet("Contraindicated in: immunocompromised patients, pregnant/breastfeeding women, those with active febrile illness"),
bullet("Not a substitute for vector control – vaccination must be combined with other prevention measures"),
bullet("No vaccine currently available for Zika; yellow fever vaccine provides lifelong immunity"),
spacer(),
infoBox("WHO 2025 GLOBAL STRATEGY: Integrated Vector Management (IVM) – a multi-pronged approach combining biological, chemical, and environmental methods – is the recommended framework. All stakeholders (community, health sector, government) must be involved.", "E8F5E9"),
spacer(),
// ── PART 4 ──
h3("PART 4 – Role of Healthcare Workers (2 minutes)"),
spacer(),
bold("Healthcare workers are frontline defenders against dengue. Responsibilities include:"),
spacer(),
numbered("Early case detection and timely reporting to local/national surveillance systems (NVBDCP, DOH, etc.)"),
numbered("Accurate triage of febrile patients – always consider dengue in endemic areas during peak season"),
numbered("Counsel patients and caregivers on warning signs and when to return to the facility"),
numbered("Conduct community health education (barangay-level, ward-level, school-based)"),
numbered("Participate in source reduction activities (community clean-up drives)"),
numbered("Monitor and follow up discharged dengue patients: temperature, fluid intake, urine output, platelet trend"),
numbered("Report adverse events if dengue vaccine is administered"),
spacer(),
infoBox("Patients sent home with dengue must be monitored daily for temperature, fluid intake/output, warning signs, haematocrit, and platelet count until they are well past the critical phase.", "FFF9C4"),
spacer(),
// ── PART 5 ──
h3("PART 5 – Summary, Q&A, and Evaluation (3 minutes)"),
spacer(),
bold("Summary Key Messages (reinforce these):"),
bullet("Dengue is transmitted by the day-biting Aedes mosquito – eliminate its breeding sites."),
bullet("The critical phase is at defervescence (day 4–6) – watch for warning signs."),
bullet("No specific treatment exists; early detection and supportive care save lives."),
bullet("Prevention = eliminate breeding sites + personal protection + community action."),
bullet("Healthcare workers play a key role in surveillance, education, and early case management."),
spacer(),
bold("Q&A Session (2 minutes):"),
bullet("Open the floor for questions."),
bullet("Use flipchart to note down recurring concerns for follow-up."),
spacer(),
bold("Post-Test / Evaluation (optional, if time allows):"),
bullet("Distribute a 5-item verbal or written post-test to gauge learning."),
bullet("Sample questions: What are 3 warning signs of dengue? Name 2 personal protection measures. When does the critical phase of dengue occur?"),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// ASSESSMENT QUESTIONS
// ═══════════════════════════════════════════════════════════════════
h2("SAMPLE ASSESSMENT QUESTIONS"),
divider(),
makeTable(
["#", "Question", "Expected Answer"],
[
["1", "What mosquito transmits dengue and when does it bite?", "Aedes aegypti; bites during daylight hours (early morning, late afternoon)"],
["2", "Name three warning signs of dengue requiring hospital referral.", "Any 3 of: severe abdominal pain, persistent vomiting, mucosal bleeding, lethargy, rapid breathing, platelet < 20,000"],
["3", "What is the 'Weekly Dry Day'?", "A community practice of removing, emptying, or covering all water-holding containers every week to destroy mosquito breeding sites"],
["4", "Why is dengue more severe on second infection?", "Secondary infection with a different serotype causes antibody-dependent enhancement, increasing viral replication and severity"],
["5", "Name two personal protection measures.", "Any 2 of: repellent, long clothes, bed nets, window screens, coils/mats"]
],
[400, 4000, 4626]
),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// PATIENT COUNSELING GUIDE
// ═══════════════════════════════════════════════════════════════════
h2("PATIENT / COMMUNITY COUNSELING GUIDE"),
divider(),
body("Use these key messages when counseling patients and community members:"),
spacer(),
bullet("\"There is NO specific medicine for dengue – only supportive treatment. Prevention is your best weapon.\""),
bullet("\"Paracetamol is safe for fever. NEVER give aspirin, ibuprofen, or NSAIDS – they increase bleeding risk.\""),
bullet("\"Drink plenty of fluids: ORS, fruit juices, coconut water. Aim for urine output at least every 6 hours.\""),
bullet("\"Go to the hospital IMMEDIATELY if: severe stomach pain, vomiting blood, black tarry stools, cold clammy hands/feet, difficulty breathing, or no urine for 4–6 hours.\""),
bullet("\"Check inside and outside your home for standing water. Empty containers, cover water drums, change flower-vase water weekly.\""),
bullet("\"Wear long clothing, use mosquito repellent especially in the morning and late afternoon.\""),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// REFERENCES
// ═══════════════════════════════════════════════════════════════════
h2("REFERENCES"),
divider(),
bullet("World Health Organization (WHO). New Guidelines for Clinical Management of Arboviral Diseases: Dengue, Chikungunya, Zika and Yellow Fever. July 10, 2025. Geneva: WHO."),
bullet("World Health Organization (WHO). Dengue Fact Sheet. August 21, 2025. Geneva: WHO."),
bullet("Park K. Dengue Fever. In: Park's Textbook of Preventive and Social Medicine, 26th ed. Jabalpur: Banarsidas Bhanot; 2021. pp. 288–300."),
bullet("Centers for Disease Control and Prevention (CDC). Health Alert Network: Ongoing Risk of Dengue Virus Infections – Updated Testing Recommendations. 2025."),
bullet("WHO. Global Strategy for Dengue Prevention and Control 2012–2020 (updated 2030 targets). Geneva: WHO."),
spacer(),
// ═══════════════════════════════════════════════════════════════════
// SIGN-OFF
// ═══════════════════════════════════════════════════════════════════
divider(),
makeTable(
["Role", "Name", "Signature", "Date"],
[
["Facilitator / Speaker", "___________________", "___________________", "___________"],
["Supervisor / In-charge", "___________________", "___________________", "___________"],
["Reviewed by", "___________________", "___________________", "___________"]
],
[2000, 2500, 2500, 2026]
),
spacer()
]
}]
});
Packer.toBuffer(doc).then(buf => {
fs.writeFileSync('/home/daytona/workspace/dengue-health-talk/Dengue_Prevention_Health_Talk_Lesson_Plan.docx', buf);
console.log('Done');
});
cd /home/daytona/workspace/dengue-health-talk && node create_lesson_plan.js 2>&1
cd /home/daytona/workspace/dengue-health-talk && sed -i 's/\u201c/\\"/g; s/\u201d/\\"/g; s/\u2018/'"'"'/g; s/\u2019/'"'"'/g' create_lesson_plan.js && node create_lesson_plan.js 2>&1
python3 -c " import re with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'r') as f: txt = f.read() txt = txt.replace('\u201c', '\\\\\"').replace('\u201d', '\\\\\"').replace('\u2018', \"'\").replace('\u2019', \"'\") with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'w') as f: f.write(txt) print('Fixed') "
cd /home/daytona/workspace/dengue-health-talk && node create_lesson_plan.js 2>&1
\" inside a string that already uses double-quote delimiters. The fix is to just use single-quoted strings for those bullet calls. Let me fix line 248 specifically.python3 -c " with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'r') as f: lines = f.readlines() # Fix all lines that have escaped quotes inside double-quoted strings import re new_lines = [] for line in lines: # Replace \\\" with ' in bullet/body/bold call strings to avoid JS syntax error # Only in lines that are string content in function calls fixed = line.replace('\\\\\"', \"'\") new_lines.append(fixed) with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'w') as f: f.writelines(new_lines) print('done') "
cd /home/daytona/workspace/dengue-health-talk && node create_lesson_plan.js 2>&1
python3 << 'EOF' with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'r', encoding='utf-8') as f: content = f.read() # Check what characters are on line 248 lines = content.split('\n') print(repr(lines[247])) EOF
python3 << 'EOF' with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'r', encoding='utf-8') as f: content = f.read() lines = content.split('\n') # Fix line 248 (index 247) old = lines[247] lines[247] = " bullet('Ask a quick engagement question: How many of you have encountered a dengue case in the last month?')," # Also scan all other lines for unmatched double-quotes in bullet/bold/body calls # Replace all remaining curly/smart quote chars with straight apostrophe import re new_lines = [] for i, line in enumerate(lines): # Replace any Unicode left/right double quotation marks with nothing problematic line = line.replace('\u201c', "'").replace('\u201d', "'") line = line.replace('\u2018', "'").replace('\u2019', "'") new_lines.append(line) with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'w', encoding='utf-8') as f: f.write('\n'.join(new_lines)) print('done') EOF
cd /home/daytona/workspace/dengue-health-talk && node create_lesson_plan.js 2>&1 && echo "FILE SIZE: $(wc -c < Dengue_Prevention_Health_Talk_Lesson_Plan.docx) bytes"
PageNumber is not a constructor in this version of docx). Let me fix and finish in one final execute.python3 << 'EOF' with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'r') as f: c = f.read() # Replace PageNumber() with a plain TextRun for page number placeholder c = c.replace('new PageNumber(),', '') c = c.replace( 'new TextRun({ text: " | Prepared: July 2026 | Source: WHO 2025, Park\'s Textbook of Preventive & Social Medicine", font: "Arial", size: 18, color: "757575" })', 'new TextRun({ text: " | Prepared: July 2026 | Source: WHO 2025, Parks Textbook of Preventive & Social Medicine", font: "Arial", size: 18, color: "757575" })' ) with open('/home/daytona/workspace/dengue-health-talk/create_lesson_plan.js', 'w') as f: f.write(c) print("fixed") EOF cd /home/daytona/workspace/dengue-health-talk && node create_lesson_plan.js 2>&1 && echo "FILE SIZE: $(wc -c < Dengue_Prevention_Health_Talk_Lesson_Plan.docx) bytes"