Grand presentation for nursing students of 2nd year Pokhara academy of health sciences On the topic vaccine
PowerPoint
Nepal national immunization program schedule 2024 vaccines list
https://epomedicine.com/medical-students/national-immunizati…
mkdir -p /home/daytona/workspace/vaccine-presentation && ls /home/daytona/worksp…
~/vaccine-presentation/vaccine_pptx.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Vaccines - A Comprehensive Overview";
pres.author = "Pokhara Academy of Health Sciences";
pres.subject = "Nursing Education - 2nd Year";
// ─── COLOR PALETTE ───────────────────────────────────────────────────────────
const C = {
navy: "0D2E5A", // dominant dark blue
teal: "1B7FA8", // supporting teal
aqua: "28C1D0", // accent / highlight
white: "FFFFFF",
offwhite:"F0F6FA",
lightBlue:"D6EAF8",
slate: "334E68",
gray: "6B7C93",
yellow: "F5C842",
green: "27AE60",
red: "C0392B",
orange: "E67E22",
};
// ─── HELPER: dark title slide ─────────────────────────────────────────────────
function darkSlide(title, subtitle) {
let sl = pres.addSlide();
sl.background = { color: C.navy };
// accent bar
sl.addShape(pres.ShapeType.rect, { x: 0, y: 4.8, w: 10, h: 0.12, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(title, { x: 0.5, y: 1.4, w: 9, h: 1.8, fontSize: 44, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
if (subtitle) sl.addText(subtitle, { x: 0.5, y: 3.3, w: 9, h: 0.8, fontSize: 20, color: C.aqua, align: "center", fontFace: "Calibri" });
return sl;
}
// ─── HELPER: section divider ──────────────────────────────────────────────────
function sectionSlide(num, title, icon) {
let sl = pres.addSlide();
sl.background = { color: C.teal };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.22, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(`${icon || ""} ${title}`, {
x: 0.55, y: 1.9, w: 8.9, h: 1.2,
fontSize: 36, bold: true, color: C.white, fontFace: "Calibri"
});
sl.addText(`Section ${num}`, { x: 0.55, y: 1.3, w: 4, h: 0.5, fontSize: 16, color: C.lightBlue, fontFace: "Calibri" });
return sl;
}
// ─── HELPER: content slide ────────────────────────────────────────────────────
function contentSlide(title, bullets, opts = {}) {
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
// header bar
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(title, { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
// bullet body
const textArr = bullets.map((b, i) => {
const isLast = i === bullets.length - 1;
if (typeof b === "string") {
return { text: b, options: { bullet: { type: "bullet" }, breakLine: !isLast, fontSize: 18, color: C.navy, fontFace: "Calibri", paraSpaceAfter: 6 } };
}
// { text, sub } for sub-bullets
return { text: b.text, options: { bullet: { type: "bullet" }, indentLevel: b.sub ? 1 : 0, breakLine: !isLast, fontSize: b.sub ? 16 : 18, color: b.sub ? C.slate : C.navy, fontFace: "Calibri", paraSpaceAfter: 4 } };
});
sl.addText(textArr, {
x: opts.x || 0.4, y: 1.15, w: opts.w || 9.2, h: 4.25,
valign: "top", fontFace: "Calibri"
});
// slide number dot
sl.addShape(pres.ShapeType.ellipse, { x: 9.55, y: 5.2, w: 0.35, h: 0.35, fill: { color: C.teal }, line: { color: C.teal } });
return sl;
}
// ─── HELPER: two-column slide ─────────────────────────────────────────────────
function twoColSlide(title, leftTitle, leftBullets, rightTitle, rightBullets, leftColor, rightColor) {
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(title, { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
// left box
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: 1.15, w: 4.55, h: 4.3, fill: { color: leftColor || C.lightBlue }, line: { color: C.teal, pt: 1 } });
sl.addText(leftTitle, { x: 0.35, y: 1.2, w: 4.3, h: 0.5, fontSize: 16, bold: true, color: C.navy, fontFace: "Calibri" });
const lArr = leftBullets.map((b, i) => ({ text: b, options: { bullet: { type: "bullet" }, breakLine: i < leftBullets.length-1, fontSize: 15, color: C.navy, fontFace: "Calibri", paraSpaceAfter: 5 } }));
sl.addText(lArr, { x: 0.35, y: 1.75, w: 4.3, h: 3.5, valign: "top", fontFace: "Calibri" });
// right box
sl.addShape(pres.ShapeType.rect, { x: 5.2, y: 1.15, w: 4.55, h: 4.3, fill: { color: rightColor || "E8F6F3" }, line: { color: C.green, pt: 1 } });
sl.addText(rightTitle, { x: 5.3, y: 1.2, w: 4.3, h: 0.5, fontSize: 16, bold: true, color: C.navy, fontFace: "Calibri" });
const rArr = rightBullets.map((b, i) => ({ text: b, options: { bullet: { type: "bullet" }, breakLine: i < rightBullets.length-1, fontSize: 15, color: C.navy, fontFace: "Calibri", paraSpaceAfter: 5 } }));
sl.addText(rArr, { x: 5.3, y: 1.75, w: 4.3, h: 3.5, valign: "top", fontFace: "Calibri" });
return sl;
}
// ─── HELPER: table slide ──────────────────────────────────────────────────────
function tableSlide(title, headers, rows, colW) {
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(title, { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const tableRows = [
headers.map(h => ({ text: h, options: { bold: true, color: C.white, fill: C.teal, fontSize: 13, align: "center", fontFace: "Calibri" } })),
...rows.map((row, ri) => row.map(cell => ({ text: cell, options: { fontSize: 12, color: C.navy, fill: ri % 2 === 0 ? C.white : C.lightBlue, fontFace: "Calibri" } })))
];
sl.addTable(tableRows, { x: 0.2, y: 1.1, w: 9.6, h: 4.3, colW: colW, rowH: 0.38, border: { pt: 0.5, color: "BDD7EE" } });
return sl;
}
// ─── HELPER: highlight box slide ──────────────────────────────────────────────
function highlightSlide(title, items) {
// items: [{icon, label, body}]
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText(title, { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const boxColors = [C.lightBlue, "E8F8F5", "FEF9E7", "FDEDEC", "EAF2FF", "F9EBFF"];
const perRow = items.length <= 3 ? items.length : Math.ceil(items.length / 2);
const rows = Math.ceil(items.length / perRow);
const bw = (9.5) / perRow - 0.1;
const bh = (4.2) / rows - 0.1;
items.forEach((item, idx) => {
const col = idx % perRow;
const row = Math.floor(idx / perRow);
const x = 0.25 + col * (bw + 0.1);
const y = 1.15 + row * (bh + 0.1);
sl.addShape(pres.ShapeType.rect, { x, y, w: bw, h: bh, fill: { color: boxColors[idx % boxColors.length] }, line: { color: C.teal, pt: 1.2 } });
sl.addText(item.icon || "", { x: x + 0.1, y: y + 0.05, w: 0.5, h: 0.5, fontSize: 20, fontFace: "Segoe UI Emoji" });
sl.addText(item.label, { x: x + 0.05, y: y + 0.48, w: bw - 0.1, h: 0.38, fontSize: 14, bold: true, color: C.navy, align: "center", fontFace: "Calibri" });
sl.addText(item.body, { x: x + 0.1, y: y + 0.85, w: bw - 0.2, h: bh - 0.95, fontSize: 12, color: C.slate, fontFace: "Calibri", valign: "top" });
});
return sl;
}
// ══════════════════════════════════════════════════════════════════════════════
// SLIDES BEGIN
// ══════════════════════════════════════════════════════════════════════════════
// ── SLIDE 1: Title ────────────────────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.navy };
// gradient band
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.35, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 0, w: 0.2, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
// institution badge
sl.addShape(pres.ShapeType.rect, { x: 0.8, y: 0.3, w: 8.8, h: 0.6, fill: { color: C.slate }, line: { color: C.slate } });
sl.addText("POKHARA ACADEMY OF HEALTH SCIENCES", { x: 0.8, y: 0.3, w: 8.8, h: 0.6, fontSize: 13, bold: true, color: C.aqua, align: "center", valign: "middle", charSpacing: 2, fontFace: "Calibri" });
// main title
sl.addText("VACCINES", { x: 0.8, y: 1.1, w: 8.8, h: 1.4, fontSize: 72, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
sl.addShape(pres.ShapeType.rect, { x: 0.8, y: 2.5, w: 8.8, h: 0.07, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("A Comprehensive Overview for Nursing Students", { x: 0.8, y: 2.65, w: 8.8, h: 0.65, fontSize: 22, color: C.lightBlue, align: "center", fontFace: "Calibri" });
sl.addText("B.Sc. Nursing — 2nd Year | Community Health Nursing & Fundamentals", { x: 0.8, y: 3.4, w: 8.8, h: 0.45, fontSize: 14, color: C.gray, align: "center", fontFace: "Calibri" });
sl.addText("July 2026", { x: 0.8, y: 5.05, w: 8.8, h: 0.4, fontSize: 13, color: C.gray, align: "center", fontFace: "Calibri" });
}
// ── SLIDE 2: Table of Contents ────────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Contents at a Glance", { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 24, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const sections = [
["1", "Introduction to Vaccines", "Definition, history, importance"],
["2", "Types of Vaccines", "Live-attenuated, Inactivated, Subunit, mRNA, etc."],
["3", "Mechanism of Action", "Immune response, antibodies, memory cells"],
["4", "Nepal National Immunization Schedule", "EPI programme, schedule, vaccines"],
["5", "Cold Chain Management", "Storage, transportation, monitoring"],
["6", "Adverse Events Following Immunization (AEFI)", "Types, management, reporting"],
["7", "Contraindications & Precautions", "When NOT to vaccinate"],
["8", "Nursing Responsibilities", "Before, during and after vaccination"],
["9", "Vaccine-Preventable Diseases", "Key diseases and their vaccines"],
["10", "Herd Immunity & Global Goals", "Coverage targets, eradication"],
];
sections.forEach(([num, title, sub], i) => {
const col = i < 5 ? 0 : 1;
const row = i < 5 ? i : i - 5;
const x = col === 0 ? 0.3 : 5.2;
const y = 1.15 + row * 0.82;
sl.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.72, fill: { color: col === 0 ? C.lightBlue : "E8F6F3" }, line: { color: C.teal, pt: 0.8 } });
sl.addShape(pres.ShapeType.ellipse, { x: x + 0.08, y: y + 0.11, w: 0.48, h: 0.48, fill: { color: C.teal }, line: { color: C.teal } });
sl.addText(num, { x: x + 0.08, y: y + 0.11, w: 0.48, h: 0.48, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
sl.addText(title, { x: x + 0.65, y: y + 0.04, w: 3.85, h: 0.35, fontSize: 14, bold: true, color: C.navy, fontFace: "Calibri", margin: 0 });
sl.addText(sub, { x: x + 0.65, y: y + 0.38, w: 3.85, h: 0.28, fontSize: 11, color: C.gray, fontFace: "Calibri", margin: 0 });
});
}
// ═══════════ SECTION 1: INTRODUCTION ══════════════════════════════════════════
sectionSlide(1, "Introduction to Vaccines", "💉");
// ── SLIDE: What is a Vaccine? ─────────────────────────────────────────────────
contentSlide("What is a Vaccine?", [
"A vaccine is a biological preparation that provides active acquired immunity to a particular infectious disease.",
"It contains an agent (weakened/killed pathogen, toxoid, or antigen) that stimulates the body's immune system.",
"The immune system recognises the agent as a threat, destroys it, and 'remembers' it.",
"On future exposure to the real pathogen, the immune system can rapidly eliminate it before disease develops.",
"WHO definition: 'A biological preparation that improves immunity to a particular disease.'",
"Vaccines are one of the most cost-effective public health interventions ever developed.",
]);
// ── SLIDE: Historical Milestones ──────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Historical Milestones in Vaccination", { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const milestones = [
{ year: "1796", event: "Edward Jenner uses cowpox to protect against smallpox — first vaccine" },
{ year: "1885", event: "Louis Pasteur develops rabies vaccine" },
{ year: "1921", event: "BCG vaccine for tuberculosis introduced" },
{ year: "1952", event: "Salk develops inactivated polio vaccine (IPV)" },
{ year: "1967", event: "WHO launches global smallpox eradication program" },
{ year: "1977", event: "Nepal launches EPI (Expanded Programme on Immunization)" },
{ year: "1980", event: "Smallpox declared eradicated — first human disease eradicated by vaccine" },
{ year: "2020", event: "First mRNA vaccine (COVID-19) authorised in record time" },
];
milestones.forEach((m, i) => {
const x = i % 2 === 0 ? 0.25 : 5.1;
const y = 1.15 + Math.floor(i / 2) * 1.05;
sl.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 0.9, fill: { color: i % 2 === 0 ? C.lightBlue : "E8F6F3" }, line: { color: C.teal, pt: 0.8 } });
sl.addText(m.year, { x: x + 0.1, y: y + 0.05, w: 0.9, h: 0.8, fontSize: 20, bold: true, color: C.teal, valign: "middle", fontFace: "Calibri" });
sl.addShape(pres.ShapeType.rect, { x: x + 1.0, y: y + 0.1, w: 0.03, h: 0.7, fill: { color: C.teal }, line: { color: C.teal } });
sl.addText(m.event, { x: x + 1.1, y: y + 0.05, w: 3.4, h: 0.8, fontSize: 13, color: C.navy, valign: "middle", fontFace: "Calibri" });
});
}
// ── SLIDE: Importance of Vaccines ────────────────────────────────────────────
highlightSlide("Why Vaccines Matter", [
{ icon: "🛡️", label: "Disease Prevention", body: "Protect individual from infection and severe disease" },
{ icon: "🌍", label: "Herd Immunity", body: "Protect unvaccinated people when coverage is high enough" },
{ icon: "💰", label: "Cost Effective", body: "Saves trillions in healthcare & economic costs globally" },
{ icon: "📉", label: "Reduces Mortality", body: "2-3 million deaths prevented every year by vaccines" },
{ icon: "🏥", label: "Eradication", body: "Smallpox eradicated; polio near eradication worldwide" },
{ icon: "👶", label: "Child Survival", body: "Key strategy in reducing under-5 child mortality" },
]);
// ═══════════ SECTION 2: TYPES OF VACCINES ═════════════════════════════════════
sectionSlide(2, "Types of Vaccines", "🔬");
// ── SLIDE: Live-attenuated vs Inactivated ────────────────────────────────────
twoColSlide(
"Live-Attenuated vs Inactivated Vaccines",
"🦠 Live-Attenuated",
[
"Contain weakened (attenuated) form of live pathogen",
"Produce strong, long-lasting immune response",
"Often single dose sufficient",
"Examples: BCG, OPV, MR, Varicella, Yellow Fever, JE",
"⚠ NOT for immunocompromised or pregnant women",
"Require strict cold chain (heat sensitive)",
],
"💊 Inactivated Vaccines",
[
"Contain killed pathogen — cannot cause disease",
"Safer for immunocompromised patients",
"Usually require multiple doses + boosters",
"Examples: IPV, Hepatitis A, Rabies, Influenza (some)",
"More heat stable than live vaccines",
"Adjuvants often added to boost response",
],
C.lightBlue, "E8F6F3"
);
// ── SLIDE: Other Vaccine Types ────────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Other Types of Vaccines", { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const types = [
{ name: "Toxoid Vaccines", detail: "Inactivated bacterial toxins (toxoids)\nE.g. Tetanus, Diphtheria (DT/Td)\nImmunity is against the toxin, not the bacteria", color: "FEF9E7" },
{ name: "Subunit / Protein Vaccines", detail: "Specific antigen (protein/polysaccharide) only\nE.g. Hepatitis B, Pertussis (acellular), HPV\nHighly purified — very safe", color: C.lightBlue },
{ name: "Conjugate Vaccines", detail: "Polysaccharide antigen linked to carrier protein\nE.g. PCV (Pneumococcal), Hib, Typhoid conjugate\nBetter immune response in infants", color: "E8F6F3" },
{ name: "mRNA Vaccines", detail: "Deliver genetic instructions to make antigen\nE.g. Pfizer-BioNTech, Moderna (COVID-19)\nCannot integrate into DNA; degraded after use", color: "EAF2FF" },
{ name: "Viral Vector Vaccines", detail: "Modified virus carries antigen gene into cells\nE.g. AstraZeneca, Johnson & Johnson (COVID-19)\nAlso used in Ebola vaccine", color: "F9EBFF" },
{ name: "VLP (Virus-Like Particle)", detail: "Empty shells resembling virus — no genetic material\nE.g. HPV vaccine (Gardasil, Cervarix)\nExtremely safe — no infectious component", color: "FFF3E0" },
];
types.forEach((t, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.25 + col * 3.2;
const y = 1.15 + row * 2.2;
sl.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 2.1, fill: { color: t.color }, line: { color: C.teal, pt: 1 } });
sl.addShape(pres.ShapeType.rect, { x, y, w: 3.0, h: 0.42, fill: { color: C.teal }, line: { color: C.teal } });
sl.addText(t.name, { x: x + 0.08, y: y + 0.04, w: 2.84, h: 0.34, fontSize: 13, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
sl.addText(t.detail, { x: x + 0.1, y: y + 0.48, w: 2.8, h: 1.56, fontSize: 12, color: C.navy, fontFace: "Calibri", valign: "top" });
});
}
// ═══════════ SECTION 3: MECHANISM ════════════════════════════════════════════
sectionSlide(3, "Mechanism of Action", "⚙️");
// ── SLIDE: Immune Response to Vaccine ────────────────────────────────────────
contentSlide("How Vaccines Work: The Immune Response", [
"STEP 1 — Antigen Introduction: Vaccine antigen enters the body (injection/oral/intranasal route)",
"STEP 2 — Antigen Presentation: APCs (macrophages, dendritic cells) engulf and present antigens on MHC molecules",
"STEP 3 — T-Cell Activation: CD4+ helper T cells recognise the antigen and activate B cells and CD8+ cytotoxic T cells",
"STEP 4 — B-Cell Differentiation: B cells produce plasma cells (secreting antibodies) and memory B cells",
"STEP 5 — Antibody Production: IgM produced first, then class switching to IgG, IgA, or IgE",
"STEP 6 — Memory Formation: Long-lived memory T and B cells persist for years (immune memory)",
"STEP 7 — Secondary Response: On real infection, memory cells rapidly multiply and clear pathogen before symptoms develop",
]);
// ── SLIDE: Primary vs Secondary Response ─────────────────────────────────────
twoColSlide(
"Primary vs Secondary Immune Response",
"1st Response (Primary)",
[
"Occurs after first exposure to antigen",
"Latency period: 7-14 days",
"Lower antibody titres produced",
"Predominantly IgM class",
"Short-lived antibody response",
"May not fully prevent disease",
"Forms memory cells for future use",
],
"2nd Response (Secondary / Anamnestic)",
[
"Occurs after booster dose or real infection",
"Latency period: 1-3 days only",
"Much higher antibody titres (10-100x)",
"Predominantly IgG (higher affinity)",
"Long-lasting protection",
"Rapid elimination of pathogen",
"Basis for booster dose rationale",
],
C.lightBlue, "E8F6F3"
);
// ═══════════ SECTION 4: NEPAL EPI SCHEDULE ════════════════════════════════════
sectionSlide(4, "Nepal National Immunization Schedule", "🇳🇵");
// ── SLIDE: EPI Nepal overview ────────────────────────────────────────────────
contentSlide("Nepal's Expanded Programme on Immunization (EPI)", [
"Launched: 2034 BS (1977/78 AD) under Ministry of Health and Population",
"Nepal currently provides 10 antigens free-of-cost through the national programme",
"Goal: Every child fully immunized before the age of 1 year (primary series)",
"Children require at least 7 contacts with health facilities for full immunization",
"Nepal became POLIO-FREE in 2010 — a major public health achievement",
"Measles-Rubella (MR) vaccine replaced measles-only vaccine in 2016",
"Recent additions: Rotavirus (2020), Typhoid Conjugate Vaccine (2022), HPV (adolescent girls)",
"HPV vaccine programme: Girls in grades 6-10 and out-of-school girls aged 10+",
]);
// ── SLIDE: Nepal EPI Schedule Table ─────────────────────────────────────────
tableSlide(
"Nepal National Immunization Schedule (2024)",
["Vaccine", "Age", "Doses", "Route", "Protects Against"],
[
["BCG", "At birth", "1", "Intradermal", "Tuberculosis"],
["Pentavalent (DPT-HepB-Hib)", "6, 10, 14 weeks", "3", "Intramuscular", "Diphtheria, Pertussis, Tetanus, Hep B, Hib"],
["OPV (bOPV)", "6, 10, 14 weeks", "3", "Oral", "Poliomyelitis"],
["PCV-10", "6, 10 weeks + 9 months", "3", "Intramuscular", "Pneumococcal diseases"],
["Rotavirus (RV1)", "6 & 10 weeks", "2", "Oral", "Rotavirus diarrhea"],
["fIPV", "14 weeks & 9 months", "2", "Intradermal", "Poliomyelitis"],
["MR", "9 & 15 months", "2", "Subcutaneous", "Measles & Rubella"],
["JE", "12 months", "1", "Subcutaneous", "Japanese Encephalitis"],
["Typhoid Conjugate (TCV)", "15 months", "1", "Intramuscular", "Typhoid fever"],
["Td (for pregnant mothers)", "1st pregnancy: 2 doses; 2nd+: 1 dose", "2/1", "Intramuscular", "Maternal & Neonatal Tetanus"],
],
[2.2, 1.8, 0.6, 1.0, 3.5]
);
// ── SLIDE: Routes of Administration ──────────────────────────────────────────
highlightSlide("Routes of Vaccine Administration", [
{ icon: "💉", label: "Intramuscular (IM)", body: "Pentavalent, PCV, TCV, fIPV, Td\nSite: Anterolateral thigh (infants), Deltoid (older)" },
{ icon: "🩸", label: "Intradermal (ID)", body: "BCG, fIPV\nSite: Left upper arm (BCG), Forearm (fIPV)\nUsed for Mantoux test also" },
{ icon: "💊", label: "Oral", body: "OPV, Rotavirus\nAdminister drops directly; no needle\nAdversely affected by maternal Ab in neonate" },
{ icon: "🔵", label: "Subcutaneous (SC)", body: "MR, JE vaccines\nSite: Left upper arm\n45° angle; pinch skin" },
]);
// ═══════════ SECTION 5: COLD CHAIN ════════════════════════════════════════════
sectionSlide(5, "Cold Chain Management", "❄️");
// ── SLIDE: Cold Chain ────────────────────────────────────────────────────────
contentSlide("Cold Chain: Definition & Importance", [
"Cold chain = System of storing and transporting vaccines at recommended temperature from manufacture to point of use",
"Most vaccines must be stored at +2°C to +8°C (refrigerator temperature)",
"Some vaccines (varicella, MMR, OPV) can be stored frozen at -15°C to -25°C",
"OPV must be stored frozen; thawed immediately before use",
"Vaccines exposed to heat or freezing may become ineffective (potency lost irreversibly)",
"Cold chain failures are a major cause of vaccine-preventable disease outbreaks",
"In Nepal: Cold chain maintained from central (Kathmandu) to district, health post, FCHVs",
"Shake test: Used to detect freeze damage in adsorbed vaccines (Pentavalent, PCV, Td, fIPV)",
]);
// ── SLIDE: Cold Chain Equipment ───────────────────────────────────────────────
highlightSlide("Cold Chain Equipment", [
{ icon: "🏭", label: "Cold Room", body: "+2 to +8°C\nFor large quantities at national/regional stores" },
{ icon: "🧊", label: "Freeze Room", body: "-15 to -25°C\nFor OPV, varicella at national stores" },
{ icon: "🚚", label: "Refrigerated Vans", body: "Transport between national and district levels\nTemperature monitored in transit" },
{ icon: "🧴", label: "ILR (Ice-Lined Refrigerator)", body: "Standard +2°C to +8°C\nAt district/PHC level; most widely used" },
{ icon: "🧊", label: "Deep Freezer", body: "-15 to -25°C\nOPV storage at district level" },
{ icon: "🎒", label: "Vaccine Carrier / Cold Box", body: "For transport to outreach sessions\nIce packs maintain temperature for 4-8 hours" },
]);
// ── SLIDE: VVM and Open Vial Policy ──────────────────────────────────────────
twoColSlide(
"Vaccine Vial Monitor (VVM) & Open Vial Policy",
"🌡️ Vaccine Vial Monitor (VVM)",
[
"Heat-sensitive label on vaccine vial",
"Changes colour irreversibly when exposed to heat",
"Inner square lighter than outer circle: USABLE",
"Inner square same shade / darker: DO NOT USE",
"VVM does not detect freeze damage",
"Always check VVM before every administration",
"Also check expiry date and appearance",
],
"📋 Open Vial Policy (OVP)",
[
"Allows reuse of opened multi-dose vials at subsequent sessions",
"Applies to: OPV, BCG (limited), Pentavalent, TT/Td",
"NOT applicable to: Lyophilized vaccines (MR, JE, BCG) — discard after session",
"Conditions for OVP: VVM valid, not expired, stored properly, sterile technique used",
"Opened vials must be discarded after 4 weeks max or end of session for some vaccines",
],
C.lightBlue, "E8F6F3"
);
// ═══════════ SECTION 6: AEFI ══════════════════════════════════════════════════
sectionSlide(6, "Adverse Events Following Immunization (AEFI)", "⚠️");
// ── SLIDE: AEFI Types ─────────────────────────────────────────────────────────
contentSlide("AEFI: Classification", [
"AEFI = Any untoward medical occurrence that follows immunization (may or may not be causally related)",
"WHO classifies AEFI into 5 types:",
{ text: "1. Vaccine product-related reaction: Caused by inherent properties of vaccine (e.g. BCG ulcer, OPV-VAPP)", sub: true },
{ text: "2. Vaccine quality defect-related reaction: Due to manufacturing defect (sub-potent, contaminated)", sub: true },
{ text: "3. Immunization error-related reaction: Wrong dose, wrong site, poor technique, contamination", sub: true },
{ text: "4. Immunization anxiety-related reaction: Fainting/vasovagal syncope, hyperventilation from fear", sub: true },
{ text: "5. Coincidental event: Temporal association only; would have occurred without vaccine", sub: true },
"Serious AEFI must be reported within 24 hours to District Health Office and MoHP Nepal",
]);
// ── SLIDE: Common & Serious AEFI ─────────────────────────────────────────────
twoColSlide(
"Common vs Serious AEFI",
"✅ Common (Minor) AEFI",
[
"Local: Pain, redness, swelling at injection site",
"Systemic: Low-grade fever, malaise, irritability",
"BCG: Local ulceration, regional lymphadenopathy (normal reaction)",
"MMR/MR: Mild rash, fever at day 5-12",
"Usually self-limiting within 1-3 days",
"Reassure parents; paracetamol if needed",
],
"🚨 Serious (Rare) AEFI",
[
"Anaphylaxis: Within 15-30 minutes; life-threatening",
"Hypotonic-hyporesponsive episode (HHE): After DTP, especially whole-cell pertussis",
"VAPP: Vaccine-Associated Paralytic Poliomyelitis (OPV — 1 in 2.4 million doses)",
"Febrile seizure: MMR/MR, day 5-12",
"BCG osteitis: Rare; bone involvement",
"Disseminated BCG disease: In immunocompromised",
],
C.lightBlue, "FDEDEC"
);
// ── SLIDE: Anaphylaxis Management ─────────────────────────────────────────────
contentSlide("Management of Anaphylaxis Post-Vaccination", [
"Anaphylaxis is the most feared immediate AEFI — onset within 15-30 minutes of injection",
"ABCDE approach: Airway, Breathing, Circulation, Disability, Exposure",
"FIRST LINE — Adrenaline (Epinephrine) 1:1000 — 0.01 mg/kg IM (max 0.5 mg) in anterolateral thigh",
"Position: Supine with legs elevated (unless respiratory distress — then semi-recumbent)",
"Oxygen: High-flow O₂ via face mask",
"IV access: Normal saline bolus 20 ml/kg for hypotension",
"Antihistamines (Chlorphenamine) and Hydrocortisone — ADJUNCTS, not first-line",
"Monitor for 30-60 minutes post-vaccination for all patients; 24-hour monitoring after anaphylaxis",
"Document and report as serious AEFI immediately",
]);
// ═══════════ SECTION 7: CONTRAINDICATIONS ════════════════════════════════════
sectionSlide(7, "Contraindications & Precautions", "🚫");
// ── SLIDE: True vs False Contraindications ────────────────────────────────────
twoColSlide(
"True Contraindications vs Common Misconceptions",
"🚫 TRUE Contraindications",
[
"Severe allergic reaction (anaphylaxis) to a prior dose of the same vaccine",
"Known allergy to vaccine component (e.g. neomycin, gelatin, yeast)",
"Live vaccines: Severe immunodeficiency (HIV with low CD4, SCID, immunosuppressive therapy)",
"Live vaccines: Pregnancy (theoretical fetal risk)",
"BCG: HIV-positive infants (symptomatic)",
"Encephalopathy within 7 days of prior pertussis dose",
],
"✅ NOT Contraindications (Common Myths)",
[
"Mild illness with low-grade fever — vaccinate!",
"Ongoing antibiotic therapy — not a contraindication",
"Prematurity (vaccinate at chronological age, not corrected age)",
"Breastfeeding — safe to vaccinate mother and infant",
"Family history of adverse vaccine reactions",
"Stable neurological conditions (cerebral palsy, Down syndrome)",
"Allergy to penicillin / amoxicillin",
],
"FDEDEC", "E8F6F3"
);
// ═══════════ SECTION 8: NURSING RESPONSIBILITIES ══════════════════════════════
sectionSlide(8, "Nursing Responsibilities in Vaccination", "👩⚕️");
// ── SLIDE: Before Vaccination ─────────────────────────────────────────────────
contentSlide("Nursing Role: BEFORE Vaccination", [
"Review immunization history and due dates — check vaccination card / MIS records",
"Conduct pre-vaccination assessment: Health history, allergies, current illness, medications",
"Check for contraindications and precautions",
"Prepare equipment: Correct vaccine, correct dose, correct diluent, sterile syringe & needle",
"Check vaccine: Expiry date, VVM status, appearance, cold chain temperature",
"Prepare correct diluent for lyophilized vaccines (MR, JE, BCG) — use only supplied diluent",
"Inform parent/guardian about the vaccine, what to expect, and possible AEFI",
"Obtain informed consent and document",
"Ensure emergency tray (adrenaline, oxygen, IV fluids) is ready",
]);
// ── SLIDE: During Vaccination ─────────────────────────────────────────────────
contentSlide("Nursing Role: DURING Vaccination", [
"Verify child identity, weight (to calculate doses), and correct vaccine/dose",
"Use correct anatomical site and route for each vaccine",
{ text: "BCG: Left deltoid region (intradermal); IPV/fIPV: Anterolateral thigh or forearm", sub: true },
{ text: "IM vaccines: Anterolateral thigh in infants, deltoid in older children", sub: true },
{ text: "SC vaccines (MR, JE): Left upper arm, 45° angle, pinch skin", sub: true },
"Use aseptic technique; one needle = one syringe = one patient — NEVER reuse needles",
"Reconstitute lyophilized vaccines with correct diluent just before use — do not store reconstituted vaccine",
"Multiple vaccines: Give at different sites; at least 2.5 cm apart if same limb",
"OPV: Ensure child swallows drops — repeat if vomited within 10 minutes",
"Record vaccine lot number, site, time on vaccination card and register",
]);
// ── SLIDE: After Vaccination ──────────────────────────────────────────────────
contentSlide("Nursing Role: AFTER Vaccination", [
"Observe for immediate reactions: Keep child for minimum 15-30 minutes post-vaccination",
"Watch for anaphylaxis signs: Hives, difficulty breathing, drop in BP, altered consciousness",
"Counsel parents on expected minor reactions (mild fever, soreness) and management",
"Advise: Paracetamol for fever; cool compress for local swelling",
"Advise: BCG reaction — normal papule → pustule → ulcer → scar within 6-12 weeks",
"Do NOT rub the injection site; avoid tight clothing over BCG site",
"Record vaccination on child's vaccination card, tally sheet, and MIS",
"Schedule next due date and counsel family on keeping follow-up appointments",
"Report any AEFI to district health office using standard AEFI reporting form",
"Proper waste disposal: Sharp waste in puncture-proof container; never recap needles",
]);
// ── SLIDE: Waste Management ────────────────────────────────────────────────────
highlightSlide("Injection Safety & Waste Management", [
{ icon: "🗑️", label: "Sharp Waste", body: "All needles & syringes in puncture-proof safety box\nNEVER recap needles\nDestroy safety box when 3/4 full" },
{ icon: "🔴", label: "Infectious Waste", body: "Vaccine vials, cotton swabs in red bag\nIncinerate or autoclave before disposal" },
{ icon: "✂️", label: "Auto-Disable Syringes", body: "Lock after single use — cannot be reused\nMandatory in Nepal EPI programme" },
{ icon: "📋", label: "Documentation", body: "Record date, lot number, site, nurse ID\nMaintain tally sheet and vaccination register" },
]);
// ═══════════ SECTION 9: VACCINE-PREVENTABLE DISEASES ═════════════════════════
sectionSlide(9, "Vaccine-Preventable Diseases", "🦠");
// ── SLIDE: VPD Summary Table ──────────────────────────────────────────────────
tableSlide(
"Key Vaccine-Preventable Diseases & Their Vaccines",
["Disease", "Pathogen", "Nepal EPI Vaccine", "Key Features"],
[
["Tuberculosis", "M. tuberculosis", "BCG", "ID at birth; 80% efficacy vs miliary/meningeal TB"],
["Diphtheria", "C. diphtheriae", "Pentavalent / DPT", "Toxoid component; causes 'bull neck', pseudomembrane"],
["Pertussis", "B. pertussis", "Pentavalent / DPT", "100-day cough; high infant mortality; waning immunity"],
["Tetanus", "C. tetani", "Pentavalent / Td", "Trismus, opisthotonus, autonomic instability"],
["Hepatitis B", "HBV", "Pentavalent", "Birth dose critical; prevents vertical transmission"],
["Haemophilus Inf. B", "Hib", "Pentavalent", "Meningitis, pneumonia, epiglottitis in infants"],
["Poliomyelitis", "Poliovirus (3 types)", "OPV + fIPV", "Flaccid paralysis; Nepal polio-free since 2010"],
["Measles & Rubella", "Paramyxovirus/Togavirus", "MR", "Highly contagious; congenital rubella syndrome if in pregnancy"],
["Japanese Encephalitis", "Flavivirus", "JE", "Vector-borne; brain inflammation; high mortality"],
["Typhoid", "S. typhi", "TCV (15 months)", "Conjugate vaccine; typhoid-endemic country"],
],
[2.0, 1.8, 1.7, 3.7]
);
// ─── SLIDE: BCG Vaccine Details ────────────────────────────────────────────────
contentSlide("BCG Vaccine — Nursing Points", [
"Full name: Bacillus Calmette-Guerin (live attenuated Mycobacterium bovis)",
"Route: Intradermal — left deltoid region in upper arm",
"Dose: 0.05 ml in newborns; 0.1 ml in children >1 year",
"Normal reaction: Papule at 2-6 weeks → pustule → ulcer → scar (6-12 weeks)",
"Scar absence: Does NOT mean no immunity — DO NOT repeat routinely",
"Efficacy: 80% against miliary TB, TB meningitis; variable against pulmonary TB",
"Contraindicated in: Symptomatic HIV, malignancy, immunosuppressive therapy, generalized eczema",
"BCG given to ALL newborns in Nepal — protect against serious TB in young children",
]);
// ═══════════ SECTION 10: HERD IMMUNITY ════════════════════════════════════════
sectionSlide(10, "Herd Immunity & Global Goals", "🌏");
// ── SLIDE: Herd Immunity ─────────────────────────────────────────────────────
contentSlide("Herd Immunity: Concept & Thresholds", [
"Herd immunity (community immunity): Indirect protection of unvaccinated persons when a high proportion of the population is immune",
"When coverage exceeds the threshold, the disease cannot spread — transmission chain broken",
"Threshold depends on the basic reproduction number (R₀) of the disease:",
{ text: "Measles (R₀ = 12-18): Requires ~95% population immunity", sub: true },
{ text: "Pertussis (R₀ = 12-17): Requires ~94% population immunity", sub: true },
{ text: "Polio (R₀ = 5-7): Requires ~80-85% population immunity", sub: true },
{ text: "COVID-19 (R₀ = 2-3 original): Requires ~60-70% population immunity", sub: true },
"Herd immunity protects: Newborns, immunocompromised, elderly, and those for whom vaccine is contraindicated",
"Vaccine hesitancy erodes herd immunity — measles outbreaks resurge when coverage drops below 95%",
]);
// ── SLIDE: Global Goals ────────────────────────────────────────────────────────
highlightSlide("Global Immunization Goals", [
{ icon: "🌍", label: "IA2030", body: "Immunization Agenda 2030: WHO global strategy to reach 90% coverage for all recommended vaccines" },
{ icon: "💉", label: "Polio Eradication", body: "Wild poliovirus type 2 & 3 eradicated; Type 1 remains in Pakistan, Afghanistan only" },
{ icon: "🦺", label: "Measles Elimination", body: "WHO target: Eliminate measles in ≥5 regions; requires 95%+ MCV2 coverage" },
{ icon: "🇳🇵", label: "Nepal Targets", body: "Achieve >90% DPT3, MR2 coverage nationally; eliminate maternal/neonatal tetanus" },
{ icon: "🧪", label: "New Vaccines", body: "RSV, dengue, malaria, TB vaccines in pipeline; mRNA platform expanding" },
{ icon: "📱", label: "Digital Immunization", body: "eVIN (electronic vaccine intelligence) system tracking cold chain and stock" },
]);
// ── SLIDE: Vaccine Hesitancy ──────────────────────────────────────────────────
contentSlide("Vaccine Hesitancy: Challenges & Nursing Role", [
"Vaccine hesitancy = Delay in acceptance or refusal of vaccines despite availability",
"WHO listed vaccine hesitancy as one of the 10 threats to global health (2019)",
"Common concerns: Safety fears, religious/cultural beliefs, misinformation, distrust in health system",
"Nepal challenges: Remote geography, cultural beliefs, FCPV misconceptions, male dominance in decision-making",
"Nursing strategies to address hesitancy:",
{ text: "Listen actively — do not dismiss fears; acknowledge and validate concerns", sub: true },
{ text: "Provide evidence-based information in simple language (use visual aids)", sub: true },
{ text: "Share personal stories and community examples of vaccine benefits", sub: true },
{ text: "Engage community leaders, FCHVs, and local champions", sub: true },
{ text: "Motivational interviewing technique — guide, do not force", sub: true },
]);
// ── SLIDE: Special Populations ────────────────────────────────────────────────
contentSlide("Vaccination in Special Populations", [
"Preterm infants: Vaccinate at CHRONOLOGICAL age (not corrected age); full doses",
"HIV-positive children: Live vaccines generally contraindicated if symptomatic / low CD4\n - BCG: Avoid in symptomatic HIV\n - OPV: Use IPV instead if available\n - MR: Give if CD4 >25% (asymptomatic HIV)",
"Immunocompromised (chemotherapy, steroids): Avoid all live vaccines\n - Vaccinate before starting therapy if possible (>2 weeks prior)",
"Pregnancy: AVOID live vaccines (MR, JE, varicella)\n - SAFE and RECOMMENDED: Td (2 doses), Influenza, COVID-19",
"Children on corticosteroids: Avoid live vaccines if >2 mg/kg/day prednisolone for >14 days\n - Wait 3 months after stopping before giving live vaccines",
]);
// ── SLIDE: Supervision & Documentation ────────────────────────────────────────
contentSlide("Key Documentation in Nepal EPI", [
"Child Vaccination Record Card (Tika Card / Khop Card): Must be given to all immunized children at birth; parents keep it",
"MIS Register: Facility-level records of all vaccines given, including lot numbers and dates",
"Tally Sheet: Day-by-day count of vaccines administered per session",
"AEFI Reporting Form: Filled for any adverse event and submitted to District Health Office within 24 hours",
"Cold Chain Temperature Log: Daily minimum/maximum temperature recorded for each refrigerator",
"Stock Register: Vaccine inventory management — stock in, stock out, wastage, balance",
"HMIS Reports: Monthly reports submitted to district for national health data",
"Complete, accurate documentation protects the nurse legally and ensures continuity of care",
]);
// ── SLIDE: Key Takeaways ───────────────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.0, fill: { color: C.navy }, line: { color: C.navy } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0.98, w: 10, h: 0.06, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Key Takeaways for Nursing Practice", { x: 0.35, y: 0.08, w: 9.3, h: 0.82, fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
const points = [
["💉", "Vaccines save lives", "Simple, cost-effective interventions that prevent millions of deaths annually"],
["❄️", "Cold chain is everything", "A broken cold chain renders the best vaccine useless — monitor temperature religiously"],
["📋", "Document every dose", "Accurate records protect patients, nurses, and the health system"],
["⚠️", "Know your AEFIs", "Recognize, manage, and report adverse events promptly — especially anaphylaxis"],
["🤝", "Communicate with empathy", "Address vaccine hesitancy with facts and compassion, not dismissal"],
["🚫", "Know contraindications", "Never vaccinate blindly — screen every child before each vaccine"],
];
points.forEach((p, i) => {
const col = i % 2;
const row = Math.floor(i / 2);
const x = col === 0 ? 0.25 : 5.1;
const y = 1.15 + row * 1.42;
sl.addShape(pres.ShapeType.rect, { x, y, w: 4.6, h: 1.32, fill: { color: ["FEF9E7","E8F6F3",C.lightBlue,"FDEDEC","EAF2FF","F9EBFF"][i] }, line: { color: C.teal, pt: 1 } });
sl.addText(p[0], { x: x + 0.1, y: y + 0.08, w: 0.55, h: 0.55, fontSize: 22, fontFace: "Segoe UI Emoji" });
sl.addText(p[1], { x: x + 0.7, y: y + 0.08, w: 3.8, h: 0.4, fontSize: 14, bold: true, color: C.navy, fontFace: "Calibri" });
sl.addText(p[2], { x: x + 0.7, y: y + 0.5, w: 3.8, h: 0.72, fontSize: 12, color: C.slate, fontFace: "Calibri" });
});
}
// ── FINAL SLIDE: Thank You ─────────────────────────────────────────────────────
{
let sl = pres.addSlide();
sl.background = { color: C.navy };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.35, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 0, w: 0.2, h: 5.625, fill: { color: C.teal }, line: { color: C.teal } });
sl.addShape(pres.ShapeType.rect, { x: 0.8, y: 2.45, w: 8.8, h: 0.07, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Thank You", { x: 0.8, y: 0.8, w: 8.8, h: 1.4, fontSize: 60, bold: true, color: C.white, align: "center", fontFace: "Calibri" });
sl.addText("Questions & Discussion", { x: 0.8, y: 2.6, w: 8.8, h: 0.7, fontSize: 26, color: C.aqua, align: "center", fontFace: "Calibri" });
sl.addText("Pokhara Academy of Health Sciences\nB.Sc. Nursing — 2nd Year | Immunization Module", { x: 0.8, y: 3.5, w: 8.8, h: 0.9, fontSize: 16, color: C.gray, align: "center", fontFace: "Calibri" });
sl.addText("References: Harrison's Principles of Internal Medicine 22E | WHO EPI Guidelines | Nepal MoHP NIP Schedule (2024)", {
x: 0.8, y: 5.05, w: 8.8, h: 0.4,
fontSize: 10, color: C.gray, align: "center", fontFace: "Calibri"
});
}
// ── WRITE FILE ────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/vaccine-presentation/Vaccines_Nursing_Presentation.pptx" })
.then(() => console.log("DONE: Vaccines_Nursing_Presentation.pptx saved successfully"))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/vaccine-presentation && node vaccine_pptx.js 2>&1
ls -lh /home/daytona/workspace/vaccine-presentation/Vaccines_Nursing_Presentatio…
Vaccines Nursing Presentation
Presentation · PPTX
| Section | Slides | Content |
|---|---|---|
| Title & Contents | 2 | Institution branding, full table of contents with numbered sections |
| 1. Introduction | 3 | Definition, historical milestones (1796-2020), importance of vaccines (6 highlight boxes) |
| 2. Types of Vaccines | 2 | Live vs Inactivated (comparison columns), Subunit/Toxoid/Conjugate/mRNA/VLP (6-box grid) |
| 3. Mechanism | 2 | Step-by-step immune response (7 steps), Primary vs Secondary response comparison |
| 4. Nepal EPI Schedule | 3 | EPI programme overview, Full 2024 schedule table (10 vaccines), Routes of administration |
| 5. Cold Chain | 3 | Definition & importance, Equipment (ILR, cold box, freeze room), VVM + Open Vial Policy |
| 6. AEFI | 3 | WHO 5-category classification, Common vs Serious AEFI, Anaphylaxis management |
| 7. Contraindications | 1 | True contraindications vs myths/misconceptions (two-column) |
| 8. Nursing Roles | 4 | Before / During / After vaccination + Waste management & documentation |
| 9. VPDs | 3 | 10-disease reference table, BCG detailed notes, Special populations |
| 10. Herd Immunity | 4 | Herd immunity concept with R₀ thresholds, Global goals (IA2030), Vaccine hesitancy, Documentation |
| Closing | 2 | Key takeaways (6 boxes), Thank You / References slide |
Why can’t I download ppt
ls -lh /home/daytona/workspace/vaccine-presentation/ && file /home/daytona/works…
Vaccines Nursing Presentation
Presentation · PPTX
I can’t
| # | Section | Topics |
|---|---|---|
| 1 | Introduction to Vaccines | Definition, history, importance |
| 2 | Types of Vaccines | Live-attenuated, Inactivated, Subunit, mRNA, etc. |
| 3 | Mechanism of Action | Immune response, antibodies, memory cells |
| 4 | Nepal National Immunization Schedule | EPI programme, schedule, vaccines |
| 5 | Cold Chain Management | Storage, transportation, monitoring |
| 6 | Adverse Events Following Immunization (AEFI) | Types, management, reporting |
| 7 | Contraindications & Precautions | When NOT to vaccinate |
| 8 | Nursing Responsibilities | Before, during and after vaccination |
| 9 | Vaccine-Preventable Diseases | Key diseases and their vaccines |
| 10 | Herd Immunity & Global Goals | Coverage targets, eradication |
| Year | Milestone |
|---|---|
| 1796 | Edward Jenner uses cowpox to protect against smallpox — first vaccine |
| 1885 | Louis Pasteur develops rabies vaccine |
| 1921 | BCG vaccine for tuberculosis introduced |
| 1952 | Jonas Salk develops inactivated polio vaccine (IPV) |
| 1967 | WHO launches global smallpox eradication program |
| 1977 | Nepal launches EPI (Expanded Programme on Immunization) |
| 1980 | Smallpox declared eradicated — first human disease eradicated by vaccine |
| 2020 | First mRNA vaccine (COVID-19) authorised in record time |
| 🛡️ Disease Prevention - Protect individual from infection and severe disease | 🌍 Herd Immunity - Protect unvaccinated people when coverage is high enough |
| 💰 Cost Effective - Saves trillions in healthcare & economic costs globally | 📉 Reduces Mortality - 2-3 million deaths prevented every year by vaccines |
| 🏥 Eradication - Smallpox eradicated; polio near eradication worldwide | 👶 Child Survival - Key strategy in reducing under-5 child mortality |
| 🦠 Live-Attenuated | 💊 Inactivated |
|---|---|
| Contain weakened (attenuated) form of live pathogen | Contain killed pathogen — cannot cause disease |
| Produce strong, long-lasting immune response | Safer for immunocompromised patients |
| Often single dose sufficient | Usually require multiple doses + boosters |
| Examples: BCG, OPV, MR, Varicella, Yellow Fever, JE | Examples: IPV, Hepatitis A, Rabies, Influenza |
| ⚠ NOT for immunocompromised or pregnant women | More heat stable than live vaccines |
| Require strict cold chain (heat sensitive) | Adjuvants often added to boost response |
| 1st Response (Primary) | 2nd Response (Secondary / Anamnestic) |
|---|---|
| Occurs after first exposure to antigen | Occurs after booster dose or real infection |
| Latency period: 7-14 days | Latency period: 1-3 days only |
| Lower antibody titres produced | Much higher antibody titres (10-100x) |
| Predominantly IgM class | Predominantly IgG (higher affinity) |
| Short-lived antibody response | Long-lasting protection |
| May not fully prevent disease | Rapid elimination of pathogen |
| Forms memory cells for future use | Basis for booster dose rationale |
| Vaccine | Age | Doses | Route | Protects Against |
|---|---|---|---|---|
| BCG | At birth | 1 | Intradermal | Tuberculosis |
| Pentavalent (DPT-HepB-Hib) | 6, 10, 14 weeks | 3 | Intramuscular | Diphtheria, Pertussis, Tetanus, Hep B, Hib |
| OPV (bOPV) | 6, 10, 14 weeks | 3 | Oral | Poliomyelitis |
| PCV-10 | 6, 10 weeks + 9 months | 3 | Intramuscular | Pneumococcal diseases |
| Rotavirus (RV1) | 6 & 10 weeks | 2 | Oral | Rotavirus diarrhea |
| fIPV | 14 weeks & 9 months | 2 | Intradermal | Poliomyelitis |
| MR | 9 & 15 months | 2 | Subcutaneous | Measles & Rubella |
| JE | 12 months | 1 | Subcutaneous | Japanese Encephalitis |
| Typhoid (TCV) | 15 months | 1 | Intramuscular | Typhoid fever |
| Td (mothers) | 1st pregnancy: 2 doses; 2nd+: 1 dose | 2/1 | Intramuscular | Maternal & Neonatal Tetanus |
| Route | Examples | Site | Angle/Technique |
|---|---|---|---|
| 💉 Intramuscular (IM) | Pentavalent, PCV, TCV, fIPV, Td | Anterolateral thigh (infants); Deltoid (older) | 90° angle |
| 🩸 Intradermal (ID) | BCG, fIPV | Left upper arm (BCG); Forearm (fIPV) | 10-15° angle; bevel up |
| 💊 Oral | OPV, Rotavirus | Drops in mouth | Ensure swallowed |
| 🔵 Subcutaneous (SC) | MR, JE | Left upper arm | 45° angle; pinch skin |
| Equipment | Temperature | Level |
|---|---|---|
| 🏭 Cold Room | +2 to +8°C | National/regional stores |
| 🧊 Freeze Room | -15 to -25°C | National stores (OPV, varicella) |
| 🚚 Refrigerated Vans | Monitored in transit | National → District transport |
| 🧴 ILR (Ice-Lined Refrigerator) | +2 to +8°C | District/PHC level; most widely used |
| ❄️ Deep Freezer | -15 to -25°C | District level OPV storage |
| 🎒 Vaccine Carrier / Cold Box | Maintained by ice packs 4-8 hrs | Outreach/field sessions |
⚠️ Serious AEFI must be reported within 24 hours to District Health Office and MoHP Nepal
| ✅ Common (Minor) AEFI | 🚨 Serious (Rare) AEFI |
|---|---|
| Local: Pain, redness, swelling at injection site | Anaphylaxis: Within 15-30 min; life-threatening |
| Systemic: Low-grade fever, malaise, irritability | Hypotonic-hyporesponsive episode (HHE): After DTP |
| BCG: Local ulceration, regional lymphadenopathy (normal) | VAPP: 1 in 2.4 million OPV doses |
| MMR/MR: Mild rash, fever at day 5-12 | Febrile seizure: MMR/MR, day 5-12 |
| Usually self-limiting within 1-3 days | BCG osteitis: Rare; bone involvement |
| Reassure parents; paracetamol if needed | Disseminated BCG: In immunocompromised patients |
| 🚫 TRUE Contraindications | ✅ NOT Contraindications (Common Myths) |
|---|---|
| Severe allergic reaction (anaphylaxis) to prior dose | Mild illness with low-grade fever — vaccinate! |
| Known allergy to vaccine component (neomycin, gelatin, yeast) | Ongoing antibiotic therapy |
| Live vaccines: Severe immunodeficiency (HIV with low CD4, SCID) | Prematurity (vaccinate at chronological age) |
| Live vaccines: Pregnancy (theoretical fetal risk) | Breastfeeding — safe for mother and infant |
| BCG: HIV-positive infants (symptomatic) | Family history of adverse vaccine reactions |
| Encephalopathy within 7 days of prior pertussis dose | Stable neurological conditions (cerebral palsy, Down syndrome) |
| Allergy to penicillin/amoxicillin |
| Disease | Pathogen | Nepal EPI Vaccine | Key Features |
|---|---|---|---|
| Tuberculosis | M. tuberculosis | BCG | ID at birth; 80% efficacy vs miliary/meningeal TB |
| Diphtheria | C. diphtheriae | Pentavalent/DPT | Toxoid; causes 'bull neck', pseudomembrane |
| Pertussis | B. pertussis | Pentavalent/DPT | 100-day cough; high infant mortality |
| Tetanus | C. tetani | Pentavalent/Td | Trismus, opisthotonus, autonomic instability |
| Hepatitis B | HBV | Pentavalent | Birth dose critical; prevents vertical transmission |
| Haemophilus Inf. B | Hib | Pentavalent | Meningitis, pneumonia, epiglottitis in infants |
| Poliomyelitis | Poliovirus (3 types) | OPV + fIPV | Flaccid paralysis; Nepal polio-free since 2010 |
| Measles & Rubella | Paramyxovirus/Togavirus | MR | Highly contagious; congenital rubella syndrome |
| Japanese Encephalitis | Flavivirus | JE | Vector-borne; brain inflammation; high mortality |
| Typhoid | S. typhi | TCV | Conjugate vaccine; typhoid-endemic country |
| Disease | R₀ | Herd Immunity Threshold |
|---|---|---|
| Measles | 12-18 | ~95% |
| Pertussis | 12-17 | ~94% |
| Polio | 5-7 | ~80-85% |
| COVID-19 (original) | 2-3 | ~60-70% |
| 💉 Vaccines save lives - Simple, cost-effective interventions that prevent millions of deaths annually | ❄️ Cold chain is everything - A broken cold chain renders the best vaccine useless — monitor temperature religiously |
| 📋 Document every dose - Accurate records protect patients, nurses, and the health system | ⚠️ Know your AEFIs - Recognize, manage, and report adverse events promptly — especially anaphylaxis |
| 🤝 Communicate with empathy - Address vaccine hesitancy with facts and compassion, not dismissal | 🚫 Know contraindications - Never vaccinate blindly — screen every child before each vaccine |
#0D2E5A (background), Teal #1B7FA8 (headers), Aqua #28C1D0 (accents), White textKeeps minimum slides that can be presented in any presenter simple and eye catching . And if you can search the Nepal EPI chart of vaccination the pamphlet Nepal uses . And make a beautiful presentation of it including following points . If you have to define something take from references books 1. Title Slide Vaccines and National Immunization Programme (EPI) of Nepal 2. Learning Objectives Define vaccine and immunization Know the types of vaccines Understand Nepal’s EPI programme Learn the national immunization schedule Understand the role of nurses 3. What is a Vaccine? Vaccine: A biological preparation that protects against a disease. Immunization: The process of becoming protected through vaccination. Importance: Prevents infectious diseases Reduces child deaths Protects the community 4. Types of Vaccines Type Example Live BCG, MR Inactivated IPV Toxoid Tetanus Conjugate PCV Combination Pentavalent 5. EPI Programme in Nepal Started in Nepal in 1979 Run by the Ministry of Health and Population Provides free vaccines to all children Aims to reduce vaccine-preventable diseases 6. National EPI Schedule of Nepal (Most Important) Age Vaccine Birth BCG 6 weeks Pentavalent-1, OPV-1, PCV-1, Rotavirus-1 10 weeks Pentavalent-2, OPV-2, PCV-2, Rotavirus-2 14 weeks Pentavalent-3, OPV-3, fIPV 9 months MR-1, PCV-3, fIPV 12 months Japanese Encephalitis (JE) 15 months MR-2 7. Diseases Prevented by Vaccines Tuberculosis Diphtheria Pertussis Tetanus Hepatitis B Polio Measles Rubella Japanese Encephalitis 8. Cold Chain Definition: System that keeps vaccines effective during storage and transport. Temperature: +2°C to +8°C Equipment: ILR Deep freezer Vaccine carrier Ice packs 9. Role of Nurses Maintain cold chain Prepare vaccines correctly Give correct dose and route Educate parents Record vaccinations Promote immunization in the community 10. Summary & Thank You Vaccines save lives. Nepal’s EPI provides free protection to children. The EPI schedule is the key topic for nursing students. Nurses are essential for successful immunization. Thank You Any Questions?
Nepal EPI immunization schedule pamphlet chart official 2024 image MoHP
node /home/daytona/skills/shared/scripts/fetch_images.js "https://epomedicine.co…
~/vaccine-presentation/vaccine_epi_v2.js
const pptxgen = require("pptxgenjs");
const { execSync } = require("child_process");
// ── fetch Nepal EPI image as base64 ──────────────────────────────────────────
const imgData = JSON.parse(execSync(
`node /home/daytona/skills/shared/scripts/fetch_images.js "https://epomedicine.com/wp-content/uploads/2019/05/immunization-schedule-2019-nepal.jpg"`
).toString());
const epiImg = imgData[0].base64; // "image/jpeg;base64,..."
// ── Color Palette (warm medical green + deep teal) ───────────────────────────
const C = {
deep: "0A3D62", // deep navy — dominant dark bg
teal: "1A6B8A", // teal — headers
green: "0E8A5F", // emerald green — accents
aqua: "17A589", // aqua highlight
white: "FFFFFF",
offwhite:"F4F9F9",
lightG: "D5F5E3", // light green box
lightT: "D1F2EB", // light teal box
lightB: "D6EAF8", // light blue box
lightY: "FEF9E7", // light yellow box
lightP: "F5EEF8", // light purple box
slate: "2C3E50",
gray: "7F8C8D",
red: "C0392B",
yellow: "F39C12",
};
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Vaccines & EPI Nepal";
pres.author = "Pokhara Academy of Health Sciences";
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.deep };
// Left accent strip
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.3, h: 5.625, fill: { color: C.green }, line: { color: C.green } });
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 0, w: 0.12, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
// Institution tag top
sl.addShape(pres.ShapeType.rect, { x: 0.65, y: 0.22, w: 9.1, h: 0.55, fill: { color: C.teal }, line: { color: C.teal } });
sl.addText("POKHARA ACADEMY OF HEALTH SCIENCES · B.Sc. NURSING — 2ND YEAR", {
x: 0.65, y: 0.22, w: 9.1, h: 0.55,
fontSize: 12, bold: true, color: C.white, align: "center", valign: "middle",
charSpacing: 1.5, fontFace: "Calibri", margin: 0
});
// Main heading
sl.addText("VACCINES", {
x: 0.65, y: 1.05, w: 9.1, h: 1.3,
fontSize: 68, bold: true, color: C.white, align: "center", fontFace: "Calibri"
});
// Divider line
sl.addShape(pres.ShapeType.rect, { x: 0.65, y: 2.35, w: 9.1, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
// Subtitle
sl.addText("& National Immunization Programme (EPI) of Nepal", {
x: 0.65, y: 2.48, w: 9.1, h: 0.65,
fontSize: 22, color: C.lightG, align: "center", fontFace: "Calibri"
});
// 3 stat pills
const stats = [
{ val: "1979", lbl: "EPI Launched\nin Nepal" },
{ val: "10+", lbl: "Free Vaccines\nfor Children" },
{ val: "7", lbl: "Contacts to\nFull Immunization" },
];
stats.forEach((s, i) => {
const x = 0.75 + i * 3.05;
sl.addShape(pres.ShapeType.roundRect, { x, y: 3.35, w: 2.75, h: 1.7, fill: { color: "0B2D4E" }, line: { color: C.aqua, pt: 1.5 }, rectRadius: 0.12 });
sl.addText(s.val, { x, y: 3.42, w: 2.75, h: 0.85, fontSize: 34, bold: true, color: C.aqua, align: "center", fontFace: "Calibri" });
sl.addText(s.lbl, { x, y: 4.25, w: 2.75, h: 0.72, fontSize: 13, color: C.lightB, align: "center", fontFace: "Calibri" });
});
// Footer
sl.addText("Reference: Harrison's Principles of Internal Medicine 22E | WHO / MoHP Nepal EPI Guidelines 2024", {
x: 0.65, y: 5.25, w: 9.1, h: 0.3,
fontSize: 9, color: C.gray, align: "center", fontFace: "Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — LEARNING OBJECTIVES
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
// Header
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("📌 Learning Objectives", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
const objs = [
{ n: "01", text: "Define vaccine and immunization", icon: "💉" },
{ n: "02", text: "Know the types of vaccines", icon: "🔬" },
{ n: "03", text: "Understand Nepal's EPI programme", icon: "🇳🇵" },
{ n: "04", text: "Learn the National Immunization Schedule", icon: "📅" },
{ n: "05", text: "Understand the role of nurses in immunization", icon: "👩⚕️" },
];
const colors = [C.lightG, C.lightT, C.lightB, C.lightY, C.lightP];
const accentColors = [C.green, C.aqua, C.teal, C.yellow, "9B59B6"];
objs.forEach((o, i) => {
const y = 1.2 + i * 0.83;
sl.addShape(pres.ShapeType.rect, { x: 0.35, y, w: 9.3, h: 0.73, fill: { color: colors[i] }, line: { color: accentColors[i], pt: 1.2 } });
sl.addShape(pres.ShapeType.rect, { x: 0.35, y, w: 0.55, h: 0.73, fill: { color: accentColors[i] }, line: { color: accentColors[i] } });
sl.addText(o.n, { x: 0.35, y, w: 0.55, h: 0.73, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri", margin: 0 });
sl.addText(o.icon + " " + o.text, {
x: 1.0, y: y + 0.04, w: 8.55, h: 0.65,
fontSize: 19, color: C.slate, valign: "middle", fontFace: "Calibri"
});
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — WHAT IS A VACCINE?
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("💉 What is a Vaccine?", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
// Definition quote box
sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.2, w: 9.3, h: 1.1, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0.35, y: 1.2, w: 0.12, h: 1.1, fill: { color: C.green }, line: { color: C.green } });
sl.addText([
{ text: '"', options: { fontSize: 32, bold: true, color: C.green } },
{ text: "A vaccine is a biological preparation that provides active acquired immunity against a specific infectious disease.", options: { fontSize: 16, color: C.white } },
{ text: '"', options: { fontSize: 32, bold: true, color: C.green } },
], { x: 0.55, y: 1.22, w: 9.0, h: 1.05, valign: "middle", fontFace: "Calibri" });
sl.addText("— Harrison's Principles of Internal Medicine, 22nd Ed.", {
x: 0.55, y: 2.28, w: 9.0, h: 0.25,
fontSize: 11, color: C.gray, italic: true, align: "right", fontFace: "Calibri"
});
// Two boxes: Vaccine vs Immunization
[[C.lightG, C.green, "💉 Vaccine", "A biological substance that stimulates the immune system to produce immunity to a specific disease. It contains weakened/killed pathogens, toxoids, or antigens."],
[C.lightT, C.aqua, "🛡️ Immunization", "The process by which a person becomes protected against a disease through vaccination. It may be active (vaccine) or passive (antibodies)."]
].forEach(([bg, ac, title, body], i) => {
const x = i === 0 ? 0.35 : 5.2;
sl.addShape(pres.ShapeType.rect, { x, y: 2.6, w: 4.6, h: 2.7, fill: { color: bg }, line: { color: ac, pt: 1.5 } });
sl.addShape(pres.ShapeType.rect, { x, y: 2.6, w: 4.6, h: 0.5, fill: { color: ac }, line: { color: ac } });
sl.addText(title, { x: x+0.1, y: 2.6, w: 4.4, h: 0.5, fontSize: 16, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
sl.addText(body, { x: x+0.15, y: 3.15, w: 4.3, h: 2.0, fontSize: 15, color: C.slate, fontFace: "Calibri", valign: "top" });
});
// Importance bullets right side — actually split into 3 small pills under both boxes
const impts = ["✅ Prevents infectious diseases", "✅ Reduces child mortality", "✅ Protects the whole community (Herd Immunity)"];
sl.addText(impts.join(" "), {
x: 0.35, y: 5.36, w: 9.3, h: 0.22,
fontSize: 12, color: C.deep, bold: true, fontFace: "Calibri", align: "center"
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — TYPES OF VACCINES
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("🔬 Types of Vaccines", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
const types = [
{ icon: "🦠", type: "Live-Attenuated", example: "BCG, MR (Measles-Rubella), OPV, JE", note: "Weakened live pathogen — strong, long immunity", color: C.lightG, accent: C.green },
{ icon: "💊", type: "Inactivated", example: "IPV (Injectable Polio), Rabies", note: "Killed pathogen — safe, may need boosters", color: C.lightB, accent: C.teal },
{ icon: "🧬", type: "Toxoid", example: "Tetanus (TT/Td), Diphtheria", note: "Inactivated bacterial toxin — targets the toxin", color: C.lightY, accent: C.yellow },
{ icon: "🔗", type: "Conjugate", example: "PCV-10, Hib, Typhoid (TCV)", note: "Polysaccharide + carrier protein — better response in infants", color: C.lightP, accent: "9B59B6" },
{ icon: "⚗️", type: "Combination", example: "Pentavalent (DPT + HepB + Hib)", note: "Multiple antigens in one injection — fewer pricks", color: "FDEDEC", accent: C.red },
];
types.forEach((t, i) => {
const col = i < 3 ? 0 : 1;
const row = i < 3 ? i : i - 3;
const x = col === 0 ? 0.3 : 5.15;
const y = 1.2 + row * 1.38;
// Full-width for last item (combination)
const w = i === 4 ? 9.4 : 4.6;
const xPos = i === 4 ? 0.3 : x;
sl.addShape(pres.ShapeType.rect, { x: xPos, y, w, h: 1.28, fill: { color: t.color }, line: { color: t.accent, pt: 1.2 } });
sl.addShape(pres.ShapeType.rect, { x: xPos, y, w: 0.55, h: 1.28, fill: { color: t.accent }, line: { color: t.accent } });
sl.addText(t.icon, { x: xPos, y, w: 0.55, h: 1.28, fontSize: 22, align: "center", valign: "middle", fontFace: "Segoe UI Emoji", margin: 0 });
sl.addText(t.type, { x: xPos+0.62, y: y+0.06, w: w-0.72, h: 0.38, fontSize: 16, bold: true, color: C.slate, fontFace: "Calibri" });
sl.addText("Eg: " + t.example, { x: xPos+0.62, y: y+0.44, w: w-0.72, h: 0.28, fontSize: 13, bold: true, color: t.accent === C.yellow ? "7D6608" : t.accent, fontFace: "Calibri" });
sl.addText(t.note, { x: xPos+0.62, y: y+0.72, w: w-0.72, h: 0.5, fontSize: 12, color: C.gray, fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — EPI PROGRAMME IN NEPAL
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("🇳🇵 EPI Programme in Nepal", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
// 4 key fact cards — top row
const facts = [
{ icon: "📅", val: "1979", lbl: "Year EPI\nlaunched in Nepal" },
{ icon: "🏥", val: "MoHP", lbl: "Ministry of Health\nand Population" },
{ icon: "💉", val: "FREE", lbl: "All vaccines\nfree of cost" },
{ icon: "👶", val: "10+", lbl: "Antigens\nprovided" },
];
const fcolors = [C.lightG, C.lightT, C.lightB, C.lightY];
const facolors = [C.green, C.aqua, C.teal, C.yellow];
facts.forEach((f, i) => {
const x = 0.3 + i * 2.37;
sl.addShape(pres.ShapeType.rect, { x, y: 1.2, w: 2.2, h: 1.55, fill: { color: fcolors[i] }, line: { color: facolors[i], pt: 1.5 } });
sl.addText(f.icon, { x, y: 1.2, w: 2.2, h: 0.6, fontSize: 24, align: "center", valign: "middle", fontFace: "Segoe UI Emoji" });
sl.addText(f.val, { x, y: 1.75, w: 2.2, h: 0.45, fontSize: 22, bold: true, color: C.deep, align: "center", fontFace: "Calibri" });
sl.addText(f.lbl, { x, y: 2.18, w: 2.2, h: 0.52, fontSize: 11.5, color: C.gray, align: "center", fontFace: "Calibri" });
});
// Key points list
const kpts = [
"Expanded Programme on Immunization (EPI) started in Nepal in 1979 BS (2036) under MoHP",
"Provides 10+ antigens (vaccines) completely FREE to all children nationwide",
"Target: Every child fully immunized — requires at least 7 health facility contacts",
"Nepal achieved POLIO-FREE status in 2010 — a major public health milestone",
"Recent additions: Rotavirus (2020), Typhoid Conjugate Vaccine (2022), HPV for adolescent girls",
"Vaccines delivered through health posts, hospitals, and outreach sessions by FCHVs & nurses",
];
kpts.forEach((pt, i) => {
const y = 2.9 + i * 0.44;
sl.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 0.3, h: 0.34, fill: { color: C.green }, line: { color: C.green } });
sl.addText("✓", { x: 0.3, y, w: 0.3, h: 0.34, fontSize: 14, bold: true, color: C.white, align: "center", valign: "middle", margin: 0, fontFace: "Calibri" });
sl.addText(pt, { x: 0.68, y: y+0.01, w: 9.0, h: 0.35, fontSize: 14, color: C.slate, fontFace: "Calibri", valign: "middle" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — NATIONAL EPI SCHEDULE (with official Nepal pamphlet image)
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("📅 National EPI Schedule of Nepal ⭐ Most Important", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 22, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
// Schedule table — left side
const rows = [
["At Birth", "BCG", "ID", "Tuberculosis"],
["6 weeks", "Pentavalent-1, OPV-1, PCV-1, RV-1", "IM/Oral", "DPT+HepB+Hib, Polio, Pneumonia, Diarrhea"],
["10 weeks", "Pentavalent-2, OPV-2, PCV-2, RV-2", "IM/Oral", "DPT+HepB+Hib, Polio, Pneumonia, Diarrhea"],
["14 weeks", "Pentavalent-3, OPV-3, fIPV", "IM/ID", "DPT+HepB+Hib, Polio"],
["9 months", "MR-1, PCV-3, fIPV", "SC/IM/ID", "Measles+Rubella, Pneumonia, Polio"],
["12 months", "Japanese Encephalitis (JE)", "SC", "Japanese Encephalitis"],
["15 months", "MR-2, Typhoid (TCV)", "SC/IM", "Measles+Rubella, Typhoid"],
];
// Header row
const hdr = ["Age", "Vaccine", "Route", "Protects Against"];
const hw = [1.2, 2.5, 0.75, 3.45];
let hy = 1.15;
let hx = 0.25;
hdr.forEach((h, i) => {
sl.addShape(pres.ShapeType.rect, { x: hx, y: hy, w: hw[i], h: 0.38, fill: { color: C.teal }, line: { color: C.deep, pt: 0.5 } });
sl.addText(h, { x: hx+0.05, y: hy, w: hw[i]-0.05, h: 0.38, fontSize: 13, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
hx += hw[i];
});
rows.forEach((row, ri) => {
const y = 1.53 + ri * 0.49;
const bg = ri % 2 === 0 ? C.white : C.lightT;
let rx = 0.25;
row.forEach((cell, ci) => {
sl.addShape(pres.ShapeType.rect, { x: rx, y, w: hw[ci], h: 0.47, fill: { color: bg }, line: { color: "B2DFDB", pt: 0.5 } });
const isAge = ci === 0;
sl.addText(cell, {
x: rx+0.05, y: y+0.01, w: hw[ci]-0.08, h: 0.44,
fontSize: isAge ? 13 : 12, bold: isAge, color: isAge ? C.deep : C.slate,
valign: "middle", fontFace: "Calibri", margin: 0
});
rx += hw[ci];
});
});
// Td note strip
sl.addShape(pres.ShapeType.rect, { x: 0.25, y: 4.98, w: 7.9, h: 0.35, fill: { color: "FEF9E7" }, line: { color: C.yellow, pt: 1 } });
sl.addText("⚠️ Pregnant Mothers: Td vaccine — 2 doses (1st pregnancy), 1 dose (subsequent pregnancies) — IM route", {
x: 0.3, y: 4.98, w: 7.8, h: 0.35,
fontSize: 11, color: "7D6608", valign: "middle", fontFace: "Calibri"
});
// Official EPI image — right panel
sl.addShape(pres.ShapeType.rect, { x: 8.2, y: 1.15, w: 1.65, h: 3.9, fill: { color: C.lightG }, line: { color: C.green, pt: 1 } });
sl.addText("🇳🇵 Official\nNepal EPI\nPamphlet\n(MoHP / WHO\n/ UNICEF)", {
x: 8.22, y: 1.45, w: 1.6, h: 2.8,
fontSize: 11, color: C.deep, align: "center", fontFace: "Calibri"
});
if (epiImg) {
sl.addImage({ data: epiImg, x: 8.22, y: 1.18, w: 1.6, h: 3.85 });
}
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — DISEASES PREVENTED
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("🛡️ Diseases Prevented by EPI Vaccines", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
const diseases = [
{ icon: "🫁", name: "Tuberculosis", vaccine: "BCG", color: C.lightG, ac: C.green },
{ icon: "😮", name: "Diphtheria", vaccine: "Pentavalent", color: C.lightB, ac: C.teal },
{ icon: "😮💨", name: "Pertussis (Whooping Cough)", vaccine: "Pentavalent", color: C.lightT, ac: C.aqua },
{ icon: "💪", name: "Tetanus", vaccine: "Pentavalent/Td", color: C.lightY, ac: C.yellow },
{ icon: "🫀", name: "Hepatitis B", vaccine: "Pentavalent", color: C.lightP, ac: "9B59B6" },
{ icon: "🦵", name: "Poliomyelitis", vaccine: "OPV + fIPV", color: "FDEDEC", ac: C.red },
{ icon: "🌡️", name: "Measles & Rubella", vaccine: "MR", color: C.lightG, ac: C.green },
{ icon: "🧠", name: "Japanese Encephalitis", vaccine: "JE", color: C.lightB, ac: C.teal },
{ icon: "🫧", name: "Pneumococcal Diseases", vaccine: "PCV-10", color: C.lightT, ac: C.aqua },
{ icon: "🦠", name: "Rotavirus Diarrhea", vaccine: "Rotavirus", color: C.lightY, ac: C.yellow },
];
diseases.forEach((d, i) => {
const col = i % 5;
const row = Math.floor(i / 5);
const x = 0.25 + col * 1.9;
const y = 1.2 + row * 2.05;
sl.addShape(pres.ShapeType.rect, { x, y, w: 1.78, h: 1.9, fill: { color: d.color }, line: { color: d.ac, pt: 1.2 } });
sl.addText(d.icon, { x, y: y+0.12, w: 1.78, h: 0.65, fontSize: 28, align: "center", fontFace: "Segoe UI Emoji" });
sl.addText(d.name, { x: x+0.06, y: y+0.77, w: 1.66, h: 0.62, fontSize: 12, bold: true, color: C.slate, align: "center", fontFace: "Calibri" });
sl.addText(d.vaccine, { x: x+0.06, y: y+1.38, w: 1.66, h: 0.42, fontSize: 11, color: d.ac === C.yellow ? "7D6608" : d.ac, align: "center", fontFace: "Calibri", bold: true });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — COLD CHAIN
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: "1A8CD8" }, line: { color: "1A8CD8" } });
sl.addText("❄️ Cold Chain Management", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
// Definition box
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.18, w: 9.4, h: 0.8, fill: { color: "EBF5FB" }, line: { color: "1A8CD8", pt: 1.5 } });
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.18, w: 0.12, h: 0.8, fill: { color: "1A8CD8" }, line: { color: "1A8CD8" } });
sl.addText("❄️ Cold Chain: A system of storing and transporting vaccines at the recommended temperature (+2°C to +8°C) from the point of manufacture to the point of use, ensuring vaccines remain potent and effective.", {
x: 0.5, y: 1.2, w: 9.1, h: 0.76,
fontSize: 15, color: C.slate, valign: "middle", fontFace: "Calibri"
});
// Temperature rule
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 2.08, w: 9.4, h: 0.52, fill: { color: C.deep }, line: { color: C.deep } });
sl.addText("🌡️ Storage Temperature: +2°C to +8°C (Most vaccines) | -15°C to -25°C (OPV — must be frozen)", {
x: 0.3, y: 2.08, w: 9.4, h: 0.52,
fontSize: 15, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Calibri"
});
// Equipment cards
const equip = [
{ icon: "🧴", name: "ILR\n(Ice-Lined Refrigerator)", desc: "+2 to +8°C\nDistrict / PHC level", color: C.lightB, ac: C.teal },
{ icon: "🧊", name: "Deep Freezer", desc: "-15 to -25°C\nFor OPV storage", color: "E8F8F5", ac: C.green },
{ icon: "🎒", name: "Vaccine Carrier", desc: "Field / outreach sessions\nIce packs inside", color: C.lightY, ac: C.yellow },
{ icon: "🧊", name: "Ice Packs", desc: "Maintain cold 4-8 hrs\nFreeze before use", color: C.lightP, ac: "9B59B6" },
{ icon: "🌡️", name: "VVM\n(Vaccine Vial Monitor)", desc: "Heat-sensitive label\nDark = discard", color: "FDEDEC", ac: C.red },
];
equip.forEach((e, i) => {
const x = 0.3 + i * 1.9;
sl.addShape(pres.ShapeType.rect, { x, y: 2.72, w: 1.78, h: 2.6, fill: { color: e.color }, line: { color: e.ac, pt: 1.2 } });
sl.addText(e.icon, { x, y: 2.78, w: 1.78, h: 0.7, fontSize: 28, align: "center", fontFace: "Segoe UI Emoji" });
sl.addText(e.name, { x: x+0.06, y: 3.5, w: 1.66, h: 0.8, fontSize: 12, bold: true, color: C.slate, align: "center", fontFace: "Calibri" });
sl.addText(e.desc, { x: x+0.06, y: 4.3, w: 1.66, h: 0.9, fontSize: 11, color: C.gray, align: "center", fontFace: "Calibri" });
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — ROLE OF NURSES
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 1.05, fill: { color: C.deep }, line: { color: C.deep } });
sl.addShape(pres.ShapeType.rect, { x: 0, y: 1.03, w: 10, h: 0.07, fill: { color: C.green }, line: { color: C.green } });
sl.addText("👩⚕️ Role of Nurses in Immunization", {
x: 0.4, y: 0.08, w: 9.2, h: 0.87,
fontSize: 26, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0
});
const roles = [
{ phase: "BEFORE", icon: "📋", color: C.lightB, ac: C.teal, items: [
"Check immunization history and due dates",
"Assess for contraindications",
"Verify VVM, expiry, and cold chain",
"Obtain informed consent",
"Prepare emergency tray (adrenaline, O₂)",
]},
{ phase: "DURING", icon: "💉", color: C.lightG, ac: C.green, items: [
"Confirm correct vaccine, dose, route, site",
"Use aseptic technique — 1 needle = 1 patient",
"Reconstitute vaccines correctly (MR, JE, BCG)",
"Give oral vaccines (OPV, RV) — ensure swallowed",
"Record lot number, site, and time",
]},
{ phase: "AFTER", icon: "📝", color: C.lightY, ac: C.yellow, items: [
"Observe 15-30 min for reactions (anaphylaxis)",
"Counsel parents on expected minor AEFI",
"Complete vaccination card and register",
"Schedule next visit & reinforce adherence",
"Report any AEFI to District Health Office",
]},
];
roles.forEach((r, i) => {
const x = 0.28 + i * 3.18;
sl.addShape(pres.ShapeType.rect, { x, y: 1.18, w: 3.0, h: 4.2, fill: { color: r.color }, line: { color: r.ac, pt: 1.5 } });
sl.addShape(pres.ShapeType.rect, { x, y: 1.18, w: 3.0, h: 0.6, fill: { color: r.ac }, line: { color: r.ac } });
sl.addText(r.icon + " " + r.phase, { x: x+0.08, y: 1.18, w: 2.84, h: 0.6, fontSize: 18, bold: true, color: C.white, valign: "middle", fontFace: "Calibri", margin: 0 });
r.items.forEach((item, j) => {
const iy = 1.88 + j * 0.68;
sl.addShape(pres.ShapeType.ellipse, { x: x+0.12, y: iy+0.08, w: 0.22, h: 0.22, fill: { color: r.ac }, line: { color: r.ac } });
sl.addText(item, { x: x+0.4, y: iy, w: 2.5, h: 0.6, fontSize: 13, color: C.slate, fontFace: "Calibri", valign: "middle" });
});
});
// Community role banner
sl.addShape(pres.ShapeType.rect, { x: 0.28, y: 5.42, w: 9.44, h: 0.1, fill: { color: C.green }, line: { color: C.green } });
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — SUMMARY & THANK YOU
// ═══════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.deep };
sl.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 0.3, h: 5.625, fill: { color: C.green }, line: { color: C.green } });
sl.addShape(pres.ShapeType.rect, { x: 0.3, y: 0, w: 0.12, h: 5.625, fill: { color: C.aqua }, line: { color: C.aqua } });
sl.addText("Summary", {
x: 0.6, y: 0.2, w: 8.8, h: 0.65,
fontSize: 14, bold: true, color: C.aqua, charSpacing: 3, fontFace: "Calibri", align: "left"
});
sl.addShape(pres.ShapeType.rect, { x: 0.6, y: 0.85, w: 8.8, h: 0.06, fill: { color: C.green }, line: { color: C.green } });
const summaries = [
{ icon: "💉", text: "Vaccines are biological preparations providing active immunity against infectious diseases." },
{ icon: "🔬", text: "Types include live-attenuated, inactivated, toxoid, conjugate, and combination vaccines." },
{ icon: "🇳🇵", text: "Nepal's EPI (since 1979) provides 10+ free vaccines to all children via MoHP." },
{ icon: "📅", text: "The national schedule covers: BCG at birth, Pentavalent/OPV/PCV/RV (6,10,14 wks), MR, JE, TCV." },
{ icon: "👩⚕️", text: "Nurses are the backbone of immunization — from cold chain to counselling and AEFI reporting." },
];
summaries.forEach((s, i) => {
const y = 1.0 + i * 0.7;
sl.addText(s.icon, { x: 0.65, y, w: 0.55, h: 0.6, fontSize: 22, fontFace: "Segoe UI Emoji", valign: "middle" });
sl.addText(s.text, { x: 1.25, y: y+0.03, w: 8.2, h: 0.58, fontSize: 15, color: C.white, fontFace: "Calibri", valign: "middle" });
});
sl.addShape(pres.ShapeType.rect, { x: 0.6, y: 4.5, w: 8.8, h: 0.06, fill: { color: C.green }, line: { color: C.green } });
sl.addText("THANK YOU 🙏", {
x: 0.6, y: 4.62, w: 8.8, h: 0.65,
fontSize: 32, bold: true, color: C.white, align: "center", fontFace: "Calibri"
});
sl.addText("Any Questions? — Pokhara Academy of Health Sciences, B.Sc. Nursing 2nd Year", {
x: 0.6, y: 5.25, w: 8.8, h: 0.3,
fontSize: 11, color: C.gray, align: "center", fontFace: "Calibri"
});
}
// ── WRITE ──────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/vaccine-presentation/Vaccines_EPI_Nepal_Final.pptx" })
.then(() => console.log("SUCCESS: Vaccines_EPI_Nepal_Final.pptx"))
.catch(e => { console.error(e); process.exit(1); });
cd /home/daytona/workspace/vaccine-presentation && node vaccine_epi_v2.js 2>&1
ls -lh /home/daytona/workspace/vaccine-presentation/Vaccines_EPI_Nepal_Final.ppt…
Vaccines EPI Nepal Final
Presentation · PPTX

| # | Slide | Highlights |
|---|---|---|
| 1 | Title | Deep navy + green theme, 3 stat pills (1979, FREE, 7 contacts) |
| 2 | Learning Objectives | 5 numbered objective cards with colour-coded accent bars |
| 3 | What is a Vaccine? | Definition quoted from Harrison's 22E, two comparison boxes (Vaccine vs Immunization) |
| 4 | Types of Vaccines | 5 icon cards — Live, Inactivated, Toxoid, Conjugate, Combination with examples |
| 5 | EPI Programme Nepal | 4 key fact cards + 6 checkmark bullet points |
| 6 | National EPI Schedule | Full colour table (Birth → 15 months) + official Nepal MoHP/UNICEF/WHO pamphlet image embedded on the side |
| 7 | Diseases Prevented | 10 icon cards (one per disease with vaccine name) |
| 8 | Cold Chain | Definition + temperature rule banner + 5 equipment cards |
| 9 | Role of Nurses | 3-column layout — BEFORE / DURING / AFTER with 5 points each |
| 10 | Summary & Thank You | 5 summary bullets on dark background, clean closing |
Adverse affect of vaccine and management
~/vaccine-presentation/aefi_pptx.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Adverse Effects of Vaccines & Management";
pres.author = "Pokhara Academy of Health Sciences";
// ── PALETTE ─────────────────────────────────────────────────────────────────
const C = {
deep: "1A1A2E", // very dark navy
mid: "16213E",
teal: "0F3460",
accent: "E94560", // vivid red-accent (medical urgency feel)
green: "0E8A5F",
aqua: "17A589",
yellow: "F39C12",
orange: "E67E22",
white: "FFFFFF",
offwhite:"F5F6FA",
lightR: "FDEDEC",
lightG: "D5F5E3",
lightY: "FEF9E7",
lightB: "D6EAF8",
lightO: "FDEBD0",
lightP: "F5EEF8",
slate: "2C3E50",
gray: "7F8C8D",
};
// ── HELPERS ──────────────────────────────────────────────────────────────────
function header(sl, title, accentColor) {
const ac = accentColor || C.accent;
sl.addShape(pres.ShapeType.rect, { x:0, y:0, w:10, h:1.08, fill:{color:C.deep}, line:{color:C.deep} });
sl.addShape(pres.ShapeType.rect, { x:0, y:1.06, w:10, h:0.07, fill:{color:ac}, line:{color:ac} });
sl.addText(title, { x:0.4, y:0.08, w:9.2, h:0.9, fontSize:24, bold:true, color:C.white, valign:"middle", fontFace:"Calibri", margin:0 });
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.deep };
sl.addShape(pres.ShapeType.rect, {x:0, y:0, w:0.32, h:5.625, fill:{color:C.accent}, line:{color:C.accent}});
sl.addShape(pres.ShapeType.rect, {x:0.32, y:0, w:0.12, h:5.625, fill:{color:C.orange}, line:{color:C.orange}});
sl.addShape(pres.ShapeType.rect, {x:0.6, y:0.2, w:9.15, h:0.55, fill:{color:C.teal}, line:{color:C.teal}});
sl.addText("POKHARA ACADEMY OF HEALTH SCIENCES · B.Sc. NURSING — 2ND YEAR", {
x:0.6, y:0.2, w:9.15, h:0.55, fontSize:12, bold:true, color:C.white, align:"center", valign:"middle", charSpacing:1.5, fontFace:"Calibri", margin:0
});
sl.addText("Adverse Effects of Vaccines", {
x:0.6, y:1.0, w:9.15, h:1.2, fontSize:44, bold:true, color:C.white, align:"center", fontFace:"Calibri"
});
sl.addText("& Management", {
x:0.6, y:2.15, w:9.15, h:0.7, fontSize:32, color:C.accent, align:"center", fontFace:"Calibri"
});
sl.addShape(pres.ShapeType.rect, {x:0.6, y:2.9, w:9.15, h:0.06, fill:{color:C.orange}, line:{color:C.orange}});
sl.addText("AEFI — Adverse Events Following Immunization", {
x:0.6, y:3.03, w:9.15, h:0.55, fontSize:19, color:"FAD7A0", align:"center", fontFace:"Calibri"
});
const pills = [
{icon:"💉", label:"3 Categories of AEFI"},
{icon:"⚠️", label:"Specific Vaccine Reactions"},
{icon:"🚨", label:"Emergency Management"},
];
pills.forEach((p,i) => {
const x = 0.75 + i*3.1;
sl.addShape(pres.ShapeType.roundRect, {x, y:3.75, w:2.85, h:1.45, fill:{color:"0D1B2A"}, line:{color:C.accent, pt:1.5}, rectRadius:0.1});
sl.addText(p.icon, {x, y:3.82, w:2.85, h:0.6, fontSize:24, align:"center", fontFace:"Segoe UI Emoji"});
sl.addText(p.label, {x, y:4.38, w:2.85, h:0.65, fontSize:13.5, color:C.white, align:"center", fontFace:"Calibri"});
});
sl.addText("Reference: Goldman-Cecil Medicine | Goodman & Gilman's Pharmacology | Harrison's 22E | Symptom to Diagnosis 4E", {
x:0.6, y:5.28, w:9.15, h:0.28, fontSize:9, color:C.gray, align:"center", fontFace:"Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS AEFI? (Definition + WHO Classification)
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "⚠️ What is AEFI? (Adverse Event Following Immunization)", C.accent);
// Definition box
sl.addShape(pres.ShapeType.rect, {x:0.3, y:1.18, w:9.4, h:0.85, fill:{color:C.deep}, line:{color:C.deep}});
sl.addShape(pres.ShapeType.rect, {x:0.3, y:1.18, w:0.12, h:0.85, fill:{color:C.accent}, line:{color:C.accent}});
sl.addText('"Any untoward medical occurrence that follows immunization and does not necessarily have a causal relationship with the vaccine."', {
x:0.5, y:1.2, w:9.1, h:0.8, fontSize:15, color:C.white, valign:"middle", fontFace:"Calibri", italic:true
});
sl.addText("— WHO Definition", {x:7.5, y:2.0, w:2.1, h:0.25, fontSize:11, color:C.gray, italic:true, fontFace:"Calibri"});
// 3 Categories from Goldman-Cecil
sl.addText("WHO / Goldman-Cecil Classification of Adverse Reactions:", {
x:0.3, y:2.32, w:9.4, h:0.4, fontSize:16, bold:true, color:C.slate, fontFace:"Calibri"
});
const cats = [
{num:"1", name:"LOCAL Reactions", icon:"📍", desc:"Pain, redness, swelling at injection site\nMost frequent but LEAST severe\nUsually self-limiting in 1-3 days\nNo specific treatment needed", color:C.lightG, ac:C.green},
{num:"2", name:"SYSTEMIC Reactions", icon:"🌡️", desc:"Fever, malaise, myalgia, headache\nLoss of appetite, irritability\nMay be vaccine-related or coincidental\nAntipyretics for symptomatic relief", color:C.lightY, ac:C.yellow},
{num:"3", name:"ALLERGIC / ANAPHYLACTIC", icon:"🚨", desc:"Least frequent but MOST severe\nAnaphylaxis: ~1 per million doses\nOnset within 15-30 min of vaccination\nRequires EMERGENCY management", color:C.lightR, ac:C.accent},
];
cats.forEach((c,i) => {
const x = 0.28 + i*3.18;
sl.addShape(pres.ShapeType.rect, {x, y:2.78, w:3.0, h:2.72, fill:{color:c.color}, line:{color:c.ac, pt:1.5}});
sl.addShape(pres.ShapeType.rect, {x, y:2.78, w:3.0, h:0.58, fill:{color:c.ac}, line:{color:c.ac}});
sl.addText(c.icon+" "+c.name, {x:x+0.1, y:2.78, w:2.8, h:0.58, fontSize:14, bold:true, color:C.white, valign:"middle", fontFace:"Calibri", margin:0});
sl.addText(c.desc, {x:x+0.12, y:3.42, w:2.76, h:2.0, fontSize:13, color:C.slate, fontFace:"Calibri", valign:"top"});
});
sl.addText("Goldman-Cecil Medicine, International Edition", {x:0.3, y:5.48, w:9.4, h:0.2, fontSize:9.5, color:C.gray, italic:true, fontFace:"Calibri"});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 3 — WHO 5-TYPE CLASSIFICATION (AEFI Causality)
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "📋 WHO 5-Type Classification of AEFI (Causality)", C.teal);
const types = [
{n:"01", name:"Vaccine Product-Related Reaction", icon:"🦠", desc:"Caused by the inherent properties of the vaccine itself\nExamples: BCG ulcer/scar (normal), OPV-VAPP (rare)\nLymphadenitis after BCG; mild fever after MR vaccine", color:C.lightG, ac:C.green},
{n:"02", name:"Vaccine Quality Defect-Related", icon:"⚗️", desc:"Due to a defect in the vaccine manufacturing process\nExamples: Sub-potent vaccine, contaminated batch\nPrevented by quality control and GMP standards", color:C.lightB, ac:C.teal},
{n:"03", name:"Immunization Error-Related", icon:"💉", desc:"Due to improper handling, preparation, or administration\nExamples: Wrong dose, wrong site, wrong route, re-used needle, contamination of multi-dose vial\nPREVENTABLE with proper training", color:C.lightO, ac:C.orange},
{n:"04", name:"Immunization Anxiety-Related", icon:"😟", desc:"Triggered by anxiety or fear of injection, not the vaccine itself\nExamples: Vasovagal syncope (fainting), hyperventilation, dizziness\nMore common in adolescents — HPV, Tdap, MCV4\nManage: Lie down, observe 15-30 min post-vaccination", color:C.lightY, ac:C.yellow},
{n:"05", name:"Coincidental Event", icon:"🔀", desc:"Unrelated to the vaccine — would have occurred anyway\nTemporal association only — NOT caused by vaccine\nExamples: Fever from concurrent viral illness\nImportant for public trust — report and investigate all events", color:C.lightP, ac:"9B59B6"},
];
types.forEach((t,i) => {
const col = i < 3 ? 0 : 1;
const row = i < 3 ? i : i-3;
// col 0: x=0.28, col 1: x=5.15
// last item (i=4) spans but col 1 only has 2 items (i=3,4), stack vertically
const x = col===0 ? 0.28 : 5.15;
const y = 1.18 + row * 1.45;
const w = 4.65;
sl.addShape(pres.ShapeType.rect, {x, y, w, h:1.35, fill:{color:t.color}, line:{color:t.ac, pt:1.2}});
sl.addShape(pres.ShapeType.rect, {x, y, w:0.52, h:1.35, fill:{color:t.ac}, line:{color:t.ac}});
sl.addText(t.n, {x, y, w:0.52, h:1.35, fontSize:16, bold:true, color:C.white, align:"center", valign:"middle", fontFace:"Calibri", margin:0});
sl.addText(t.icon+" "+t.name, {x:x+0.58, y:y+0.06, w:w-0.65, h:0.38, fontSize:14, bold:true, color:C.slate, fontFace:"Calibri"});
sl.addText(t.desc.split('\n')[0], {x:x+0.58, y:y+0.44, w:w-0.65, h:0.38, fontSize:12, color:C.slate, fontFace:"Calibri"});
sl.addText(t.desc.split('\n').slice(1).join(' | '), {x:x+0.58, y:y+0.82, w:w-0.65, h:0.44, fontSize:11, color:C.gray, fontFace:"Calibri"});
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 4 — COMMON (LOCAL) ADVERSE EFFECTS
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "📍 Local & Systemic Adverse Effects — Common AEFI", C.green);
// Left col — Local reactions
sl.addShape(pres.ShapeType.rect, {x:0.28, y:1.18, w:4.65, h:0.5, fill:{color:C.green}, line:{color:C.green}});
sl.addText("📍 LOCAL REACTIONS", {x:0.35, y:1.18, w:4.5, h:0.5, fontSize:16, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
const local = [
{s:"Pain at injection site", m:"Cold compress; oral paracetamol"},
{s:"Redness (erythema)", m:"Usually resolves in 24-48 hrs; reassure"},
{s:"Swelling / induration", m:"Do NOT massage; cool compress"},
{s:"BCG ulcer / scar", m:"Normal expected reaction — do NOT treat"},
{s:"BCG lymphadenitis", m:"Usually self-limiting; rarely needs aspiration"},
{s:"Abscess at injection site", m:"Usually due to technique error; refer if large"},
];
local.forEach((r,i) => {
const y = 1.75 + i*0.56;
const bg = i%2===0 ? C.white : C.lightG;
sl.addShape(pres.ShapeType.rect, {x:0.28, y, w:4.65, h:0.5, fill:{color:bg}, line:{color:"A9DFBF", pt:0.5}});
sl.addShape(pres.ShapeType.rect, {x:0.28, y, w:0.12, h:0.5, fill:{color:C.green}, line:{color:C.green}});
sl.addText("• "+r.s, {x:0.45, y:y+0.02, w:4.4, h:0.24, fontSize:13, bold:true, color:C.slate, fontFace:"Calibri"});
sl.addText(" Mx: "+r.m, {x:0.45, y:y+0.24, w:4.4, h:0.22, fontSize:11.5, color:C.gray, fontFace:"Calibri"});
});
// Right col — Systemic reactions
sl.addShape(pres.ShapeType.rect, {x:5.2, y:1.18, w:4.55, h:0.5, fill:{color:C.yellow}, line:{color:C.yellow}});
sl.addText("🌡️ SYSTEMIC REACTIONS", {x:5.28, y:1.18, w:4.4, h:0.5, fontSize:16, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
const systemic = [
{s:"Low-grade fever", m:"Paracetamol 10-15 mg/kg; fluids"},
{s:"Malaise / fatigue", m:"Rest; reassure parents; self-limiting"},
{s:"Myalgia / headache", m:"Analgesics (paracetamol / ibuprofen)"},
{s:"Irritability / crying (infants)", m:"Hold, comfort, breast-feed; mild analgesia"},
{s:"Mild rash (MR, day 5-12)", m:"Self-limiting; antihistamine if itchy"},
{s:"Loss of appetite", m:"Ensure hydration; reassure parents"},
];
systemic.forEach((r,i) => {
const y = 1.75 + i*0.56;
const bg = i%2===0 ? C.white : C.lightY;
sl.addShape(pres.ShapeType.rect, {x:5.2, y, w:4.55, h:0.5, fill:{color:bg}, line:{color:"FAD7A0", pt:0.5}});
sl.addShape(pres.ShapeType.rect, {x:5.2, y, w:0.12, h:0.5, fill:{color:C.yellow}, line:{color:C.yellow}});
sl.addText("• "+r.s, {x:5.38, y:y+0.02, w:4.28, h:0.24, fontSize:13, bold:true, color:C.slate, fontFace:"Calibri"});
sl.addText(" Mx: "+r.m, {x:5.38, y:y+0.24, w:4.28, h:0.22, fontSize:11.5, color:C.gray, fontFace:"Calibri"});
});
sl.addText("⚠️ Antipyretics should NOT be given routinely before vaccination as they may reduce immune response — Goldman-Cecil Medicine", {
x:0.28, y:5.32, w:9.44, h:0.3, fontSize:11, color:"7D6608", bold:true, fontFace:"Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 5 — SPECIFIC SERIOUS AEFI
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "🚨 Specific Serious AEFI — Vaccine-by-Vaccine", C.accent);
const vaes = [
{v:"BCG", r:"BCG osteitis/osteomyelitis\nDisseminated BCG disease", m:"Refer; anti-TB therapy (NOT in immunocompetent)\nAntimycobacterial therapy in immunocompromised", color:C.lightG, ac:C.green},
{v:"OPV", r:"VAPP (Vaccine-Associated Paralytic Poliomyelitis)\n~1 in 2.4 million doses", m:"Supportive care — no antiviral\nSwitching to IPV prevents VAPP\nReport as serious AEFI", color:C.lightB, ac:C.teal},
{v:"Pentavalent\n(DPT)", r:"HHE (Hypotonic-Hyporesponsive Episode)\nPersistent inconsolable crying >3 hrs", m:"HHE: Supportive — usually self-limiting in hours\nPaeds assessment; consider acellular pertussis next dose", color:C.lightO, ac:C.orange},
{v:"MR / MMR", r:"Febrile seizure (day 5-12 post MR)\nITP (Idiopathic Thrombocytopenic Purpura)\nMild rash & fever", m:"Febrile seizure: ABC, diazepam if prolonged\nITP: Usually self-limiting; haematology review\nRash: Antihistamine if symptomatic", color:C.lightY, ac:C.yellow},
{v:"JE", r:"Headache, fever, myalgia\nRare: hypersensitivity", m:"Paracetamol for fever/pain\nAntihistamine + observe for allergy", color:C.lightP, ac:"9B59B6"},
{v:"ALL vaccines", r:"Anaphylaxis (see next slide)\nSyncope (fainting)\nEgg allergy reaction", m:"Anaphylaxis: Epinephrine IM IMMEDIATELY\nSyncope: Lay flat, legs elevated, observe\nEgg allergy: Vaccinate in medical setting", color:C.lightR, ac:C.accent},
];
vaes.forEach((v,i) => {
const col = i%2;
const row = Math.floor(i/2);
const x = col===0 ? 0.28 : 5.2;
const y = 1.18 + row*1.48;
sl.addShape(pres.ShapeType.rect, {x, y, w:4.65, h:1.38, fill:{color:v.color}, line:{color:v.ac, pt:1.2}});
sl.addShape(pres.ShapeType.rect, {x, y, w:1.1, h:1.38, fill:{color:v.ac}, line:{color:v.ac}});
sl.addText(v.v, {x, y, w:1.1, h:1.38, fontSize:14, bold:true, color:C.white, align:"center", valign:"middle", fontFace:"Calibri", margin:0});
sl.addText("AEFI:", {x:x+1.15, y:y+0.04, w:3.4, h:0.22, fontSize:11, bold:true, color:v.ac==="9B59B6"?"7D3C98":v.ac, fontFace:"Calibri"});
sl.addText(v.r, {x:x+1.15, y:y+0.24, w:3.4, h:0.52, fontSize:11.5, color:C.slate, fontFace:"Calibri"});
sl.addText("Management:", {x:x+1.15, y:y+0.76, w:3.4, h:0.22, fontSize:11, bold:true, color:C.deep, fontFace:"Calibri"});
sl.addText(v.m.split('\n')[0], {x:x+1.15, y:y+0.96, w:3.4, h:0.38, fontSize:11, color:C.gray, fontFace:"Calibri"});
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 6 — ANAPHYLAXIS MANAGEMENT (MOST IMPORTANT)
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
sl.addShape(pres.ShapeType.rect, {x:0, y:0, w:10, h:1.08, fill:{color:C.accent}, line:{color:C.accent}});
sl.addShape(pres.ShapeType.rect, {x:0, y:1.06, w:10, h:0.07, fill:{color:C.orange}, line:{color:C.orange}});
sl.addText("🚨 ANAPHYLAXIS — Recognition & Emergency Management", {
x:0.4, y:0.08, w:9.2, h:0.9, fontSize:22, bold:true, color:C.white, valign:"middle", fontFace:"Calibri", margin:0
});
// Recognition box
sl.addShape(pres.ShapeType.rect, {x:0.28, y:1.2, w:3.5, h:4.22, fill:{color:C.lightR}, line:{color:C.accent, pt:1.5}});
sl.addShape(pres.ShapeType.rect, {x:0.28, y:1.2, w:3.5, h:0.5, fill:{color:C.accent}, line:{color:C.accent}});
sl.addText("🔴 RECOGNITION", {x:0.35, y:1.2, w:3.36, h:0.5, fontSize:15, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
sl.addText("Onset: Within 15-30 minutes\n\n• Skin: Urticaria (hives), flushing, angioedema\n• Respiratory: Bronchospasm, stridor, dyspnea\n• Cardiovascular: Hypotension, tachycardia\n• Neurological: Anxiety, dizziness, loss of consciousness\n• GI: Nausea, vomiting, abdominal cramps\n\nRate: ~1 per 1 million vaccine doses\n(Goldman-Cecil Medicine)", {
x:0.38, y:1.76, w:3.3, h:3.58, fontSize:12.5, color:C.slate, fontFace:"Calibri", valign:"top"
});
// Management steps
sl.addShape(pres.ShapeType.rect, {x:4.0, y:1.2, w:5.72, h:4.22, fill:{color:"FFF9F0"}, line:{color:C.orange, pt:1.5}});
sl.addShape(pres.ShapeType.rect, {x:4.0, y:1.2, w:5.72, h:0.5, fill:{color:C.orange}, line:{color:C.orange}});
sl.addText("🟠 MANAGEMENT STEPS", {x:4.08, y:1.2, w:5.56, h:0.5, fontSize:15, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
const steps = [
{n:"1", text:"STOP vaccination. Call for help immediately.", accent:C.accent},
{n:"2", text:"EPINEPHRINE (Adrenaline) 1:1000 — 0.01 mg/kg IM in anterolateral thigh\n MAX: 0.5 mg (adults) / 0.3 mg (children). Repeat every 5-15 min if needed.\n ⭐ FIRST-LINE — do NOT delay for antihistamines!", accent:C.accent},
{n:"3", text:"POSITION: Supine, legs elevated (if breathing OK)\n Semi-recumbent if respiratory distress", accent:C.orange},
{n:"4", text:"OXYGEN: High-flow O₂ via face mask (10-15 L/min)", accent:C.yellow},
{n:"5", text:"IV ACCESS: Wide-bore cannula — Normal saline bolus 20 mL/kg for hypotension", accent:C.green},
{n:"6", text:"ANTIHISTAMINES (Chlorphenamine) + Hydrocortisone — ADJUNCTS only, NOT first-line\n Do NOT delay epinephrine to give antihistamines!", accent:C.teal},
{n:"7", text:"OBSERVE: Minimum 24 hrs after anaphylaxis. Report as serious AEFI.", accent:C.gray},
];
steps.forEach((s,i) => {
const y = 1.78 + i*0.52;
sl.addShape(pres.ShapeType.ellipse, {x:4.1, y:y+0.04, w:0.36, h:0.36, fill:{color:s.accent}, line:{color:s.accent}});
sl.addText(s.n, {x:4.1, y:y+0.04, w:0.36, h:0.36, fontSize:13, bold:true, color:C.white, align:"center", valign:"middle", fontFace:"Calibri", margin:0});
sl.addText(s.text, {x:4.55, y:y, w:5.08, h:0.52, fontSize:11.5, color:C.slate, fontFace:"Calibri", valign:"middle"});
});
sl.addText("Source: Symptom to Diagnosis 4E | Lippincott Illustrated Reviews: Pharmacology", {
x:0.28, y:5.45, w:9.44, h:0.22, fontSize:9.5, color:C.gray, italic:true, fontFace:"Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 7 — FEBRILE SEIZURE + SYNCOPE + HHE (grouped)
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "⚡ Management of Other Important AEFI", C.orange);
const boxes = [
{
title:"🌡️ FEBRILE SEIZURE", ac:C.yellow,
content:[
"Trigger: High fever (>38.9°C) after vaccine (esp. MR, day 5-12)",
"Features: Generalised tonic-clonic convulsion, usually <2 minutes",
"Prognosis: Self-limiting; no long-term harm in simple febrile seizure",
"Management:",
" • Place child on side (recovery position) — prevent aspiration",
" • Clear airway; give O₂ if available",
" • Diazepam 0.2-0.5 mg/kg per rectal if seizure >5 min",
" • Paracetamol for fever control",
" • Do NOT restrain the child forcefully",
" • If resolves quickly: Observe, reassure parents",
" • If prolonged (>5 min) or recurrent: Refer to hospital",
]
},
{
title:"😵 SYNCOPE (Fainting)", ac:C.teal,
content:[
"Trigger: Anxiety/pain from injection — NOT the vaccine contents",
"Most common in adolescents: HPV, MCV4, Tdap vaccines",
"Can cause injury from falling — prevent proactively",
"Management:",
" • Lay patient flat; elevate legs",
" • Observe for 15-30 minutes post-vaccination (all patients)",
" • Give water/snack before injection if anxious",
" • Seat or lie down ALL patients during vaccination",
" • Recovery usually within minutes",
" • Rule out anaphylaxis (syncope alone has no urticaria/bronchospasm)",
" • Document and report if injury occurred",
]
},
{
title:"⚠️ HHE (Hypotonic-Hyporesponsive Episode)", ac:C.orange,
content:[
"Trigger: Mainly after whole-cell DPT (Pentavalent), within 48 hrs",
"Features: Sudden onset of floppiness, pallor/cyanosis, unresponsiveness",
"Usually lasts minutes to hours; resolves spontaneously",
"Management:",
" • Lay child flat; maintain airway",
" • Check pulse; provide O₂",
" • Reassure parents — usually self-limiting",
" • Monitor and observe closely",
" • Report as serious AEFI",
" • Consider acellular pertussis (DTaP) for future doses",
" • HHE alone is NOT a contraindication to future DTP",
]
},
];
boxes.forEach((b,i) => {
const x = 0.28 + i*3.18;
sl.addShape(pres.ShapeType.rect, {x, y:1.18, w:3.0, h:4.3, fill:{color:i===0?C.lightY:i===1?"E8F6F3":C.lightO}, line:{color:b.ac, pt:1.3}});
sl.addShape(pres.ShapeType.rect, {x, y:1.18, w:3.0, h:0.52, fill:{color:b.ac}, line:{color:b.ac}});
sl.addText(b.title, {x:x+0.08, y:1.18, w:2.84, h:0.52, fontSize:13.5, bold:true, color:C.white, valign:"middle", fontFace:"Calibri", margin:0});
const textArr = b.content.map((line, li) => ({
text: line, options:{breakLine: li<b.content.length-1, fontSize:11.5, color:line.endsWith(":")?C.deep:C.slate, bold:line.endsWith(":"), fontFace:"Calibri", paraSpaceAfter:2}
}));
sl.addText(textArr, {x:x+0.1, y:1.76, w:2.8, h:3.64, valign:"top", fontFace:"Calibri"});
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 8 — CONTRAINDICATIONS & PRECAUTIONS
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "🚫 Contraindications & Precautions — When NOT to Vaccinate", C.teal);
// True contraindications
sl.addShape(pres.ShapeType.rect, {x:0.28, y:1.18, w:4.65, h:0.52, fill:{color:C.accent}, line:{color:C.accent}});
sl.addText("🚫 TRUE CONTRAINDICATIONS", {x:0.35, y:1.18, w:4.5, h:0.52, fontSize:15, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
const contra = [
"Anaphylaxis to prior dose of same vaccine",
"Known allergy to vaccine component (neomycin, gelatin, yeast, latex)",
"Live vaccines: Severe immunodeficiency (HIV with low CD4, SCID, malignancy)",
"Live vaccines: Pregnancy (MR, JE, varicella — theoretical fetal risk)",
"BCG: Symptomatic HIV-positive infants",
"Encephalopathy within 7 days of prior pertussis-containing vaccine",
];
contra.forEach((c,i) => {
const y = 1.76 + i*0.56;
const bg = i%2===0 ? C.white : C.lightR;
sl.addShape(pres.ShapeType.rect, {x:0.28, y, w:4.65, h:0.5, fill:{color:bg}, line:{color:"F1948A", pt:0.5}});
sl.addShape(pres.ShapeType.ellipse, {x:0.36, y:y+0.13, w:0.24, h:0.24, fill:{color:C.accent}, line:{color:C.accent}});
sl.addText(c, {x:0.68, y:y+0.03, w:4.18, h:0.44, fontSize:12.5, color:C.slate, valign:"middle", fontFace:"Calibri"});
});
// NOT contraindications
sl.addShape(pres.ShapeType.rect, {x:5.2, y:1.18, w:4.55, h:0.52, fill:{color:C.green}, line:{color:C.green}});
sl.addText("✅ NOT Contraindications (Common Myths)", {x:5.28, y:1.18, w:4.4, h:0.52, fontSize:14.5, bold:true, color:C.white, valign:"middle", fontFace:"Calibri"});
const notContra = [
"Mild illness with low-grade fever — vaccinate!",
"Ongoing antibiotic therapy",
"Prematurity — vaccinate at chronological age",
"Breastfeeding (mother or infant)",
"Allergy to penicillin / amoxicillin",
"Stable neurological conditions (cerebral palsy, Down syndrome)",
"Family history of adverse vaccine reactions",
];
notContra.forEach((c,i) => {
const y = 1.76 + i*0.52;
const bg = i%2===0 ? C.white : C.lightG;
sl.addShape(pres.ShapeType.rect, {x:5.2, y, w:4.55, h:0.46, fill:{color:bg}, line:{color:"A9DFBF", pt:0.5}});
sl.addShape(pres.ShapeType.ellipse, {x:5.28, y:y+0.11, w:0.24, h:0.24, fill:{color:C.green}, line:{color:C.green}});
sl.addText(c, {x:5.6, y:y+0.02, w:4.08, h:0.42, fontSize:12.5, color:C.slate, valign:"middle", fontFace:"Calibri"});
});
sl.addText("Goldman-Cecil Medicine, International Edition — Contraindications and Precautions", {x:0.28, y:5.43, w:9.44, h:0.22, fontSize:9.5, color:C.gray, italic:true, fontFace:"Calibri"});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 9 — NURSING ROLE IN AEFI (Prevention + Reporting)
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "👩⚕️ Nursing Role — AEFI Prevention, Detection & Reporting", C.aqua);
const sections = [
{
title:"PREVENT", icon:"🛡️", ac:C.green,
items:[
"Screen for contraindications BEFORE every dose",
"Check VVM, expiry date, cold chain temperature",
"Use correct dose, route, site and technique",
"Use auto-disable syringes — NEVER reuse needles",
"Reconstitute vaccines correctly (use supplied diluent only)",
"Prepare emergency tray: Adrenaline 1:1000, O₂, IV fluids",
"Observe patient for minimum 15-30 min post-vaccination",
]
},
{
title:"DETECT", icon:"🔍", ac:C.orange,
items:[
"Know the signs of anaphylaxis: urticaria, bronchospasm, hypotension",
"Differentiate AEFI from coincidental events",
"Identify local vs systemic vs allergic reactions",
"Recognise HHE, febrile seizure, syncope early",
"Ask parents to report fever, rash, unusual reactions within 72 hrs",
"Maintain post-vaccination observation register",
"Document every reaction with date, time, vaccine lot number",
]
},
{
title:"REPORT & MANAGE", icon:"📋", ac:C.teal,
items:[
"Report ALL serious AEFI within 24 hours to District Health Office",
"Complete standard AEFI reporting form (MoHP Nepal)",
"Send AEFI reports to VAERS/national surveillance system",
"Manage minor AEFI: Reassure, paracetamol, cold compress",
"Manage anaphylaxis per protocol: Epinephrine FIRST",
"Refer serious/unresolved AEFI to hospital",
"Counsel parents: Benefits of vaccination outweigh risks",
]
},
];
sections.forEach((s,i) => {
const x = 0.28 + i*3.18;
sl.addShape(pres.ShapeType.rect, {x, y:1.18, w:3.0, h:4.3, fill:{color:i===0?C.lightG:i===1?C.lightO:C.lightB}, line:{color:s.ac, pt:1.3}});
sl.addShape(pres.ShapeType.rect, {x, y:1.18, w:3.0, h:0.52, fill:{color:s.ac}, line:{color:s.ac}});
sl.addText(s.icon+" "+s.title, {x:x+0.1, y:1.18, w:2.8, h:0.52, fontSize:16, bold:true, color:C.white, valign:"middle", fontFace:"Calibri", margin:0});
const textArr = s.items.map((item,li)=>({
text:"• "+item, options:{breakLine:li<s.items.length-1, fontSize:12, color:C.slate, fontFace:"Calibri", paraSpaceAfter:5}
}));
sl.addText(textArr, {x:x+0.1, y:1.76, w:2.8, h:3.64, valign:"top", fontFace:"Calibri"});
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 10 — QUICK REFERENCE SUMMARY TABLE
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.offwhite };
header(sl, "📊 Quick Reference: AEFI Summary & Management", C.teal);
const tableRows = [
["AEFI", "Vaccine", "Onset", "Management"],
["Local pain/swelling", "Any IM/SC vaccine", "Minutes–hours", "Cold compress; paracetamol; reassure"],
["Fever", "Any (esp. Pentavalent, MR)", "6-24 hours", "Paracetamol; fluids; reassure"],
["BCG ulcer/scar", "BCG", "2-6 weeks", "Expected reaction — do NOT treat"],
["BCG lymphadenitis", "BCG", "2-4 weeks", "Usually self-limiting; refer if suppurative"],
["Febrile Seizure", "MR (day 5-12)", "5-12 days", "Recovery position; diazepam PR if >5 min"],
["HHE", "Pentavalent (DPT)", "<48 hours", "Lay flat; airway; observe; report AEFI"],
["Syncope (Fainting)", "Any (esp. HPV, Tdap)", "Minutes", "Lay flat; legs elevated; water/snack"],
["VAPP", "OPV", "4-30 days", "Supportive; report; switch to IPV"],
["Anaphylaxis 🚨", "Any vaccine", "15-30 min", "Epinephrine IM IMMEDIATELY → O₂ → IV fluids"],
];
const colW = [2.0, 1.9, 1.3, 4.22];
sl.addTable(
tableRows.map((row, ri) =>
row.map((cell, ci) => ({
text: cell,
options: {
fontSize: ri===0 ? 13 : 12,
bold: ri===0 || ci===0,
color: ri===0 ? C.white : (cell.includes("🚨") ? C.accent : C.slate),
fill: ri===0 ? C.teal : (ri===tableRows.length-1 ? "FDEDEC" : ri%2===0 ? C.white : C.lightB),
fontFace: "Calibri",
align: ci===0 ? "left" : "left",
}
}))
),
{x:0.2, y:1.15, w:9.6, h:4.35, colW, rowH:0.42, border:{pt:0.5, color:"BDD7EE"}}
);
sl.addText("⭐ Epinephrine (Adrenaline) 0.01 mg/kg IM is ALWAYS the first-line drug for anaphylaxis — Symptom to Diagnosis 4E", {
x:0.2, y:5.48, w:9.6, h:0.22, fontSize:10.5, color:C.accent, bold:true, fontFace:"Calibri"
});
}
// ═══════════════════════════════════════════════════════════════════════════════
// SLIDE 11 — THANK YOU / SUMMARY
// ═══════════════════════════════════════════════════════════════════════════════
{
let sl = pres.addSlide();
sl.background = { color: C.deep };
sl.addShape(pres.ShapeType.rect, {x:0, y:0, w:0.32, h:5.625, fill:{color:C.accent}, line:{color:C.accent}});
sl.addShape(pres.ShapeType.rect, {x:0.32, y:0, w:0.12, h:5.625, fill:{color:C.orange}, line:{color:C.orange}});
sl.addText("Key Messages", {x:0.6, y:0.18, w:9.1, h:0.45, fontSize:13, bold:true, color:C.accent, charSpacing:3, fontFace:"Calibri"});
sl.addShape(pres.ShapeType.rect, {x:0.6, y:0.62, w:9.1, h:0.06, fill:{color:C.orange}, line:{color:C.orange}});
const msgs = [
{icon:"⚠️", text:"AEFI = Adverse Event Following Immunization — 3 categories: Local, Systemic, Allergic"},
{icon:"📋", text:"WHO classifies AEFI into 5 types by causality — most are vaccine product-related or coincidental"},
{icon:"🚨", text:"Anaphylaxis is rare (~1/million doses) but life-threatening — Epinephrine IM is ALWAYS first-line"},
{icon:"🛡️", text:"Most AEFI are minor (local pain, mild fever) and self-limiting — reassure parents"},
{icon:"👩⚕️", text:"Nurses must PREVENT, DETECT, MANAGE and REPORT all AEFI promptly"},
{icon:"📊", text:"Benefits of vaccination FAR outweigh the risks — vaccine-preventable disease is the real danger"},
];
msgs.forEach((m,i) => {
const y = 0.76 + i*0.72;
sl.addText(m.icon, {x:0.65, y:y+0.04, w:0.5, h:0.58, fontSize:22, fontFace:"Segoe UI Emoji", valign:"middle"});
sl.addText(m.text, {x:1.2, y:y+0.06, w:8.38, h:0.56, fontSize:15, color:C.white, fontFace:"Calibri", valign:"middle"});
});
sl.addShape(pres.ShapeType.rect, {x:0.6, y:5.05, w:9.1, h:0.06, fill:{color:C.orange}, line:{color:C.orange}});
sl.addText("THANK YOU 🙏 | Any Questions? | Pokhara Academy of Health Sciences", {
x:0.6, y:5.15, w:9.1, h:0.38, fontSize:14, bold:true, color:C.white, align:"center", fontFace:"Calibri"
});
}
// ── WRITE ─────────────────────────────────────────────────────────────────────
pres.writeFile({fileName:"/home/daytona/workspace/vaccine-presentation/AEFI_Management.pptx"})
.then(()=>console.log("SUCCESS: AEFI_Management.pptx"))
.catch(e=>{console.error(e);process.exit(1);});
cd /home/daytona/workspace/vaccine-presentation && node aefi_pptx.js 2>&1
ls -lh /home/daytona/workspace/vaccine-presentation/AEFI_Management.pptx
AEFI Management
Presentation · PPTX
| # | Slide | Key Content |
|---|---|---|
| 1 | Title | Dark navy/red theme — "Adverse Effects of Vaccines & Management" |
| 2 | What is AEFI? | WHO definition + 3-category classification (Local / Systemic / Allergic) — Goldman-Cecil Medicine |
| 3 | WHO 5-Type Classification | Vaccine product-related, Quality defect, Immunization error, Anxiety-related, Coincidental |
| 4 | Common AEFI & Management | Side-by-side: Local reactions (pain, BCG ulcer) + Systemic (fever, rash) with management for each |
| 5 | Serious AEFI by Vaccine | BCG, OPV (VAPP), Pentavalent (HHE), MR (febrile seizure, ITP), JE, All vaccines (anaphylaxis) |
| 6 | ANAPHYLAXIS ⭐ | Recognition signs + 7-step emergency management with epinephrine dosing — Symptom to Diagnosis 4E |
| 7 | Febrile Seizure / Syncope / HHE | 3-column management for each with step-by-step nursing actions |
| 8 | Contraindications & Precautions | True contraindications vs common myths side-by-side — Goldman-Cecil |
| 9 | Nursing Role | Prevent / Detect / Report & Manage — 3-column layout |
| 10 | Quick Reference Table | 10 AEFI types with vaccine, onset, and management at a glance |
| 11 | Summary & Thank You | 6 key messages on dark background |
#1A1A2E) + vivid red accent (#E94560) for urgency, warm oranges for warnings, green for safe/preventable - colour-coded for instant visual scanning by presenters.