Make a notes of this influenza Explain me this
| Step | What Happens |
|---|---|
| Entry | Virus enters via inhaled droplets into respiratory tract |
| Attachment | Uses Hemagglutinin (HA) proteins to attach to epithelial cells |
| Replication | Virus releases RNA โ replicates using host cell machinery |
| Spread | New viral particles bud off โ spread to adjacent cells |
| Immune Response | Cytokines & interferons released โ inflammation, fever, muscle pain, fatigue |
| Tissue Damage | Destruction of epithelial cells + mucosal lining damage โ risk of secondary bacterial infections (e.g., pneumonia) |
| Systemic Symptoms | Inflammatory mediators cause fever, chills, muscle aches, cough, sore throat |
| Type | Examples |
|---|---|
| Most common | Bacterial Pneumonia |
| Rare (extra-pulmonary) | Myositis, Myocarditis, Pericarditis, Encephalitis, Reye Syndrome |
| Method | Purpose |
|---|---|
| Clinical evaluation | Initial assessment |
| Rapid Influenza Test | Quick bedside detection |
| Naso-pharyngeal swab culture | Lab confirmation |
| RT-PCR (Reverse Transcriptase-PCR) | Gold standard for confirmation |
| Pulse Oximetry | Rules out hypoxemia |
| Chest X-ray / CT / MRI | Diagnose pneumonia complications |
| Vaccine Type | Abbreviation |
|---|---|
| Inactivated Influenza Vaccine | IIV |
| Recombinant Influenza Vaccine | RIV |
| Live Attenuated Influenza Vaccine | LAIV |
| Trivalent Influenza Vaccines | TIV |
| Quadrivalent Influenza Vaccines | QIV |
Introduction โ Transmission โ Mechanism (Patho) โ Clinical features โ Complications โ Diagnosis โ Management
Create a study guide PDF for influenza exam prep
mkdir -p /home/daytona/workspace/influenza-study-guide
~/influenza-study-guide/create_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import BaseDocTemplate, PageTemplate, Frame
# โโ Colour palette โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ORANGE = colors.HexColor("#D9541E")
LIGHT_ORANGE= colors.HexColor("#FAD9C9")
DARK_ORANGE = colors.HexColor("#A33A0B")
BLUE = colors.HexColor("#1A5276")
LIGHT_BLUE = colors.HexColor("#D6EAF8")
GREEN = colors.HexColor("#1E8449")
LIGHT_GREEN = colors.HexColor("#D5F5E3")
RED = colors.HexColor("#C0392B")
LIGHT_RED = colors.HexColor("#FADBD8")
YELLOW_BG = colors.HexColor("#FEF9E7")
GREY_LIGHT = colors.HexColor("#F2F3F4")
GREY_MID = colors.HexColor("#BDC3C7")
WHITE = colors.white
BLACK = colors.black
# โโ Styles โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
COVER_TITLE = S("CoverTitle",
fontSize=36, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_CENTER, leading=44)
COVER_SUB = S("CoverSub",
fontSize=16, fontName="Helvetica",
textColor=LIGHT_ORANGE, alignment=TA_CENTER, leading=22)
COVER_META = S("CoverMeta",
fontSize=11, fontName="Helvetica",
textColor=WHITE, alignment=TA_CENTER, leading=16)
SEC_HEADING = S("SecHeading",
fontSize=15, fontName="Helvetica-Bold",
textColor=WHITE, alignment=TA_LEFT, leading=20)
SUBSEC = S("SubSec",
fontSize=12, fontName="Helvetica-Bold",
textColor=ORANGE, alignment=TA_LEFT, leading=16)
BODY = S("Body",
fontSize=10, fontName="Helvetica",
textColor=BLACK, alignment=TA_JUSTIFY, leading=15)
BODY_BOLD = S("BodyBold",
fontSize=10, fontName="Helvetica-Bold",
textColor=BLACK, alignment=TA_LEFT, leading=15)
BULLET = S("Bullet",
fontSize=10, fontName="Helvetica",
textColor=BLACK, alignment=TA_LEFT, leading=15,
leftIndent=14, bulletIndent=0)
SMALL = S("Small",
fontSize=8.5, fontName="Helvetica",
textColor=colors.HexColor("#555555"), alignment=TA_CENTER, leading=12)
MCQ_Q = S("MCQ_Q",
fontSize=10, fontName="Helvetica-Bold",
textColor=BLUE, alignment=TA_LEFT, leading=14)
MCQ_A = S("MCQ_A",
fontSize=9.5, fontName="Helvetica",
textColor=BLACK, alignment=TA_LEFT, leading=13, leftIndent=10)
MCQ_ANS = S("MCQ_ANS",
fontSize=9.5, fontName="Helvetica-Bold",
textColor=GREEN, alignment=TA_LEFT, leading=13, leftIndent=10)
TIP = S("Tip",
fontSize=9.5, fontName="Helvetica-Oblique",
textColor=BLUE, alignment=TA_LEFT, leading=13)
# โโ Helper: section banner โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
def section_banner(title, color=ORANGE):
data = [[Paragraph(title, SEC_HEADING)]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING", (0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 10),
("ROUNDEDCORNERS", [4, 4, 4, 4]),
]))
return t
def info_box(text, bg=LIGHT_BLUE, border=BLUE):
data = [[Paragraph(text, BODY)]]
t = Table(data, colWidths=[17*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("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.5, border),
("ROUNDEDCORNERS",[4,4,4,4]),
]))
return t
def bullet_table(items, bg=GREY_LIGHT):
rows = [[Paragraph(f"โข {i}", BULLET)] for i in items]
t = Table(rows, colWidths=[17*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("LINEBELOW", (0,0), (-1,-2), 0.3, GREY_MID),
]))
return t
def two_col_table(rows, headers=None, col_widths=None):
cw = col_widths or [6*cm, 11*cm]
all_rows = []
if headers:
all_rows.append([Paragraph(f"<b>{headers[0]}</b>", BODY_BOLD),
Paragraph(f"<b>{headers[1]}</b>", BODY_BOLD)])
for r in rows:
all_rows.append([Paragraph(str(r[0]), BODY), Paragraph(str(r[1]), BODY)])
t = Table(all_rows, colWidths=cw)
style = [
("BACKGROUND", (0,0), (-1,0), ORANGE if headers else LIGHT_ORANGE),
("TEXTCOLOR", (0,0), (-1,0), WHITE if headers else BLACK),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_ORANGE]),
("GRID", (0,0), (-1,-1), 0.5, GREY_MID),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
]
t.setStyle(TableStyle(style))
return t
def sp(n=6):
return Spacer(1, n)
# โโ Build story โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story = []
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# COVER PAGE
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
cover_data = [[
Paragraph("", SEC_HEADING),
Paragraph("", SEC_HEADING),
Paragraph("INFLUENZA", COVER_TITLE),
Paragraph("Complete Exam Study Guide", COVER_SUB),
Spacer(1, 12),
Paragraph("Virology โข Pathophysiology โข Clinical Features โข Diagnosis โข Management", COVER_META),
Spacer(1, 8),
Paragraph("Prepared from: The Compendium of Kayacikitsa | July 2026", COVER_META),
]]
cover_tbl = Table([[story_item] for story_item in cover_data[0]], colWidths=[17*cm])
cover_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), ORANGE),
("TOPPADDING", (0,0), (-1,-1), 14),
("BOTTOMPADDING", (0,0), (-1,-1), 14),
("LEFTPADDING", (0,0), (-1,-1), 20),
("RIGHTPADDING", (0,0), (-1,-1), 20),
]))
story.append(Spacer(1, 2*cm))
story.append(cover_tbl)
story.append(Spacer(1, 0.8*cm))
# Quick reference strip
qr_data = [
[Paragraph("<b>Causative Agent</b>", BODY_BOLD), Paragraph("Influenza Virus A & B", BODY),
Paragraph("<b>Incubation</b>", BODY_BOLD), Paragraph("1-4 days (avg 48 hrs)", BODY)],
[Paragraph("<b>Transmission</b>", BODY_BOLD), Paragraph("Droplet infection", BODY),
Paragraph("<b>Key Test</b>", BODY_BOLD), Paragraph("RT-PCR (gold standard)", BODY)],
]
qr_tbl = Table(qr_data, colWidths=[3.5*cm, 5*cm, 3.5*cm, 5*cm])
qr_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), LIGHT_ORANGE),
("GRID", (0,0), (-1,-1), 0.4, ORANGE),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(qr_tbl)
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 1. INTRODUCTION
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("1. INTRODUCTION"))
story.append(sp(8))
story.append(Paragraph(
"Influenza (flu) is an <b>acute viral infection of the respiratory tract</b> caused by "
"<b>Influenza virus A and B</b>. It is one of the most significant global infectious diseases.", BODY))
story.append(sp())
story.append(two_col_table([
["Global cases/year", "~1 billion seasonal cases documented"],
["Severe illnesses", "3 to 5 million per year"],
["Respiratory deaths", "290,000 โ 650,000 per year"],
], headers=["Epidemiology Fact", "Figure"]))
story.append(sp(8))
story.append(Paragraph("<b>High-Risk Groups:</b>", BODY_BOLD))
story.append(sp(4))
story.append(bullet_table([
"Pregnant women",
"Children under 5 years of age",
"Older adults (elderly)",
"Persons with chronic medical conditions (diabetes, heart disease, asthma, etc.)",
]))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 2. BASIC PARAMETERS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("2. BASIC PARAMETERS", BLUE))
story.append(sp(8))
params = [
["Incubation Period", "1 to 4 days | Average ~48 hours"],
["Mode of Transmission", "Droplet infection (cough / sneeze of infected person)"],
["Infectious Period", "1 day before symptoms to ~5-7 days after onset"],
["Viral Types", "Influenza A (most severe, pandemic risk) and B (seasonal)"],
]
story.append(two_col_table(params, headers=["Parameter", "Details"], col_widths=[5.5*cm, 11.5*cm]))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 3. PATHOPHYSIOLOGY
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("3. PATHOPHYSIOLOGY"))
story.append(sp(8))
story.append(info_box(
"<b>Key Concept:</b> Influenza pathophysiology is a multi-stage process involving viral entry, "
"replication, immune activation, and tissue destruction.", LIGHT_ORANGE, ORANGE))
story.append(sp(8))
steps = [
["Step 1: Entry",
"Virus enters via inhaled droplets into the respiratory tract epithelium"],
["Step 2: Attachment",
"Hemagglutinin (HA) proteins on the viral surface attach to sialic acid receptors on epithelial cells"],
["Step 3: Replication",
"Virus releases its RNA into the host cell; replicates and transcribes viral proteins using host cell machinery"],
["Step 4: Spread",
"New viral particles assemble, bud off, and spread to adjacent epithelial cells"],
["Step 5: Immune Activation",
"Infection triggers release of cytokines and interferons -> inflammation, fever, muscle pain, fatigue"],
["Step 6: Tissue Damage",
"Virus-induced destruction of epithelial cells + immune-driven inflammation damages respiratory mucosal lining -> risk of secondary bacterial infections (e.g., pneumonia)"],
["Step 7: Systemic Effects",
"Widespread inflammatory mediator release causes systemic symptoms: fever, chills, muscle aches, cough, sore throat"],
]
story.append(two_col_table(steps, headers=["Stage", "What Happens"], col_widths=[4*cm, 13*cm]))
story.append(sp(8))
story.append(info_box(
"<b>Exam Tip:</b> The key attachment protein is <b>Hemagglutinin (HA)</b>. "
"Neuraminidase (NA) helps viral release from cells. Both are targets for antiviral drugs (e.g., oseltamivir targets NA).",
LIGHT_BLUE, BLUE))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 4. CLINICAL FEATURES
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("4. CLINICAL FEATURES", DARK_ORANGE))
story.append(sp(8))
story.append(Paragraph(
"Influenza classically presents with <b>sudden onset</b> of multiple symptoms:", BODY))
story.append(sp(6))
cf_data = [
[Paragraph("<b>System</b>", BODY_BOLD), Paragraph("<b>Symptoms</b>", BODY_BOLD)],
[Paragraph("Constitutional", BODY),
Paragraph("Sudden high fever, chills, malaise, fatigue", BODY)],
[Paragraph("Respiratory", BODY),
Paragraph("Coryza (runny nose), sneezing, sore throat, dry and persistent cough, shortness of breath", BODY)],
[Paragraph("Neurological", BODY),
Paragraph("Headache, photophobia, pain in the eyes", BODY)],
[Paragraph("Ocular", BODY),
Paragraph("Mild conjunctivitis", BODY)],
[Paragraph("Gastrointestinal", BODY),
Paragraph("Nausea, vomiting, abdominal pain (more common in children)", BODY)],
[Paragraph("Musculoskeletal", BODY),
Paragraph("Myalgia (muscle pain) - a hallmark feature", BODY)],
]
cf_tbl = Table(cf_data, colWidths=[4.5*cm, 12.5*cm])
cf_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), ORANGE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_ORANGE]),
("GRID", (0,0), (-1,-1), 0.5, GREY_MID),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(cf_tbl)
story.append(sp(8))
story.append(info_box(
"<b>Memory Aid - FACTS:</b> Fever (sudden high) | Aches (myalgia) | Cough (dry) | "
"Tiredness (malaise) | Sudden onset", LIGHT_GREEN, GREEN))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 5. COMPLICATIONS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("5. COMPLICATIONS", RED))
story.append(sp(8))
comp_data = [
[Paragraph("<b>Type</b>", BODY_BOLD), Paragraph("<b>Complication</b>", BODY_BOLD), Paragraph("<b>Notes</b>", BODY_BOLD)],
[Paragraph("MOST COMMON", BODY_BOLD),
Paragraph("Bacterial Pneumonia", BODY),
Paragraph("Secondary bacterial superinfection of damaged respiratory epithelium", BODY)],
[Paragraph("Extra-pulmonary\n(Rare)", BODY),
Paragraph("Myositis", BODY),
Paragraph("Muscle inflammation", BODY)],
[Paragraph("", BODY),
Paragraph("Myocarditis", BODY),
Paragraph("Inflammation of heart muscle", BODY)],
[Paragraph("", BODY),
Paragraph("Pericarditis", BODY),
Paragraph("Inflammation of pericardial sac", BODY)],
[Paragraph("", BODY),
Paragraph("Encephalitis", BODY),
Paragraph("Brain inflammation - serious neurological complication", BODY)],
[Paragraph("", BODY),
Paragraph("Reye Syndrome", BODY),
Paragraph("Rare - seen in children given aspirin; liver failure + encephalopathy", BODY)],
]
comp_tbl = Table(comp_data, colWidths=[3.5*cm, 4.5*cm, 9*cm])
comp_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), RED),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("BACKGROUND", (0,1), (-1,1), LIGHT_RED),
("ROWBACKGROUNDS",(0,2), (-1,-1), [WHITE, LIGHT_RED]),
("GRID", (0,0), (-1,-1), 0.5, GREY_MID),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
("SPAN", (0,2), (0,-1)),
]))
story.append(comp_tbl)
story.append(sp(8))
story.append(info_box(
"<b>Exam Alert:</b> Reye Syndrome = aspirin use in viral illness in children -> "
"avoid aspirin in children with influenza! Use paracetamol instead.", LIGHT_RED, RED))
story.append(sp(12))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 6. DIAGNOSIS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("6. DIAGNOSIS", BLUE))
story.append(sp(8))
diag_data = [
["Clinical Evaluation", "First step; based on symptom history and physical examination"],
["Rapid Influenza Test", "Quick bedside test; detects viral antigens; fast but lower sensitivity"],
["Naso-pharyngeal Swab Culture","Lab confirmation via viral culture; takes longer"],
["RT-PCR", "GOLD STANDARD - Reverse Transcriptase PCR; most sensitive and specific"],
["Pulse Oximetry", "Rules out hypoxemia (low oxygen saturation)"],
["Chest X-ray", "Imaging to diagnose pneumonia complication"],
["CT / MRI Chest", "Advanced imaging for complex or severe pneumonia cases"],
]
story.append(two_col_table(diag_data, headers=["Diagnostic Method", "Purpose / Notes"],
col_widths=[5.5*cm, 11.5*cm]))
story.append(sp(8))
story.append(info_box(
"<b>Exam Tip:</b> RT-PCR is the gold standard for confirming influenza. "
"Rapid antigen tests are quick but less accurate (can miss cases). "
"Pulse oximetry is used to check for hypoxemia, not to diagnose influenza.", LIGHT_BLUE, BLUE))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 7. MANAGEMENT
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("7. MANAGEMENT & TREATMENT"))
story.append(sp(8))
story.append(Paragraph("<b>A. Supportive / General Care:</b>", SUBSEC))
story.append(sp(4))
story.append(bullet_table([
"Oxygenation - maintain adequate oxygen levels",
"Fluid balance - prevent dehydration",
"Antipyretic therapy - reduce fever (paracetamol/acetaminophen)",
"Analgesic therapy - relieve pain and headache",
"Rest and adequate nutrition",
]))
story.append(sp(10))
story.append(Paragraph("<b>B. Specific Treatment (for high-risk patients):</b>", SUBSEC))
story.append(sp(4))
story.append(bullet_table([
"Appropriate antibiotic therapy - for secondary bacterial infections",
"Corticosteroids - sometimes required in severe/high-risk cases",
"Antiviral therapy - for high-risk patients (e.g., oseltamivir/Tamiflu targets Neuraminidase)",
"Ventilatory support - when respiratory failure occurs",
]))
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 8. PREVENTION / VACCINATION
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("8. PREVENTION & VACCINATION", GREEN))
story.append(sp(8))
story.append(Paragraph(
"Annual vaccination is the primary prevention strategy for influenza.", BODY))
story.append(sp(6))
vax_data = [
["IIV", "Inactivated Influenza Vaccine", "Injection; suitable for all including immunocompromised"],
["RIV", "Recombinant Influenza Vaccine", "Egg-free; for egg-allergic individuals"],
["LAIV", "Live Attenuated Influenza Vaccine", "Nasal spray; for healthy non-pregnant adults 2-49 yrs"],
["TIV", "Trivalent Influenza Vaccine", "Covers 3 strains (2A + 1B)"],
["QIV", "Quadrivalent Influenza Vaccine", "Covers 4 strains (2A + 2B) - preferred"],
]
vax_tbl = Table(
[[Paragraph("<b>Abbrev.</b>", BODY_BOLD), Paragraph("<b>Full Name</b>", BODY_BOLD), Paragraph("<b>Notes</b>", BODY_BOLD)]] +
[[Paragraph(r[0], BODY), Paragraph(r[1], BODY), Paragraph(r[2], BODY)] for r in vax_data],
colWidths=[2.5*cm, 7*cm, 7.5*cm]
)
vax_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), GREEN),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_GREEN]),
("GRID", (0,0), (-1,-1), 0.5, GREY_MID),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(vax_tbl)
story.append(sp(12))
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 9. AYURVEDIC PERSPECTIVE
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("9. AYURVEDIC PERSPECTIVE", colors.HexColor("#7D3C98")))
story.append(sp(8))
story.append(two_col_table([
["Disease Classification", "Janapadodhvamsa Vyadhi (epidemic/communicable disease)"],
["Treatment Principle", "Slesmaka Jvara cikitsa (management of Kapha-dominant fever)"],
], headers=["Concept", "Ayurvedic Term"]))
story.append(sp(12))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 10. MCQ PRACTICE QUESTIONS
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("10. MCQ PRACTICE QUESTIONS", BLUE))
story.append(sp(8))
mcqs = [
{
"q": "Q1. What is the causative agent of influenza?",
"opts": ["A) Influenza virus A only", "B) Influenza virus B only",
"C) Influenza virus A and B", "D) Influenza virus A, B, and C"],
"ans": "C) Influenza virus A and B",
"exp": "Influenza is caused by both virus A and B. Type A is responsible for most pandemics."
},
{
"q": "Q2. What is the average incubation period of influenza?",
"opts": ["A) 12 hours", "B) 24 hours", "C) 48 hours", "D) 72 hours"],
"ans": "C) 48 hours",
"exp": "Incubation period ranges from 1-4 days with an average of about 48 hours."
},
{
"q": "Q3. Which protein does the influenza virus use to attach to host epithelial cells?",
"opts": ["A) Neuraminidase (NA)", "B) Hemagglutinin (HA)",
"C) Matrix protein (M1)", "D) Nucleoprotein (NP)"],
"ans": "B) Hemagglutinin (HA)",
"exp": "HA proteins on the viral surface bind to sialic acid receptors on respiratory epithelial cells to initiate infection."
},
{
"q": "Q4. What is the most common complication of influenza?",
"opts": ["A) Myocarditis", "B) Encephalitis",
"C) Bacterial Pneumonia", "D) Reye Syndrome"],
"ans": "C) Bacterial Pneumonia",
"exp": "Bacterial pneumonia is the most common complication due to damaged mucosal defenses from viral infection."
},
{
"q": "Q5. Which diagnostic test is considered the gold standard for confirming influenza?",
"opts": ["A) Rapid influenza antigen test", "B) Chest X-ray",
"C) Pulse oximetry", "D) RT-PCR"],
"ans": "D) RT-PCR",
"exp": "Reverse Transcriptase-PCR (RT-PCR) is the most sensitive and specific test for confirming influenza infection."
},
{
"q": "Q6. Reye syndrome as a complication of influenza is most commonly associated with:",
"opts": ["A) Use of oseltamivir in adults", "B) Use of aspirin in children",
"C) Use of corticosteroids", "D) Secondary bacterial infection"],
"ans": "B) Use of aspirin in children",
"exp": "Reye syndrome = aspirin use during viral illness (influenza/varicella) in children. Always use paracetamol instead."
},
{
"q": "Q7. Influenza is primarily transmitted by:",
"opts": ["A) Fecal-oral route", "B) Contact with contaminated surfaces",
"C) Droplet infection", "D) Vector-borne transmission"],
"ans": "C) Droplet infection",
"exp": "Influenza spreads via respiratory droplets produced when an infected person coughs or sneezes."
},
{
"q": "Q8. Which vaccine type is a nasal spray live vaccine for influenza?",
"opts": ["A) IIV (Inactivated Influenza Vaccine)", "B) RIV (Recombinant Influenza Vaccine)",
"C) LAIV (Live Attenuated Influenza Vaccine)", "D) QIV (Quadrivalent Influenza Vaccine)"],
"ans": "C) LAIV (Live Attenuated Influenza Vaccine)",
"exp": "LAIV is administered as a nasal spray and contains live but weakened virus strains."
},
]
for mcq in mcqs:
story.append(KeepTogether([
Paragraph(mcq["q"], MCQ_Q),
sp(3),
*[Paragraph(o, MCQ_A) for o in mcq["opts"]],
sp(3),
Paragraph(f"Answer: {mcq['ans']}", MCQ_ANS),
Paragraph(f"Explanation: {mcq['exp']}", TIP),
sp(10),
HRFlowable(width="100%", thickness=0.5, color=GREY_MID),
sp(8),
]))
story.append(PageBreak())
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# 11. QUICK REVISION TABLE (1-PAGE SUMMARY)
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
story.append(section_banner("11. QUICK REVISION SUMMARY", DARK_ORANGE))
story.append(sp(8))
summary = [
["Causative Agent", "Influenza Virus A & B"],
["Incubation", "1-4 days (average 48 hours)"],
["Transmission", "Droplet infection"],
["HA Protein Role", "Attachment to host epithelial cells via sialic acid receptors"],
["Systemic Sx", "Fever, chills, myalgia, malaise, headache"],
["Respiratory Sx", "Coryza, sneeze, sore throat, dry cough, dyspnea"],
["Other Sx", "Conjunctivitis, photophobia, eye pain, nausea, vomiting"],
["Main Complication", "Bacterial Pneumonia"],
["Rare Complications", "Myositis, myocarditis, pericarditis, encephalitis, Reye syndrome"],
["Diagnosis", "RT-PCR (gold standard), rapid antigen test, NP swab culture"],
["Imaging", "Chest X-ray / CT to diagnose pneumonia"],
["Supportive Rx", "O2, fluid balance, antipyretics, analgesics"],
["Specific Rx", "Antivirals, antibiotics (if bacterial), corticosteroids, ventilation"],
["Prevention", "Annual flu vaccine: IIV / RIV / LAIV / TIV / QIV"],
["Ayurveda", "Janapadodhvamsa Vyadhi; Slesmaka Jvara cikitsa"],
]
story.append(two_col_table(summary, headers=["Topic", "Key Point"], col_widths=[5*cm, 12*cm]))
story.append(sp(10))
# Memory mnemonics box
story.append(info_box(
"<b>MNEMONICS TO REMEMBER:</b><br/>"
"โข <b>FACTS</b> = Fever | Aches | Cough | Tiredness | Sudden onset (clinical features)<br/>"
"โข <b>Complications</b>: 'My Myo-Peri-Encephalo-Reye' = Myositis, Myocarditis, Pericarditis, Encephalitis, Reye syndrome<br/>"
"โข <b>Vaccines</b>: 'I Really Love Taking Quad' = IIV, RIV, LAIV, TIV, QIV<br/>"
"โข <b>Diagnosis</b>: 'Really Rapid Naso Pulse Chest' = RT-PCR, Rapid test, Naso swab, Pulse oximetry, Chest X-ray",
YELLOW_BG, ORANGE))
story.append(sp(12))
# Footer note
story.append(HRFlowable(width="100%", thickness=1, color=ORANGE))
story.append(sp(4))
story.append(Paragraph(
"Source: The Compendium of Kayacikitsa | Study Guide compiled for exam preparation | July 2026",
SMALL))
# โโ Build PDF โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
output_path = "/home/daytona/workspace/influenza-study-guide/Influenza_Study_Guide.pdf"
doc = SimpleDocTemplate(
output_path,
pagesize=A4,
rightMargin=2*cm, leftMargin=2*cm,
topMargin=2*cm, bottomMargin=2*cm,
title="Influenza - Complete Exam Study Guide",
author="Orris AI",
subject="Influenza Study Guide",
)
doc.build(story)
print(f"PDF created: {output_path}")
python /home/daytona/workspace/influenza-study-guide/create_pdf.py
Influenza Study Guide
PDF Document ยท PDF
| Section | Content |
|---|---|
| Cover Page | Title + quick reference strip with key facts |
| 1. Introduction | Epidemiology table, high-risk groups |
| 2. Basic Parameters | Incubation, transmission, viral types |
| 3. Pathophysiology | Step-by-step 7-stage table (Entry to Systemic effects) |
| 4. Clinical Features | Organized by body system (Constitutional, Respiratory, Neuro, GI, etc.) |
| 5. Complications | Color-coded table with Reye Syndrome alert box |
| 6. Diagnosis | All methods from rapid test to RT-PCR to imaging |
| 7. Management | Supportive + specific treatment separated clearly |
| 8. Prevention | All 5 vaccine types (IIV, RIV, LAIV, TIV, QIV) with notes |
| 9. Ayurveda | Janapadodhvamsa Vyadhi + Slesmaka Jvara cikitsa |
| 10. MCQ Practice | 8 exam-style questions with answers + explanations |
| 11. Quick Revision | Full 1-page summary + 4 mnemonics (FACTS, vaccines, complications, diagnosis) |