nipah disease
Nipah virus disease 2025 2026 outbreak update
Nipah virus infection
| Outbreak | Location | Year(s) | Key Features |
|---|---|---|---|
| First recognized | Malaysia & Singapore | 1998-1999 | 265 cases, 105 deaths; pigs as amplifiers; 1.1 million pigs culled |
| Bangladesh/West Bengal | Annual since 2001 | 2001-present | Date palm sap contamination; human-to-human transmission |
| Kerala, India | 2018, 2021, 2023 | Multiple | Surveillance-limited clusters |
| West Bengal, India | 2026 | Jan 2026 | 2 confirmed healthcare workers in Barasat; WHO risk: moderate |
| Method | Sample | Notes |
|---|---|---|
| Anti-NiV IgM antibody | Serum or CSF | Peaks ~day 12 of illness |
| Anti-NiV IgG antibody | Serum or CSF | Useful later in disease |
| RT-PCR (viral RNA) | Serum, CSF, urine, throat swab | Method of choice for acute diagnosis |
| Virus isolation | Blood, CSF, respiratory secretions | BSL-4 required |
Create a clinical reference PDF with diagnosis criteria and treatment protocols
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"
mkdir -p /home/daytona/workspace/nipah-reference && python3 -c "import reportlab; print('reportlab OK')" && python3 -c "from reportlab.platypus import SimpleDocTemplate; print('platypus OK')"
~/nipah-reference/generate_pdf.py
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether, PageBreak
)
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.lib import colors
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import Frame, PageTemplate
from reportlab.platypus.doctemplate import BaseDocTemplate
from reportlab.lib.colors import HexColor
import datetime
# ── Colour palette ──────────────────────────────────────────────────
DARK_BLUE = HexColor("#1A3557")
MED_BLUE = HexColor("#2563A8")
LIGHT_BLUE = HexColor("#D6E4F7")
ACCENT_RED = HexColor("#C0392B")
ACCENT_AMBER= HexColor("#D4830A")
ACCENT_GREEN= HexColor("#1A7A4A")
LIGHT_GRAY = HexColor("#F4F6F9")
MID_GRAY = HexColor("#7F8C8D")
DARK_GRAY = HexColor("#2C3E50")
WHITE = colors.white
BLACK = colors.black
OUTPUT = "/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference.pdf"
# ── Custom doc template with header/footer ──────────────────────────
class ClinicalDoc(BaseDocTemplate):
def __init__(self, filename, **kwargs):
BaseDocTemplate.__init__(self, filename, **kwargs)
frame = Frame(
self.leftMargin, self.bottomMargin,
self.width, self.height,
leftPadding=0, rightPadding=0, topPadding=0, bottomPadding=0,
id="main"
)
template = PageTemplate(id="main", frames=frame,
onPage=self._header_footer)
self.addPageTemplates([template])
def _header_footer(self, canvas, doc):
canvas.saveState()
w, h = A4
# ── Header bar ──────────────────────────────────────────────
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, h - 22*mm, w, 22*mm, fill=1, stroke=0)
canvas.setFillColor(WHITE)
canvas.setFont("Helvetica-Bold", 11)
canvas.drawString(15*mm, h - 10*mm, "NIPAH VIRUS DISEASE")
canvas.setFont("Helvetica", 9)
canvas.drawString(15*mm, h - 16*mm, "Clinical Reference — Diagnosis & Treatment Protocols")
# badge top-right
canvas.setFillColor(ACCENT_RED)
canvas.roundRect(w - 52*mm, h - 19*mm, 37*mm, 11*mm, 3*mm, fill=1, stroke=0)
canvas.setFillColor(WHITE)
canvas.setFont("Helvetica-Bold", 8)
canvas.drawCentredString(w - 33.5*mm, h - 14.5*mm, "BSL-4 PATHOGEN")
# ── Footer bar ───────────────────────────────────────────────
canvas.setFillColor(DARK_BLUE)
canvas.rect(0, 0, w, 12*mm, fill=1, stroke=0)
canvas.setFillColor(WHITE)
canvas.setFont("Helvetica", 7.5)
canvas.drawString(15*mm, 4.5*mm,
"Sources: Bradley & Daroff's Neurology | Jawetz Melnick & Adelberg's Medical Microbiology | "
"Park's Preventive Medicine | WHO 2026 | PubMed")
canvas.setFont("Helvetica-Bold", 8)
canvas.drawRightString(w - 15*mm, 4.5*mm, f"Page {doc.page}")
canvas.restoreState()
def build_styles():
base = getSampleStyleSheet()
def S(name, **kw):
s = ParagraphStyle(name, **kw)
return s
styles = {
"cover_title": S("cover_title",
fontName="Helvetica-Bold", fontSize=32, textColor=WHITE,
alignment=TA_CENTER, leading=38, spaceAfter=6),
"cover_sub": S("cover_sub",
fontName="Helvetica", fontSize=14, textColor=LIGHT_BLUE,
alignment=TA_CENTER, leading=20, spaceAfter=4),
"cover_meta": S("cover_meta",
fontName="Helvetica", fontSize=10, textColor=HexColor("#A8C4E0"),
alignment=TA_CENTER, leading=14),
"section": S("section",
fontName="Helvetica-Bold", fontSize=13, textColor=WHITE,
backColor=DARK_BLUE, alignment=TA_LEFT,
leftIndent=-2*mm, rightIndent=-2*mm,
borderPadding=(4*mm, 5*mm, 4*mm, 5*mm),
spaceAfter=4, spaceBefore=10),
"subsection": S("subsection",
fontName="Helvetica-Bold", fontSize=10.5, textColor=DARK_BLUE,
spaceBefore=6, spaceAfter=3, borderPadding=(0,0,0,0)),
"body": S("body",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GRAY,
leading=14, spaceAfter=4, alignment=TA_JUSTIFY),
"bullet": S("bullet",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GRAY,
leading=13, spaceAfter=2, leftIndent=12, firstLineIndent=-8),
"caption": S("caption",
fontName="Helvetica-Oblique", fontSize=8, textColor=MID_GRAY,
spaceAfter=4, alignment=TA_CENTER),
"alert_red": S("alert_red",
fontName="Helvetica-Bold", fontSize=9.5, textColor=WHITE,
backColor=ACCENT_RED, alignment=TA_CENTER,
borderPadding=(3*mm, 4*mm, 3*mm, 4*mm), spaceAfter=4),
"alert_amber": S("alert_amber",
fontName="Helvetica-Bold", fontSize=9.5, textColor=WHITE,
backColor=ACCENT_AMBER, alignment=TA_CENTER,
borderPadding=(3*mm, 4*mm, 3*mm, 4*mm), spaceAfter=4),
"alert_green": S("alert_green",
fontName="Helvetica-Bold", fontSize=9.5, textColor=WHITE,
backColor=ACCENT_GREEN, alignment=TA_CENTER,
borderPadding=(3*mm, 4*mm, 3*mm, 4*mm), spaceAfter=4),
"footnote": S("footnote",
fontName="Helvetica-Oblique", fontSize=7.5, textColor=MID_GRAY,
spaceAfter=2),
}
return styles
# ── Table style helpers ───────────────────────────────────────────────
def header_table_style(n_header_rows=1):
return TableStyle([
("BACKGROUND", (0,0), (-1, n_header_rows-1), DARK_BLUE),
("TEXTCOLOR", (0,0), (-1, n_header_rows-1), WHITE),
("FONTNAME", (0,0), (-1, n_header_rows-1), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1, n_header_rows-1), 9),
("ALIGN", (0,0), (-1,-1), "LEFT"),
("VALIGN", (0,0), (-1,-1), "TOP"),
("FONTNAME", (0, n_header_rows), (-1,-1), "Helvetica"),
("FONTSIZE", (0, n_header_rows), (-1,-1), 9),
("TEXTCOLOR", (0, n_header_rows), (-1,-1), DARK_GRAY),
("ROWBACKGROUNDS", (0, n_header_rows), (-1,-1), [WHITE, LIGHT_GRAY]),
("GRID", (0,0), (-1,-1), 0.4, HexColor("#BDC3C7")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING",(0,0), (-1,-1), 6),
("ROWBACKGROUNDS", (0,0), (-1, n_header_rows-1), [DARK_BLUE]),
])
def section_hdr(text, styles):
return Paragraph(f" {text}", styles["section"])
def sub_hdr(text, styles):
return Paragraph(text, styles["subsection"])
def body(text, styles):
return Paragraph(text, styles["body"])
def bullet(text, styles):
return Paragraph(f"<bullet>\u2022</bullet> {text}", styles["bullet"])
def spacer(h=4):
return Spacer(1, h*mm)
def hr(color=MED_BLUE, thickness=0.8):
return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=3)
# ══════════════════════════════════════════════════════════════════════
def build_story(styles):
W = A4[0] - 30*mm # usable text width
story = []
# ─────────────────────────────────────────────────────────────────
# COVER PAGE
# ─────────────────────────────────────────────────────────────────
# Big blue cover block (simulated with a table)
cover_data = [[
Paragraph(
"<font color='white'><b>NIPAH VIRUS DISEASE</b></font>",
ParagraphStyle("ct", fontName="Helvetica-Bold", fontSize=28,
textColor=WHITE, alignment=TA_CENTER, leading=34)
)
]]
cover_tbl = Table(cover_data, colWidths=[W])
cover_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_BLUE),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING",(0,0),(-1,-1), 18),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING",(0,0), (-1,-1), 10),
]))
subtitle_data = [[
Paragraph(
"<font color='white'>Clinical Reference Guide</font><br/>"
"<font color='#A8C4E0'>Diagnosis Criteria & Treatment Protocols</font>",
ParagraphStyle("cs", fontName="Helvetica", fontSize=13,
textColor=WHITE, alignment=TA_CENTER, leading=20)
)
]]
subtitle_tbl = Table(subtitle_data, colWidths=[W])
subtitle_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), MED_BLUE),
("TOPPADDING", (0,0), (-1,-1), 10),
("BOTTOMPADDING",(0,0),(-1,-1), 10),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING",(0,0), (-1,-1), 10),
]))
story.append(spacer(20))
story.append(cover_tbl)
story.append(subtitle_tbl)
story.append(spacer(8))
# Warning box
warn_data = [[
Paragraph(
"<b>⚠ BIOSAFETY LEVEL 4 (BSL-4) PATHOGEN</b><br/>"
"<font size=8>Handle all clinical specimens under strict containment protocols. "
"Notify local public health authority for all suspected cases immediately.</font>",
ParagraphStyle("wb", fontName="Helvetica", fontSize=9,
textColor=WHITE, alignment=TA_CENTER, leading=14)
)
]]
warn_tbl = Table(warn_data, colWidths=[W])
warn_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ACCENT_RED),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
story.append(warn_tbl)
story.append(spacer(8))
# Meta info
meta_data = [
["Classification:", "Paramyxoviridae, Genus Henipavirus"],
["Notifiable Disease:", "Yes — immediate notification required"],
["Case Fatality Rate:", "40% (Malaysia strain) | 75–94% (Bangladesh/India strains)"],
["WHO Priority Pathogen:", "Yes (R&D Blueprint)"],
["Last Updated:", "June 2026 | Sources: Bradley & Daroff, Jawetz, Park's, WHO, PubMed"],
]
meta_tbl = Table(meta_data, colWidths=[45*mm, W - 45*mm])
meta_tbl.setStyle(TableStyle([
("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
("FONTNAME", (1,0), (1,-1), "Helvetica"),
("FONTSIZE", (0,0), (-1,-1), 9),
("TEXTCOLOR", (0,0), (0,-1), DARK_BLUE),
("TEXTCOLOR", (1,0), (1,-1), DARK_GRAY),
("BACKGROUND", (0,0), (-1,-1), LIGHT_GRAY),
("GRID", (0,0), (-1,-1), 0.4, HexColor("#BDC3C7")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
]))
story.append(meta_tbl)
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 1: OVERVIEW & EPIDEMIOLOGY
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("1. OVERVIEW & EPIDEMIOLOGY", styles))
story.append(spacer(2))
story.append(body(
"Nipah virus (NiV) is a zoonotic RNA virus first identified in 1999 during an outbreak of fatal "
"encephalitis among pig farmers in Sungai Nipah, Malaysia. It belongs to the family "
"<b>Paramyxoviridae</b>, genus <b>Henipavirus</b>, and is closely related to Hendra virus. "
"NiV is classified as a <b>BSL-4 pathogen</b> due to its high case-fatality rate, broad host range, "
"and pandemic potential. The WHO lists it as a priority pathogen on its R&D Blueprint.", styles))
story.append(spacer(3))
story.append(sub_hdr("Outbreak History", styles))
epi_data = [
["Year", "Location", "Cases", "Deaths", "CFR", "Key Feature"],
["1998–1999", "Malaysia / Singapore", "265", "105", "40%", "Pigs as amplifying host; 1.1M pigs culled"],
["2001", "West Bengal, India", "66", "45", "68%", "First India outbreak; hospital-acquired spread"],
["2001–2015", "Bangladesh (13 outbreaks)", "261", "199", "76%", "Date palm sap contamination; H2H transmission"],
["2018", "Kerala, India", "19", "17", "89%", "Fruit bat origin; strong containment response"],
["2021", "Kerala, India", "1", "1", "100%", "Single index case; rapid containment"],
["2023", "Kerala, India", "6", "2", "33%", "Pteropus bats confirmed as source"],
["Jan 2026", "West Bengal, India", "2", "0*", "—", "Healthcare workers; WHO risk: MODERATE"],
]
epi_tbl = Table(epi_data, colWidths=[22*mm, 32*mm, 15*mm, 15*mm, 13*mm, W-97*mm])
epi_tbl.setStyle(header_table_style(1))
story.append(epi_tbl)
story.append(Paragraph("* Cases stabilised; under surveillance as of Feb 2026.", styles["footnote"]))
story.append(spacer(4))
story.append(sub_hdr("Reservoir & Transmission", styles))
trans_data = [
["Route", "Details", "Strain Association"],
["Animal-to-human\n(zoonotic)", "Contact with infected pigs; consumption of raw\ndate palm sap contaminated by fruit bat urine/saliva", "Malaysia & Bangladesh"],
["Human-to-human", "Respiratory droplets; direct contact with\nbody fluids of infected person", "Bangladesh / India (dominant)"],
["Nosocomial", "Inadequate PPE; close patient contact in\nhealthcare settings", "West Bengal outbreaks"],
["Food-borne", "Raw date palm sap, partially eaten fruits\ncontaminated by Pteropus bats", "Bangladesh primarily"],
]
trans_tbl = Table(trans_data, colWidths=[38*mm, 80*mm, W-118*mm])
trans_tbl.setStyle(header_table_style(1))
story.append(trans_tbl)
story.append(spacer(2))
story.append(body(
"<b>Natural Reservoir:</b> Fruit bats (<i>Pteropus</i> spp. — flying foxes), distributed from the "
"western Pacific to east Africa. Bats carry the virus asymptomatically. Ecological drivers include "
"deforestation, expanding agriculture, and livestock kept near bat habitats.", styles))
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 2: CLINICAL FEATURES
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("2. CLINICAL FEATURES", styles))
story.append(spacer(2))
story.append(sub_hdr("Disease Spectrum & Timeline", styles))
timeline_data = [
["Phase", "Timing", "Features"],
["Incubation", "4–45 days\n(typically 7–14 days)", "Asymptomatic"],
["Prodrome\n(Febrile phase)", "Days 1–4", "Fever (38–40°C), headache, myalgia, sore throat,\nnausea, vomiting, dizziness"],
["Acute\n(Encephalitic phase)", "Days 5–10", "Altered consciousness, drowsiness, disorientation,\nseizures, focal neurological deficits, coma"],
["Acute\n(Respiratory form)", "Days 3–8", "Atypical pneumonia, respiratory distress; more\ncommon in Bangladesh/India strains (~70% of cases)"],
["Late-onset /\nRelapsed encephalitis", "Months–years\nafter recovery", "Fever, headache, seizures, confluent cortical lesions\non MRI; lowest mortality (~18%)"],
["Sequelae", "Post-recovery", "Neurological deficits, neuropsychiatric symptoms\n(21% of Malaysian survivors)"],
]
timeline_tbl = Table(timeline_data, colWidths=[32*mm, 30*mm, W - 62*mm])
timeline_tbl.setStyle(header_table_style(1))
story.append(timeline_tbl)
story.append(spacer(4))
story.append(sub_hdr("Signs & Symptoms Summary", styles))
ss_data = [
["System", "Common Features", "Severe / Late Features"],
["General", "Fever, malaise, fatigue, myalgia", "Sepsis-like picture, hypothermia (terminal)"],
["Neurological", "Headache, dizziness, drowsiness,\nconfusion, disorientation", "Stupor, coma, seizures, focal deficits,\nbrain herniation"],
["Respiratory", "Cough, sore throat, dyspnea\n(Bangladesh/India strains)", "Acute respiratory distress syndrome (ARDS),\nhemoptysis, respiratory failure"],
["Cardiovascular", "Tachycardia, hypertension", "Vasculitis, microinfarcts, cardiac arrhythmia"],
["GI", "Nausea, vomiting, abdominal pain", "GI bleeding (rare)"],
["Ocular", "—", "Nystagmus, abnormal doll's eye reflex"],
]
ss_tbl = Table(ss_data, colWidths=[32*mm, 62*mm, W - 94*mm])
ss_tbl.setStyle(header_table_style(1))
story.append(ss_tbl)
story.append(spacer(4))
story.append(sub_hdr("Pathophysiology", styles))
story.append(body(
"NiV preferentially infects <b>vascular endothelial cells</b>, causing a <b>systemic vasculitis</b> "
"primarily involving small arteries and capillaries of the brain. This leads to focal ischaemia, "
"microinfarcts, and occasionally CNS haemorrhage. Unlike the Malaysian strain, the Bangladesh/India "
"strain exhibits enhanced respiratory tropism (F protein differences). Viral antigen persists in CNS "
"tissue in late-onset cases, though replication-competent virus is not isolated from the CNS.", styles))
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 3: DIAGNOSIS CRITERIA
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("3. DIAGNOSIS CRITERIA", styles))
story.append(spacer(2))
# Case definitions box
cd_data = [
[Paragraph("<b>SUSPECT CASE</b>", ParagraphStyle("x", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER)),
Paragraph("<b>PROBABLE CASE</b>", ParagraphStyle("x", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER)),
Paragraph("<b>CONFIRMED CASE</b>", ParagraphStyle("x", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, alignment=TA_CENTER))],
[
Paragraph(
"Acute encephalitis OR respiratory illness <b>AND</b> at least one of:<br/>"
"• Epidemiological link to confirmed/probable case<br/>"
"• Exposure to Pteropus bats or infected animals<br/>"
"• Consumption of raw date palm sap in endemic area<br/>"
"• Residence/travel to NiV-endemic area",
ParagraphStyle("cd", fontName="Helvetica", fontSize=8.5, textColor=DARK_GRAY, leading=13)),
Paragraph(
"Meets suspect criteria <b>AND</b> at least one of:<br/>"
"• IgM antibody detected in serum/CSF<br/>"
"• Clinical deterioration without alternative diagnosis<br/>"
"• Epidemiological link to confirmed case<br/>"
"• Typical MRI findings (disseminated hyperintense lesions)",
ParagraphStyle("cd", fontName="Helvetica", fontSize=8.5, textColor=DARK_GRAY, leading=13)),
Paragraph(
"Any of the following laboratory criteria:<br/>"
"• <b>RT-PCR positive</b> for NiV RNA (serum, CSF, urine, NPS)<br/>"
"• <b>Virus isolation</b> from clinical specimen (BSL-4)<br/>"
"• <b>IgG seroconversion</b> (4× rise in paired sera)<br/>"
"• <b>IgM positive</b> (ELISA) with confirmatory RT-PCR",
ParagraphStyle("cd", fontName="Helvetica", fontSize=8.5, textColor=DARK_GRAY, leading=13)),
]
]
cd_tbl = Table(cd_data, colWidths=[W/3, W/3, W/3])
cd_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_BLUE),
("BACKGROUND", (0,1), (0,1), HexColor("#FEF9E7")),
("BACKGROUND", (1,1), (1,1), HexColor("#FEF3E2")),
("BACKGROUND", (2,1), (2,1), HexColor("#EAFAF1")),
("GRID", (0,0), (-1,-1), 0.5, HexColor("#BDC3C7")),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING",(0,0),(-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(cd_tbl)
story.append(spacer(5))
story.append(sub_hdr("Laboratory Investigations", styles))
lab_data = [
["Test", "Sample", "Window / Notes", "Priority"],
["RT-PCR (viral RNA)", "Serum, CSF, urine,\nnasopharyngeal swab", "Best in first 7–10 days of illness;\nmethod of CHOICE for acute dx", "FIRST-LINE"],
["NiV IgM ELISA", "Serum or CSF", "Peaks ~day 12; may be negative in\nearly disease", "FIRST-LINE"],
["NiV IgG ELISA\n(paired sera)", "Serum (acute + convalescent)", "≥4× rise confirms infection;\nconvalescent sample at 14–21 days", "CONFIRMATORY"],
["Virus isolation", "Blood, CSF,\nrespiratory secretions", "BSL-4 laboratory only;\nnot for routine clinical use", "REFERENCE"],
["Plaque reduction\nneutralisation test (PRNT)", "Serum", "Gold-standard serology;\nBSL-4 required", "REFERENCE"],
["MRI Brain", "—", "Disseminated discrete hyperintense\nlesions in subcortical/deep white matter\n(acute); confluent cortical lesions\n(late-onset)", "IMAGING"],
["CT Brain", "—", "May be normal; less sensitive than MRI;\nuse if MRI unavailable", "IMAGING"],
["CSF analysis", "Lumbar puncture", "Normal or mild pleocytosis;\nnot specific but supports Dx", "SUPPORTIVE"],
["FBC, CMP, LFT", "Blood", "Thrombocytopenia common;\nleukopenia, elevated transaminases", "SUPPORTIVE"],
]
lab_tbl = Table(lab_data, colWidths=[38*mm, 32*mm, 62*mm, W - 132*mm])
lab_tbl.setStyle(header_table_style(1))
# Colour-code priority column
lab_tbl.setStyle(TableStyle([
("BACKGROUND", (3,1), (3,2), HexColor("#EAFAF1")),
("BACKGROUND", (3,3), (3,4), HexColor("#FEF9E7")),
("BACKGROUND", (3,5), (3,6), HexColor("#FDEDEC")),
("BACKGROUND", (3,7), (3,8), HexColor("#F4F6F9")),
("FONTNAME", (3,1), (3,-1), "Helvetica-Bold"),
("FONTSIZE", (3,1), (3,-1), 8),
]))
story.append(lab_tbl)
story.append(Paragraph(
"All samples must be handled in BSL-3 at minimum, referred to BSL-4 reference laboratory for confirmatory testing. "
"Notify National IHR Focal Point immediately upon suspicion.", styles["footnote"]))
story.append(spacer(4))
story.append(sub_hdr("Differential Diagnosis", styles))
dd_data = [
["Condition", "Distinguishing Features"],
["Japanese Encephalitis", "JEV serology; MRI thalamic lesions; mosquito exposure"],
["Herpes Simplex Encephalitis (HSE)", "CSF PCR HSV positive; temporal lobe involvement on MRI"],
["Bacterial Meningitis", "CSF: high WBC, low glucose, high protein; bacterial culture positive"],
["Influenza / Severe Pneumonia", "Influenza PCR positive; no encephalitis; no bat/pig exposure"],
["Rabies", "History of animal bite; hydrophobia/aerophobia; Negri bodies on biopsy"],
["COVID-19 Encephalitis", "SARS-CoV-2 PCR positive; characteristic COVID-19 CT chest"],
["Cerebral Malaria", "Endemic exposure; malaria smear/RDT positive; ring forms on film"],
]
dd_tbl = Table(dd_data, colWidths=[55*mm, W - 55*mm])
dd_tbl.setStyle(header_table_style(1))
story.append(dd_tbl)
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 4: TREATMENT PROTOCOLS
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("4. TREATMENT PROTOCOLS", styles))
story.append(spacer(2))
# No specific treatment warning
no_rx_data = [[
Paragraph(
"<b>NO APPROVED SPECIFIC ANTIVIRAL THERAPY OR LICENSED VACCINE EXISTS AS OF 2026</b><br/>"
"<font size=8>Management is primarily supportive. Investigational agents may be considered under compassionate use / trial protocols.</font>",
ParagraphStyle("nrx", fontName="Helvetica-Bold", fontSize=9.5,
textColor=WHITE, alignment=TA_CENTER, leading=15)
)
]]
no_rx_tbl = Table(no_rx_data, colWidths=[W])
no_rx_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ACCENT_RED),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
story.append(no_rx_tbl)
story.append(spacer(5))
story.append(sub_hdr("4.1 Supportive Care (Standard of Care)", styles))
sc_data = [
["Priority", "Intervention", "Detail"],
["IMMEDIATE", "Isolation & infection control",
"Single-room isolation; contact + droplet precautions;\nfull PPE (gown, gloves, N95/FFP3 mask, eye protection);\nnegative-pressure room if available"],
["IMMEDIATE", "IV access & monitoring",
"Insert 2× large-bore IV; cardiac monitoring;\npulse oximetry; hourly neuro-obs (GCS, pupils);\nICU admission for moderate-severe disease"],
["HIGH", "Fluid management",
"IV crystalloids for haemodynamic support;\navoid fluid overload (vasculitis risk);\nstrict fluid balance monitoring"],
["HIGH", "Antipyretics",
"Paracetamol (acetaminophen) 1 g IV/PO q6h;\nadd cooling blanket for T >39.5°C;\nAvoid NSAIDs (thrombocytopenia risk)"],
["HIGH", "Airway & ventilation",
"Early intubation threshold low for GCS ≤8;\nlung-protective ventilation if ARDS\n(VT 6 mL/kg IBW, PEEP per ARDSnet);\nHigh-flow nasal oxygen for mild hypoxaemia"],
["HIGH", "Seizure management",
"First-line: IV lorazepam 0.1 mg/kg (max 4 mg/dose);\nLoading: IV levetiracetam 20–30 mg/kg or\nIV phenytoin 20 mg/kg (fosphenytoin preferred);\nEEG monitoring for status epilepticus"],
["HIGH", "Cerebral oedema",
"Head of bed 30°; avoid hypotonic fluids;\nMannitol 0.25–0.5 g/kg IV if herniation signs;\nNeurosurgical consult for haemorrhagic complications"],
["MODERATE", "Nutritional support",
"Early enteral nutrition via NG tube;\nHigh protein (1.5–2 g/kg/day);\nVitamin supplementation"],
["MODERATE", "DVT prophylaxis",
"LMWH if no haemorrhage;\nmechanical compression stockings"],
["ONGOING", "Empirical antibiotics",
"Cover bacterial co-infection (community-acquired\npneumonia coverage) until cultures return;\nde-escalate based on microbiology"],
]
sc_tbl = Table(sc_data, colWidths=[22*mm, 40*mm, W - 62*mm])
sc_tbl.setStyle(header_table_style(1))
sc_tbl.setStyle(TableStyle([
("BACKGROUND", (0,1), (0,1), HexColor("#FDEDEC")),
("BACKGROUND", (0,2), (0,2), HexColor("#FDEDEC")),
("BACKGROUND", (0,3), (0,6), HexColor("#FEF9E7")),
("BACKGROUND", (0,7), (0,8), HexColor("#FEF9E7")),
("BACKGROUND", (0,9), (0,10), HexColor("#EAFAF1")),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("FONTSIZE", (0,1), (0,-1), 7.5),
("TEXTCOLOR", (0,1), (0,2), ACCENT_RED),
("TEXTCOLOR", (0,3), (0,8), ACCENT_AMBER),
("TEXTCOLOR", (0,9), (0,10), ACCENT_GREEN),
]))
story.append(sc_tbl)
story.append(spacer(5))
story.append(sub_hdr("4.2 Investigational / Compassionate-Use Agents", styles))
inv_data = [
["Agent", "Mechanism", "Evidence", "Status"],
["Ribavirin", "Nucleoside analogue;\ninhibits viral RNA synthesis",
"Limited: used empirically in Malaysia 1999;\nclinical benefit unproven; retrospective data\nconflicting. Some studies suggest possible\nreduction in mortality if used early.",
"Compassionate use;\nnot recommended as standard"],
["m102.4\n(Monoclonal Ab)", "Human mAb targeting\nNiV G protein;\nneutralises NiV entry",
"Phase I safety trials completed;\npromising in ferret/non-human primate models;\nno efficacy RCT in humans yet.",
"Investigational;\navailable via compassionate use\nin some centres"],
["Remdesivir", "Broad-spectrum RNA\npolymerase inhibitor",
"In vitro activity against NiV demonstrated;\nno clinical trials published.",
"Investigational only;\nno current approval for NiV"],
["REGN2176-3 /\nother mAbs", "Targeting fusion (F) protein\nor receptor-binding (G) protein",
"Pre-clinical data only;\nnot yet in human trials for NiV.",
"Pre-clinical"],
["Favipiravir", "Broad-spectrum\nRNA polymerase inhibitor",
"Limited in vitro activity; no NiV-specific\nhuman data.",
"Investigational only"],
]
inv_tbl = Table(inv_data, colWidths=[28*mm, 35*mm, 72*mm, W - 135*mm])
inv_tbl.setStyle(header_table_style(1))
story.append(inv_tbl)
story.append(Paragraph(
"All investigational agents should be used only within approved clinical trial frameworks or under national/institutional compassionate-use protocols "
"with ethics committee oversight. Contact WHO or national reference laboratory for access.", styles["footnote"]))
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 5: INFECTION CONTROL & PUBLIC HEALTH
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("5. INFECTION CONTROL & PUBLIC HEALTH RESPONSE", styles))
story.append(spacer(2))
story.append(sub_hdr("Healthcare Worker PPE Protocol", styles))
ppe_data = [
["PPE Item", "Minimum Standard", "Recommended Standard"],
["Mask", "Surgical / N95", "FFP3 respirator (fit-tested); PAPR if available"],
["Gloves", "Single non-sterile nitrile", "Double gloves; extended cuffs"],
["Gown", "Long-sleeved fluid-resistant gown", "Full-body fluid-resistant coverall (Tyvek)"],
["Eye protection", "Safety goggles", "Full face shield + goggles"],
["Head cover", "Surgical cap", "Full hood (if coverall used)"],
["Footwear", "Closed shoes", "Boot covers over closed shoes"],
["Donning/Doffing", "With buddy observer", "Trained supervisor-observed; decontamination station"],
]
ppe_tbl = Table(ppe_data, colWidths=[38*mm, 55*mm, W - 93*mm])
ppe_tbl.setStyle(header_table_style(1))
story.append(ppe_tbl)
story.append(spacer(4))
story.append(sub_hdr("Contact Tracing & Quarantine", styles))
ct_data = [
["Category", "Definition", "Action"],
["High-risk contact", "Direct unprotected exposure to body fluids, secretions, or excretions of confirmed case; healthcare worker without adequate PPE", "Active surveillance × 21 days from last exposure; immediate isolation if symptomatic; NiV PCR if febrile"],
["Medium-risk contact", "Shared room without direct fluid contact; household member without secretion exposure", "Passive surveillance × 21 days; self-monitoring; report symptoms immediately"],
["Low-risk contact", "Brief casual contact; no exposure to body fluids", "Routine monitoring; public health information"],
]
ct_tbl = Table(ct_data, colWidths=[35*mm, 65*mm, W - 100*mm])
ct_tbl.setStyle(header_table_style(1))
story.append(ct_tbl)
story.append(spacer(4))
story.append(sub_hdr("Immediate Notification Requirements", styles))
notif_data = [
[Paragraph(
"1. <b>Suspect case identified</b> → Notify hospital infection control team and district health officer <b>WITHIN 1 HOUR</b><br/>"
"2. <b>Probable/confirmed case</b> → Notify State/National IHR Focal Point and WHO under IHR 2005 <b>WITHIN 24 HOURS</b><br/>"
"3. <b>Outbreak (≥2 linked cases)</b> → Activate Rapid Response Team (RRT); State/national EOC notification",
ParagraphStyle("notif", fontName="Helvetica", fontSize=9.5, textColor=DARK_GRAY, leading=15)
)]
]
notif_tbl = Table(notif_data, colWidths=[W])
notif_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_BLUE),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING",(0,0),(-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
("BOX", (0,0), (-1,-1), 1, MED_BLUE),
]))
story.append(notif_tbl)
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 6: PROGNOSIS & FOLLOW-UP
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("6. PROGNOSIS & FOLLOW-UP", styles))
story.append(spacer(2))
prog_data = [
["Factor", "Better Prognosis", "Worse Prognosis"],
["Strain", "Malaysian NiV (CFR ~40%)", "Bangladesh/India NiV (CFR 75–94%)"],
["Disease form", "Mild febrile / early-detected", "Coma, severe encephalitis, ARDS"],
["Age", "Younger adults", "Elderly, immunocompromised"],
["Healthcare access", "Early ICU admission", "Late presentation, resource-limited setting"],
["Recurrence risk", "—", "Late-onset encephalitis: up to 11 years post-recovery"],
["Neurological sequelae", "—", "21% of Malaysian survivors had persistent deficits"],
]
prog_tbl = Table(prog_data, colWidths=[42*mm, 60*mm, W - 102*mm])
prog_tbl.setStyle(header_table_style(1))
story.append(prog_tbl)
story.append(spacer(4))
story.append(sub_hdr("Survivor Follow-Up Schedule", styles))
fu_data = [
["Timepoint", "Assessment"],
["Discharge", "Full neurological exam; MRI brain baseline; neuropsychiatric screening; counselling"],
["1 month", "Neurological review; repeat MRI if new symptoms; ophthalmology if ocular involvement"],
["3 months", "Neuropsychiatric assessment (MMSE, MoCA); occupational therapy review; serology"],
["6 months", "Comprehensive review; repeat MRI; assess for late-onset encephalitis symptoms"],
["12 months", "Annual review; educate on late-onset risk (fever + headache + seizure = re-present immediately)"],
["Ongoing", "Immediate medical attention for any new neurological symptoms (indefinite vigilance)"],
]
fu_tbl = Table(fu_data, colWidths=[32*mm, W - 32*mm])
fu_tbl.setStyle(header_table_style(1))
story.append(fu_tbl)
story.append(PageBreak())
# ─────────────────────────────────────────────────────────────────
# SECTION 7: QUICK REFERENCE CARD
# ─────────────────────────────────────────────────────────────────
story.append(section_hdr("7. QUICK REFERENCE CARD", styles))
story.append(spacer(3))
qr_left = [
[Paragraph("<b>SUSPECT NIPAH IF:</b>",
ParagraphStyle("qh", fontName="Helvetica-Bold", fontSize=10,
textColor=WHITE, alignment=TA_CENTER))],
[Paragraph(
"• Encephalitis OR pneumonia of unknown aetiology<br/>"
"• Epidemiological link to bat/pig exposure<br/>"
"• Travel/residence in endemic area (Kerala, West Bengal, Bangladesh)<br/>"
"• Cluster of unexplained encephalitis cases<br/>"
"• Healthcare worker with unexplained febrile encephalitis after caring for undiagnosed case<br/>"
"• Consumption of raw date palm sap",
ParagraphStyle("qb", fontName="Helvetica", fontSize=9,
textColor=DARK_GRAY, leading=14, spaceAfter=4)
)],
]
qr_right = [
[Paragraph("<b>IMMEDIATE ACTIONS:</b>",
ParagraphStyle("qh", fontName="Helvetica-Bold", fontSize=10,
textColor=WHITE, alignment=TA_CENTER))],
[Paragraph(
"1. <b>ISOLATE</b> — single room, droplet + contact precautions<br/>"
"2. <b>PPE</b> — N95/FFP3 + gown + gloves + eye shield<br/>"
"3. <b>NOTIFY</b> — infection control + district health officer<br/>"
"4. <b>SAMPLES</b> — serum + urine + NPS for RT-PCR (BSL-3 handling)<br/>"
"5. <b>MRI BRAIN</b> — STAT if encephalitis features<br/>"
"6. <b>ICU</b> — for GCS <14, ARDS, or seizures<br/>"
"7. <b>CONTACT TRACE</b> — all exposures in 21 days prior",
ParagraphStyle("qb", fontName="Helvetica", fontSize=9,
textColor=DARK_GRAY, leading=14, spaceAfter=4)
)],
]
qr_tbl_left = Table(qr_left, colWidths=[(W/2) - 3*mm])
qr_tbl_left.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ACCENT_AMBER),
("BACKGROUND", (0,1), (-1,1), HexColor("#FEF9E7")),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING",(0,0),(-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.8, ACCENT_AMBER),
]))
qr_tbl_right = Table(qr_right, colWidths=[(W/2) - 3*mm])
qr_tbl_right.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), MED_BLUE),
("BACKGROUND", (0,1), (-1,1), LIGHT_BLUE),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING",(0,0),(-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("BOX", (0,0), (-1,-1), 0.8, MED_BLUE),
]))
two_col = Table([[qr_tbl_left, qr_tbl_right]], colWidths=[W/2, W/2])
two_col.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 0),
("RIGHTPADDING", (0,0), (-1,-1), 0),
("TOPPADDING", (0,0), (-1,-1), 0),
("BOTTOMPADDING",(0,0),(-1,-1), 0),
]))
story.append(two_col)
story.append(spacer(5))
# Dosing quick reference
story.append(sub_hdr("Symptom Control — Dosing Quick Reference", styles))
dose_data = [
["Drug", "Indication", "Adult Dose", "Paediatric Dose", "Notes"],
["Paracetamol\n(Acetaminophen)", "Fever / pain", "1 g IV/PO q6h\n(max 4 g/day)", "15 mg/kg PO/IV q6h\n(max 60 mg/kg/day)", "Preferred antipyretic;\nmonitor LFTs"],
["Lorazepam", "Acute seizure\n(first-line)", "0.1 mg/kg IV\n(max 4 mg/dose)", "0.1 mg/kg IV\n(max 4 mg/dose)", "Give slowly IV;\nrepeat ×1 if needed"],
["Levetiracetam", "Seizure loading\n/ maintenance", "20–30 mg/kg IV load;\nthen 500–1500 mg\nPO/IV BD", "20–30 mg/kg IV load;\n10–15 mg/kg BD\n(maintenance)", "Preferred over phenytoin;\nrenal dose adjustment"],
["Phenytoin /\nFosphenytoin", "Seizure loading\n(alternative)", "15–20 mg/kg IV\n(≤50 mg/min)", "15–20 mg/kg IV\n(≤1 mg PE/kg/min)", "ECG monitoring;\nfosphenytoin preferred"],
["Mannitol 20%", "Cerebral oedema/\nherniation", "0.25–0.5 g/kg IV\nover 20 min", "0.25–0.5 g/kg IV\nover 20 min", "Monitor serum osmolality;\nhold if >320 mOsm/kg"],
["Noradrenaline\n(Norepinephrine)", "Vasopressor\nfor shock", "0.1–2 mcg/kg/min\nIV infusion", "0.05–2 mcg/kg/min", "Titrate to MAP >65;\nCVC access preferred"],
]
dose_tbl = Table(dose_data, colWidths=[32*mm, 27*mm, 35*mm, 35*mm, W - 129*mm])
dose_tbl.setStyle(header_table_style(1))
story.append(dose_tbl)
story.append(Paragraph(
"All doses are guidance only — always verify against current formulary and adjust for renal/hepatic impairment, weight, and clinical context.",
styles["footnote"]))
story.append(spacer(3))
# References
story.append(hr())
story.append(sub_hdr("References & Sources", styles))
refs = [
"Bradley WG, Daroff RB et al. <i>Bradley and Daroff's Neurology in Clinical Practice</i>, 8th ed. — Nipah Virus, p. 1684.",
"Jawetz, Melnick & Adelberg. <i>Medical Microbiology</i>, 28th ed. — Hendra and Nipah Virus Infections, p. 616.",
"Park K. <i>Park's Textbook of Preventive and Social Medicine</i>, 26th ed. — Nipah Virus Infection.",
"WHO Disease Outbreak News: Nipah virus infection — India, January 2026. (DON593)",
"Wang L, Lu D, Yang M. Nipah virus: epidemiology, pathogenesis, treatment, and prevention. <i>Front Med</i>. 2024 Dec. PMID 39417975",
"Faus-Cotino J et al. Nipah Virus: A Multidimensional Update. <i>Viruses</i>. 2024. PMID 38399954",
"Yadav PD et al. A One Health approach to understanding and managing Nipah virus outbreaks. <i>Nat Microbiol</i>. 2025 Jun. PMID 40437297",
"Spengler JR et al. Henipaviruses: epidemiology, ecology, disease, vaccines and therapeutics. <i>Clin Microbiol Rev</i>. 2025. PMID 39714175",
]
for i, ref in enumerate(refs, 1):
story.append(Paragraph(f"[{i}] {ref}", styles["footnote"]))
return story
def main():
doc = ClinicalDoc(
OUTPUT,
pagesize=A4,
leftMargin=15*mm,
rightMargin=15*mm,
topMargin=28*mm,
bottomMargin=18*mm,
title="Nipah Virus Disease — Clinical Reference Guide",
author="Orris Clinical Reference System",
subject="Nipah Virus Diagnosis & Treatment Protocols",
)
styles = build_styles()
story = build_story(styles)
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
if __name__ == "__main__":
main()
cd /home/daytona/workspace/nipah-reference && python3 generate_pdf.py
ls -lh /home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference.pdf
Nipah Clinical Reference
PDF Document · PDF
| Section | Contents |
|---|---|
| 1. Overview & Epidemiology | Outbreak history table (1998–2026), reservoir, all transmission routes |
| 2. Clinical Features | Disease timeline (incubation → sequelae), signs/symptoms by system, pathophysiology |
| 3. Diagnosis Criteria | WHO-style case definitions (Suspect / Probable / Confirmed), full lab investigation table with priority tiers, differential diagnosis |
| 4. Treatment Protocols | Supportive care priority table (Immediate/High/Moderate), investigational agents (Ribavirin, m102.4, Remdesivir, Favipiravir) with evidence levels, dosing quick-reference card |
| 5. Infection Control | Full PPE protocol, contact tracing categories, IHR notification requirements |
| 6. Prognosis & Follow-Up | Prognostic factors, survivor follow-up schedule out to 12 months |
| 7. Quick Reference Card | "Suspect Nipah if..." box + 7-step immediate action checklist, at-a-glance dosing table |
cant open it
python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference.pdf') print('Pages:', len(r.pages)) print('Page 1 text snippet:', r.pages[0].extract_text()[:200]) "
which libreoffice wkhtmltopdf pandoc 2>/dev/null; python3 -c "import weasyprint; print('weasyprint ok')" 2>/dev/null || echo "weasyprint not available"
~/nipah-reference/nipah_reference.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<style>
@page {
size: A4;
margin: 18mm 15mm 15mm 15mm;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 9.5pt;
color: #2C3E50;
line-height: 1.45;
}
/* ── COVER ── */
.cover {
background: #1A3557;
color: white;
padding: 30px 24px 24px;
margin-bottom: 0;
}
.cover h1 {
font-size: 26pt;
font-weight: bold;
color: white;
margin-bottom: 6px;
}
.cover .subtitle {
font-size: 13pt;
color: #A8C4E0;
margin-bottom: 4px;
}
.cover-meta {
background: #2563A8;
color: white;
padding: 10px 24px;
font-size: 9pt;
margin-bottom: 0;
}
.bsl-badge {
display: inline-block;
background: #C0392B;
color: white;
font-weight: bold;
font-size: 9pt;
padding: 4px 12px;
border-radius: 4px;
margin-top: 8px;
}
/* ── WARNING BOX ── */
.warn-box {
background: #C0392B;
color: white;
padding: 10px 16px;
font-weight: bold;
font-size: 9.5pt;
margin: 8px 0;
border-radius: 3px;
}
.warn-box .sub { font-weight: normal; font-size: 8.5pt; margin-top: 3px; }
/* ── INFO GRID ── */
.info-grid {
width: 100%;
border-collapse: collapse;
margin-bottom: 12px;
}
.info-grid td {
padding: 5px 8px;
background: #F4F6F9;
border: 0.4pt solid #BDC3C7;
font-size: 9pt;
vertical-align: top;
}
.info-grid td:first-child {
font-weight: bold;
color: #1A3557;
width: 42mm;
white-space: nowrap;
}
/* ── SECTION HEADERS ── */
.section-hdr {
background: #1A3557;
color: white;
font-size: 11.5pt;
font-weight: bold;
padding: 7px 10px;
margin: 16px 0 6px 0;
border-radius: 2px;
page-break-after: avoid;
}
.sub-hdr {
color: #1A3557;
font-size: 10pt;
font-weight: bold;
margin: 10px 0 4px 0;
page-break-after: avoid;
}
/* ── TABLES ── */
table.data {
width: 100%;
border-collapse: collapse;
margin-bottom: 8px;
font-size: 8.5pt;
}
table.data th {
background: #1A3557;
color: white;
padding: 5px 6px;
text-align: left;
font-weight: bold;
font-size: 8.5pt;
}
table.data td {
padding: 4px 6px;
border: 0.4pt solid #BDC3C7;
vertical-align: top;
}
table.data tr:nth-child(even) td { background: #F4F6F9; }
table.data tr:nth-child(odd) td { background: #FFFFFF; }
/* ── CASE DEFINITIONS ── */
.case-defs {
display: table;
width: 100%;
border-collapse: collapse;
margin-bottom: 10px;
}
.case-col {
display: table-cell;
width: 33.3%;
border: 0.5pt solid #BDC3C7;
vertical-align: top;
}
.case-col-hdr {
background: #1A3557;
color: white;
font-weight: bold;
font-size: 9pt;
padding: 6px 8px;
text-align: center;
}
.case-col-body {
padding: 7px 8px;
font-size: 8.5pt;
line-height: 1.5;
}
.suspect-bg { background: #FEF9E7; }
.probable-bg { background: #FEF3E2; }
.confirm-bg { background: #EAFAF1; }
/* ── ALERT BOXES ── */
.alert-red {
background: #C0392B; color: white;
padding: 10px 14px; border-radius: 3px;
font-weight: bold; font-size: 9.5pt;
margin: 8px 0;
text-align: center;
}
.alert-red .sub { font-weight: normal; font-size: 8.5pt; margin-top: 3px; }
.alert-blue {
background: #D6E4F7;
border: 1pt solid #2563A8;
padding: 10px 14px; border-radius: 3px;
font-size: 9pt; margin: 8px 0;
line-height: 1.6;
}
/* ── TWO-COL QUICK REFERENCE ── */
.two-col { display: table; width: 100%; border-collapse: collapse; margin: 8px 0; }
.col-left, .col-right {
display: table-cell;
width: 50%;
vertical-align: top;
padding: 0;
}
.col-left { padding-right: 4px; }
.col-right { padding-left: 4px; }
.qr-box {
border-radius: 3px;
overflow: hidden;
height: 100%;
}
.qr-box-hdr {
padding: 7px 10px;
font-weight: bold;
font-size: 9.5pt;
color: white;
}
.qr-box-body {
padding: 8px 10px;
font-size: 9pt;
line-height: 1.6;
}
.amber-hdr { background: #D4830A; }
.amber-body { background: #FEF9E7; border: 1pt solid #D4830A; }
.blue-hdr { background: #2563A8; }
.blue-body { background: #D6E4F7; border: 1pt solid #2563A8; }
/* ── PRIORITY BADGES ── */
.prio-immediate { color: #C0392B; font-weight: bold; }
.prio-high { color: #D4830A; font-weight: bold; }
.prio-moderate { color: #1A7A4A; font-weight: bold; }
.prio-ongoing { color: #2563A8; font-weight: bold; }
/* ── FOOTNOTE ── */
.footnote {
font-size: 7.5pt;
color: #7F8C8D;
font-style: italic;
margin: 2px 0 6px 0;
}
p { margin: 3px 0 6px 0; }
ul { margin: 0 0 6px 16px; }
li { margin-bottom: 2px; }
hr { border: 0; border-top: 0.8pt solid #2563A8; margin: 10px 0; }
.page-break { page-break-before: always; }
</style>
</head>
<body>
<!-- ═══════════════════ COVER ═══════════════════ -->
<div class="cover">
<h1>NIPAH VIRUS DISEASE</h1>
<div class="subtitle">Clinical Reference Guide</div>
<div style="color:#A8C4E0; font-size:11pt;">Diagnosis Criteria & Treatment Protocols</div>
<div class="bsl-badge">⚠ BSL-4 PATHOGEN</div>
</div>
<div class="cover-meta">
Classification: Paramyxoviridae, Genus Henipavirus |
WHO Priority Pathogen |
Updated: June 2026
</div>
<div class="warn-box">
⚠ BIOSAFETY LEVEL 4 (BSL-4) PATHOGEN
<div class="sub">Handle all clinical specimens under strict containment protocols.
Notify local public health authority for ALL suspected cases immediately.</div>
</div>
<table class="info-grid">
<tr><td>Classification:</td><td>Paramyxoviridae, Genus Henipavirus</td></tr>
<tr><td>Notifiable Disease:</td><td>Yes — immediate notification required (IHR 2005)</td></tr>
<tr><td>Case Fatality Rate:</td><td>~40% (Malaysia strain) | 75–94% (Bangladesh/India strains)</td></tr>
<tr><td>WHO Priority Pathogen:</td><td>Yes (R&D Blueprint)</td></tr>
<tr><td>Sources:</td><td>Bradley & Daroff's Neurology | Jawetz Melnick & Adelberg's Medical Microbiology | Park's Preventive Medicine | WHO 2026 | PubMed 2024–2025</td></tr>
</table>
<!-- ═══════════════════ SECTION 1 ═══════════════════ -->
<div class="section-hdr">1. OVERVIEW & EPIDEMIOLOGY</div>
<p>Nipah virus (NiV) is a zoonotic RNA virus first identified in 1999 during a fatal encephalitis outbreak
among pig farmers in Sungai Nipah, Malaysia. It belongs to the family <strong>Paramyxoviridae</strong>,
genus <strong>Henipavirus</strong>, closely related to Hendra virus. NiV is a <strong>BSL-4 pathogen</strong>
due to its high case-fatality rate, broad host range, and pandemic potential. The WHO lists it on its
Priority Pathogen R&D Blueprint.</p>
<div class="sub-hdr">Outbreak History</div>
<table class="data">
<tr>
<th>Year</th><th>Location</th><th>Cases</th><th>Deaths</th><th>CFR</th><th>Key Feature</th>
</tr>
<tr><td>1998–1999</td><td>Malaysia / Singapore</td><td>265</td><td>105</td><td>40%</td><td>Pigs as amplifying host; 1.1 million pigs culled</td></tr>
<tr><td>2001</td><td>West Bengal, India</td><td>66</td><td>45</td><td>68%</td><td>First India outbreak; hospital-acquired spread</td></tr>
<tr><td>2001–2015</td><td>Bangladesh (13 outbreaks)</td><td>261</td><td>199</td><td>76%</td><td>Date palm sap contamination; human-to-human transmission</td></tr>
<tr><td>2018</td><td>Kerala, India</td><td>19</td><td>17</td><td>89%</td><td>Fruit bat origin; strong containment response</td></tr>
<tr><td>2021</td><td>Kerala, India</td><td>1</td><td>1</td><td>100%</td><td>Single index case; rapid containment</td></tr>
<tr><td>2023</td><td>Kerala, India</td><td>6</td><td>2</td><td>33%</td><td>Pteropus bats confirmed as source</td></tr>
<tr><td><strong>Jan 2026</strong></td><td>West Bengal, India</td><td>2</td><td>0*</td><td>—</td><td>Healthcare workers in Barasat; WHO risk: MODERATE</td></tr>
</table>
<p class="footnote">* Cases stabilised and under surveillance as of February 2026 (WHO DON593).</p>
<div class="sub-hdr">Reservoir & Transmission</div>
<table class="data">
<tr><th>Route</th><th>Details</th><th>Strain Association</th></tr>
<tr><td>Animal-to-human (zoonotic)</td><td>Contact with infected pigs; consumption of raw date palm sap contaminated by fruit bat urine/saliva</td><td>Malaysia & Bangladesh</td></tr>
<tr><td>Human-to-human</td><td>Respiratory droplets; direct contact with body fluids of infected person</td><td>Bangladesh / India (dominant)</td></tr>
<tr><td>Nosocomial</td><td>Inadequate PPE; close patient contact in healthcare settings</td><td>West Bengal outbreaks</td></tr>
<tr><td>Food-borne</td><td>Raw date palm sap, partially eaten fruits contaminated by Pteropus bats</td><td>Bangladesh primarily</td></tr>
</table>
<p><strong>Natural Reservoir:</strong> Fruit bats (<em>Pteropus</em> spp. — flying foxes), distributed from
the western Pacific to east Africa. Bats carry the virus asymptomatically. Ecological drivers include
deforestation, expanding agriculture, and livestock kept near bat habitats.</p>
<!-- ═══════════════════ SECTION 2 ═══════════════════ -->
<div class="section-hdr">2. CLINICAL FEATURES</div>
<div class="sub-hdr">Disease Spectrum & Timeline</div>
<table class="data">
<tr><th>Phase</th><th>Timing</th><th>Features</th></tr>
<tr><td>Incubation</td><td>4–45 days (typically 7–14 days)</td><td>Asymptomatic</td></tr>
<tr><td>Prodrome (Febrile phase)</td><td>Days 1–4</td><td>Fever (38–40°C), headache, myalgia, sore throat, nausea, vomiting, dizziness</td></tr>
<tr><td>Acute (Encephalitic form)</td><td>Days 5–10</td><td>Altered consciousness, drowsiness, disorientation, seizures, focal neurological deficits, coma</td></tr>
<tr><td>Acute (Respiratory form)</td><td>Days 3–8</td><td>Atypical pneumonia, respiratory distress; more common in Bangladesh/India strains (~70% of cases)</td></tr>
<tr><td>Late-onset / Relapsed encephalitis</td><td>Months–years after recovery</td><td>Fever, headache, seizures, confluent cortical lesions on MRI; mortality ~18%</td></tr>
<tr><td>Sequelae</td><td>Post-recovery</td><td>Neurological deficits, neuropsychiatric symptoms (21% of Malaysian survivors)</td></tr>
</table>
<div class="sub-hdr">Signs & Symptoms by System</div>
<table class="data">
<tr><th>System</th><th>Common Features</th><th>Severe / Late Features</th></tr>
<tr><td>General</td><td>Fever, malaise, fatigue, myalgia</td><td>Sepsis-like picture, terminal hypothermia</td></tr>
<tr><td>Neurological</td><td>Headache, dizziness, drowsiness, confusion</td><td>Stupor, coma, seizures, focal deficits, brain herniation</td></tr>
<tr><td>Respiratory</td><td>Cough, sore throat, dyspnea (Bangladesh/India strains)</td><td>ARDS, hemoptysis, respiratory failure</td></tr>
<tr><td>Cardiovascular</td><td>Tachycardia, hypertension</td><td>Systemic vasculitis, microinfarcts, arrhythmia</td></tr>
<tr><td>GI</td><td>Nausea, vomiting, abdominal pain</td><td>GI bleeding (rare)</td></tr>
<tr><td>Ocular</td><td>—</td><td>Nystagmus, abnormal doll's eye reflex</td></tr>
</table>
<div class="sub-hdr">Pathophysiology</div>
<p>NiV preferentially infects <strong>vascular endothelial cells</strong>, causing a <strong>systemic
vasculitis</strong> primarily involving small arteries and capillaries of the brain. This leads to focal
ischaemia, microinfarcts, and occasionally CNS haemorrhage. The Bangladesh/India strain exhibits enhanced
respiratory tropism (F protein differences). MRI (acute): disseminated discrete hyperintense lesions in
subcortical and deep white matter. MRI (late-onset): confluent cortical lesions.</p>
<!-- ═══════════════════ SECTION 3 ═══════════════════ -->
<div class="section-hdr page-break">3. DIAGNOSIS CRITERIA</div>
<div class="sub-hdr">Case Definitions</div>
<table style="width:100%; border-collapse:collapse; margin-bottom:10px;">
<tr>
<td style="width:33.3%; border:0.5pt solid #BDC3C7; vertical-align:top;">
<div style="background:#1A3557; color:white; font-weight:bold; font-size:9pt; padding:6px 8px; text-align:center;">SUSPECT CASE</div>
<div style="background:#FEF9E7; padding:7px 8px; font-size:8.5pt; line-height:1.5;">
Acute encephalitis <strong>OR</strong> respiratory illness <strong>AND</strong> at least one of:<br/>
• Epidemiological link to confirmed/probable case<br/>
• Exposure to <em>Pteropus</em> bats or infected animals<br/>
• Consumption of raw date palm sap in endemic area<br/>
• Residence/travel to NiV-endemic area within incubation period
</div>
</td>
<td style="width:33.3%; border:0.5pt solid #BDC3C7; vertical-align:top;">
<div style="background:#1A3557; color:white; font-weight:bold; font-size:9pt; padding:6px 8px; text-align:center;">PROBABLE CASE</div>
<div style="background:#FEF3E2; padding:7px 8px; font-size:8.5pt; line-height:1.5;">
Meets suspect criteria <strong>AND</strong> at least one of:<br/>
• IgM antibody detected in serum or CSF<br/>
• Clinical deterioration without alternative diagnosis<br/>
• Epidemiological link to a confirmed case<br/>
• Typical MRI findings (disseminated hyperintense lesions in white matter)
</div>
</td>
<td style="width:33.3%; border:0.5pt solid #BDC3C7; vertical-align:top;">
<div style="background:#1A3557; color:white; font-weight:bold; font-size:9pt; padding:6px 8px; text-align:center;">CONFIRMED CASE</div>
<div style="background:#EAFAF1; padding:7px 8px; font-size:8.5pt; line-height:1.5;">
Any of the following laboratory criteria:<br/>
• <strong>RT-PCR positive</strong> for NiV RNA (serum, CSF, urine, NPS)<br/>
• <strong>Virus isolation</strong> from clinical specimen (BSL-4 lab)<br/>
• <strong>IgG seroconversion</strong> (≥4× rise in paired sera)<br/>
• <strong>IgM positive</strong> (ELISA) with confirmatory RT-PCR
</div>
</td>
</tr>
</table>
<div class="sub-hdr">Laboratory Investigations</div>
<table class="data">
<tr><th>Test</th><th>Sample</th><th>Window / Notes</th><th>Priority</th></tr>
<tr>
<td>RT-PCR (viral RNA)</td>
<td>Serum, CSF, urine, nasopharyngeal swab</td>
<td>Best in first 7–10 days; <strong>method of choice for acute diagnosis</strong></td>
<td style="color:#1A7A4A; font-weight:bold;">FIRST-LINE</td>
</tr>
<tr>
<td>NiV IgM ELISA</td>
<td>Serum or CSF</td>
<td>Peaks ~day 12; may be negative in early disease</td>
<td style="color:#1A7A4A; font-weight:bold;">FIRST-LINE</td>
</tr>
<tr>
<td>NiV IgG ELISA (paired sera)</td>
<td>Serum (acute + convalescent)</td>
<td>≥4× rise confirms infection; convalescent at day 14–21</td>
<td style="color:#D4830A; font-weight:bold;">CONFIRMATORY</td>
</tr>
<tr>
<td>Virus isolation</td>
<td>Blood, CSF, respiratory secretions</td>
<td>BSL-4 laboratory only; not for routine clinical use</td>
<td style="color:#C0392B; font-weight:bold;">REFERENCE LAB</td>
</tr>
<tr>
<td>PRNT (Plaque Reduction Neutralisation)</td>
<td>Serum</td>
<td>Gold-standard serology; BSL-4 required</td>
<td style="color:#C0392B; font-weight:bold;">REFERENCE LAB</td>
</tr>
<tr>
<td>MRI Brain (STAT)</td>
<td>—</td>
<td>Acute: discrete hyperintense lesions, subcortical/deep white matter. Late: confluent cortical lesions</td>
<td style="color:#2563A8; font-weight:bold;">IMAGING</td>
</tr>
<tr>
<td>CT Brain</td>
<td>—</td>
<td>Less sensitive; use if MRI unavailable</td>
<td style="color:#2563A8; font-weight:bold;">IMAGING</td>
</tr>
<tr>
<td>CSF Analysis</td>
<td>Lumbar puncture</td>
<td>Normal or mild pleocytosis; non-specific but supportive</td>
<td>SUPPORTIVE</td>
</tr>
<tr>
<td>FBC, CMP, LFT, coagulation</td>
<td>Blood</td>
<td>Thrombocytopenia common; leukopenia, elevated transaminases</td>
<td>SUPPORTIVE</td>
</tr>
</table>
<p class="footnote">All samples must be handled at BSL-3 minimum and referred to a BSL-4 reference laboratory for confirmatory testing.
Notify National IHR Focal Point immediately upon suspicion of Nipah.</p>
<div class="sub-hdr">Differential Diagnosis</div>
<table class="data">
<tr><th>Condition</th><th>Distinguishing Features</th></tr>
<tr><td>Japanese Encephalitis</td><td>JEV serology positive; thalamic/basal ganglia lesions on MRI; mosquito exposure history</td></tr>
<tr><td>Herpes Simplex Encephalitis (HSE)</td><td>CSF HSV PCR positive; temporal lobe predominance on MRI</td></tr>
<tr><td>Bacterial Meningitis</td><td>CSF: high WBC, low glucose, high protein; Gram stain/culture positive</td></tr>
<tr><td>Influenza / Severe Pneumonia</td><td>Influenza PCR positive; encephalitis uncommon; no bat/pig exposure</td></tr>
<tr><td>Rabies</td><td>History of animal bite; hydrophobia/aerophobia; Negri bodies on biopsy</td></tr>
<tr><td>COVID-19 Encephalitis</td><td>SARS-CoV-2 PCR positive; typical chest CT findings</td></tr>
<tr><td>Cerebral Malaria</td><td>Endemic exposure; thick/thin blood film positive; RDT positive</td></tr>
<tr><td>Leptospirosis</td><td>Water/soil exposure; Weil's disease with jaundice and AKI; serology positive</td></tr>
</table>
<!-- ═══════════════════ SECTION 4 ═══════════════════ -->
<div class="section-hdr page-break">4. TREATMENT PROTOCOLS</div>
<div class="alert-red">
NO APPROVED SPECIFIC ANTIVIRAL THERAPY OR LICENSED VACCINE EXISTS AS OF 2026
<div class="sub">Management is entirely supportive. Investigational agents may be considered under compassionate use / approved trial protocols only.</div>
</div>
<div class="sub-hdr">4.1 Supportive Care — Standard of Care</div>
<table class="data">
<tr><th>Priority</th><th>Intervention</th><th>Detail</th></tr>
<tr>
<td class="prio-immediate">IMMEDIATE</td>
<td>Isolation & Infection Control</td>
<td>Single-room isolation; contact + droplet precautions; full PPE (gown, gloves, N95/FFP3 mask, eye protection); negative-pressure room if available</td>
</tr>
<tr>
<td class="prio-immediate">IMMEDIATE</td>
<td>IV Access & Monitoring</td>
<td>Insert 2× large-bore IV; cardiac monitoring; pulse oximetry; hourly neuro-obs (GCS, pupils); ICU admission for moderate-severe disease</td>
</tr>
<tr>
<td class="prio-high">HIGH</td>
<td>Fluid Management</td>
<td>IV crystalloids for haemodynamic support; avoid fluid overload (vasculitis risk); strict fluid balance monitoring</td>
</tr>
<tr>
<td class="prio-high">HIGH</td>
<td>Antipyretics</td>
<td>Paracetamol 1 g IV/PO q6h; cooling blanket for T >39.5°C; avoid NSAIDs (thrombocytopenia risk)</td>
</tr>
<tr>
<td class="prio-high">HIGH</td>
<td>Airway & Ventilation</td>
<td>Early intubation threshold low for GCS ≤8; lung-protective ventilation if ARDS (VT 6 mL/kg IBW, PEEP per ARDSnet); high-flow nasal oxygen for mild hypoxaemia</td>
</tr>
<tr>
<td class="prio-high">HIGH</td>
<td>Seizure Management</td>
<td>First-line: IV lorazepam 0.1 mg/kg (max 4 mg/dose); Loading: IV levetiracetam 20–30 mg/kg or IV fosphenytoin 20 mg PE/kg; continuous EEG monitoring for status epilepticus</td>
</tr>
<tr>
<td class="prio-high">HIGH</td>
<td>Cerebral Oedema</td>
<td>Head of bed 30°; avoid hypotonic fluids; mannitol 0.25–0.5 g/kg IV if herniation signs; neurosurgical consult for haemorrhagic complications</td>
</tr>
<tr>
<td class="prio-moderate">MODERATE</td>
<td>Nutritional Support</td>
<td>Early enteral nutrition via NG tube; high protein (1.5–2 g/kg/day); vitamin supplementation</td>
</tr>
<tr>
<td class="prio-moderate">MODERATE</td>
<td>DVT Prophylaxis</td>
<td>LMWH if no haemorrhage; mechanical compression stockings throughout admission</td>
</tr>
<tr>
<td class="prio-ongoing">ONGOING</td>
<td>Empirical Antibiotics</td>
<td>Cover bacterial co-infection (CAP coverage) until cultures return; de-escalate based on microbiology results</td>
</tr>
</table>
<div class="sub-hdr">4.2 Investigational / Compassionate-Use Agents</div>
<table class="data">
<tr><th>Agent</th><th>Mechanism</th><th>Evidence</th><th>Status</th></tr>
<tr>
<td><strong>Ribavirin</strong></td>
<td>Nucleoside analogue; inhibits viral RNA synthesis</td>
<td>Used empirically in Malaysia 1999; clinical benefit unproven. Retrospective data conflicting. Possible reduction in mortality if used very early.</td>
<td>Compassionate use only; not standard of care</td>
</tr>
<tr>
<td><strong>m102.4</strong><br/>(Monoclonal Ab)</td>
<td>Human mAb targeting NiV G protein; neutralises viral entry</td>
<td>Phase I safety trials completed; promising in ferret and non-human primate models; no efficacy RCT in humans.</td>
<td>Investigational; available via compassionate use in select centres</td>
</tr>
<tr>
<td><strong>Remdesivir</strong></td>
<td>Broad-spectrum RNA polymerase inhibitor</td>
<td>In vitro activity against NiV demonstrated; no published clinical trials.</td>
<td>Investigational only; no NiV approval</td>
</tr>
<tr>
<td><strong>Favipiravir</strong></td>
<td>Broad-spectrum RNA polymerase inhibitor</td>
<td>Limited in vitro activity; no NiV-specific human clinical data.</td>
<td>Investigational only</td>
</tr>
<tr>
<td><strong>NiV mRNA vaccines</strong><br/>(candidates)</td>
<td>mRNA encoding NiV G protein; stimulates neutralising antibodies</td>
<td>Pre-clinical and early Phase I trials ongoing; no licensed product available.</td>
<td>Vaccine candidate; not licensed</td>
</tr>
</table>
<p class="footnote">All investigational agents should only be used within approved clinical trial frameworks or under institutional compassionate-use protocols with ethics committee oversight.
Contact WHO or national reference laboratory for access information.</p>
<div class="sub-hdr">Dosing Quick Reference — Symptomatic Management</div>
<table class="data">
<tr><th>Drug</th><th>Indication</th><th>Adult Dose</th><th>Paediatric Dose</th><th>Key Notes</th></tr>
<tr>
<td>Paracetamol (Acetaminophen)</td>
<td>Fever / pain</td>
<td>1 g IV/PO q6h (max 4 g/day)</td>
<td>15 mg/kg PO/IV q6h (max 60 mg/kg/day)</td>
<td>Preferred antipyretic; monitor LFTs</td>
</tr>
<tr>
<td>Lorazepam</td>
<td>Acute seizure (1st-line)</td>
<td>0.1 mg/kg IV (max 4 mg/dose)</td>
<td>0.1 mg/kg IV (max 4 mg/dose)</td>
<td>Give slowly IV; may repeat ×1</td>
</tr>
<tr>
<td>Levetiracetam</td>
<td>Seizure loading / maintenance</td>
<td>20–30 mg/kg IV load; then 500–1500 mg PO/IV BD</td>
<td>20–30 mg/kg load; 10–15 mg/kg BD maintenance</td>
<td>Preferred over phenytoin; renal dose adjustment required</td>
</tr>
<tr>
<td>Fosphenytoin</td>
<td>Seizure loading (alternative)</td>
<td>15–20 mg PE/kg IV (≤150 mg PE/min)</td>
<td>15–20 mg PE/kg IV (≤1 mg PE/kg/min)</td>
<td>ECG monitoring required during infusion</td>
</tr>
<tr>
<td>Mannitol 20%</td>
<td>Cerebral oedema / herniation</td>
<td>0.25–0.5 g/kg IV over 20 min</td>
<td>0.25–0.5 g/kg IV over 20 min</td>
<td>Hold if serum osmolality >320 mOsm/kg</td>
</tr>
<tr>
<td>Noradrenaline</td>
<td>Vasopressor for shock</td>
<td>0.1–2 mcg/kg/min IV infusion</td>
<td>0.05–2 mcg/kg/min IV</td>
<td>Titrate to MAP ≥65 mmHg; CVC access preferred</td>
</tr>
</table>
<p class="footnote">All doses are guidance only — verify against current formulary and adjust for renal/hepatic impairment, body weight, and clinical context.</p>
<!-- ═══════════════════ SECTION 5 ═══════════════════ -->
<div class="section-hdr page-break">5. INFECTION CONTROL & PUBLIC HEALTH RESPONSE</div>
<div class="sub-hdr">Healthcare Worker PPE Protocol</div>
<table class="data">
<tr><th>PPE Item</th><th>Minimum Standard</th><th>Recommended Standard</th></tr>
<tr><td>Mask</td><td>Surgical / N95 (fit-tested)</td><td>FFP3 respirator; PAPR if available</td></tr>
<tr><td>Gloves</td><td>Single non-sterile nitrile</td><td>Double gloves with extended cuffs</td></tr>
<tr><td>Gown</td><td>Long-sleeved fluid-resistant gown</td><td>Full-body fluid-resistant coverall (Tyvek)</td></tr>
<tr><td>Eye protection</td><td>Safety goggles</td><td>Full face shield + goggles</td></tr>
<tr><td>Head cover</td><td>Surgical cap</td><td>Full hood (when coverall is used)</td></tr>
<tr><td>Footwear</td><td>Closed shoes</td><td>Boot covers over closed shoes</td></tr>
<tr><td>Donning / Doffing</td><td>With buddy observer</td><td>Trained supervisor-observed; dedicated decontamination station</td></tr>
</table>
<div class="sub-hdr">Contact Tracing & Quarantine</div>
<table class="data">
<tr><th>Category</th><th>Definition</th><th>Action</th></tr>
<tr>
<td style="color:#C0392B; font-weight:bold;">High-risk contact</td>
<td>Direct unprotected exposure to body fluids/secretions of confirmed case; HCW without adequate PPE</td>
<td>Active surveillance ×21 days from last exposure; immediate isolation if symptomatic; NiV PCR if febrile</td>
</tr>
<tr>
<td style="color:#D4830A; font-weight:bold;">Medium-risk contact</td>
<td>Shared room without direct fluid contact; household member without secretion exposure</td>
<td>Passive surveillance ×21 days; self-monitoring; report symptoms immediately to health authority</td>
</tr>
<tr>
<td style="color:#1A7A4A; font-weight:bold;">Low-risk contact</td>
<td>Brief casual contact; no exposure to body fluids</td>
<td>Routine monitoring; public health information; report to health authority if symptoms develop</td>
</tr>
</table>
<div class="sub-hdr">Immediate Notification Requirements</div>
<div class="alert-blue">
<strong>1. Suspect case identified</strong> → Notify hospital infection control team and district health officer <strong>WITHIN 1 HOUR</strong><br/>
<strong>2. Probable / confirmed case</strong> → Notify State/National IHR Focal Point and WHO under IHR 2005 <strong>WITHIN 24 HOURS</strong><br/>
<strong>3. Outbreak (≥2 linked cases)</strong> → Activate Rapid Response Team (RRT); State/national Emergency Operations Centre notification
</div>
<!-- ═══════════════════ SECTION 6 ═══════════════════ -->
<div class="section-hdr">6. PROGNOSIS & FOLLOW-UP</div>
<table class="data">
<tr><th>Factor</th><th>Better Prognosis</th><th>Worse Prognosis</th></tr>
<tr><td>Strain</td><td>Malaysian NiV (CFR ~40%)</td><td>Bangladesh/India NiV (CFR 75–94%)</td></tr>
<tr><td>Disease form</td><td>Mild febrile / early-detected</td><td>Coma, severe encephalitis, ARDS</td></tr>
<tr><td>Age</td><td>Younger adults</td><td>Elderly, immunocompromised</td></tr>
<tr><td>Healthcare access</td><td>Early ICU admission</td><td>Late presentation, resource-limited setting</td></tr>
<tr><td>Recurrence risk</td><td>—</td><td>Late-onset encephalitis up to 11 years post-recovery</td></tr>
<tr><td>Neurological sequelae</td><td>—</td><td>21% of Malaysian survivors had persistent deficits</td></tr>
</table>
<div class="sub-hdr">Survivor Follow-Up Schedule</div>
<table class="data">
<tr><th>Timepoint</th><th>Assessment</th></tr>
<tr><td>Discharge</td><td>Full neurological exam; MRI brain baseline; neuropsychiatric screening; patient/family counselling on late-onset risk</td></tr>
<tr><td>1 month</td><td>Neurological review; repeat MRI if new symptoms; ophthalmology if ocular involvement</td></tr>
<tr><td>3 months</td><td>Neuropsychiatric assessment (MMSE, MoCA); occupational therapy review; convalescent serology</td></tr>
<tr><td>6 months</td><td>Comprehensive review; repeat MRI; assess for late-onset encephalitis symptoms</td></tr>
<tr><td>12 months</td><td>Annual review; educate patient that fever + headache + seizures = present to emergency immediately (indefinitely)</td></tr>
<tr><td>Ongoing</td><td>Immediate medical attention for any new neurological symptoms — no time limit on late-onset risk</td></tr>
</table>
<!-- ═══════════════════ SECTION 7 ═══════════════════ -->
<div class="section-hdr page-break">7. QUICK REFERENCE CARD</div>
<div class="two-col">
<div class="col-left">
<div class="qr-box">
<div class="qr-box-hdr amber-hdr">⚠ SUSPECT NIPAH IF:</div>
<div class="qr-box-body amber-body">
• Encephalitis OR pneumonia of unknown aetiology<br/>
• Epidemiological link to bat or pig exposure<br/>
• Travel/residence in endemic area (Kerala, West Bengal, Bangladesh)<br/>
• Cluster of unexplained encephalitis cases<br/>
• Healthcare worker with febrile encephalitis after caring for undiagnosed case<br/>
• Consumption of raw date palm sap<br/>
• Unexplained respiratory failure + encephalopathy in same patient
</div>
</div>
</div>
<div class="col-right">
<div class="qr-box">
<div class="qr-box-hdr blue-hdr">▶ IMMEDIATE ACTIONS:</div>
<div class="qr-box-body blue-body">
<strong>1. ISOLATE</strong> — single room; droplet + contact precautions<br/>
<strong>2. PPE</strong> — N95/FFP3 + gown + double gloves + full eye shield<br/>
<strong>3. NOTIFY</strong> — infection control + district health officer (within 1 hr)<br/>
<strong>4. SAMPLES</strong> — serum + urine + NPS for RT-PCR (BSL-3 handling)<br/>
<strong>5. MRI BRAIN</strong> — STAT if encephalitis features present<br/>
<strong>6. ICU</strong> — for GCS <14, ARDS, or seizures<br/>
<strong>7. CONTACT TRACE</strong> — all exposures within the preceding 21 days
</div>
</div>
</div>
</div>
<hr/>
<div class="sub-hdr">References & Sources</div>
<p class="footnote">[1] Bradley WG, Daroff RB et al. <em>Bradley and Daroff's Neurology in Clinical Practice</em>, 8th ed. — Nipah Virus, p. 1684.</p>
<p class="footnote">[2] Jawetz, Melnick & Adelberg. <em>Medical Microbiology</em>, 28th ed. — Hendra and Nipah Virus Infections, p. 616.</p>
<p class="footnote">[3] Park K. <em>Park's Textbook of Preventive and Social Medicine</em>, 26th ed. — Nipah Virus Infection.</p>
<p class="footnote">[4] WHO Disease Outbreak News: Nipah virus infection — India, January 2026 (DON593). who.int</p>
<p class="footnote">[5] Wang L, Lu D, Yang M. Nipah virus: epidemiology, pathogenesis, treatment, and prevention. <em>Front Med</em>. 2024 Dec. PMID 39417975</p>
<p class="footnote">[6] Faus-Cotino J et al. Nipah Virus: A Multidimensional Update. <em>Viruses</em>. 2024. PMID 38399954</p>
<p class="footnote">[7] Yadav PD et al. A One Health approach to understanding and managing Nipah virus outbreaks. <em>Nat Microbiol</em>. 2025 Jun. PMID 40437297</p>
<p class="footnote">[8] Spengler JR et al. Henipaviruses: epidemiology, ecology, disease, vaccines and therapeutics. <em>Clin Microbiol Rev</em>. 2025. PMID 39714175</p>
</body>
</html>
libreoffice --headless --convert-to pdf --outdir /home/daytona/workspace/nipah-reference/ /home/daytona/workspace/nipah-reference/nipah_reference.html 2>&1
cp /home/daytona/workspace/nipah-reference/nipah_reference.html /tmp/nipah_reference.html && libreoffice --headless --convert-to pdf --outdir /tmp/ /tmp/nipah_reference.html 2>&1 && cp /tmp/nipah_reference.pdf /home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_v2.pdf && ls -lh /home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_v2.pdf
Nipah Clinical Reference v2
PDF Document · PDF
nope...i use adobe in laptop
python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_v2.pdf') print('Pages:', len(r.pages)) print('Encrypted:', r.is_encrypted) meta = r.metadata print('Title:', meta.title if meta else 'none') print('Page 1 text (first 300 chars):', r.pages[0].extract_text()[:300]) "
python3 -c " # Re-save with explicit PDF version and metadata that Adobe expects from pypdf import PdfReader, PdfWriter from pypdf.generic import NameObject, createStringObject reader = PdfReader('/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_v2.pdf') writer = PdfWriter() for page in reader.pages: writer.add_page(page) # Add proper metadata writer.add_metadata({ '/Title': 'Nipah Virus Disease - Clinical Reference Guide', '/Author': 'Orris Clinical Reference', '/Subject': 'Nipah Diagnosis and Treatment Protocols', '/Creator': 'Orris', '/Producer': 'ReportLab / LibreOffice', }) out = '/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_FINAL.pdf' with open(out, 'wb') as f: writer.write(f) # Verify r2 = PdfReader(out) print('Pages:', len(r2.pages)) print('Encrypted:', r2.is_encrypted) import os size = os.path.getsize(out) print(f'Size: {size/1024:.1f} KB') print('DONE:', out) "
python3 -c " from pypdf import PdfReader, PdfWriter reader = PdfReader('/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_v2.pdf') writer = PdfWriter() for page in reader.pages: writer.add_page(page) writer.add_metadata({ '/Title': 'Nipah Virus Disease - Clinical Reference Guide', '/Author': 'Orris Clinical Reference', '/Subject': 'Nipah Diagnosis and Treatment Protocols', }) out = '/home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference_FINAL.pdf' with open(out, 'wb') as f: writer.write(f) import os print('Size:', round(os.path.getsize(out)/1024, 1), 'KB') print('Pages:', len(PdfReader(out).pages)) print('OK:', out) "
Nipah Clinical Reference FINAL
PDF Document · PDF
hanta virus
hantavirus infection
hantavirus outbreak 2025 2026 update
| Feature | HPS (Hantavirus Pulmonary Syndrome) | HFRS (Hemorrhagic Fever with Renal Syndrome) |
|---|---|---|
| Also called | HCPS (Hantavirus Cardiopulmonary Syndrome) | Korean hemorrhagic fever, epidemic hemorrhagic fever, nephropathia epidemica |
| Geography | Americas (North, Central, South) | Asia, Europe (worldwide via Seoul virus) |
| Target organ | Lungs (vascular endothelium) | Kidneys |
| CFR | 30-40% (Sin Nombre); up to 46% in Native populations | 5-15% (Hantaan); <1% (Puumala, Seoul) |
| Key viruses | Sin Nombre, Andes, Choclo, Bayou, Black Creek Canal | Hantaan, Dobrava, Seoul, Saaremaa, Puumala |

| Phase | Duration | Features |
|---|---|---|
| Incubation | 1-6 weeks | Asymptomatic |
| Prodrome | 3-7 days | Fever, chills, headache, severe myalgia, nausea, vomiting, diarrhea, dizziness, abdominal pain. No respiratory symptoms yet. |
| Cardiopulmonary phase | Hours-days | Abrupt onset cough and dyspnea → rapidly progressive non-cardiogenic pulmonary oedema → severe hypoxaemia requiring intubation. Myocardial depression → hypotension (low cardiac index, increased SVR, normal PCWP). Bilateral interstitial and alveolar infiltrates with pleural effusions on CXR. |
| Diuretic phase | 2-4 days | Onset of diuresis heralds clinical improvement. Resolution usually rapid once this phase begins. |
| Test | Notes |
|---|---|
| RT-PCR (viral RNA) | Method of choice; serum, whole blood, or tissue |
| IgM ELISA | Diagnoses acute infection; usually positive at presentation with HPS |
| IgG paired sera | ≥4× rise between acute and convalescent sera is diagnostic |
| Immunohistochemistry | Detection of viral antigen in fixed tissues (post-mortem or biopsy) |
| Virus isolation | Requires BSL-3/4 containment; not routine |
| CXR / CT chest | Bilateral interstitial infiltrates, pleural effusions (HPS) |
| Blood count | Thrombocytopenia, haemoconcentration (high haematocrit), left-shifted neutrophilia with immunoblasts on smear |
diagnostic and management algorithm protocol of bronchial asthma
asthma diagnosis management guidelines
GINA 2024 2025 asthma diagnosis management guidelines stepwise treatment
https://ginasthma.org/wp-content/uploads/2025/11/GINA-Summar…
┌─────────────────────────────────────────────────────────────┐
│ 4 RESPIRATORY SYMPTOMS OF ASTHMA (GINA 2025) │
│ │
│ 1. Wheeze (expiratory, high-pitched) │
│ 2. Shortness of breath / dyspnea │
│ 3. Chest tightness │
│ 4. Cough (particularly nocturnal or post-exercise) │
│ │
│ ► Pattern: variable, episodic, worse at night/morning │
│ ► Triggered by: allergens, exercise, cold air, infections,│
│ NSAIDs, beta-blockers, emotional stress, irritants │
└─────────────────────────────────────────────────────────────┘
| Test | Positive Criterion | Notes |
|---|---|---|
| Spirometry: Bronchodilator Reversibility (BDR) | Post-BD FEV1 increase ≥12% AND ≥200 mL | Administer SABA 400 mcg; repeat spirometry 15 min later |
| Peak Expiratory Flow (PEF) variability | Diurnal variability >10% (adults) / >13% (children) | Average of 2 weeks twice-daily readings |
| Bronchial Provocation Test (BPT) | PC20 methacholine ≤8 mg/mL | Useful when spirometry normal; rules out if negative |
| Exercise Challenge Test | FEV1 fall ≥10% + 200 mL post-exercise | When exercise-induced symptoms suspected |
| Therapeutic trial | Symptom + lung function improvement after 4 weeks of ICS ± SABA | Used when spirometry unavailable (children <5 yrs, resource-limited) |
| Biomarker | Threshold | Clinical Implication |
|---|---|---|
| Blood eosinophils | ≥150 cells/μL (moderate) / ≥300 cells/μL (high) | Predicts ICS response and biologic eligibility |
| Fractional Exhaled NO (FeNO) | ≥25 ppb (adults) / ≥20 ppb (children) | High T2 inflammation; predicts ICS benefit |
| Serum IgE (total + specific) | Elevated + sensitisation | Guides omalizumab eligibility |
| Sputum eosinophils | ≥2-3% | Used in severe/refractory asthma; guides OCS use |
| Severity | Symptoms | Nighttime | FEV1 % Predicted | FEV1/FVC |
|---|---|---|---|---|
| Intermittent | ≤2 days/week | ≤2×/month | ≥80% | Normal |
| Mild Persistent | >2 days/week, not daily | 3-4×/month | ≥80% | Normal |
| Moderate Persistent | Daily symptoms | >1×/week | 60-80% | Reduced 5% |
| Severe Persistent | Continuous | Frequent (≥7×/week) | <60% | Reduced >5% |
| Condition | Distinguishing Feature |
|---|---|
| COPD | Irreversible obstruction; smoker; age >40 |
| Vocal cord dysfunction | Inspiratory stridor; normal spirometry; laryngoscopy confirms |
| Cardiac failure | Orthopnoea, S3, BNP elevated, CXR: cardiomegaly |
| GERD | Cough after meals; responds to PPI; no wheeze |
| Endobronchial tumour | Fixed obstruction; no variability; CT confirms |
| Hypersensitivity pneumonitis | Bilateral infiltrates; exposure history |
| Eosinophilic granulomatosis (EGPA) | Systemic eosinophilia, vasculitis, skin/nerve involvement |
| Domain | Well Controlled | Not Well Controlled | Very Poorly Controlled |
|---|---|---|---|
| Daytime symptoms | ≤2 days/week | >2 days/week | Throughout the day |
| Nighttime symptoms | None | 1-3×/week | ≥4×/week |
| Activity limitation | None | Some | Extreme |
| Reliever use | ≤2×/week | >2×/week | Frequent |
| FEV1 or PEF | ≥80% predicted | 60-80% | <60% |
| ACT score | ≥20 | 16-19 | ≤15 |
| ACQ score | <0.75 | — | >1.5 |
| Exacerbations/year | 0-1 | ≥2 | ≥2 |
| Action | Maintain; consider step-down if stable ≥3 months | Step up 1 step | Step up 1-2 steps + consider short OCS course |
| Follow-up | 1-6 months | 2-6 weeks | 2 weeks |
═══════════════════════════════════════════════════════════════════
STEP 1 ─────────────────────────────────────────────────────────
Track 1: As-needed low-dose ICS-formoterol (AIR therapy only)
Track 2: As-needed low-dose ICS taken whenever SABA taken (or
SABA alone - if ICS-formoterol not available)
───────────────────────────────────────────────────────────────────
STEP 2 ─────────────────────────────────────────────────────────
Track 1: As-needed low-dose ICS-formoterol (same as Step 1)
Track 2: Daily low-dose ICS + as-needed SABA
Alt: leukotriene receptor antagonist (LTRA)
───────────────────────────────────────────────────────────────────
STEP 3 ─────────────────────────────────────────────────────────
Track 1: Low-dose ICS-formoterol maintenance + as-needed ICS-
formoterol (MART)
Track 2: Low-dose ICS-LABA + as-needed SABA
Alt: medium-dose ICS; or low-dose ICS + LTRA
───────────────────────────────────────────────────────────────────
STEP 4 ─────────────────────────────────────────────────────────
Track 1: Medium-dose ICS-formoterol MART
Track 2: Medium-dose ICS-LABA + as-needed SABA
Alt: Add tiotropium (LAMA) or LTRA to ICS-LABA
► GINA 2025 change: medium-dose ICS-LABA preferred
over high-dose (minimises steroid side effects)
───────────────────────────────────────────────────────────────────
STEP 5 ─────────────────────────────────────────────────────────
Refer to specialist / severe asthma service
Phenotype-guided add-on biologic therapy:
┌─────────────────────────────────────────────────────────────┐
│ Blood eos ≥300 + FeNO ≥25 → Anti-IL-5 (mepolizumab, │
│ reslizumab, benralizumab) OR dupilumab (anti-IL-4/13) │
│ Allergic asthma + total IgE ↑ + sensitised → Omalizumab │
│ (anti-IgE) │
│ Blood eos ≥150 OR FeNO ≥25 → Dupilumab (anti-IL-4Rα) │
│ Tezepelumab (anti-TSLP) for all phenotypes incl. non-T2 │
│ LAMA (tiotropium) add-on if not already used │
│ Maintenance OCS: LAST RESORT only; assess adrenal risk │
└─────────────────────────────────────────────────────────────┘
═══════════════════════════════════════════════════════════════════
| ICS Dose | Beclomethasone CFC | Examples |
|---|---|---|
| Low | ≤200 mcg/day | BDP 100-200 mcg, Fluticasone propionate 100-250 mcg, Budesonide 200-400 mcg |
| Medium | 201-800 mcg/day | BDP 200-400 mcg, FP 250-500 mcg, Budesonide 400-800 mcg |
| High | >800 mcg/day | BDP >400 mcg, FP >500 mcg, Budesonide >800 mcg |
| Feature | Moderate | Severe | Impending Arrest |
|---|---|---|---|
| FEV1 / PEF | 40-69% predicted | <40% | <25% or unmeasurable |
| Symptoms | SOB on exertion or talking | SOB at rest | Severe SOB |
| Wheeze | Expiratory only | Inspiratory + expiratory | May be absent (silent chest) |
| Accessory muscles | Some | Marked use + chest retraction | Paradoxical thoracoabdominal movement |
| Mental status | Normal | Agitation/confusion | Depressed consciousness |
| RR | <28/min | >28/min | As severe/worse |
| HR | <110 bpm | >110 bpm | Bradycardia (pre-arrest) |
| SpO2 (room air) | >91% | <91% | Critical |
| Pulsus paradoxus | Absent | >25 mmHg | — |
┌──────────────────────────────────────────────────────────────┐
│ IMMEDIATE ASSESSMENT (ALL PATIENTS) │
│ • SpO2, RR, HR, use of accessory muscles, ability to speak │
│ • Peak flow / FEV1 if possible │
│ • IV access, ECG if severe │
└──────────────────────────────────────┬───────────────────────┘
│
┌────────────────────────────┼────────────────────────┐
▼ ▼ ▼
MODERATE SEVERE IMPENDING ARREST
(PEF 40-69%) (PEF <40%) (PEF <25%)
│ │ │
▼ ▼ ▼
SABA 4-8 puffs MDI SABA via nebuliser Intubate +
+ ipratropium + ipratropium mechanical
q20min × 3 q20min × 3 ventilation
│ + IV/PO steroids
▼ + O2 to SpO2 93-95%
Reassess 1hr │
│ ▼
Improving? ──YES──→ Reassess 1 hour
│ │
NO Improving? ──YES──→ Continue;
│ │ admit ward
▼ NO
Treat as │
SEVERE ▼
ICU ESCALATION
+ MgSO4 IV
+ IV aminophylline
(consider NIV)
| Drug | Dose | Route | Notes |
|---|---|---|---|
| Salbutamol (albuterol) | 2.5-5 mg q20min × 3, then 2.5-10 mg hourly | Nebuliser | 4-8 puffs via spacer equally effective in moderate |
| Ipratropium bromide | 0.5 mg q20min × 3, then q4h | Nebuliser | Add to SABA; reduces hospitalisation in severe |
| Prednisolone / Methylprednisolone | 40-60 mg PO OD (or IV methylpred 40-80 mg) × 5-7 days | PO / IV | Accelerates recovery; no taper needed for <2 week courses |
| Oxygen | Titrate to SpO2 93-95% | Nasal cannula / mask | Avoid >95% (may suppress drive in CO2 retainers) |
| Magnesium sulphate | 2 g IV over 20 min (single dose) | IV | For severe/life-threatening; bronchodilates by ↓Ca2+ influx |
| IV aminophylline | 5 mg/kg load over 20 min, then 0.5-0.7 mg/kg/hr infusion | IV | Last resort; narrow TI; monitor levels; not in those already on theophylline |
| Heliox | 70:30 helium:oxygen | Inhalation | Reduces turbulence; adjunct in refractory severe |
| Zone | Status | PEF | Action |
|---|---|---|---|
| 🟢 GREEN | Well controlled | ≥80% personal best | Continue usual medications |
| 🟡 YELLOW | Caution | 50-79% | Increase reliever; may add short OCS; contact doctor |
| 🔴 RED | Emergency | <50% | Take reliever immediately; call emergency services; start OCS |
Patient presents with respiratory symptoms
│
▼
┌─────────────────────────────────┐
│ ≥2 of: wheeze, SOB, chest │
│ tightness, cough (recurrent, │
│ variable, nocturnal) │
└─────────────┬───────────────────┘
│
▼
Perform spirometry + BDR test
│
┌────────┴────────┐
▼ ▼
FEV1/FVC <0.7 FEV1/FVC normal
BDR positive (consider BPT,
→ ASTHMA PEF variability,
CONFIRMED exercise test)
│ │
└────────┬──────────┘
▼
Classify severity + check T2 biomarkers
(blood eos, FeNO, IgE)
│
▼
Rule out differentials (COPD, VCD,
cardiac failure, etc.)
│
▼
┌──────────────────────────────────┐
│ INITIATE STEPWISE TREATMENT │
│ Steps 1→5 (GINA 2025 tracks) │
│ + Non-pharmacological measures │
│ + Written action plan │
│ + Inhaler technique education │
└──────────────────────────────────┘
│
▼
Review control every 1-6 months
┌────────────┬─────────────────────┐
▼ ▼ ▼
Well Not well Very poorly
controlled controlled controlled
│ │ │
Step down Step up 1 Step up 1-2
if stable + review + OCS course
≥3 months adherence/ + urgent review
technique
Generate a PDF clinical reference guide for bronchial asthma management
ls /home/daytona/workspace/nipah-reference/ && python3 -c "import reportlab; print('ok')"
~/asthma-reference/asthma_reference.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<style>
@page { size: A4; margin: 18mm 14mm 15mm 14mm; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #1a1a2e; line-height: 1.45; }
/* ── COVER ── */
.cover-top { background: #0d3b66; color: white; padding: 28px 22px 18px; }
.cover-top h1 { font-size: 24pt; font-weight: bold; color: white; margin-bottom: 5px; letter-spacing: 1px; }
.cover-top .subtitle { font-size: 12pt; color: #a8d5f5; margin-bottom: 3px; }
.cover-bar { background: #1a6aac; color: white; padding: 9px 22px; font-size: 9pt; }
.gina-badge { display: inline-block; background: #e67e22; color: white; font-weight: bold; font-size: 8.5pt; padding: 3px 10px; border-radius: 3px; margin-top: 8px; }
/* ── META TABLE ── */
.meta-tbl { width: 100%; border-collapse: collapse; margin: 7px 0 10px; }
.meta-tbl td { padding: 4px 8px; background: #eef4fb; border: 0.4pt solid #b0c8e8; font-size: 8.5pt; vertical-align: top; }
.meta-tbl td:first-child { font-weight: bold; color: #0d3b66; width: 40mm; white-space: nowrap; }
/* ── SECTION HEADERS ── */
.sec { background: #0d3b66; color: white; font-size: 11pt; font-weight: bold; padding: 6px 10px; margin: 14px 0 5px; border-radius: 2px; page-break-after: avoid; }
.sub { color: #0d3b66; font-size: 9.5pt; font-weight: bold; margin: 9px 0 4px; page-break-after: avoid; border-left: 3px solid #1a6aac; padding-left: 7px; }
/* ── DATA TABLES ── */
table.dt { width: 100%; border-collapse: collapse; margin-bottom: 7px; font-size: 8.5pt; }
table.dt th { background: #0d3b66; color: white; padding: 5px 6px; text-align: left; font-weight: bold; font-size: 8.5pt; }
table.dt td { padding: 4px 6px; border: 0.4pt solid #b0c8e8; vertical-align: top; }
table.dt tr:nth-child(even) td { background: #eef4fb; }
table.dt tr:nth-child(odd) td { background: #ffffff; }
/* ── ALERT BOXES ── */
.alert-red { background:#c0392b; color:white; padding:9px 14px; border-radius:3px; font-size:9pt; font-weight:bold; margin:7px 0; text-align:center; }
.alert-red .sub2 { font-weight:normal; font-size:8pt; margin-top:3px; }
.alert-amber { background:#d4830a; color:white; padding:8px 14px; border-radius:3px; font-size:8.5pt; margin:6px 0; }
.alert-green { background:#1a7a4a; color:white; padding:8px 14px; border-radius:3px; font-size:8.5pt; margin:6px 0; }
.alert-blue { background:#d6e4f7; border:1pt solid #1a6aac; padding:9px 14px; border-radius:3px; font-size:9pt; margin:6px 0; line-height:1.6; }
.alert-teal { background:#e8f8f5; border:1pt solid #1a7a4a; padding:8px 14px; border-radius:3px; font-size:8.5pt; margin:6px 0; }
/* ── STEP BOXES ── */
.step-row { display:table; width:100%; border-collapse:collapse; margin-bottom:3px; }
.step-num { display:table-cell; width:20mm; background:#0d3b66; color:white; font-weight:bold; font-size:10pt; text-align:center; vertical-align:middle; padding:6px 4px; border-radius:2px 0 0 2px; }
.step-body { display:table-cell; background:#eef4fb; border:0.5pt solid #b0c8e8; padding:6px 10px; font-size:8.5pt; vertical-align:top; border-radius:0 2px 2px 0; }
.step-body b { color:#0d3b66; }
/* ── TRAFFIC LIGHT ── */
.tl-green { background:#1a7a4a; color:white; font-weight:bold; text-align:center; padding:5px; }
.tl-yellow { background:#d4830a; color:white; font-weight:bold; text-align:center; padding:5px; }
.tl-red { background:#c0392b; color:white; font-weight:bold; text-align:center; padding:5px; }
/* ── PRIORITY TAGS ── */
.p-imm { color:#c0392b; font-weight:bold; }
.p-hi { color:#d4830a; font-weight:bold; }
.p-mod { color:#1a7a4a; font-weight:bold; }
/* ── TWO-COL ── */
.two-col { display:table; width:100%; border-collapse:collapse; margin:6px 0; }
.col-l { display:table-cell; width:50%; vertical-align:top; padding-right:4px; }
.col-r { display:table-cell; width:50%; vertical-align:top; padding-left:4px; }
/* ── MISC ── */
p { margin: 3px 0 5px; }
ul { margin: 0 0 5px 16px; }
li { margin-bottom: 2px; }
hr { border:0; border-top:0.8pt solid #1a6aac; margin:9px 0; }
.fn { font-size:7.5pt; color:#666; font-style:italic; margin:2px 0 5px; }
.page-break { page-break-before: always; }
.no-break { page-break-inside: avoid; }
/* flowchart boxes */
.fc-box { border:1.5pt solid #0d3b66; background:#eef4fb; padding:7px 12px; border-radius:4px; text-align:center; font-size:8.5pt; font-weight:bold; color:#0d3b66; margin:4px auto; }
.fc-arrow { text-align:center; font-size:14pt; color:#0d3b66; line-height:1; margin:1px 0; }
.fc-decision { border:1.5pt solid #d4830a; background:#fff8ee; padding:7px 12px; border-radius:4px; text-align:center; font-size:8.5pt; font-weight:bold; color:#7d4400; margin:4px auto; }
.fc-yes { background:#eafaf1; border:1pt solid #1a7a4a; padding:6px 10px; border-radius:3px; font-size:8pt; color:#1a7a4a; font-weight:bold; display:inline-block; margin:2px; }
.fc-no { background:#fdedec; border:1pt solid #c0392b; padding:6px 10px; border-radius:3px; font-size:8pt; color:#c0392b; font-weight:bold; display:inline-block; margin:2px; }
</style>
</head>
<body>
<!-- ════════════ COVER ════════════ -->
<div class="cover-top">
<h1>BRONCHIAL ASTHMA</h1>
<div class="subtitle">Clinical Reference Guide</div>
<div style="color:#a8d5f5; font-size:10.5pt;">Diagnostic Algorithm & Management Protocols</div>
<div class="gina-badge">GINA 2025 | Harrison's 22e | Washington Manual</div>
</div>
<div class="cover-bar">
Chronic inflammatory airway disease | Variable reversible obstruction |
Bronchial hyperresponsiveness | ~300 million affected worldwide
</div>
<table class="meta-tbl">
<tr><td>Classification:</td><td>Chronic inflammatory obstructive airway disease (Th2-mediated)</td></tr>
<tr><td>Key Guidelines:</td><td>GINA 2025 | NAEPP | BTS/NICE/SIGN 2025</td></tr>
<tr><td>Core Treatment:</td><td>ICS-based step-up/step-down; MART preferred (Track 1)</td></tr>
<tr><td>Key 2025 Update:</td><td>T2 biomarker guidance (FeNO + eosinophils) expanded; medium-dose ICS-LABA preferred at Step 4 over high-dose; new paediatric <5yr diagnosis criteria</td></tr>
<tr><td>Sources:</td><td>GINA 2025 Report | Harrison's Principles of Internal Medicine 22e (2025) | Washington Manual of Medical Therapeutics | Murray & Nadel's Respiratory Medicine | PubMed 2023–2025</td></tr>
</table>
<!-- ════════════ SECTION 1: DEFINITION & PATHOPHYSIOLOGY ════════════ -->
<div class="sec">1. DEFINITION & PATHOPHYSIOLOGY</div>
<p>Asthma is a <strong>chronic inflammatory airway disease</strong> characterised by:</p>
<ul>
<li>Variable and largely reversible expiratory airflow obstruction</li>
<li>Bronchial hyperresponsiveness (BHR) to various stimuli</li>
<li>Airway remodelling (subepithelial fibrosis, angiogenesis, extracellular matrix deposition)</li>
<li>Predominantly <strong>Type 2 (T2) eosinophilic inflammation</strong> in ~50–70% of patients; non-T2 (neutrophilic/paucigranulocytic) in remainder</li>
</ul>
<div class="sub">Common Triggers</div>
<table class="dt">
<tr><th>Category</th><th>Examples</th></tr>
<tr><td>Allergens</td><td>House dust mite, pet dander, cockroach, mould, pollen</td></tr>
<tr><td>Infections</td><td>Rhinovirus, RSV, influenza, <em>Mycoplasma pneumoniae</em></td></tr>
<tr><td>Environmental</td><td>Tobacco smoke, air pollution, occupational dusts/chemicals, cold air</td></tr>
<tr><td>Exercise</td><td>Exercise-induced bronchospasm (EIB) — common in children</td></tr>
<tr><td>Drugs</td><td>NSAIDs (aspirin-exacerbated respiratory disease), beta-blockers, ACE inhibitors</td></tr>
<tr><td>Emotions</td><td>Stress, anxiety, laughter, strong emotions</td></tr>
<tr><td>Hormonal</td><td>Menstrual cycle, pregnancy, thyroid dysfunction</td></tr>
</table>
<!-- ════════════ SECTION 2: DIAGNOSTIC ALGORITHM ════════════ -->
<div class="sec page-break">2. DIAGNOSTIC ALGORITHM</div>
<div class="sub">Step 1 — Recognise Characteristic Symptoms</div>
<div class="alert-blue">
<strong>Suspect asthma when ≥2 of these 4 cardinal symptoms are present</strong>, especially if recurrent, variable, worse at night/early morning, or triggered by exercise, allergens, or irritants:<br/><br/>
1. <strong>Wheeze</strong> (expiratory, high-pitched, musical)<br/>
2. <strong>Shortness of breath / dyspnoea</strong><br/>
3. <strong>Chest tightness</strong><br/>
4. <strong>Cough</strong> (particularly nocturnal or post-exercise)
</div>
<div class="sub">Step 2 — Confirm Variable Expiratory Airflow Limitation</div>
<p>At least <strong>one</strong> objective test must be positive to confirm the diagnosis:</p>
<table class="dt">
<tr><th>Test</th><th>Positive Criterion</th><th>Notes</th></tr>
<tr>
<td><strong>Bronchodilator Reversibility (BDR)</strong> — Spirometry</td>
<td>Post-BD FEV1 ↑ ≥12% <strong>AND</strong> ≥200 mL from baseline</td>
<td>Salbutamol 400 mcg via spacer; repeat spirometry after 15 min. <em>Gold standard.</em></td>
</tr>
<tr>
<td><strong>Peak Flow (PEF) Variability</strong></td>
<td>Diurnal variability >10% adults / >13% children (2-week monitoring)</td>
<td>Twice-daily readings morning and evening; inexpensive and accessible</td>
</tr>
<tr>
<td><strong>Bronchial Provocation Test (BPT)</strong></td>
<td>PC20 methacholine ≤8 mg/mL</td>
<td>Used when spirometry is normal; high negative predictive value — effectively rules out asthma</td>
</tr>
<tr>
<td><strong>Exercise Challenge Test</strong></td>
<td>FEV1 fall ≥10% + ≥200 mL post-exercise</td>
<td>For suspected exercise-induced bronchoconstriction</td>
</tr>
<tr>
<td><strong>Therapeutic Trial</strong></td>
<td>Symptom + lung function improvement after 4 wks of ICS ± SABA</td>
<td>Pragmatic approach when spirometry unavailable (children <5 yrs); if no response reconsider diagnosis</td>
</tr>
</table>
<p class="fn">Obstructive pattern: FEV1/FVC <0.70 (or below lower limit of normal) with post-BD improvement. A normal spirometry does NOT exclude asthma.</p>
<div class="sub">Step 3 — Type 2 Biomarkers (GINA 2025)</div>
<table class="dt">
<tr><th>Biomarker</th><th>Threshold</th><th>Clinical Implication</th></tr>
<tr><td><strong>Blood Eosinophils</strong></td><td>≥150 cells/μL (moderate T2) / ≥300 cells/μL (high T2)</td><td>Predicts ICS response; guides anti-IL-5 / dupilumab eligibility at Step 5</td></tr>
<tr><td><strong>FeNO (Fractional Exhaled NO)</strong></td><td>≥25 ppb (adults) / ≥20 ppb (children)</td><td>High T2 airway inflammation; predicts ICS benefit; use with eosinophils for biologic selection</td></tr>
<tr><td><strong>Total + Specific IgE</strong></td><td>Elevated + allergen sensitisation</td><td>Confirms allergic asthma; guides omalizumab eligibility</td></tr>
<tr><td><strong>Sputum Eosinophils</strong></td><td>≥2–3%</td><td>Guides OCS use in severe/refractory asthma; available in specialist centres</td></tr>
</table>
<div class="sub">Step 4 — Classify Initial Severity</div>
<p><em>Classify BEFORE starting treatment, based on the minimum treatment level needed to achieve control:</em></p>
<table class="dt">
<tr><th>Severity</th><th>Daytime Symptoms</th><th>Nighttime Symptoms</th><th>FEV1 % Predicted</th><th>FEV1/FVC</th></tr>
<tr><td><strong>Intermittent</strong></td><td>≤2 days/week</td><td>≤2×/month</td><td>≥80%</td><td>Normal</td></tr>
<tr><td><strong>Mild Persistent</strong></td><td>>2 days/week, not daily</td><td>3–4×/month</td><td>≥80%</td><td>Normal</td></tr>
<tr><td><strong>Moderate Persistent</strong></td><td>Daily</td><td>>1×/week</td><td>60–80%</td><td>Reduced ~5%</td></tr>
<tr><td><strong>Severe Persistent</strong></td><td>Continuous / throughout day</td><td>Frequent (≥7×/week)</td><td><60%</td><td>Reduced >5%</td></tr>
</table>
<div class="sub">Step 5 — Differential Diagnosis: Rule Out</div>
<table class="dt">
<tr><th>Condition</th><th>Distinguishing Feature</th></tr>
<tr><td>COPD</td><td>Irreversible obstruction; age >40; heavy smoking history; post-BD FEV1/FVC <0.70 persists</td></tr>
<tr><td>Vocal cord dysfunction (VCD)</td><td>Inspiratory stridor; normal spirometry; flow-volume loop flattened inspiratory limb; laryngoscopy confirms</td></tr>
<tr><td>Cardiac failure</td><td>Orthopnoea, paroxysmal nocturnal dyspnoea, S3, elevated BNP/NT-proBNP, CXR cardiomegaly</td></tr>
<tr><td>GERD-induced cough</td><td>Cough after meals; responds to PPI; no wheeze on spirometry</td></tr>
<tr><td>Endobronchial tumour</td><td>Fixed obstruction; no variability; CT/bronchoscopy confirms</td></tr>
<tr><td>Eosinophilic granulomatosis (EGPA)</td><td>Systemic eosinophilia, vasculitis, skin/nerve/renal involvement; ANCA may be positive</td></tr>
<tr><td>Allergic bronchopulmonary aspergillosis (ABPA)</td><td>Central bronchiectasis; elevated IgE >1000 IU/mL; Aspergillus precipitins; high-attenuation mucus on CT</td></tr>
<tr><td>Hyperventilation syndrome</td><td>Dyspnoea with normal spirometry and normal blood gases; Nijmegen questionnaire positive</td></tr>
</table>
<!-- ════════════ SECTION 3: ASTHMA CONTROL ASSESSMENT ════════════ -->
<div class="sec page-break">3. ASTHMA CONTROL ASSESSMENT (ONGOING MONITORING)</div>
<div class="sub">Control Classification & Action (GINA 2025 / NAEPP)</div>
<table class="dt">
<tr><th>Domain</th><th style="background:#1a7a4a;">Well Controlled</th><th style="background:#d4830a;">Not Well Controlled</th><th style="background:#c0392b;">Very Poorly Controlled</th></tr>
<tr><td>Daytime symptoms</td><td>≤2 days/week</td><td>>2 days/week</td><td>Throughout the day</td></tr>
<tr><td>Nighttime symptoms</td><td>None</td><td>1–3×/week</td><td>≥4×/week</td></tr>
<tr><td>Activity limitation</td><td>None</td><td>Some</td><td>Extreme</td></tr>
<tr><td>Reliever (SABA) use</td><td>≤2×/week</td><td>>2×/week</td><td>Several times/day</td></tr>
<tr><td>FEV1 or PEF</td><td>≥80% predicted</td><td>60–80%</td><td><60%</td></tr>
<tr><td>ACT score</td><td>≥20</td><td>16–19</td><td>≤15</td></tr>
<tr><td>ACQ score</td><td><0.75</td><td>0.75–1.5</td><td>>1.5</td></tr>
<tr><td>Exacerbations/year</td><td>0–1</td><td>≥2</td><td>≥2 + severe</td></tr>
<tr><td style="font-weight:bold;">Recommended action</td><td>Maintain lowest step; consider step-down if stable ≥3 months</td><td>Step up 1 step; review inhaler technique & adherence</td><td>Step up 1–2 steps; consider short course OCS</td></tr>
<tr><td style="font-weight:bold;">Follow-up interval</td><td>1–6 months</td><td>2–6 weeks</td><td>2 weeks</td></tr>
</table>
<p class="fn">ACT = Asthma Control Test; ACQ = Asthma Control Questionnaire; OCS = oral corticosteroids. Before stepping up, always check: inhaler technique, adherence, trigger avoidance, comorbidities (GERD, rhinitis, obesity, OSA).</p>
<div class="sub">Risk Factors for Severe Exacerbation (GINA 2025)</div>
<div class="two-col">
<div class="col-l">
<ul>
<li>SABA use >200 doses/month (1 inhaler/month)</li>
<li>High or increasing FeNO (>50 ppb)</li>
<li>Blood eosinophils ≥300 cells/μL</li>
<li>History of severe exacerbation in past year</li>
<li>Hospitalisation or ICU admission for asthma ever</li>
<li>Low FEV1 (<60% predicted)</li>
</ul>
</div>
<div class="col-r">
<ul>
<li>Poor adherence to ICS</li>
<li>Incorrect inhaler technique</li>
<li>Current smoker</li>
<li>Obesity (BMI >30)</li>
<li>Psychological / mental health issues</li>
<li>Food allergy in patient with asthma</li>
<li>No written asthma action plan</li>
</ul>
</div>
</div>
<!-- ════════════ SECTION 4: STEPWISE MANAGEMENT ════════════ -->
<div class="sec page-break">4. LONG-TERM STEPWISE MANAGEMENT (ADULTS & ADOLESCENTS ≥12 YRS)</div>
<div class="sub">Two-Track System (GINA 2025)</div>
<div class="two-col">
<div class="col-l">
<div style="background:#eef4fb; border:1.5pt solid #0d3b66; border-radius:4px; padding:8px 10px;">
<div style="background:#0d3b66; color:white; font-weight:bold; font-size:9pt; padding:4px 8px; border-radius:2px; text-align:center; margin-bottom:6px;">TRACK 1 — PREFERRED</div>
<strong>ICS-formoterol as BOTH controller & reliever (MART)</strong><br/>
<span style="font-size:8.5pt;">• Single inhaler simplifies regimen<br/>
• Reduces exacerbation risk vs SABA reliever<br/>
• As-needed reliever = anti-inflammatory reliever<br/>
• Preferred for most patients</span>
</div>
</div>
<div class="col-r">
<div style="background:#fff8ee; border:1.5pt solid #d4830a; border-radius:4px; padding:8px 10px;">
<div style="background:#d4830a; color:white; font-weight:bold; font-size:9pt; padding:4px 8px; border-radius:2px; text-align:center; margin-bottom:6px;">TRACK 2 — ALTERNATIVE</div>
<strong>Separate ICS controller + SABA reliever</strong><br/>
<span style="font-size:8.5pt;">• For resource-limited settings or patient preference<br/>
• Check daily controller adherence likelihood first<br/>
• Step 4: medium-dose ICS-LABA preferred (2025 change — avoids high-dose ICS side effects)<br/>
• ICS-LABA limit: 3–6 months at high dose</span>
</div>
</div>
</div>
<br/>
<div class="no-break">
<div class="step-row">
<div class="step-num">STEP 1</div>
<div class="step-body">
<b>Track 1:</b> As-needed low-dose ICS-formoterol (AIR — Anti-Inflammatory Reliever therapy only; no daily controller)<br/>
<b>Track 2:</b> As-needed SABA alone; OR ICS taken whenever SABA is used<br/>
<span style="color:#666; font-size:8pt;">▶ For infrequent symptoms (<2 days/week), no nighttime waking, normal lung function</span>
</div>
</div>
<div class="step-row">
<div class="step-num">STEP 2</div>
<div class="step-body">
<b>Track 1:</b> As-needed low-dose ICS-formoterol (same as Step 1 — no change needed)<br/>
<b>Track 2:</b> Daily low-dose ICS + as-needed SABA | <em>Alt:</em> Leukotriene receptor antagonist (LTRA) + SABA<br/>
<span style="color:#666; font-size:8pt;">▶ For mild persistent symptoms (>2 days/week but not daily)</span>
</div>
</div>
<div class="step-row">
<div class="step-num">STEP 3</div>
<div class="step-body">
<b>Track 1:</b> Low-dose ICS-formoterol maintenance morning + evening, PLUS as-needed ICS-formoterol (MART)<br/>
<b>Track 2:</b> Low-dose ICS-LABA daily + as-needed SABA | <em>Alt:</em> Medium-dose ICS; or low-dose ICS + LTRA<br/>
<span style="color:#666; font-size:8pt;">▶ For moderate persistent asthma or uncontrolled on Step 2</span>
</div>
</div>
<div class="step-row">
<div class="step-num">STEP 4</div>
<div class="step-body">
<b>Track 1:</b> Medium-dose ICS-formoterol MART (maintenance + as-needed reliever)<br/>
<b>Track 2:</b> <strong>Medium-dose ICS-LABA</strong> daily + as-needed SABA (2025: medium preferred over high-dose)<br/>
<em>Add-on options:</em> Tiotropium (LAMA) if ≥18 yrs; add LTRA; check for comorbidities<br/>
<span style="color:#666; font-size:8pt;">▶ Review diagnosis, adherence, technique, triggers before escalating to Step 5</span>
</div>
</div>
<div class="step-row">
<div class="step-num" style="background:#c0392b;">STEP 5</div>
<div class="step-body" style="background:#fdedec; border-color:#e8b4b0;">
<b>Refer to severe asthma specialist service.</b> Assess T2 phenotype + comorbidities + risk factors.<br/>
<b>Biologic add-on therapy (phenotype-guided):</b><br/>
• Blood eos ≥300 + FeNO ≥25 ppb → <strong>Anti-IL-5/5Rα:</strong> Mepolizumab 100 mg SC q4wk; Benralizumab 30 mg SC q4wk ×3 then q8wk; Reslizumab IV<br/>
• Allergic (sensitised + IgE 30–1500 IU/mL) → <strong>Omalizumab</strong> (anti-IgE) SC every 2–4 wk<br/>
• Blood eos ≥150 OR FeNO ≥25 → <strong>Dupilumab</strong> (anti-IL-4Rα) 200–300 mg SC q2wk<br/>
• All phenotypes including non-T2 → <strong>Tezepelumab</strong> (anti-TSLP) 210 mg SC q4wk<br/>
• Add-on tiotropium if not at Step 4<br/>
• <strong>Maintenance OCS: LAST RESORT only</strong> — assess adrenal suppression risk; lowest effective dose
</div>
</div>
</div>
<div class="sub">ICS Dose Reference (Adults)</div>
<table class="dt">
<tr><th>Dose Level</th><th>Beclomethasone (CFC equiv.)</th><th>Budesonide</th><th>Fluticasone Propionate</th><th>Ciclesonide</th></tr>
<tr><td><strong>Low</strong></td><td>≤200 mcg/day</td><td>200–400 mcg/day</td><td>100–250 mcg/day</td><td>80–160 mcg/day</td></tr>
<tr><td><strong>Medium</strong></td><td>201–800 mcg/day</td><td>400–800 mcg/day</td><td>250–500 mcg/day</td><td>160–320 mcg/day</td></tr>
<tr><td><strong>High</strong></td><td>>800 mcg/day</td><td>>800 mcg/day</td><td>>500 mcg/day</td><td>>320 mcg/day</td></tr>
</table>
<div class="sub">NOT Recommended (GINA 2025)</div>
<div class="alert-amber">⚠ Oral salbutamol, oral theophylline, inhaled fenoterol — increased adverse effects, avoid as routine treatment.<br/>
⚠ SABA monotherapy without ICS — associated with increased asthma mortality.<br/>
⚠ Maintenance OCS — only as last resort due to systemic side effects.</div>
<div class="sub">Non-Pharmacological Strategies (All Steps)</div>
<ul>
<li>Smoking cessation (patients AND household members)</li>
<li>Annual influenza vaccination; pneumococcal vaccination (all ages); COVID-19 and RSV vaccines</li>
<li>Regular physical activity and weight reduction (obesity worsens asthma)</li>
<li>Allergen avoidance and trigger control (multifaceted environmental control)</li>
<li>Allergen immunotherapy — sublingual HDM SLIT: consider if clinically relevant sensitisation and stable asthma</li>
<li>Treat comorbidities: rhinitis, GERD, obesity, obstructive sleep apnoea, anxiety/depression</li>
</ul>
<!-- ════════════ SECTION 5: DRUG REFERENCE ════════════ -->
<div class="sec page-break">5. PHARMACOTHERAPY REFERENCE</div>
<div class="sub">Bronchodilators</div>
<table class="dt">
<tr><th>Drug Class</th><th>Agents</th><th>Onset / Duration</th><th>Use in Asthma</th><th>Key Safety Notes</th></tr>
<tr>
<td><strong>SABA</strong><br/>(Short-acting β2-agonist)</td>
<td>Salbutamol (albuterol) 100–200 mcg MDI<br/>Terbutaline</td>
<td>3–5 min / 4–6 hr</td>
<td>As-needed reliever (Track 2); acute exacerbations. Use alone without ICS not recommended.</td>
<td>Tremor, tachycardia, hypokalaemia (high doses). Frequent use = poor control marker. Tachyphylaxis with regular use.</td>
</tr>
<tr>
<td><strong>LABA</strong><br/>(Long-acting β2-agonist)</td>
<td>Formoterol 6–12 mcg (fast onset)<br/>Salmeterol 50 mcg (slow onset)<br/>Vilanterol, indacaterol (24 hr)</td>
<td>Formoterol: 1–3 min / 12 hr<br/>Salmeterol: 20 min / 12 hr</td>
<td>Always in combination with ICS. Never as monotherapy in asthma. Prophylaxis of exercise-induced bronchospasm.</td>
<td>Do NOT use as monotherapy (increased asthma mortality risk). Numerical but non-significant mortality signal in African Americans with ICS/LAMA vs ICS/LABA.</td>
</tr>
<tr>
<td><strong>LAMA</strong><br/>(Long-acting muscarinic antagonist)</td>
<td>Tiotropium 2.5–5 mcg Respimat<br/>Umeclidinium</td>
<td>30 min / 24 hr</td>
<td>Add-on at Step 4–5 to ICS-LABA. Ages ≥18 (tiotropium approved for asthma).</td>
<td>Dry mouth; caution in BPH and narrow-angle glaucoma; urinary retention at high doses/elderly.</td>
</tr>
<tr>
<td><strong>Theophylline</strong></td>
<td>Oral; modified-release preferred</td>
<td>Variable / 12–24 hr</td>
<td>Rarely used; third-line add-on. Narrow therapeutic window. Inhibits phosphodiesterase → ↑cAMP.</td>
<td>Narrow TI (target serum level 5–15 mg/L). Nausea, arrhythmias, seizures in toxicity. Multiple drug interactions (CYP1A2/3A4). Monitor levels.</td>
</tr>
</table>
<div class="sub">Controller Medications</div>
<table class="dt">
<tr><th>Drug Class</th><th>Agents</th><th>Mechanism</th><th>Key Notes</th></tr>
<tr>
<td><strong>Inhaled Corticosteroids (ICS)</strong></td>
<td>Budesonide, Fluticasone propionate/furoate, Beclomethasone, Ciclesonide, Mometasone</td>
<td>Reduce airway inflammation; decrease BHR; prevent remodelling</td>
<td>Cornerstone of asthma treatment. Local SE: oral candidiasis (use spacer, rinse mouth), dysphonia. Systemic SE at high doses: adrenal suppression, osteoporosis, cataracts.</td>
</tr>
<tr>
<td><strong>LTRA</strong><br/>(Leukotriene Receptor Antagonist)</td>
<td>Montelukast 10 mg OD (adults)<br/>Zafirlukast</td>
<td>Block CysLT1 receptor; reduce bronchospasm, mucus, eosinophilic inflammation</td>
<td>Alternative/add-on at Steps 2–4. Useful for aspirin-exacerbated respiratory disease and exercise-induced asthma. FDA black box: neuropsychiatric events (anxiety, depression, suicidality) — monitor.</td>
</tr>
<tr>
<td><strong>Cromones</strong></td>
<td>Sodium cromoglicate<br/>Nedocromil</td>
<td>Mast cell stabiliser</td>
<td>Mild efficacy; primarily used in children as prophylaxis before exercise. Not recommended as primary controller in adults.</td>
</tr>
<tr>
<td><strong>Systemic Corticosteroids</strong></td>
<td>Prednisolone 40–50 mg PO OD<br/>Methylprednisolone IV 40–80 mg</td>
<td>Broad anti-inflammatory; suppress eosinophilic inflammation; reduce airway oedema</td>
<td>Acute exacerbations: 5–7 days (no taper needed if <2 weeks). Long-term: last resort only. Side effects: hyperglycaemia, hypertension, adrenal suppression, osteoporosis, cataracts, psychiatric effects.</td>
</tr>
</table>
<div class="sub">Biologic Agents (Step 5) — Summary</div>
<table class="dt">
<tr><th>Biologic</th><th>Target</th><th>Eligibility (key criteria)</th><th>Dose</th></tr>
<tr><td><strong>Omalizumab</strong></td><td>Anti-IgE</td><td>Allergic asthma; IgE 30–1500 IU/mL; sensitised to perennial allergen; ≥6 yrs</td><td>75–375 mg SC q2–4 wk (weight + IgE-based)</td></tr>
<tr><td><strong>Mepolizumab</strong></td><td>Anti-IL-5</td><td>Blood eos ≥150–300 cells/μL; ≥12 yrs (adults: ≥6 yrs)</td><td>100 mg SC q4wk</td></tr>
<tr><td><strong>Reslizumab</strong></td><td>Anti-IL-5</td><td>Blood eos ≥400 cells/μL; ≥18 yrs; weight-based dosing</td><td>3 mg/kg IV q4wk</td></tr>
<tr><td><strong>Benralizumab</strong></td><td>Anti-IL-5Rα</td><td>Blood eos ≥300 cells/μL; ≥12 yrs</td><td>30 mg SC q4wk ×3 doses, then q8wk</td></tr>
<tr><td><strong>Dupilumab</strong></td><td>Anti-IL-4Rα (blocks IL-4 + IL-13)</td><td>Blood eos ≥150 cells/μL OR FeNO ≥25 ppb; ≥12 yrs</td><td>200–400 mg SC q2wk</td></tr>
<tr><td><strong>Tezepelumab</strong></td><td>Anti-TSLP</td><td>Severe uncontrolled asthma; ALL phenotypes including non-T2; ≥12 yrs</td><td>210 mg SC q4wk</td></tr>
</table>
<!-- ════════════ SECTION 6: ACUTE EXACERBATION MANAGEMENT ════════════ -->
<div class="sec page-break">6. ACUTE EXACERBATION MANAGEMENT</div>
<div class="sub">Exacerbation Severity Classification</div>
<table class="dt">
<tr><th>Feature</th><th style="background:#d4830a;">Moderate</th><th style="background:#c0392b;">Severe</th><th style="background:#6d1f1f; color:white;">Impending Arrest</th></tr>
<tr><td><strong>FEV1 / PEF</strong></td><td>40–69% predicted</td><td><40%</td><td><25% or <em>unable to measure</em></td></tr>
<tr><td><strong>Symptoms</strong></td><td>SOB on exertion or talking</td><td>SOB at rest; can only speak in words</td><td>Severe SOB; too breathless to speak</td></tr>
<tr><td><strong>Wheeze</strong></td><td>Expiratory only</td><td>Inspiratory + expiratory</td><td><strong>Silent chest</strong> — absent wheeze is ominous</td></tr>
<tr><td><strong>Accessory muscles</strong></td><td>Some use</td><td>Marked + chest retraction</td><td>Paradoxical thoracoabdominal movement</td></tr>
<tr><td><strong>Mental status</strong></td><td>Normal</td><td>Agitation / confusion</td><td>Drowsy / depressed consciousness</td></tr>
<tr><td><strong>Respiratory rate</strong></td><td><28/min</td><td>>28/min</td><td>Variable; may be slow (exhaustion)</td></tr>
<tr><td><strong>Heart rate</strong></td><td><110 bpm</td><td>>110 bpm</td><td>Bradycardia (pre-arrest)</td></tr>
<tr><td><strong>SpO2 (room air)</strong></td><td>>91%</td><td><91%</td><td>Critical hypoxaemia</td></tr>
<tr><td><strong>Pulsus paradoxus</strong></td><td>Absent</td><td>>25 mmHg</td><td>—</td></tr>
<tr><td><strong>PaCO2</strong></td><td>Low (hyperventilating)</td><td>Low–normal</td><td><strong>Rising / normal PaCO2 = DANGER</strong> (fatigue)</td></tr>
</table>
<div class="alert-red">
SILENT CHEST + RISING PaCO2 + EXHAUSTION = IMMINENT RESPIRATORY ARREST
<div class="sub2">Intubate immediately — do not delay for further nebulisers or investigations</div>
</div>
<div class="sub">Emergency Treatment Protocol — Stepwise Escalation</div>
<div class="no-break">
<table style="width:100%; border-collapse:collapse; margin-bottom:6px;">
<tr>
<td style="width:33%; border:1pt solid #b0c8e8; vertical-align:top; padding:0;">
<div style="background:#d4830a; color:white; font-weight:bold; font-size:9pt; padding:5px 8px; text-align:center;">MODERATE (PEF 40–69%)</div>
<div style="padding:7px 9px; font-size:8.5pt; background:#fff8ee;">
<strong>1.</strong> O2 via nasal cannula/mask → SpO2 93–95%<br/>
<strong>2.</strong> Salbutamol 4–8 puffs MDI + spacer q20min × 3<br/>
<strong>3.</strong> Ipratropium 4–8 puffs q20min × 3 (or 0.5 mg nebs)<br/>
<strong>4.</strong> Prednisolone 40–60 mg PO<br/>
<strong>5.</strong> Reassess at 1 hour<br/><br/>
<em>Improving → observe 1–4 hr; discharge if PEF ≥70%</em>
</div>
</td>
<td style="width:33%; border:1pt solid #b0c8e8; vertical-align:top; padding:0;">
<div style="background:#c0392b; color:white; font-weight:bold; font-size:9pt; padding:5px 8px; text-align:center;">SEVERE (PEF <40%)</div>
<div style="padding:7px 9px; font-size:8.5pt; background:#fdedec;">
<strong>1.</strong> High-flow O2 → SpO2 93–95%<br/>
<strong>2.</strong> Salbutamol 2.5–5 mg via nebuliser q20min × 3<br/>
<strong>3.</strong> Ipratropium 0.5 mg nebulised q20min × 3<br/>
<strong>4.</strong> IV methylprednisolone 80 mg (or PO pred 60 mg)<br/>
<strong>5.</strong> IV access + IV fluids if dehydrated<br/>
<strong>6.</strong> CXR, ABG, FBC, electrolytes, ECG<br/>
<strong>7.</strong> IV MgSO4 2 g over 20 min (single dose)<br/>
<em>Not improving → ICU / consider intubation</em>
</div>
</td>
<td style="width:33%; border:1pt solid #b0c8e8; vertical-align:top; padding:0;">
<div style="background:#6d1f1f; color:white; font-weight:bold; font-size:9pt; padding:5px 8px; text-align:center;">IMPENDING ARREST</div>
<div style="padding:7px 9px; font-size:8.5pt; background:#f9e8e8;">
<strong>1.</strong> CALL ANAESTHETICS/ICU IMMEDIATELY<br/>
<strong>2.</strong> Prepare for intubation & mechanical ventilation<br/>
<strong>3.</strong> Continue nebulised SABA + ipratropium<br/>
<strong>4.</strong> IV methylprednisolone<br/>
<strong>5.</strong> IV MgSO4 2 g if not yet given<br/>
<strong>6.</strong> IV aminophylline (if not on theophylline):<br/>
Load 5 mg/kg over 20 min → 0.5–0.7 mg/kg/hr<br/>
<strong>7.</strong> Consider heliox 70:30<br/>
<em>ICU intubation if GCS declining or pH <7.2</em>
</div>
</td>
</tr>
</table>
</div>
<div class="sub">Acute Phase Drug Dosing Reference</div>
<table class="dt">
<tr><th>Drug</th><th>Adult Dose</th><th>Paediatric Dose</th><th>Route</th><th>Notes</th></tr>
<tr>
<td><strong>Salbutamol (albuterol)</strong></td>
<td>2.5–5 mg q20min × 3, then 2.5–10 mg/hr continuous; or 4–8 puffs MDI + spacer q20min</td>
<td>0.15 mg/kg (min 2.5 mg) q20min × 3 via nebuliser</td>
<td>Nebuliser or MDI + spacer</td>
<td>MDI + spacer as effective as nebuliser in moderate exacerbations. Monitor K+ (hypokalaemia at high doses).</td>
</tr>
<tr>
<td><strong>Ipratropium bromide</strong></td>
<td>0.5 mg q20min × 3, then q4–6h</td>
<td>250–500 mcg q20min × 3</td>
<td>Nebuliser</td>
<td>Add to SABA in severe/life-threatening; reduces hospitalisation rate. Less effective than SABA alone.</td>
</tr>
<tr>
<td><strong>Prednisolone</strong></td>
<td>40–60 mg PO OD × 5–7 days</td>
<td>1–2 mg/kg/day PO (max 40 mg) × 3–5 days</td>
<td>PO (preferred)</td>
<td>No taper needed for courses <2 weeks. Use IV methylprednisolone if unable to swallow.</td>
</tr>
<tr>
<td><strong>Methylprednisolone</strong></td>
<td>40–80 mg IV q6–8h</td>
<td>1 mg/kg IV q6h (max 60 mg)</td>
<td>IV</td>
<td>Same efficacy as PO if equivalent dose used; switch to PO once tolerating orals.</td>
</tr>
<tr>
<td><strong>Magnesium sulphate</strong></td>
<td>2 g IV over 20 min — single dose only</td>
<td>25–75 mg/kg IV over 20 min (max 2 g)</td>
<td>IV</td>
<td>Bronchodilation via ↓Ca2+ influx into smooth muscle. For severe/life-threatening. Monitor BP during infusion.</td>
</tr>
<tr>
<td><strong>IV Aminophylline</strong></td>
<td>5 mg/kg load over 20 min (omit if on theophylline) → 0.5–0.7 mg/kg/hr infusion</td>
<td>5 mg/kg load → 1 mg/kg/hr infusion; adjust by levels</td>
<td>IV</td>
<td>Last resort. Narrow TI. Target serum level 10–20 mg/L. Risk arrhythmias, nausea, seizures. Continuous cardiac monitoring essential.</td>
</tr>
<tr>
<td><strong>Oxygen</strong></td>
<td colspan="2">Target SpO2 93–95% in adults; 94–98% in children. Avoid excessive oxygen (>95%) — may suppress respiratory drive in CO2 retainers.</td>
<td>Nasal cannula / mask</td>
<td>High-flow only if needed for target saturation.</td>
</tr>
</table>
<div class="sub">Discharge Criteria & Aftercare</div>
<div class="alert-teal">
<strong>Discharge when ALL criteria met:</strong><br/>
• PEF ≥70% predicted / personal best sustained ≥60 minutes after last nebuliser<br/>
• SpO2 ≥94% on room air<br/>
• Able to walk without significant dyspnoea<br/>
• Oral prednisolone prescribed (5–7 day course)<br/>
• Inhaler technique reviewed and corrected<br/>
• Written asthma action plan given<br/>
• Follow-up appointment within 2–7 days confirmed<br/>
• Triggers identified and discussed
</div>
<!-- ════════════ SECTION 7: ASTHMA ACTION PLAN ════════════ -->
<div class="sec page-break">7. WRITTEN ASTHMA ACTION PLAN (TRAFFIC LIGHT SYSTEM)</div>
<table style="width:100%; border-collapse:collapse; margin-bottom:8px;">
<tr>
<td style="width:33%; vertical-align:top; border:1pt solid #ccc; padding:0;">
<div class="tl-green">● GREEN ZONE — WELL CONTROLLED</div>
<div style="padding:8px 10px; background:#f0fdf4; font-size:8.5pt; line-height:1.6;">
<strong>PEF ≥80% personal best</strong><br/>
• Few/no daytime symptoms<br/>
• No nighttime waking<br/>
• Activity not limited<br/>
• SABA needed ≤2×/week<br/><br/>
<strong>Action:</strong> Continue usual medications.<br/>
Check inhaler technique regularly.
</div>
</td>
<td style="width:33%; vertical-align:top; border:1pt solid #ccc; padding:0;">
<div class="tl-yellow">● YELLOW ZONE — CAUTION</div>
<div style="padding:8px 10px; background:#fffbf0; font-size:8.5pt; line-height:1.6;">
<strong>PEF 50–79% personal best</strong><br/>
• Increasing symptoms<br/>
• Nighttime waking<br/>
• Activity somewhat limited<br/>
• SABA needed >2×/week<br/><br/>
<strong>Action:</strong> Increase reliever use.<br/>
Consider adding OCS (40–60 mg).<br/>
Contact GP/clinic same day.
</div>
</td>
<td style="width:33%; vertical-align:top; border:1pt solid #ccc; padding:0;">
<div class="tl-red">● RED ZONE — EMERGENCY</div>
<div style="padding:8px 10px; background:#fff5f5; font-size:8.5pt; line-height:1.6;">
<strong>PEF <50% personal best</strong><br/>
• SOB at rest<br/>
• Very limited activity<br/>
• No improvement with SABA<br/>
• Lips/fingernails turning blue<br/><br/>
<strong>Action: CALL 999/112 NOW.</strong><br/>
Take reliever every 20 min while waiting.<br/>
Start oral prednisolone immediately.
</div>
</td>
</tr>
</table>
<!-- ════════════ SECTION 8: SPECIAL POPULATIONS ════════════ -->
<div class="sec">8. SPECIAL POPULATIONS</div>
<div class="sub">Children <5 Years (GINA 2025 — Updated Guidance)</div>
<div class="alert-blue">
<strong>Pragmatic diagnosis criteria (all 3 required):</strong><br/>
1. Recurrent acute wheezing episodes (with or without interval asthma-like symptoms)<br/>
2. Alternative diagnosis is unlikely<br/>
3. Response to asthma treatment: symptom improvement within minutes of SABA (in healthcare setting)
</div>
<table class="dt">
<tr><th>Step</th><th>Treatment</th></tr>
<tr><td>Step 1 (mild infrequent)</td><td>As-needed SABA only (pMDI + spacer ± facemask)</td></tr>
<tr><td>Step 2 (mild persistent)</td><td>Daily low-dose ICS + as-needed SABA</td></tr>
<tr><td>Step 3 (uncontrolled on Step 2)</td><td>Double daily ICS dose + as-needed SABA; OR add LTRA</td></tr>
<tr><td>Reassess at 2–3 months</td><td>If no improvement → review diagnosis; reconsider alternative causes</td></tr>
</table>
<div class="sub">Asthma in Pregnancy</div>
<table class="dt">
<tr><th>Aspect</th><th>Guidance</th></tr>
<tr><td>Prevalence</td><td>~4% of pregnant women; 1/3 experience exacerbations during pregnancy</td></tr>
<tr><td>Risks of poor control</td><td>Preterm labour, low birth weight, perinatal death, pre-eclampsia, IUGR</td></tr>
<tr><td>Lung function</td><td>FEV1 and PEF unchanged in pregnancy; tidal volume increases (progesterone effect) but not FVC</td></tr>
<tr><td>Controller therapy</td><td>CONTINUE all ICS — risk of uncontrolled asthma greatly exceeds ICS risk. Budesonide has most safety data in pregnancy.</td></tr>
<tr><td>SABA</td><td>Safe to use as reliever; salbutamol is drug of choice</td></tr>
<tr><td>OCS</td><td>Use for acute exacerbations if needed; avoid in first trimester if possible; lowest effective dose</td></tr>
<tr><td>Montelukast</td><td>Continue if needed for control; reassuring safety data</td></tr>
<tr><td>Biologics</td><td>Limited safety data; individualise — generally continue if well-controlled on biologic</td></tr>
<tr><td>Monitoring</td><td>PEF twice daily; fetal well-being assessment; spirometry at each trimester if moderate-severe</td></tr>
</table>
<div class="sub">Occupational Asthma</div>
<ul>
<li>Remove from offending exposure early — may result in complete resolution if <2 years of exposure</li>
<li>Document sensitisation: skin test or specific IgE to occupational agent</li>
<li>Common causes: isocyanates, latex, flour, wood dust, laboratory animals, welding fumes</li>
<li>Same pharmacological management as other asthma; step-down after workplace removal</li>
</ul>
<!-- ════════════ SECTION 9: DIAGNOSTIC FLOWCHART ════════════ -->
<div class="sec page-break">9. SUMMARY DIAGNOSTIC & MANAGEMENT FLOWCHART</div>
<div style="max-width:90%; margin:0 auto;">
<div class="fc-box">Patient presents with respiratory symptoms</div>
<div class="fc-arrow">↓</div>
<div class="fc-box">Check: ≥2 of wheeze / SOB / chest tightness / cough<br/>(recurrent, variable, worse at night or with triggers)</div>
<div class="fc-arrow">↓</div>
<div class="fc-decision">Perform spirometry + BDR test<br/>(or PEF variability / BPT / exercise test)</div>
<div class="fc-arrow">↓</div>
<table style="width:100%; border-collapse:collapse; margin:4px 0;">
<tr>
<td style="width:50%; padding:4px; vertical-align:top;">
<div style="background:#eafaf1; border:1.2pt solid #1a7a4a; border-radius:3px; padding:7px; text-align:center; font-size:8.5pt;">
<strong style="color:#1a7a4a;">FEV1/FVC <0.70 + BDR positive ≥12% & 200 mL</strong><br/>
▼<br/><strong>ASTHMA CONFIRMED</strong>
</div>
</td>
<td style="width:50%; padding:4px; vertical-align:top;">
<div style="background:#fff8ee; border:1.2pt solid #d4830a; border-radius:3px; padding:7px; text-align:center; font-size:8.5pt;">
<strong style="color:#d4830a;">Spirometry normal but symptoms present</strong><br/>
▼<br/>BPT / PEF variability / exercise test / therapeutic trial<br/>
→ If positive: <strong>ASTHMA CONFIRMED</strong><br/>
→ If negative: <strong>reconsider differential diagnosis</strong>
</div>
</td>
</tr>
</table>
<div class="fc-arrow">↓</div>
<div class="fc-box">Classify severity (intermittent / mild / moderate / severe persistent)<br/>
Check T2 biomarkers: blood eosinophils + FeNO (± IgE)</div>
<div class="fc-arrow">↓</div>
<div class="fc-box">Exclude differentials: COPD, VCD, cardiac failure, ABPA, tumour</div>
<div class="fc-arrow">↓</div>
<div style="background:#0d3b66; color:white; padding:8px 14px; border-radius:4px; text-align:center; font-size:9pt; font-weight:bold; margin:4px 0;">
INITIATE STEPWISE TREATMENT (GINA 2025 Steps 1→5)<br/>
+ Non-pharmacological measures + Inhaler technique education<br/>
+ Written asthma action plan + Trigger avoidance
</div>
<div class="fc-arrow">↓</div>
<div class="fc-box">Review control at every visit (ACT / ACQ / PEF / symptom diary)<br/>
Reassess every 1–6 months (more frequent if uncontrolled)</div>
<div class="fc-arrow">↓</div>
<table style="width:100%; border-collapse:collapse; margin:4px 0;">
<tr>
<td style="width:33%; padding:4px; vertical-align:top;">
<div style="background:#eafaf1; border:1.2pt solid #1a7a4a; border-radius:3px; padding:7px; text-align:center; font-size:8.5pt;">
<strong style="color:#1a7a4a;">Well Controlled</strong><br/>
PEF ≥80%, ACT ≥20<br/>▼<br/>Maintain lowest step<br/>Step DOWN if stable ≥3 months
</div>
</td>
<td style="width:33%; padding:4px; vertical-align:top;">
<div style="background:#fff8ee; border:1.2pt solid #d4830a; border-radius:3px; padding:7px; text-align:center; font-size:8.5pt;">
<strong style="color:#d4830a;">Not Well Controlled</strong><br/>
PEF 60–80%, ACT 16–19<br/>▼<br/>Step UP 1 step<br/>Review adherence + technique<br/>Follow-up 2–6 weeks
</div>
</td>
<td style="width:33%; padding:4px; vertical-align:top;">
<div style="background:#fdedec; border:1.2pt solid #c0392b; border-radius:3px; padding:7px; text-align:center; font-size:8.5pt;">
<strong style="color:#c0392b;">Very Poorly Controlled</strong><br/>
PEF <60%, ACT ≤15<br/>▼<br/>Step UP 1–2 steps<br/>Short OCS course<br/>Follow-up 2 weeks
</div>
</td>
</tr>
</table>
</div>
<!-- REFERENCES -->
<hr/>
<div class="sub">References & Sources</div>
<p class="fn">[1] Global Initiative for Asthma (GINA). <em>GINA Strategy Report 2025</em>. ginasthma.org. Published November 2025.</p>
<p class="fn">[2] Harrison TR et al. <em>Harrison's Principles of Internal Medicine</em>, 22nd ed. McGraw Hill Medical, 2025. Chapter 298: Asthma.</p>
<p class="fn">[3] Dunphy LM et al. <em>Washington Manual of Medical Therapeutics</em>. Wolters Kluwer. Chapter 9: Pulmonary Disease — Asthma.</p>
<p class="fn">[4] Broaddus VC et al. <em>Murray & Nadel's Textbook of Respiratory Medicine</em>, 7th ed. Elsevier. Chapter 35: Asthma.</p>
<p class="fn">[5] Rajvanshi N, Kumar P, Goyal JP. Global Initiative for Asthma Guidelines 2024: An Update. <em>Indian Pediatr</em>. 2024 Aug 15. PMID 39051318.</p>
<p class="fn">[6] Vial PA, Ferrés M, Vial C. Hantavirus in humans: a review of clinical aspects and management. <em>Lancet Infect Dis</em>. 2023 Sep. PMID 37105214.</p>
<p class="fn">[7] BTS/NICE/SIGN. British Guideline on the Management of Asthma. 2023 update. sign.ac.uk.</p>
</body>
</html>
cp /home/daytona/workspace/asthma-reference/asthma_reference.html /tmp/asthma_reference.html && libreoffice --headless --convert-to pdf --outdir /tmp/ /tmp/asthma_reference.html 2>&1 && cp /tmp/asthma_reference.pdf /home/daytona/workspace/asthma-reference/Asthma_Clinical_Reference.pdf && ls -lh /home/daytona/workspace/asthma-reference/Asthma_Clinical_Reference.pdf
python3 -c " from pypdf import PdfReader r = PdfReader('/home/daytona/workspace/asthma-reference/Asthma_Clinical_Reference.pdf') print('Pages:', len(r.pages)) print('Encrypted:', r.is_encrypted) print('Page 1 snippet:', r.pages[0].extract_text()[:200]) "
Asthma Clinical Reference
PDF Document · PDF
| Section | Content |
|---|---|
| 1. Definition & Pathophysiology | T2 vs non-T2 inflammation, triggers table |
| 2. Diagnostic Algorithm | 5-step flowchart: symptoms → spirometry/BDR → T2 biomarkers → severity classification → differential diagnosis |
| 3. Control Assessment | Well/Not well/Very poorly controlled criteria (ACT, ACQ, PEF, symptoms) + risk factors for severe exacerbation |
| 4. Stepwise Management | GINA 2025 Two-Track system (Steps 1–5), MART explained, ICS dose reference, what NOT to use |
| 5. Pharmacotherapy Reference | SABA, LABA, LAMA, ICS, LTRA, OCS, 6 biologic agents with eligibility + dosing |
| 6. Acute Exacerbation | Severity classification table, 3-column escalation protocol (Moderate / Severe / Impending Arrest), drug dosing, discharge criteria |
| 7. Written Action Plan | Traffic light (Green/Yellow/Red) with PEF thresholds and patient actions |
| 8. Special Populations | Children <5 yrs (GINA 2025 criteria), pregnancy management, occupational asthma |
| 9. Flowchart | Full diagnostic + management visual algorithm |
try again