nipah disease

Reading File
Searching the Web

Nipah virus disease 2025 2026 outbreak update

Finding Sources
Searching PubMed

Nipah virus infection

Reading File
Reading File
Reading File
I now have comprehensive information from all three textbooks plus current news. Here is a full clinical overview of Nipah disease:

Nipah Virus Disease (NiV)

Classification & Discovery

Nipah virus is a zoonotic RNA virus belonging to the family Paramyxoviridae, genus Henipavirus (sometimes spelled Henipavirus). It is closely related to Hendra virus (HeV). The name comes from the Malaysian village of Sungai Nipah, where a person from whom the virus was first isolated died in 1999. Both NiV and HeV are classified as Biosafety Level 4 (BSL-4) pathogens due to their high mortality, wide host range, and ability to cross species barriers.
  • Jawetz Melnick & Adelberg's Medical Microbiology, 28e
  • Bradley and Daroff's Neurology in Clinical Practice

Reservoir & Transmission

The natural reservoir is the fruit bat (flying fox, Pteropus spp.), which carries the virus without getting sick. Bats are found across a wide geographic range from the western Pacific to the eastern coast of Africa.
Transmission to humans occurs via:
  1. Contact with infected animals - pigs were the amplifying host in the original Malaysia/Singapore outbreak (1998-1999)
  2. Contaminated food - particularly raw date palm sap consumed in Bangladesh/India outbreaks, when bats contaminate the sap during collection
  3. Human-to-human transmission - via respiratory droplets, seen especially in Bangladesh and India (West Bengal); this mode distinguishes the Bangladesh/India strain from the Malaysian strain
  4. Nosocomial (healthcare-associated) spread - has been documented, especially in West Bengal outbreaks
Ecological factors driving emergence include deforestation, expanding agriculture, and keeping livestock near bat habitats.
  • Bradley and Daroff's Neurology in Clinical Practice, p. 1684

Epidemiology

OutbreakLocationYear(s)Key Features
First recognizedMalaysia & Singapore1998-1999265 cases, 105 deaths; pigs as amplifiers; 1.1 million pigs culled
Bangladesh/West BengalAnnual since 20012001-presentDate palm sap contamination; human-to-human transmission
Kerala, India2018, 2021, 2023MultipleSurveillance-limited clusters
West Bengal, India2026Jan 20262 confirmed healthcare workers in Barasat; WHO risk: moderate
As of 2015, Bangladesh had recorded 13 annual outbreaks, 261 laboratory-confirmed cases, and 199 deaths.
Current situation (2026): In January 2026, India notified WHO of two laboratory-confirmed NiV cases in healthcare workers in West Bengal. Both cases (nurses) stabilized under surveillance. The CDC and multiple Asian countries heightened monitoring. WHO assessed the public health risk as moderate at the sub-national level.

Clinical Features

NiV causes a wide spectrum of illness:
  • Incubation period: 4-14 days (up to 45 days reported)
  • Prodrome: Fever, headache, myalgia, sore throat, vomiting
  • Neurological (encephalitic form): Drowsiness, altered consciousness, stupor, coma, seizures, focal neurological signs, stroke
  • Respiratory form: Prominent in Bangladesh/India strains - atypical pneumonia, respiratory distress
  • Late-onset/relapsed encephalitis: Can occur months to years after initial illness (longest interval: 11 years); presents with fever, headache, seizures, and confluent cortical MRI lesions rather than the discrete hyperintense spots of acute disease
Mortality rates:
  • Malaysia strain: ~40%
  • Bangladesh/India strains: 75-94%
  • Late-onset/relapsed encephalitis: ~18% (lower than acute disease)

Pathophysiology

NiV preferentially infects endothelial cells, causing a systemic vasculitis of small arteries and capillaries, especially in the brain. This leads to:
  • Focal ischemia and microinfarcts
  • Possible CNS hemorrhage
  • MRI: Small disseminated discrete hyperintense lesions in subcortical and deep white matter (acute disease)
  • CSF: Normal or mild pleocytosis
  • 21% of Malaysian survivors had persistent neurological or neuropsychiatric sequelae
  • Bradley and Daroff's Neurology in Clinical Practice, p. 1684

Diagnosis

MethodSampleNotes
Anti-NiV IgM antibodySerum or CSFPeaks ~day 12 of illness
Anti-NiV IgG antibodySerum or CSFUseful later in disease
RT-PCR (viral RNA)Serum, CSF, urine, throat swabMethod of choice for acute diagnosis
Virus isolationBlood, CSF, respiratory secretionsBSL-4 required
Early diagnosis is difficult - a major challenge acknowledged by WHO.

Treatment

No specific antiviral therapy or approved vaccine exists as of 2026. Management is supportive:
  • Intensive supportive care
  • Seizure management
  • Respiratory support as needed
  • Strict infection control to prevent nosocomial spread
Ribavirin has been used empirically with limited evidence. Monoclonal antibodies (e.g., m102.4) are under investigation. The WHO January 2026 outbreak notice explicitly notes the lack of specific drugs or vaccines.

Prevention & Control

  • Avoid contact with sick animals (pigs, bats) and consumption of raw date palm sap
  • Strict barrier nursing and personal protective equipment for healthcare workers
  • Contact tracing and surveillance around confirmed cases
  • India has established NiV surveillance, Rapid Response Teams (RRTs), and rapid testing capacity
  • No licensed human vaccine (several candidates in trials, including subunit and mRNA platforms)

Why It Matters Globally

Nipah is listed on the WHO's priority pathogen list for R&D preparedness due to:
  • High case-fatality rate
  • Limited human-to-human transmission (currently) - but with pandemic potential
  • No approved treatments or vaccines
  • Broad geographic range of the bat reservoir
  • Recurrent spillover events in South Asia
Recent 2025-2026 reviews in Nature Microbiology and Frontiers in Medicine (PMID 39417975) highlight the need for a One Health approach - integrating human, animal, and environmental health surveillance to detect and interrupt spillover events early.

Sources: Bradley and Daroff's Neurology in Clinical Practice | Jawetz Melnick & Adelberg's Medical Microbiology, 28e | Park's Textbook of Preventive and Social Medicine | WHO Disease Outbreak News, Jan 2026 | PubMed reviews (PMIDs 39417975, 38399954, 40437297)

Create a clinical reference PDF with diagnosis criteria and treatment protocols

Reading File
Running Command

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

Running Command

mkdir -p /home/daytona/workspace/nipah-reference && python3 -c "import reportlab; print('reportlab OK')" && python3 -c "from reportlab.platypus import SimpleDocTemplate; print('platypus OK')"

Writing File

~/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 &amp; 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 &lt;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()
Running Command

cd /home/daytona/workspace/nipah-reference && python3 generate_pdf.py

Running Command

ls -lh /home/daytona/workspace/nipah-reference/Nipah_Clinical_Reference.pdf

The PDF was generated successfully. Here it is:

Nipah Clinical Reference

PDF Document · PDF


The document is a 7-section clinical reference (A4, 32 KB) with a branded header/footer on every page. Here's what's inside:
SectionContents
1. Overview & EpidemiologyOutbreak history table (1998–2026), reservoir, all transmission routes
2. Clinical FeaturesDisease timeline (incubation → sequelae), signs/symptoms by system, pathophysiology
3. Diagnosis CriteriaWHO-style case definitions (Suspect / Probable / Confirmed), full lab investigation table with priority tiers, differential diagnosis
4. Treatment ProtocolsSupportive care priority table (Immediate/High/Moderate), investigational agents (Ribavirin, m102.4, Remdesivir, Favipiravir) with evidence levels, dosing quick-reference card
5. Infection ControlFull PPE protocol, contact tracing categories, IHR notification requirements
6. Prognosis & Follow-UpPrognostic 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
Sources cited: Bradley & Daroff's Neurology, Jawetz Medical Microbiology, Park's Preventive Medicine, WHO 2026 outbreak notice, and 4 recent PubMed reviews (2024-2025).

cant open it

Running Command

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]) "

Running Command

which libreoffice wkhtmltopdf pandoc 2>/dev/null; python3 -c "import weasyprint; print('weasyprint ok')" 2>/dev/null || echo "weasyprint not available"

Writing File

~/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 &amp; Treatment Protocols</div>
  <div class="bsl-badge">&#9888; BSL-4 PATHOGEN</div>
</div>
<div class="cover-meta">
  Classification: Paramyxoviridae, Genus Henipavirus &nbsp;|&nbsp;
  WHO Priority Pathogen &nbsp;|&nbsp;
  Updated: June 2026
</div>

<div class="warn-box">
  &#9888; 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&amp;D Blueprint)</td></tr>
  <tr><td>Sources:</td><td>Bradley &amp; Daroff's Neurology | Jawetz Melnick &amp; Adelberg's Medical Microbiology | Park's Preventive Medicine | WHO 2026 | PubMed 2024–2025</td></tr>
</table>

<!-- ═══════════════════ SECTION 1 ═══════════════════ -->
<div class="section-hdr">1. &nbsp; OVERVIEW &amp; 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&amp;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 &amp; 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 &amp; 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. &nbsp; CLINICAL FEATURES</div>

<div class="sub-hdr">Disease Spectrum &amp; 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 &amp; 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. &nbsp; 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/>
        &bull; Epidemiological link to confirmed/probable case<br/>
        &bull; Exposure to <em>Pteropus</em> bats or infected animals<br/>
        &bull; Consumption of raw date palm sap in endemic area<br/>
        &bull; 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/>
        &bull; IgM antibody detected in serum or CSF<br/>
        &bull; Clinical deterioration without alternative diagnosis<br/>
        &bull; Epidemiological link to a confirmed case<br/>
        &bull; 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/>
        &bull; <strong>RT-PCR positive</strong> for NiV RNA (serum, CSF, urine, NPS)<br/>
        &bull; <strong>Virus isolation</strong> from clinical specimen (BSL-4 lab)<br/>
        &bull; <strong>IgG seroconversion</strong> (&ge;4&times; rise in paired sera)<br/>
        &bull; <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>&ge;4&times; 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. &nbsp; 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 &nbsp; 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 &amp; 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 &amp; Monitoring</td>
    <td>Insert 2&times; 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 &gt;39.5°C; avoid NSAIDs (thrombocytopenia risk)</td>
  </tr>
  <tr>
    <td class="prio-high">HIGH</td>
    <td>Airway &amp; Ventilation</td>
    <td>Early intubation threshold low for GCS &le;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 &nbsp; 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 &times;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 (&le;150 mg PE/min)</td>
    <td>15–20 mg PE/kg IV (&le;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 &gt;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 &ge;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. &nbsp; INFECTION CONTROL &amp; 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 &amp; 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 &times;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 &times;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 (&ge;2 linked cases)</strong> → Activate Rapid Response Team (RRT); State/national Emergency Operations Centre notification
</div>

<!-- ═══════════════════ SECTION 6 ═══════════════════ -->
<div class="section-hdr">6. &nbsp; PROGNOSIS &amp; 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. &nbsp; QUICK REFERENCE CARD</div>

<div class="two-col">
  <div class="col-left">
    <div class="qr-box">
      <div class="qr-box-hdr amber-hdr">&#9888; SUSPECT NIPAH IF:</div>
      <div class="qr-box-body amber-body">
        &bull; Encephalitis OR pneumonia of unknown aetiology<br/>
        &bull; Epidemiological link to bat or pig exposure<br/>
        &bull; Travel/residence in endemic area (Kerala, West Bengal, Bangladesh)<br/>
        &bull; Cluster of unexplained encephalitis cases<br/>
        &bull; Healthcare worker with febrile encephalitis after caring for undiagnosed case<br/>
        &bull; Consumption of raw date palm sap<br/>
        &bull; 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">&#9654; 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 &lt;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 &amp; 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 &amp; 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>
Running Command

libreoffice --headless --convert-to pdf --outdir /home/daytona/workspace/nipah-reference/ /home/daytona/workspace/nipah-reference/nipah_reference.html 2>&1

Running Command

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

That worked — 259 KB, generated via LibreOffice from HTML. Here's your new file:

Nipah Clinical Reference v2

PDF Document · PDF

This version was built with LibreOffice (from HTML source), so it should open in any PDF viewer — Adobe, browser built-in, Preview on Mac, or any mobile PDF app. The content is the same full 7-section reference:
  • Case definitions (Suspect / Probable / Confirmed)
  • Lab investigations with priority tiers
  • Differential diagnosis table
  • Full supportive care protocol (priority-colour-coded)
  • Investigational agents + dosing quick-reference
  • PPE / contact tracing / IHR notification
  • Prognosis, follow-up schedule, and quick-reference card
If it still won't open, let me know what device/app you're using and I can export it in a different format (e.g. DOCX or plain HTML).

nope...i use adobe in laptop

Running Command

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]) "

Running Command

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) "

Running Command

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) "

Try this one - it's been re-processed with proper metadata:

Nipah Clinical Reference FINAL

PDF Document · PDF

If that still won't open in Adobe, here's what to try:
  1. Right-click the link → "Save link as..." → save to your Desktop → then open with Adobe
  2. If Adobe shows an error message, please tell me exactly what it says (e.g. "file is damaged", "not supported", "cannot open")
The file is valid (8 pages, 84 KB, not encrypted, not password-protected) — so if it's not opening, the issue is likely the browser blocking the download rather than the PDF itself being corrupt. The right-click save method usually gets around that.

hanta virus

Finding Sources
Searching PubMed

hantavirus infection

Searching the Web

hantavirus outbreak 2025 2026 update

Reading File
Reading File
Reading File
Reading File
Loading Image
Comprehensive data gathered. Here is the full clinical overview:

Hantavirus

Classification & Virology

Hantavirus is a negative-sense RNA, helical, enveloped virus of the family Hantaviridae (previously classified under Bunyaviridae). It is the only bunyavirus that is not arthropod-transmitted - transmission is exclusively through rodents. Different hantavirus species cause distinct clinical syndromes depending on geography.
  • Sherris & Ryan's Medical Microbiology, 8th ed.

Two Major Disease Syndromes

FeatureHPS (Hantavirus Pulmonary Syndrome)HFRS (Hemorrhagic Fever with Renal Syndrome)
Also calledHCPS (Hantavirus Cardiopulmonary Syndrome)Korean hemorrhagic fever, epidemic hemorrhagic fever, nephropathia epidemica
GeographyAmericas (North, Central, South)Asia, Europe (worldwide via Seoul virus)
Target organLungs (vascular endothelium)Kidneys
CFR30-40% (Sin Nombre); up to 46% in Native populations5-15% (Hantaan); <1% (Puumala, Seoul)
Key virusesSin Nombre, Andes, Choclo, Bayou, Black Creek CanalHantaan, Dobrava, Seoul, Saaremaa, Puumala

Viruses, Reservoirs & Geography

Geographic distribution of New World Hantaviruses and their rodent reservoirs
Pathogenic strains shown in red. Each virus has a unique rodent reservoir host.
Key Old World species:
  • Hantaan - Apodemus field mice - Eastern Asia (China, Korea, Russia) - causes severe HFRS
  • Dobrava - Apodemus mice - Balkans - severe HFRS
  • Seoul - Brown/Norway rats (Rattus norvegicus) - worldwide (including US ratteries, 2017 outbreak in 31 states)
  • Puumala - Bank voles - Scandinavia/Western Europe - causes nephropathia epidemica (mild)
  • Saaremaa - Apodemus agrarius - Central/Northern Europe - moderate HFRS
Key New World species:
  • Sin Nombre - Deer mouse (Peromyscus maniculatus) - Western/Central US (>800 cases total, reported in 32 states)
  • Andes - Oligoryzomys longicaudatus - Argentina, Chile - the only hantavirus with documented human-to-human transmission
  • Choclo - Panama; Bayou - Louisiana/Texas; Black Creek Canal - Florida
  • Jawetz Melnick & Adelberg's Medical Microbiology, 28e | Red Book 2021

Transmission

  • Primary route: Inhalation of aerosolized rodent urine, droppings, or saliva - the most important route
  • Rodents are asymptomatically infected with lifelong chronic viruria - they continuously shed virus
  • Direct contact with infected rodent or its excreta; rodent bites (less common)
  • Contamination of broken skin
  • Andes virus exception: person-to-person transmission documented during outbreaks in South America - and now confirmed in the 2026 MV Hondius cruise ship outbreak (see below)
High-risk activities: Cleaning rodent-infested structures, entering rarely-used buildings, farm work, camping/sleeping in rodent-infested shelters (e.g. 2012 Yosemite National Park outbreak), handling trapped rodents.
Approximately 10% of deer mice in the US carry Sin Nombre virus.

Clinical Features

HPS / HCPS (Americas)

PhaseDurationFeatures
Incubation1-6 weeksAsymptomatic
Prodrome3-7 daysFever, chills, headache, severe myalgia, nausea, vomiting, diarrhea, dizziness, abdominal pain. No respiratory symptoms yet.
Cardiopulmonary phaseHours-daysAbrupt 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 phase2-4 daysOnset of diuresis heralds clinical improvement. Resolution usually rapid once this phase begins.
Poor prognostic signs: Persistent hypotension, marked haemoconcentration, cardiac index <2 L/min/m², lactic acidosis with lactate >4 mmol/L.

HFRS (Old World)

Five clinical phases: febrile → hypotensive → oliguric → diuretic → convalescent
  • Febrile phase: Headache, back/abdominal pain, fever, chills, flushing of face, redness of eyes, blurred vision, petechiae
  • Hypotensive phase: Low blood pressure, acute shock, vascular leakage
  • Oliguric phase: Acute renal failure - the hallmark; may require dialysis
  • Diuretic/Convalescent: Recovery takes weeks to months
  • Severity depends on virus strain (Hantaan/Dobrava most severe; Puumala mildest)

Pathophysiology

Hantavirus targets vascular endothelial cells - but without direct cytopathic destruction. Disease is immune-mediated: CD8+ T cells and capillary leak syndrome drive the tissue damage. In HPS, functional impairment of pulmonary vascular endothelium causes capillary leak → non-cardiogenic pulmonary oedema. Viral antigens are found in endothelial cells and macrophages of lung, heart, spleen, and lymph nodes.

Diagnosis

TestNotes
RT-PCR (viral RNA)Method of choice; serum, whole blood, or tissue
IgM ELISADiagnoses acute infection; usually positive at presentation with HPS
IgG paired sera≥4× rise between acute and convalescent sera is diagnostic
ImmunohistochemistryDetection of viral antigen in fixed tissues (post-mortem or biopsy)
Virus isolationRequires BSL-3/4 containment; not routine
CXR / CT chestBilateral interstitial infiltrates, pleural effusions (HPS)
Blood countThrombocytopenia, haemoconcentration (high haematocrit), left-shifted neutrophilia with immunoblasts on smear
The classic peripheral blood triad in HPS: thrombocytopenia + haemoconcentration + immunoblasts (activated lymphocytes).

Treatment

No approved specific antiviral therapy for HPS. Management is supportive:
  • ICU admission - mandatory for any cardiopulmonary phase
  • Oxygen supplementation - escalate to mechanical ventilation early (threshold: GCS decline or worsening hypoxaemia)
  • Lung-protective ventilation for ARDS (low tidal volume 6 mL/kg IBW)
  • Fluid management - careful balance; both hypovolaemia (shock) and overload (worsens pulmonary oedema) are dangerous
  • Vasopressors - noradrenaline for haemodynamic support
  • ECMO - used in severe cases with refractory shock; some survival benefit reported at specialist centres
  • Ribavirin - IV ribavirin has shown benefit in HFRS if given early; evidence in HPS is weaker and inconsistent. Not standard of care for HPS.
  • Dialysis - required in severe HFRS with acute renal failure/fluid overload
  • Avoid platelet transfusions unless active bleeding (thrombocytopenia is immune-mediated, not consumptive)

Prevention

  • Rodent control - the primary preventive measure
  • Ventilate closed spaces before entering; wet-mop rather than sweep or vacuum rodent droppings (to avoid aerosolization)
  • Wear N95 mask and gloves when cleaning rodent-infested areas
  • Seal home entry points; store food in rodent-proof containers
  • No licensed human vaccine in most countries (China has a bivalent vaccine for Hantaan/Seoul)
  • Campers: avoid sleeping on bare ground; use tents with sealed floors

2026 MV Hondius Outbreak - Current Event

In April-May 2026, a significant outbreak of Andes-strain hantavirus occurred aboard the Dutch cruise ship MV Hondius, which had been operating off West Africa (Cape Verde). This is notable because:
  • Andes virus is the only hantavirus known to spread person-to-person (in addition to rodent-to-human transmission)
  • Multiple passengers and crew were infected; at least one confirmed case in a Swiss passenger who disembarked before the outbreak was recognized
  • The ship was evacuated in Tenerife, Spain on May 10, 2026
  • US passengers were transported to a military base in Nebraska for quarantine and monitoring
  • Authorities raced to locate ~40 passengers who had already disembarked
  • WHO and CDC issued guidance; multiple Asian countries heightened airport screening
This is one of the first documented shipboard outbreaks of hantavirus and highlights the unique human-to-human transmission potential of the Andes strain.

Sources: Harrison's Principles of Internal Medicine 22e | Jawetz Melnick & Adelberg's Medical Microbiology 28e | Sherris & Ryan's Medical Microbiology 8e | Red Book 2021 | Lancet Infect Dis 2023 (PMID 37105214) | Front Microbiol 2023 (PMID 37901807) | WHO / CDC / Fox News (MV Hondius outbreak, May 2026)

diagnostic and management algorithm protocol of bronchial asthma

Reading File
Finding Sources
Finding Sources
Searching PubMed

asthma diagnosis management guidelines

Finding Sources
Searching the Web

GINA 2024 2025 asthma diagnosis management guidelines stepwise treatment

Reading File
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading Web Page

https://ginasthma.org/wp-content/uploads/2025/11/GINA-Summar…

Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
I now have rich data from Harrison's, Washington Manual, Murray & Nadel's, and GINA 2025. Let me compile the comprehensive protocol:

Bronchial Asthma: Diagnostic & Management Algorithm Protocol

Definition

Asthma is a chronic inflammatory airway disease characterised by variable and reversible airflow obstruction, bronchial hyperresponsiveness, and airway remodelling (subepithelial fibrosis, angiogenesis, extracellular matrix deposition). Obstruction results from bronchial smooth muscle contraction, excessive secretions, and mucosal oedema in response to various triggers.

PART 1: DIAGNOSTIC ALGORITHM


Step 1 — Recognise Characteristic Symptoms

Suspect asthma in any patient with ≥2 of these 4 cardinal symptoms, especially if recurrent, variable, worse at night/early morning, or triggered by exercise/allergens/irritants:
┌─────────────────────────────────────────────────────────────┐
│  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      │
└─────────────────────────────────────────────────────────────┘

Step 2 — Confirm Variable Expiratory Airflow Limitation

At least one of the following objective tests must be positive:
TestPositive CriterionNotes
Spirometry: Bronchodilator Reversibility (BDR)Post-BD FEV1 increase ≥12% AND ≥200 mLAdminister SABA 400 mcg; repeat spirometry 15 min later
Peak Expiratory Flow (PEF) variabilityDiurnal variability >10% (adults) / >13% (children)Average of 2 weeks twice-daily readings
Bronchial Provocation Test (BPT)PC20 methacholine ≤8 mg/mLUseful when spirometry normal; rules out if negative
Exercise Challenge TestFEV1 fall ≥10% + 200 mL post-exerciseWhen exercise-induced symptoms suspected
Therapeutic trialSymptom + lung function improvement after 4 weeks of ICS ± SABAUsed when spirometry unavailable (children <5 yrs, resource-limited)
Obstructive pattern on spirometry: FEV1/FVC ratio < 0.70 (or below lower limit of normal) with improvement post-bronchodilator.

Step 3 — Type 2 Biomarkers (GINA 2025 New Addition)

Type 2 (T2) inflammation is present in ~50-70% of asthma patients and guides biologic therapy selection:
BiomarkerThresholdClinical 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 + sensitisationGuides omalizumab eligibility
Sputum eosinophils≥2-3%Used in severe/refractory asthma; guides OCS use

Step 4 — Classify Asthma Severity at Initial Presentation

Classify BEFORE starting treatment, based on the lowest step needed to maintain control:
SeveritySymptomsNighttimeFEV1 % PredictedFEV1/FVC
Intermittent≤2 days/week≤2×/month≥80%Normal
Mild Persistent>2 days/week, not daily3-4×/month≥80%Normal
Moderate PersistentDaily symptoms>1×/week60-80%Reduced 5%
Severe PersistentContinuousFrequent (≥7×/week)<60%Reduced >5%

Step 5 — Differential Diagnosis: Rule Out Alternatives

Before confirming asthma, exclude:
ConditionDistinguishing Feature
COPDIrreversible obstruction; smoker; age >40
Vocal cord dysfunctionInspiratory stridor; normal spirometry; laryngoscopy confirms
Cardiac failureOrthopnoea, S3, BNP elevated, CXR: cardiomegaly
GERDCough after meals; responds to PPI; no wheeze
Endobronchial tumourFixed obstruction; no variability; CT confirms
Hypersensitivity pneumonitisBilateral infiltrates; exposure history
Eosinophilic granulomatosis (EGPA)Systemic eosinophilia, vasculitis, skin/nerve involvement

PART 2: ASTHMA CONTROL ASSESSMENT (ONGOING)


Asthma Control Tool (ACT / ACQ)

DomainWell ControlledNot Well ControlledVery Poorly Controlled
Daytime symptoms≤2 days/week>2 days/weekThroughout the day
Nighttime symptomsNone1-3×/week≥4×/week
Activity limitationNoneSomeExtreme
Reliever use≤2×/week>2×/weekFrequent
FEV1 or PEF≥80% predicted60-80%<60%
ACT score≥2016-19≤15
ACQ score<0.75>1.5
Exacerbations/year0-1≥2≥2
ActionMaintain; consider step-down if stable ≥3 monthsStep up 1 stepStep up 1-2 steps + consider short OCS course
Follow-up1-6 months2-6 weeks2 weeks
  • Washington Manual of Medical Therapeutics | GINA 2025

PART 3: LONG-TERM MANAGEMENT — STEPWISE PROTOCOL

(GINA 2025 — Adults & Adolescents ≥12 years)

Two Treatment Tracks

Track 1 (PREFERRED): ICS-formoterol as BOTH controller AND reliever (MART — Maintenance and Reliever Therapy)
  • Reduces exacerbation risk vs SABA reliever
  • Simpler regimen; better adherence
Track 2 (Alternative): Separate controller (ICS or ICS-LABA) + SABA reliever
  • For patients unlikely to adhere to daily controller
  • ICS-LABA limited to 3-6 months at high doses to minimise side effects

Stepwise Treatment (Adults/Adolescents ≥12 yrs)

═══════════════════════════════════════════════════════════════════
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     │
  └─────────────────────────────────────────────────────────────┘
═══════════════════════════════════════════════════════════════════
Non-pharmacological strategies (all steps): Smoking cessation, physical activity, pulmonary rehabilitation, weight reduction, vaccinations (influenza annually, pneumococcal, COVID-19, RSV), allergen immunotherapy (HDM SLIT if clinically relevant sensitisation).
NOT recommended (GINA 2025): Oral salbutamol, oral theophylline, inhaled fenoterol (increased adverse effects). Maintenance OCS only as last resort.

ICS Dose Reference (Beclomethasone Equivalent)

ICS DoseBeclomethasone CFCExamples
Low≤200 mcg/dayBDP 100-200 mcg, Fluticasone propionate 100-250 mcg, Budesonide 200-400 mcg
Medium201-800 mcg/dayBDP 200-400 mcg, FP 250-500 mcg, Budesonide 400-800 mcg
High>800 mcg/dayBDP >400 mcg, FP >500 mcg, Budesonide >800 mcg

PART 4: ACUTE EXACERBATION MANAGEMENT


Classification of Exacerbation Severity

FeatureModerateSevereImpending Arrest
FEV1 / PEF40-69% predicted<40%<25% or unmeasurable
SymptomsSOB on exertion or talkingSOB at restSevere SOB
WheezeExpiratory onlyInspiratory + expiratoryMay be absent (silent chest)
Accessory musclesSomeMarked use + chest retractionParadoxical thoracoabdominal movement
Mental statusNormalAgitation/confusionDepressed consciousness
RR<28/min>28/minAs severe/worse
HR<110 bpm>110 bpmBradycardia (pre-arrest)
SpO2 (room air)>91%<91%Critical
Pulsus paradoxusAbsent>25 mmHg
Silent chest + normal/rising PaCO2 + exhaustion = IMMINENT RESPIRATORY ARREST — intubate immediately.

Acute Exacerbation Treatment Protocol

┌──────────────────────────────────────────────────────────────┐
│  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)

Pharmacological Treatment — Acute Phase

DrugDoseRouteNotes
Salbutamol (albuterol)2.5-5 mg q20min × 3, then 2.5-10 mg hourlyNebuliser4-8 puffs via spacer equally effective in moderate
Ipratropium bromide0.5 mg q20min × 3, then q4hNebuliserAdd to SABA; reduces hospitalisation in severe
Prednisolone / Methylprednisolone40-60 mg PO OD (or IV methylpred 40-80 mg) × 5-7 daysPO / IVAccelerates recovery; no taper needed for <2 week courses
OxygenTitrate to SpO2 93-95%Nasal cannula / maskAvoid >95% (may suppress drive in CO2 retainers)
Magnesium sulphate2 g IV over 20 min (single dose)IVFor severe/life-threatening; bronchodilates by ↓Ca2+ influx
IV aminophylline5 mg/kg load over 20 min, then 0.5-0.7 mg/kg/hr infusionIVLast resort; narrow TI; monitor levels; not in those already on theophylline
Heliox70:30 helium:oxygenInhalationReduces turbulence; adjunct in refractory severe

Discharge Criteria

  • PEF ≥70% predicted / personal best sustained ≥60 minutes
  • SpO2 ≥94% on room air
  • Able to walk without dyspnoea
  • Prednisolone prescription × 5-7 days
  • Written asthma action plan
  • Review appointment within 2-7 days
  • Inhaler technique checked

PART 5: WRITTEN ASTHMA ACTION PLAN (Traffic Light System)

ZoneStatusPEFAction
🟢 GREENWell controlled≥80% personal bestContinue usual medications
🟡 YELLOWCaution50-79%Increase reliever; may add short OCS; contact doctor
🔴 REDEmergency<50%Take reliever immediately; call emergency services; start OCS

PART 6: SPECIAL POPULATIONS

Asthma in Children <5 Years (GINA 2025 — New Guidance)

Diagnosis criteria (pragmatic approach):
  1. Recurrent acute wheezing episodes (with or without interval symptoms)
  2. Alternative diagnosis unlikely
  3. Response to asthma treatment (symptom improvement within minutes of SABA)
Treatment: Low-dose ICS first-line; SABA as reliever; step up if uncontrolled after 2-3 months.

Asthma in Pregnancy

  • Approximately 4% of pregnant women have asthma; 1/3 experience exacerbations
  • FEV1 and PEF remain unchanged in pregnancy (progesterone increases tidal volume but not FVC)
  • Poorly controlled asthma increases risk of: preterm labour, low birth weight, preeclampsia, perinatal death
  • Management: Continue all controller therapy - risk of uncontrolled asthma >> risk of ICS
  • Avoid oral steroids in first trimester if possible; use lowest effective dose if needed
  • Montelukast: continue if needed for control; data reassuring
  • Biologics: limited safety data; individualise decision

Occupational Asthma

  • Remove from offending exposure early (may result in complete resolution)
  • Document sensitisation (skin test or specific IgE)
  • Same pharmacological management as other asthma

Summary Algorithm Flowchart

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

Sources: Harrison's Principles of Internal Medicine 22e (2025) | Washington Manual of Medical Therapeutics | Murray & Nadel's Respiratory Medicine | GINA 2025 Strategy Report (ginasthma.org) | Indian Pediatr 2024 GINA 2024 Update (PMID 39051318)

Generate a PDF clinical reference guide for bronchial asthma management

Running Command

ls /home/daytona/workspace/nipah-reference/ && python3 -c "import reportlab; print('ok')"

Writing File

~/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 &amp; Management Protocols</div>
  <div class="gina-badge">GINA 2025 | Harrison's 22e | Washington Manual</div>
</div>
<div class="cover-bar">
  Chronic inflammatory airway disease &nbsp;|&nbsp; Variable reversible obstruction &nbsp;|&nbsp;
  Bronchial hyperresponsiveness &nbsp;|&nbsp; ~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 &lt;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 &amp; Nadel's Respiratory Medicine | PubMed 2023–2025</td></tr>
</table>

<!-- ════════════ SECTION 1: DEFINITION & PATHOPHYSIOLOGY ════════════ -->
<div class="sec">1. &nbsp; DEFINITION &amp; 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. &nbsp; 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/>
  &nbsp;&nbsp;1. <strong>Wheeze</strong> (expiratory, high-pitched, musical)<br/>
  &nbsp;&nbsp;2. <strong>Shortness of breath / dyspnoea</strong><br/>
  &nbsp;&nbsp;3. <strong>Chest tightness</strong><br/>
  &nbsp;&nbsp;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 &gt;10% adults / &gt;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 &lt;5 yrs); if no response reconsider diagnosis</td>
  </tr>
</table>
<p class="fn">Obstructive pattern: FEV1/FVC &lt;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>&gt;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>&gt;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>&lt;60%</td><td>Reduced &gt;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 &gt;40; heavy smoking history; post-BD FEV1/FVC &lt;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 &gt;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. &nbsp; ASTHMA CONTROL ASSESSMENT (ONGOING MONITORING)</div>

<div class="sub">Control Classification &amp; 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>&gt;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>&gt;2×/week</td><td>Several times/day</td></tr>
  <tr><td>FEV1 or PEF</td><td>≥80% predicted</td><td>60–80%</td><td>&lt;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>&lt;0.75</td><td>0.75–1.5</td><td>&gt;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 &amp; 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 &gt;200 doses/month (1 inhaler/month)</li>
      <li>High or increasing FeNO (&gt;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 (&lt;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 &gt;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. &nbsp; LONG-TERM STEPWISE MANAGEMENT (ADULTS &amp; 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 &amp; reliever (MART)</strong><br/>
      <span style="font-size:8.5pt;">&bull; Single inhaler simplifies regimen<br/>
      &bull; Reduces exacerbation risk vs SABA reliever<br/>
      &bull; As-needed reliever = anti-inflammatory reliever<br/>
      &bull; 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;">&bull; For resource-limited settings or patient preference<br/>
      &bull; Check daily controller adherence likelihood first<br/>
      &bull; Step 4: medium-dose ICS-LABA preferred (2025 change — avoids high-dose ICS side effects)<br/>
      &bull; 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 (&lt;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 &nbsp;|&nbsp; <em>Alt:</em> Leukotriene receptor antagonist (LTRA) + SABA<br/>
    <span style="color:#666; font-size:8pt;">▶ For mild persistent symptoms (&gt;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 &nbsp;|&nbsp; <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/>
    &nbsp;&bull; 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/>
    &nbsp;&bull; Allergic (sensitised + IgE 30–1500 IU/mL) → <strong>Omalizumab</strong> (anti-IgE) SC every 2–4 wk<br/>
    &nbsp;&bull; Blood eos ≥150 OR FeNO ≥25 → <strong>Dupilumab</strong> (anti-IL-4Rα) 200–300 mg SC q2wk<br/>
    &nbsp;&bull; All phenotypes including non-T2 → <strong>Tezepelumab</strong> (anti-TSLP) 210 mg SC q4wk<br/>
    &nbsp;&bull; Add-on tiotropium if not at Step 4<br/>
    &nbsp;&bull; <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>&gt;800 mcg/day</td><td>&gt;800 mcg/day</td><td>&gt;500 mcg/day</td><td>&gt;320 mcg/day</td></tr>
</table>

<div class="sub">NOT Recommended (GINA 2025)</div>
<div class="alert-amber">&#9888; Oral salbutamol, oral theophylline, inhaled fenoterol — increased adverse effects, avoid as routine treatment.<br/>
&#9888; SABA monotherapy without ICS — associated with increased asthma mortality.<br/>
&#9888; 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. &nbsp; 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 &lt;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. &nbsp; 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>&lt;40%</td><td>&lt;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>&lt;28/min</td><td>&gt;28/min</td><td>Variable; may be slow (exhaustion)</td></tr>
  <tr><td><strong>Heart rate</strong></td><td>&lt;110 bpm</td><td>&gt;110 bpm</td><td>Bradycardia (pre-arrest)</td></tr>
  <tr><td><strong>SpO2 (room air)</strong></td><td>&gt;91%</td><td>&lt;91%</td><td>Critical hypoxaemia</td></tr>
  <tr><td><strong>Pulsus paradoxus</strong></td><td>Absent</td><td>&gt;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 &lt;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 &amp; 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/>
        &nbsp;&nbsp;&nbsp;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 &lt;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 &lt;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 (&gt;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 &amp; Aftercare</div>
<div class="alert-teal">
  <strong>Discharge when ALL criteria met:</strong><br/>
  &bull; PEF ≥70% predicted / personal best sustained ≥60 minutes after last nebuliser<br/>
  &bull; SpO2 ≥94% on room air<br/>
  &bull; Able to walk without significant dyspnoea<br/>
  &bull; Oral prednisolone prescribed (5–7 day course)<br/>
  &bull; Inhaler technique reviewed and corrected<br/>
  &bull; Written asthma action plan given<br/>
  &bull; Follow-up appointment within 2–7 days confirmed<br/>
  &bull; Triggers identified and discussed
</div>

<!-- ════════════ SECTION 7: ASTHMA ACTION PLAN ════════════ -->
<div class="sec page-break">7. &nbsp; 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">&#9679; 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/>
        &bull; Few/no daytime symptoms<br/>
        &bull; No nighttime waking<br/>
        &bull; Activity not limited<br/>
        &bull; 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">&#9679; 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/>
        &bull; Increasing symptoms<br/>
        &bull; Nighttime waking<br/>
        &bull; Activity somewhat limited<br/>
        &bull; SABA needed &gt;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">&#9679; RED ZONE — EMERGENCY</div>
      <div style="padding:8px 10px; background:#fff5f5; font-size:8.5pt; line-height:1.6;">
        <strong>PEF &lt;50% personal best</strong><br/>
        &bull; SOB at rest<br/>
        &bull; Very limited activity<br/>
        &bull; No improvement with SABA<br/>
        &bull; 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. &nbsp; SPECIAL POPULATIONS</div>

<div class="sub">Children &lt;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 &lt;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. &nbsp; SUMMARY DIAGNOSTIC &amp; 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">&#8595;</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">&#8595;</div>
<div class="fc-decision">Perform spirometry + BDR test<br/>(or PEF variability / BPT / exercise test)</div>
<div class="fc-arrow">&#8595;</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 &lt;0.70 + BDR positive ≥12% &amp; 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">&#8595;</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">&#8595;</div>
<div class="fc-box">Exclude differentials: COPD, VCD, cardiac failure, ABPA, tumour</div>
<div class="fc-arrow">&#8595;</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">&#8595;</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">&#8595;</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 &lt;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 &amp; 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 &amp; 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>
Running Command

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

Running Command

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]) "

12 pages, 329 KB, validated. Here it is:

Asthma Clinical Reference

PDF Document · PDF

(Right-click → "Save link as..." if it doesn't open directly in Adobe)

The PDF contains 9 sections across 12 pages:
SectionContent
1. Definition & PathophysiologyT2 vs non-T2 inflammation, triggers table
2. Diagnostic Algorithm5-step flowchart: symptoms → spirometry/BDR → T2 biomarkers → severity classification → differential diagnosis
3. Control AssessmentWell/Not well/Very poorly controlled criteria (ACT, ACQ, PEF, symptoms) + risk factors for severe exacerbation
4. Stepwise ManagementGINA 2025 Two-Track system (Steps 1–5), MART explained, ICS dose reference, what NOT to use
5. Pharmacotherapy ReferenceSABA, LABA, LAMA, ICS, LTRA, OCS, 6 biologic agents with eligibility + dosing
6. Acute ExacerbationSeverity classification table, 3-column escalation protocol (Moderate / Severe / Impending Arrest), drug dosing, discharge criteria
7. Written Action PlanTraffic light (Green/Yellow/Red) with PEF thresholds and patient actions
8. Special PopulationsChildren <5 yrs (GINA 2025 criteria), pregnancy management, occupational asthma
9. FlowchartFull diagnostic + management visual algorithm

try again

Your credits are exhausted. Your daily credits reset tomorrow, or you can purchase a top-up for more.
This is a shared conversation. Sign in to Orris to start your own chat.