Section 3 1. Рneumonia: classification, diagnosis. 2. Pneumonia: complications. Clinic of pleurisy and respiratory distress syndrome of adult type. 3. Pneumonia: treatment. 4. Bronchial asthma in children: clinic, the meaning of “control asthma” 5. Bronchial asthma in children: diagnosis, criteria for assessing the severity of the disease and the severity of the attack. 6. Bronchial asthma: treatment in the attack and inter-attack period. Emergency care in case of a severe attack. 7. Classification, clinic, diagnosis of acute rheumatic fever in children. 8. Acute rheumatic fever: treatment and prevention. 9. Juvenile rheumatoid arthritis: etiology, pathogenesis, clinic, diagnosis, treatment.10. General practitioner’s tactic in the diagnosis of congenital heart defects in children. 11. Congenital heart defects with enrichment of the pulmonary circulation: patent ductus arteriosus, common arterial trunk. 12.Congenital heart defects with decreased pulmonary blood flow: isolated pulmonary artery stenosis, tetralogy of Fallot. 13. Syndrome of vegetative dystonia: classification, diagnosis, clinic, treatment. 14. Chronic gastritis: etiology, pathogenesis, clinic, treatment. 15. Peptic ulcer of the stomach and duodenum: etiology, pathogenesis, classification, clinic, treatment. 16. Biliary dyskinesia: diagnosis, clinic, treatment. 17. Acute post-streptococcal glomerulonephritis: etiology, pathogenesis, classification. 18. Acute post-streptococcal glomerulonephritis: differential diagnosis of the main syndromes, treatment. 19. Acute post-streptococcal glomerulonephritis with nephritic syndrome: clinic, treatment. 20. Acute post-streptococcal glomerulonephritis with nephrotic syndrome: clinic, treatment. 21.Acute and chronic pyelonephritis: clinic, diagnostics. 22. Acute and chronic pyelonephritis: treatment. 23. Diseases with increased bleeding: classification, differential diagnosis. Mechanism of hemostasis. 24. Hemophilia: clinic, diagnosis, treatment. 25. Immune thrombocytopenic purpura: etiology, clinic, diagnosis, treatment. First aid for bleeding. 26. Hemorrhagic vasculitis: etiology, pathogenesis, clinic, diagnosis, treatment. 27. Leukemia in children: classification, clinic, diagnosis. 28. Leukemia in children: treatment. 29. Acute allergic reactions in children: urticaria, Quincke's edema. Diagnosis, emergency care. 30. Аnaphylactic shock: etiology, clinical manifestations, emergency care, prognosis. Answer the question in short to medium exam oriented
5 years: S. pneumoniae, Mycoplasma, Chlamydophila
5 years: RR >30/min
| Intermittent | Mild Persistent | Moderate Persistent | Severe Persistent | |
|---|---|---|---|---|
| Daytime symptoms | <1x/week | >1x/week, <daily | Daily | Continuous |
| Night symptoms | ≤2x/month | >2x/month | >1x/week | Frequent |
| FEV1/PEF | >80% | >80% | 60-80% | <60% |
| Variability | <20% | 20-30% | >30% | >30% |
| Parameter | Mild | Moderate | Severe | Life-threatening |
|---|---|---|---|---|
| Breathlessness | Walking | Talking | At rest | |
| Speaks in | Sentences | Phrases | Words | Silent chest |
| RR | Increased | Increased | >30/min | Irregular |
| HR | <100 | 100-120 | >120 | Bradycardia |
| SaO2 | >95% | 91-95% | <91% | <90% |
| PEF | >70% | 50-70% | <50% | <33% |
| Disorder | Platelet/Vessel | Coagulation |
|---|---|---|
| Thrombocytopenia (ITP, TTP, HUS) | Platelet deficiency | Normal PT/aPTT |
| Platelet dysfunction (Glanzmann, Bernard-Soulier) | Qualitative | Normal count |
| Hemophilia A, B | Normal | Prolonged aPTT |
| vWD | Mixed | Prolonged BT/aPTT |
| Hemorrhagic vasculitis | Vessel wall | Normal/near normal |
| DIC | Combined | Prolonged PT+aPTT, low fibrinogen |
| Liver disease | Combined | Prolonged PT |
| Severe | Moderate | Mild | |
|---|---|---|---|
| Factor level | <1% | 1-5% | 5-40% |
| Bleeding | Spontaneous | After minor trauma | After surgery/major trauma |
Can you make pdf for this
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"
~/section3_pediatrics.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
OUTPUT = "/tmp/workspace/Section3_Pediatrics_ExamReview.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
rightMargin=2*cm,
leftMargin=2*cm,
topMargin=2.2*cm,
bottomMargin=2*cm,
title="Section 3 – Pediatrics Exam Review",
author="Orris Medical Assistant"
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
'CustomTitle',
parent=styles['Title'],
fontSize=20,
textColor=colors.HexColor('#1a3a5c'),
spaceAfter=6,
spaceBefore=0,
alignment=TA_CENTER,
fontName='Helvetica-Bold',
)
subtitle_style = ParagraphStyle(
'Subtitle',
parent=styles['Normal'],
fontSize=11,
textColor=colors.HexColor('#4a6fa5'),
spaceAfter=16,
alignment=TA_CENTER,
fontName='Helvetica',
)
h1_style = ParagraphStyle(
'H1',
parent=styles['Normal'],
fontSize=13,
textColor=colors.white,
backColor=colors.HexColor('#1a3a5c'),
spaceBefore=14,
spaceAfter=6,
leftIndent=-0.3*cm,
rightIndent=-0.3*cm,
leading=18,
fontName='Helvetica-Bold',
borderPadding=(4, 8, 4, 8),
)
h2_style = ParagraphStyle(
'H2',
parent=styles['Normal'],
fontSize=11,
textColor=colors.HexColor('#1a3a5c'),
spaceBefore=8,
spaceAfter=3,
fontName='Helvetica-Bold',
borderPadding=(2, 0, 2, 0),
)
body_style = ParagraphStyle(
'Body',
parent=styles['Normal'],
fontSize=9.5,
textColor=colors.HexColor('#222222'),
spaceAfter=3,
spaceBefore=1,
leading=14,
fontName='Helvetica',
alignment=TA_JUSTIFY,
)
bullet_style = ParagraphStyle(
'Bullet',
parent=styles['Normal'],
fontSize=9.5,
textColor=colors.HexColor('#222222'),
spaceAfter=2,
spaceBefore=1,
leading=13,
fontName='Helvetica',
leftIndent=14,
bulletIndent=4,
)
bullet2_style = ParagraphStyle(
'Bullet2',
parent=styles['Normal'],
fontSize=9,
textColor=colors.HexColor('#333333'),
spaceAfter=1,
spaceBefore=0,
leading=12,
fontName='Helvetica',
leftIndent=28,
bulletIndent=18,
)
note_style = ParagraphStyle(
'Note',
parent=styles['Normal'],
fontSize=8.5,
textColor=colors.HexColor('#555555'),
spaceAfter=4,
spaceBefore=2,
leading=12,
fontName='Helvetica-Oblique',
leftIndent=14,
)
def h1(text):
return Paragraph(f" {text}", h1_style)
def h2(text):
return Paragraph(text, h2_style)
def p(text):
return Paragraph(text, body_style)
def b(text):
return Paragraph(f"• {text}", bullet_style)
def b2(text):
return Paragraph(f"- {text}", bullet2_style)
def note(text):
return Paragraph(text, note_style)
def sp(h=4):
return Spacer(1, h)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor('#cccccc'), spaceAfter=4, spaceBefore=4)
def make_table(headers, rows, col_widths=None):
data = [headers] + rows
if col_widths is None:
n = len(headers)
w = (A4[0] - 4*cm) / n
col_widths = [w]*n
tbl = Table(data, colWidths=col_widths, repeatRows=1)
tbl.setStyle(TableStyle([
('BACKGROUND', (0,0), (-1,0), colors.HexColor('#1a3a5c')),
('TEXTCOLOR', (0,0), (-1,0), colors.white),
('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),
('FONTSIZE', (0,0), (-1,0), 8.5),
('FONTNAME', (0,1), (-1,-1), 'Helvetica'),
('FONTSIZE', (0,1), (-1,-1), 8),
('BACKGROUND', (0,1), (-1,-1), colors.HexColor('#f5f8fc')),
('ROWBACKGROUNDS', (0,1), (-1,-1), [colors.HexColor('#f5f8fc'), colors.white]),
('GRID', (0,0), (-1,-1), 0.4, colors.HexColor('#b0c4de')),
('ALIGN', (0,0), (-1,-1), 'LEFT'),
('VALIGN', (0,0), (-1,-1), 'TOP'),
('TOPPADDING', (0,0), (-1,-1), 3),
('BOTTOMPADDING', (0,0), (-1,-1), 3),
('LEFTPADDING', (0,0), (-1,-1), 5),
('RIGHTPADDING', (0,0), (-1,-1), 5),
('WORDWRAP', (0,0), (-1,-1), True),
]))
return tbl
story = []
# ── TITLE PAGE ────────────────────────────────────────────────────────────────
story.append(Spacer(1, 1.5*cm))
story.append(Paragraph("Section 3", title_style))
story.append(Paragraph("Pediatrics Exam Review", title_style))
story.append(Spacer(1, 0.3*cm))
story.append(Paragraph("30 High-Yield Topics | Exam-Oriented Answers", subtitle_style))
story.append(HRFlowable(width="60%", thickness=2, color=colors.HexColor('#4a6fa5'), spaceAfter=20))
story.append(PageBreak())
# ══════════════════════════════════════════════════════════════════════════════
# Q1
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("1. Pneumonia: Classification & Diagnosis"))
story.append(sp())
story.append(h2("Classification"))
story.append(b("<b>By etiology:</b> bacterial (S. pneumoniae most common), viral, mycoplasma, fungal, aspiration"))
story.append(b("<b>By extent:</b> lobar (segmental), bronchopneumonia (lobular), interstitial"))
story.append(b("<b>By acquisition:</b> community-acquired (CAP), hospital-acquired (HAP, >48h), ventilator-associated (VAP)"))
story.append(b("<b>Age-based etiology:</b>"))
story.append(b2("Neonates: GBS, E. coli, Klebsiella"))
story.append(b2("1–3 months: Chlamydia, RSV"))
story.append(b2("3 months–5 years: S. pneumoniae, RSV, Hib"))
story.append(b2(">5 years: S. pneumoniae, Mycoplasma, Chlamydophila"))
story.append(sp())
story.append(h2("Diagnostic Criteria"))
story.append(b("<b>Symptoms:</b> fever, cough, tachypnea (key sign), dyspnea, chest pain"))
story.append(b("<b>Signs:</b> dullness to percussion, bronchial breath sounds, crepitations"))
story.append(b("<b>WHO Tachypnea thresholds:</b>"))
story.append(make_table(
[Paragraph('<b>Age</b>', body_style), Paragraph('<b>RR (tachypnea)</b>', body_style)],
[['<2 months', '>60/min'], ['2–12 months', '>50/min'], ['1–5 years', '>40/min'], ['>5 years', '>30/min']],
col_widths=[8*cm, 8*cm]
))
story.append(sp(6))
story.append(b("<b>CXR:</b> alveolar infiltrates, air bronchograms, interstitial pattern"))
story.append(b("<b>Labs:</b> CBC (leukocytosis in bacterial, lymphocytosis in viral), CRP, ESR, procalcitonin, blood culture, sputum culture"))
story.append(b("<b>CURB-65 (adults):</b> Confusion, Urea >7, RR >30, BP <90/60, age >65 — score 0–1 outpatient; ≥3 ICU"))
# ══════════════════════════════════════════════════════════════════════════════
# Q2
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("2. Pneumonia: Complications. Pleurisy & ARDS"))
story.append(sp())
story.append(h2("Complications"))
story.append(b("Parapneumonic effusion / empyema (most common)"))
story.append(b("Lung abscess (cavitation on CXR)"))
story.append(b("Pneumothorax / pyopneumothorax"))
story.append(b("Sepsis, bacteremia"))
story.append(b("ARDS, respiratory failure"))
story.append(b("Pericarditis, meningitis (hematogenous spread)"))
story.append(sp())
story.append(h2("Pleurisy — Clinic"))
story.append(b("Pleuritic chest pain: sharp, worsens with inspiration/cough, relieved by splinting"))
story.append(b("Pleural friction rub (dry pleurisy)"))
story.append(b("Fever, dyspnea; with effusion: dullness, decreased breath sounds, tracheal deviation"))
story.append(b("Diagnosis: CXR (>200 mL blunts costophrenic angle), USS, thoracocentesis (Light's criteria)"))
story.append(sp())
story.append(h2("ARDS — Berlin Definition & Clinic"))
story.append(make_table(
[Paragraph('<b>Severity</b>', body_style), Paragraph('<b>PaO2/FiO2</b>', body_style)],
[['Mild', '200–300 mmHg'], ['Moderate', '100–200 mmHg'], ['Severe', '<100 mmHg']],
col_widths=[8*cm, 8*cm]
))
story.append(sp(6))
story.append(b("Clinic: refractory hypoxemia, tachypnea, bilateral crepitations, cyanosis, accessory muscle use"))
story.append(b("Pathophysiology: diffuse alveolar damage → non-cardiogenic pulmonary edema"))
story.append(b("Management: lung-protective ventilation (TV 6 mL/kg, PEEP, prone positioning), treat underlying cause"))
# ══════════════════════════════════════════════════════════════════════════════
# Q3
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("3. Pneumonia: Treatment"))
story.append(sp())
story.append(h2("Empirical Antibiotics — CAP"))
story.append(make_table(
[Paragraph('<b>Setting</b>', body_style), Paragraph('<b>Regimen</b>', body_style)],
[
['Outpatient, no comorbidities', 'Amoxicillin 500 mg TID ×5–7d OR Azithromycin'],
['Outpatient with comorbidities', 'Amox-clav + macrolide OR respiratory fluoroquinolone'],
['Inpatient (non-ICU)', 'Beta-lactam + macrolide OR respiratory FQ'],
['ICU/severe', 'Beta-lactam + macrolide ± vancomycin/linezolid (MRSA risk)'],
['Children <5y', 'Amoxicillin first-line; Azithromycin if atypical suspected'],
['Children (hospitalized)', 'IV ampicillin or cefuroxime'],
],
col_widths=[6.5*cm, 10.5*cm]
))
story.append(sp(6))
story.append(h2("Supportive Care"))
story.append(b("Antipyretics (paracetamol/ibuprofen), adequate hydration"))
story.append(b("Oxygen — maintain SpO2 >94%"))
story.append(b("Chest physiotherapy, bronchodilators if bronchospasm"))
story.append(b("<b>Duration:</b> 5–7 days uncomplicated; 14–21 days Staph/Klebsiella; 14 days atypicals"))
# ══════════════════════════════════════════════════════════════════════════════
# Q4
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("4. Bronchial Asthma: Clinic & Controlled Asthma"))
story.append(sp())
story.append(h2("Clinical Features"))
story.append(b("Recurrent episodes: wheeze, cough (worse at night/early morning), breathlessness, chest tightness"))
story.append(b("Triggers: allergens, exercise, viral URTI, cold air, smoke, stress"))
story.append(b("Physical: expiratory wheeze, prolonged expiration, hyperinflation, barrel chest (chronic)"))
story.append(b("Atopic history: eczema, allergic rhinitis, family history"))
story.append(sp())
story.append(h2("'Controlled Asthma' — GINA Criteria (past 4 weeks ALL present)"))
story.append(b("Daytime symptoms ≤2 times/week"))
story.append(b("No nighttime waking due to asthma"))
story.append(b("Reliever use ≤2 times/week"))
story.append(b("No activity limitation"))
story.append(b("FEV1/PEF ≥80% predicted"))
story.append(note("Partly controlled: 1–2 features present | Uncontrolled: 3–4 features present"))
story.append(note("Control level guides step-up/step-down of therapy (GINA step approach)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q5
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("5. Bronchial Asthma: Diagnosis & Severity Assessment"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("<b>Spirometry (>6 years):</b> FEV1/FVC <0.8; reversibility = FEV1 ↑≥12% and ≥200 mL after salbutamol"))
story.append(b("<b>Peak flow monitoring:</b> diurnal variability >20%"))
story.append(b("<b>Bronchial provocation test:</b> methacholine/exercise if spirometry normal"))
story.append(b("<b>Allergy tests:</b> skin prick test, specific IgE (RAST)"))
story.append(b("<b>FeNO:</b> >25 ppb = eosinophilic airway inflammation"))
story.append(sp())
story.append(h2("Disease Severity"))
story.append(make_table(
['', Paragraph('<b>Intermittent</b>', body_style), Paragraph('<b>Mild Persistent</b>', body_style), Paragraph('<b>Moderate</b>', body_style), Paragraph('<b>Severe</b>', body_style)],
[
['Daytime', '<1×/week', '>1×/wk, <daily', 'Daily', 'Continuous'],
['Nighttime', '≤2×/month', '>2×/month', '>1×/week', 'Frequent'],
['FEV1/PEF', '>80%', '>80%', '60–80%', '<60%'],
['Variability', '<20%', '20–30%', '>30%', '>30%'],
],
col_widths=[3.5*cm, 3.5*cm, 3.8*cm, 3.2*cm, 3*cm]
))
story.append(sp(6))
story.append(h2("Attack Severity"))
story.append(make_table(
['Parameter', 'Mild', 'Moderate', 'Severe', 'Life-threatening'],
[
['Breathlessness', 'Walking', 'Talking', 'At rest', '—'],
['Speech', 'Sentences', 'Phrases', 'Words', 'Silent chest'],
['RR', 'Increased', 'Increased', '>30/min', 'Irregular'],
['HR', '<100', '100–120', '>120', 'Bradycardia'],
['SaO2', '>95%', '91–95%', '<91%', '<90%'],
['PEF', '>70%', '50–70%', '<50%', '<33%'],
],
col_widths=[3.5*cm, 3*cm, 3*cm, 3*cm, 3.5*cm]
))
# ══════════════════════════════════════════════════════════════════════════════
# Q6
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("6. Bronchial Asthma: Treatment & Emergency Care"))
story.append(sp())
story.append(h2("Step Therapy (GINA)"))
story.append(make_table(
[Paragraph('<b>Step</b>', body_style), Paragraph('<b>Severity</b>', body_style), Paragraph('<b>Treatment</b>', body_style)],
[
['Step 1', 'Intermittent', 'SABA (salbutamol) PRN only'],
['Step 2', 'Mild persistent', 'Low-dose ICS + SABA PRN'],
['Step 3', 'Moderate', 'Low-dose ICS/LABA OR medium-dose ICS'],
['Step 4', 'Severe', 'Medium/high-dose ICS/LABA'],
['Step 5', 'Add-on', 'Tiotropium, anti-IgE (omalizumab), oral corticosteroids'],
],
col_widths=[2.5*cm, 4*cm, 10.5*cm]
))
story.append(sp(6))
story.append(h2("Acute Attack Management"))
story.append(b("<b>Mild–Moderate:</b> Salbutamol 2.5–5 mg nebulized q20 min ×3 → oral prednisolone 1–2 mg/kg/day × 3–5d → O2 (SpO2 >94%) → add ipratropium bromide"))
story.append(b("<b>Severe/Emergency:</b>"))
story.append(b2("High-flow oxygen"))
story.append(b2("Salbutamol + ipratropium continuous nebulization"))
story.append(b2("IV/oral systemic corticosteroids (prednisolone 2 mg/kg or methylprednisolone)"))
story.append(b2("<b>IV magnesium sulfate</b> 25–75 mg/kg (max 2.5 g) over 20 min"))
story.append(b2("IV aminophylline if no response (5 mg/kg loading)"))
story.append(b2("Heliox, NIV, intubation in extremis"))
# ══════════════════════════════════════════════════════════════════════════════
# Q7
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("7. Acute Rheumatic Fever: Classification, Clinic, Diagnosis"))
story.append(sp())
story.append(p("Inflammatory disease following Group A Streptococcal (GAS) pharyngitis, 2–4 weeks later."))
story.append(sp())
story.append(h2("Jones Criteria 2015 — Diagnosis"))
story.append(p("<b>Prerequisite:</b> Evidence of preceding GAS infection PLUS 2 major criteria OR 1 major + 2 minor criteria"))
story.append(sp(4))
story.append(h2("Major Criteria (JONES)"))
story.append(b("<b>J</b> — Joint (migratory polyarthritis) — most common (75%)"))
story.append(b("<b>O</b> — (c)Horea (Sydenham's) — involuntary movements"))
story.append(b("<b>N</b> — Nodules (subcutaneous) — over bony prominences"))
story.append(b("<b>E</b> — Erythema marginatum — skin rash"))
story.append(b("<b>S</b> — carditis (Sydenham) — pancarditis; most serious manifestation"))
story.append(sp())
story.append(h2("Minor Criteria"))
story.append(b("Fever >38.5°C, elevated ESR/CRP, prolonged PR interval on ECG, arthralgia"))
story.append(sp())
story.append(h2("GAS Evidence"))
story.append(b("Positive throat culture or rapid antigen test"))
story.append(b("Elevated/rising ASO titer (>200 Todd units in children), Anti-DNase B elevated"))
story.append(sp())
story.append(h2("Carditis Clinic"))
story.append(b("Tachycardia out of proportion to fever, pericardial friction rub"))
story.append(b("New murmur: mitral regurgitation (apical blowing systolic), aortic regurgitation (early diastolic)"))
story.append(b("CCF signs; Echo: valve regurgitation, pericardial effusion"))
# ══════════════════════════════════════════════════════════════════════════════
# Q8
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("8. Acute Rheumatic Fever: Treatment & Prevention"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>GAS Eradication:</b> Benzathine penicillin G IM single dose (600,000 U if <30 kg; 1.2 MU if >30 kg) OR oral amoxicillin ×10d"))
story.append(b("<b>Anti-inflammatory:</b>"))
story.append(b2("Arthritis only: Aspirin 80–100 mg/kg/day ×4–8 weeks"))
story.append(b2("Carditis: Prednisolone 2 mg/kg/day ×2–4 weeks then taper → followed by aspirin"))
story.append(b("<b>Chorea:</b> Haloperidol or valproate; steroids may help; self-limiting"))
story.append(b("<b>CCF:</b> Diuretics, ACE inhibitors, digoxin"))
story.append(sp())
story.append(h2("Secondary Prevention (Penicillin Prophylaxis)"))
story.append(b("Benzathine penicillin G 1.2 MU IM every 3–4 weeks"))
story.append(make_table(
[Paragraph('<b>Category</b>', body_style), Paragraph('<b>Duration</b>', body_style)],
[
['ARF without carditis', '5 years or until age 21 (whichever longer)'],
['ARF with carditis, no residual valve disease', '10 years or until age 21'],
['ARF with persistent valve disease', '10 years or age 40 (lifelong if high risk)'],
],
col_widths=[8*cm, 9*cm]
))
story.append(sp(6))
story.append(b("<b>Primary prevention:</b> Treat GAS pharyngitis within 9 days with penicillin"))
# ══════════════════════════════════════════════════════════════════════════════
# Q9
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("9. Juvenile Rheumatoid Arthritis (JIA)"))
story.append(sp())
story.append(h2("Definition & Etiology"))
story.append(p("Chronic arthritis in children <16 years, lasting >6 weeks, after excluding other causes. Multifactorial: genetic (HLA) + environmental triggers; autoimmune pathogenesis (TNF-α, IL-1, IL-6)."))
story.append(sp())
story.append(h2("ILAR Classification (Subtypes)"))
story.append(make_table(
[Paragraph('<b>Subtype</b>', body_style), Paragraph('<b>Key Features</b>', body_style)],
[
['Oligoarticular', '<5 joints, girls, ANA+, risk of uveitis (most common)'],
['Polyarticular RF−', '>5 joints, any age'],
['Polyarticular RF+', 'Like adult RA, erosive'],
['Systemic (Still\'s)', 'Quotidian fever, salmon rash, hepatosplenomegaly, serositis'],
['Enthesitis-related', 'Boys, HLA-B27, sacroiliac involvement'],
['Psoriatic', 'Psoriasis + arthritis'],
],
col_widths=[5*cm, 12*cm]
))
story.append(sp(6))
story.append(h2("Clinic"))
story.append(b("Joint swelling, warmth, pain, morning stiffness >1 hour"))
story.append(b("Systemic JIA: high spiking fever, evanescent rash, lymphadenopathy, hepatosplenomegaly, pericarditis"))
story.append(b("Uveitis (oligoarticular ANA+) — often asymptomatic, requires slit-lamp screening"))
story.append(b("Growth retardation, micrognathia (TMJ involvement)"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("Clinical (>6 weeks, <16 years, exclusion); CBC, ESR, CRP, ANA, RF, HLA-B27, ferritin (very high in systemic)"))
story.append(b("X-ray: osteoporosis, joint space narrowing, erosions (late); USS/MRI: synovitis, effusion"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>NSAIDs:</b> naproxen, ibuprofen (symptom relief)"))
story.append(b("<b>Intra-articular corticosteroids:</b> triamcinolone (oligoarticular)"))
story.append(b("<b>DMARDs:</b> Methotrexate (first-line DMARD), sulfasalazine (enthesitis)"))
story.append(b("<b>Biologics:</b> Anti-TNF (etanercept, adalimumab); IL-1 inhibitor (canakinumab — systemic JIA); IL-6 inhibitor (tocilizumab); Abatacept"))
story.append(b("Physiotherapy, occupational therapy, regular ophthalmology monitoring"))
# ══════════════════════════════════════════════════════════════════════════════
# Q10
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("10. GP Tactics in Diagnosis of Congenital Heart Defects"))
story.append(sp())
story.append(h2("When to Suspect CHD"))
story.append(b("Cyanosis (unresponsive to O2 — nitrogen washout test)"))
story.append(b("Heart murmur, tachycardia, tachypnea, poor feeding, failure to thrive"))
story.append(b("Hepatomegaly, sweating during feeds (CCF signs)"))
story.append(b("Absent femoral pulses = coarctation; differential cyanosis (PDA with R-L shunt)"))
story.append(sp())
story.append(h2("GP Steps"))
story.append(b("<b>History:</b> family history, prenatal infections (rubella), drug exposure, chromosomal anomalies"))
story.append(b2("Down syndrome → AVSD, VSD; Turner → bicuspid aortic valve, coarctation"))
story.append(b("<b>Exam:</b> inspect (cyanosis, clubbing, dysmorphia), palpate (thrills/heaves), auscultate (murmurs)"))
story.append(b("<b>4-limb BP</b> (coarctation: arm BP > leg BP)"))
story.append(b("<b>Pulse oximetry</b> pre- and post-ductal (right hand + foot)"))
story.append(b("<b>ECG, CXR</b> (heart size, pulmonary vascularity)"))
story.append(b("<b>Urgent referral to pediatric cardiologist + echocardiography</b> (definitive)"))
story.append(b("<b>Newborn pulse oximetry screening</b> at 24–48h (universal recommendation)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q11
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("11. CHD — Enrichment of Pulmonary Circulation: PDA & Truncus Arteriosus"))
story.append(sp())
story.append(h2("Patent Ductus Arteriosus (PDA)"))
story.append(b("Failure of ductus arteriosus to close after birth (normally by 48–72h)"))
story.append(b("<b>Clinic:</b> continuous 'machinery' murmur (Gibson), left infraclav; wide pulse pressure; bounding pulses; tachycardia; CCF if large"))
story.append(b("<b>CXR:</b> cardiomegaly, increased pulmonary vascular markings"))
story.append(b("<b>Echo:</b> left-to-right shunt"))
story.append(b("<b>Eisenmenger:</b> uncorrected → R-L shunt → differential cyanosis (lower limbs blue, upper pink)"))
story.append(b("<b>Treatment:</b> Indomethacin/ibuprofen (premature); surgical ligation or catheter-based device closure"))
story.append(sp())
story.append(h2("Common Arterial Trunk (Truncus Arteriosus)"))
story.append(b("Single arterial trunk from both ventricles + VSD always present"))
story.append(b("<b>Clinic:</b> early cyanosis, CCF (weeks 1–2), bounding pulses, single loud S2"))
story.append(b("<b>Treatment:</b> Rastelli procedure (patch VSD + RV-to-PA conduit) in early infancy"))
# ══════════════════════════════════════════════════════════════════════════════
# Q12
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("12. CHD — Decreased Pulmonary Blood Flow: PS & Tetralogy of Fallot"))
story.append(sp())
story.append(h2("Isolated Pulmonary Artery Stenosis"))
story.append(b("Obstruction to RV outflow (valvular most common)"))
story.append(b("<b>Mild:</b> asymptomatic; ejection click + systolic murmur at upper LSB, radiating to back"))
story.append(b("<b>Severe:</b> dyspnea, fatigue, RVF, cyanosis (via foramen ovale)"))
story.append(b("<b>CXR:</b> post-stenotic PA dilation; oligemic fields (severe) | <b>ECG:</b> RVH"))
story.append(b("<b>Treatment:</b> Mild (gradient <40 mmHg): observe; Moderate-severe: balloon valvuloplasty"))
story.append(sp())
story.append(h2("Tetralogy of Fallot (TOF) — Most Common Cyanotic CHD"))
story.append(b("<b>Four components (PROVE):</b> Pulmonary stenosis, Right ventricular hypertrophy, Overriding aorta, Ventricular septal defect"))
story.append(b("<b>Clinic:</b> cyanosis, 'Tet spells' (hypercyanotic episodes), squatting posture, clubbing"))
story.append(b("<b>Tet spell triggers:</b> feeding, crying, defecation (infundibular spasm)"))
story.append(b("<b>CXR:</b> 'Boot-shaped heart' (coeur en sabot), concave PA segment, oligemic lungs"))
story.append(sp())
story.append(h2("Management of Tet Spell"))
story.append(b("Knee-chest/squatting position → O2 → IV morphine → IV fluids → phenylephrine IV → NaHCO3"))
story.append(b("Propranolol (relaxes infundibular spasm)"))
story.append(b("<b>Definitive:</b> Surgical total correction OR palliative Blalock-Taussig shunt"))
# ══════════════════════════════════════════════════════════════════════════════
# Q13
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("13. Syndrome of Vegetative Dystonia"))
story.append(sp())
story.append(h2("Classification"))
story.append(b("<b>By tone:</b> sympathicotonic, vagotonic, mixed"))
story.append(b("<b>By course:</b> permanent, paroxysmal (crises), mixed"))
story.append(b("<b>By origin:</b> primary (constitutional), secondary (somatic, neurosis, endocrine)"))
story.append(sp())
story.append(h2("Clinic"))
story.append(b("<b>Cardiovascular:</b> palpitations, labile BP, chest pain, orthostatic changes"))
story.append(b("<b>Respiratory:</b> 'unsatisfied deep breath,' hyperventilation"))
story.append(b("<b>GI:</b> nausea, abdominal pain, diarrhea/constipation"))
story.append(b("<b>Skin:</b> dermographism, cold/sweaty extremities, pallor/flushing"))
story.append(b("<b>Neurological:</b> headaches, dizziness, fainting, sleep disturbances, anxiety, fatigue"))
story.append(sp())
story.append(h2("Autonomic Crises"))
story.append(b("<b>Sympathoadrenal (panic-attack-like):</b> anxiety, tachycardia, hypertension, pallor, tremor"))
story.append(b("<b>Vagoinsular:</b> bradycardia, hypotension, nausea, profuse sweating"))
story.append(sp())
story.append(h2("Diagnosis & Treatment"))
story.append(b("Clinical exclusion of organic disease; Kerdo index, orthostatic test, ECG"))
story.append(b("Lifestyle: regular sleep, exercise, stress reduction; psychotherapy"))
story.append(b("<b>Sympathicotonic:</b> beta-blockers (propranolol), benzodiazepines"))
story.append(b("<b>Vagotonic:</b> anticholinergics, adaptogens (ginseng)"))
story.append(b("<b>Severe:</b> SSRIs, anxiolytics"))
# ══════════════════════════════════════════════════════════════════════════════
# Q14
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("14. Chronic Gastritis"))
story.append(sp())
story.append(h2("Etiology & Pathogenesis"))
story.append(make_table(
[Paragraph('<b>Type</b>', body_style), Paragraph('<b>Cause</b>', body_style), Paragraph('<b>Location</b>', body_style)],
[
['Type B', 'H. pylori (most common)', 'Antrum'],
['Type A', 'Autoimmune (anti-parietal cell Ab)', 'Body/Fundus'],
['Type C', 'NSAIDs, bile reflux, alcohol', 'Antrum/diffuse'],
],
col_widths=[3*cm, 8.5*cm, 5.5*cm]
))
story.append(sp(6))
story.append(h2("Clinic & Diagnosis"))
story.append(b("Often asymptomatic; epigastric pain/discomfort, nausea, belching, bloating"))
story.append(b("Autoimmune: B12 deficiency (megaloblastic anemia, neuropathy, glossitis)"))
story.append(b("<b>Diagnosis:</b> Endoscopy + biopsy (gold standard); H. pylori: urea breath test, stool antigen, CLO test"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>H. pylori:</b> Triple therapy: PPI + amoxicillin + clarithromycin ×14 days; confirm eradication with UBT 4 weeks later"))
story.append(b("<b>Bismuth quadruple (2nd line):</b> PPI + bismuth + metronidazole + tetracycline ×14 days"))
story.append(b("<b>Autoimmune:</b> B12 IM replacement; PPI"))
story.append(b("<b>General:</b> PPI (omeprazole 20–40 mg), H2 blockers, avoid NSAIDs/alcohol"))
# ══════════════════════════════════════════════════════════════════════════════
# Q15
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("15. Peptic Ulcer Disease (PUD)"))
story.append(sp())
story.append(h2("Etiology & Pathogenesis"))
story.append(b("<b>Etiology:</b> H. pylori (80–90% DU; 60–70% GU), NSAIDs, Zollinger-Ellison syndrome, stress ulcers"))
story.append(b("<b>Pathogenesis:</b> Imbalance: aggressive (acid, pepsin, H. pylori, NSAIDs) vs defensive (mucus, bicarb, PGs, mucosal blood flow)"))
story.append(sp())
story.append(h2("Classification & Clinic"))
story.append(b("<b>Duodenal ulcer:</b> epigastric pain 2–4h after meals (hunger pain), relieved by food, nocturnal pain"))
story.append(b("<b>Gastric ulcer:</b> epigastric pain during/after meals, weight loss"))
story.append(b("<b>Forrest classification (bleeding risk):</b> Ia/b = active bleeding; IIa/b/c = stigmata; III = clean base"))
story.append(sp())
story.append(h2("Complications"))
story.append(b("Bleeding, perforation, penetration, pyloric stenosis, malignant transformation (GU only)"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>H. pylori eradication</b> (triple/quadruple therapy — see Q14)"))
story.append(b("<b>Acid suppression:</b> PPI ×4 weeks (DU) or ×8 weeks (GU)"))
story.append(b("<b>Stop NSAIDs;</b> sucralfate (mucosal protective)"))
story.append(b("<b>Bleeding:</b> Endoscopic hemostasis + IV PPI infusion (80 mg bolus → 8 mg/h); surgery if endoscopy fails"))
story.append(b("<b>Perforation:</b> Emergency surgery (omental patch)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q16
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("16. Biliary Dyskinesia"))
story.append(sp())
story.append(h2("Definition & Types"))
story.append(b("Disordered gallbladder/sphincter of Oddi motility without organic pathology"))
story.append(b("<b>Hypermotile (hyperkinetic):</b> excessive contraction; sharp crampy pain after eating; thin/nervous patients"))
story.append(b("<b>Hypomotile (hypokinetic):</b> poor emptying (EF <40%); dull aching; overweight patients"))
story.append(sp())
story.append(h2("Clinic"))
story.append(b("RUQ/epigastric colicky pain after fatty foods, nausea, vomiting, belching"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("<b>USS:</b> gallbladder size/wall, exclude stones; dynamic USS with CCK stimulation"))
story.append(b("<b>HIDA scan:</b> EF <40% = hypokinetic"))
story.append(b("<b>Sphincter of Oddi manometry</b> if SOD suspected"))
story.append(b("Exclude organic disease: LFTs, lipase, CBC"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>General:</b> small frequent meals, low fat, regular eating, stress reduction"))
story.append(b("<b>Hypomotile:</b> prokinetics (domperidone), ursodeoxycholic acid"))
story.append(b("<b>Hypermotile:</b> antispasmodics (drotaverine/No-spa, mebeverine, hyoscine), magnesium"))
story.append(b("<b>Refractory hypokinesia:</b> cholecystectomy"))
# ══════════════════════════════════════════════════════════════════════════════
# Q17
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("17. Acute Post-Streptococcal Glomerulonephritis: Etiology, Pathogenesis, Classification"))
story.append(sp())
story.append(h2("Etiology"))
story.append(b("Group A beta-hemolytic Streptococcus (nephritogenic strains)"))
story.append(b("M types 1, 3, 12 (pharyngitis); types 47, 49, 57 (skin/impetigo)"))
story.append(b("Latent period: 1–3 weeks after pharyngitis; 3–6 weeks after impetigo"))
story.append(sp())
story.append(h2("Pathogenesis"))
story.append(b("Streptococcal antigens (NAPlr, SPEB) deposit in glomeruli"))
story.append(b("Type III hypersensitivity: immune complex → complement activation (C3 deposition) → glomerular inflammation"))
story.append(b("IF: 'Lumpy-bumpy' subepithelial IgG + C3 deposits"))
story.append(sp())
story.append(h2("Classification"))
story.append(b("<b>By clinical syndrome:</b> nephritic, nephrotic, asymptomatic urinary abnormalities, RPGN (rare)"))
story.append(b("<b>By severity:</b> mild, moderate, severe"))
story.append(b("<b>By course:</b> acute, subacute, rapidly progressive"))
# ══════════════════════════════════════════════════════════════════════════════
# Q18
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("18. APSGN: Differential Diagnosis & Treatment"))
story.append(sp())
story.append(h2("Differential Diagnosis"))
story.append(make_table(
[Paragraph('<b>Disease</b>', body_style), Paragraph('<b>Distinguishing Features</b>', body_style)],
[
['IgA nephropathy', 'Hematuria during (not after) URTI; normal complement'],
['Lupus nephritis', 'Young females; ANA+; low C3 AND C4'],
['MPGN', 'Low C3 persists >8 weeks'],
['Alport syndrome', 'Hereditary; deafness; X-linked'],
['RPGN', 'Goodpasture (anti-GBM); ANCA vasculitis'],
['Minimal change disease', 'Nephrotic; steroid-responsive; normal complement'],
],
col_widths=[5*cm, 12*cm]
))
story.append(sp(6))
story.append(h2("Key APSGN Features"))
story.append(b("Preceding GAS infection; elevated ASO/anti-DNase B; low C3 (normalizes by 6–8 weeks); C4 usually normal"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("Hospitalization; fluid + sodium restriction"))
story.append(b("<b>Antihypertensives:</b> calcium channel blockers, hydralazine; diuretics: furosemide"))
story.append(b("<b>Antibiotics:</b> penicillin/amoxicillin ×10d (eradicate GAS; does NOT alter GN course)"))
story.append(b("<b>Dialysis</b> if: severe AKI, hyperkalemia, acidosis, refractory fluid overload"))
# ══════════════════════════════════════════════════════════════════════════════
# Q19
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("19. APSGN with Nephritic Syndrome: Clinic & Treatment"))
story.append(sp())
story.append(h2("Classic Nephritic Triad"))
story.append(b("<b>1. Hematuria</b> — macroscopic ('cola/smoky urine'), dysmorphic RBCs, RBC casts"))
story.append(b("<b>2. Hypertension</b> — salt/water retention (RAAS activation + reduced GFR)"))
story.append(b("<b>3. Oliguria</b> — fluid retention, periorbital + lower limb edema"))
story.append(b("Sub-nephrotic proteinuria, azotemia (elevated Cr, BUN), flank pain, headache"))
story.append(b("<b>Hypertensive encephalopathy:</b> seizures, visual disturbances, altered consciousness"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("Bed rest; strict fluid balance; sodium restriction (<2 g/day)"))
story.append(b("<b>Furosemide</b> 1–2 mg/kg/day"))
story.append(b("<b>Antihypertensives:</b> nifedipine, amlodipine; IV labetalol/nitroprusside for hypertensive emergency"))
story.append(b("<b>Penicillin</b> ×10 days"))
story.append(b("<b>Dialysis</b> if: K+ >6, BUN >100, severe acidosis, uremic symptoms"))
story.append(note("Prognosis: excellent in children — >95% full recovery"))
# ══════════════════════════════════════════════════════════════════════════════
# Q20
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("20. APSGN with Nephrotic Syndrome: Clinic & Treatment"))
story.append(sp())
story.append(h2("Nephrotic Syndrome Criteria"))
story.append(make_table(
[Paragraph('<b>Feature</b>', body_style), Paragraph('<b>Definition</b>', body_style)],
[
['Proteinuria', '>3.5 g/day (adults); >40 mg/m²/h (children)'],
['Hypoalbuminemia', '<30 g/L'],
['Edema', 'Pitting: periorbital, ascites, pleural effusion, genital'],
['Hyperlipidemia', 'Elevated cholesterol, triglycerides'],
['Lipiduria', 'Fatty casts, oval fat bodies'],
],
col_widths=[5*cm, 12*cm]
))
story.append(sp(6))
story.append(h2("Treatment"))
story.append(b("Fluid and sodium restriction; furosemide (caution in hypovolemia) + spironolactone"))
story.append(b("<b>Albumin 25% infusion</b> if severe hypoalbuminemia + hypovolemia → followed by furosemide"))
story.append(b("<b>Anticoagulation</b> (prophylactic heparin) if albumin <20 g/L (thromboembolism risk)"))
story.append(b("<b>Antibiotics:</b> penicillin"))
story.append(b("<b>Note:</b> Corticosteroids NOT routinely indicated in APSGN (usually self-limiting); differs from MCD"))
# ══════════════════════════════════════════════════════════════════════════════
# Q21
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("21. Acute & Chronic Pyelonephritis: Clinic & Diagnostics"))
story.append(sp())
story.append(h2("Acute Pyelonephritis — Clinic"))
story.append(b("<b>Etiology:</b> E. coli (80%), Klebsiella, Proteus, Enterococcus; ascending infection"))
story.append(b("High fever (>38.5°C), chills, rigors"))
story.append(b("Flank/loin pain (positive Pasternatsky sign — CVA tenderness)"))
story.append(b("LUTS: dysuria, frequency, urgency (if cystitis coexists)"))
story.append(b("Nausea, vomiting, malaise"))
story.append(b("<b>Infants:</b> non-specific — fever, poor feeding, vomiting, FTT, neonatal jaundice"))
story.append(sp())
story.append(h2("Chronic Pyelonephritis — Clinic"))
story.append(b("Recurrent/low-grade fever, flank discomfort, fatigue, hypertension"))
story.append(b("Polyuria, nocturia (tubular dysfunction); CKD in advanced disease"))
story.append(sp())
story.append(h2("Diagnostics"))
story.append(b("<b>Urinalysis:</b> pyuria (WBC >5/hpf), leukocyte casts (pathognomonic), bacteriuria, nitrites+"))
story.append(b("<b>Urine culture (gold standard):</b> >10⁵ CFU/mL"))
story.append(b("<b>CBC:</b> leukocytosis + left shift (acute); anemia (chronic)"))
story.append(b("<b>Imaging:</b> USS (enlarged/scarred kidney, hydronephrosis); DMSA scan (cortical scars — gold standard in children)"))
story.append(b("<b>MCUG:</b> vesicoureteral reflux in children; CT urography: stones, obstruction, abscess"))
# ══════════════════════════════════════════════════════════════════════════════
# Q22
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("22. Acute & Chronic Pyelonephritis: Treatment"))
story.append(sp())
story.append(h2("Acute Pyelonephritis"))
story.append(make_table(
[Paragraph('<b>Setting</b>', body_style), Paragraph('<b>Regimen</b>', body_style)],
[
['Outpatient (mild–moderate)', 'Ciprofloxacin 500 mg BID ×7d OR levofloxacin 750 mg OD ×5d OR cotrimoxazole ×14d'],
['Children', 'Cefixime, cotrimoxazole, or amox-clav ×10–14d'],
['Inpatient (severe)', 'IV ceftriaxone 1–2 g/day OR IV ampicillin + gentamicin → oral when improved (total 14d)'],
],
col_widths=[5.5*cm, 11.5*cm]
))
story.append(sp(6))
story.append(b("<b>Supportive:</b> IV fluids, antipyretics, analgesia"))
story.append(b("<b>Drainage</b> if obstruction: percutaneous nephrostomy or ureteral stent"))
story.append(sp())
story.append(h2("VUR in Children"))
story.append(b("Grade I–III: prophylactic antibiotics (trimethoprim/nitrofurantoin), await spontaneous resolution"))
story.append(b("Grade IV–V: endoscopic injection or ureteral reimplantation"))
story.append(sp())
story.append(h2("Chronic Pyelonephritis"))
story.append(b("Identify/treat underlying cause (VUR, stones, obstruction, neurogenic bladder)"))
story.append(b("Long-term antibiotic prophylaxis; BP control (ACE inhibitors/ARBs — renoprotective)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q23
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("23. Diseases with Increased Bleeding: Classification & Hemostasis"))
story.append(sp())
story.append(h2("Mechanism of Hemostasis"))
story.append(b("<b>Primary:</b> Vascular injury → vasoconstriction → platelet adhesion (GPIb-vWF) → activation (TxA2, ADP) → aggregation (GPIIb/IIIa-fibrinogen) → platelet plug"))
story.append(b("<b>Secondary (coagulation cascade):</b>"))
story.append(b2("Extrinsic: TF + VIIa → Xa"))
story.append(b2("Intrinsic: XIIa → XIa → IXa + VIIIa → Xa"))
story.append(b2("Common: Xa + Va → thrombin → fibrinogen → fibrin (stabilized by XIIIa)"))
story.append(b("<b>Fibrinolysis:</b> Plasminogen → plasmin → fibrin degradation products"))
story.append(sp())
story.append(h2("Classification"))
story.append(make_table(
[Paragraph('<b>Disorder</b>', body_style), Paragraph('<b>Platelet/Vessel</b>', body_style), Paragraph('<b>PT</b>', body_style), Paragraph('<b>aPTT</b>', body_style)],
[
['Thrombocytopenia (ITP, TTP)', 'Low count', 'Normal', 'Normal'],
['Hemophilia A/B', 'Normal', 'Normal', 'Prolonged'],
['von Willebrand disease', 'Prolonged BT', 'Normal', 'Prolonged'],
['Hemorrhagic vasculitis', 'Vessel wall', 'Normal', 'Normal'],
['DIC', 'Thrombocytopenia', 'Prolonged', 'Prolonged'],
['Liver disease', 'Combined', 'Prolonged', 'Prolonged'],
],
col_widths=[5*cm, 4.5*cm, 3*cm, 3*cm]
))
story.append(sp(6))
story.append(h2("Differential Approach"))
story.append(b("<b>Petechiae/purpura/mucocutaneous:</b> platelet disorder or vasculitis"))
story.append(b("<b>Deep hematomas/hemarthroses:</b> coagulation factor deficiency (hemophilia)"))
story.append(b("<b>Mixed:</b> vWD, DIC, liver disease"))
# ══════════════════════════════════════════════════════════════════════════════
# Q24
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("24. Hemophilia: Clinic, Diagnosis, Treatment"))
story.append(sp())
story.append(h2("Types & Severity"))
story.append(make_table(
['', Paragraph('<b>Severe</b>', body_style), Paragraph('<b>Moderate</b>', body_style), Paragraph('<b>Mild</b>', body_style)],
[
['Factor level', '<1%', '1–5%', '5–40%'],
['Bleeding', 'Spontaneous', 'After minor trauma', 'After surgery/major trauma'],
],
col_widths=[4*cm, 4.5*cm, 4.5*cm, 4*cm]
))
story.append(sp(6))
story.append(h2("Clinic"))
story.append(b("<b>Hemarthroses</b> (most characteristic): knee, elbow, ankle → hemophilic arthropathy"))
story.append(b("Deep tissue hematomas (iliopsoas → hip pain, femoral nerve palsy)"))
story.append(b("Mucosal bleeding (less common than platelet disorders)"))
story.append(b("<b>Intracranial hemorrhage</b> (life-threatening)"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("Prolonged <b>aPTT;</b> normal PT, TT, platelet count"))
story.append(b("<b>Factor VIII assay</b> (Hemophilia A) or <b>Factor IX assay</b> (Hemophilia B)"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>Factor replacement:</b> recombinant FVIII (Hem A) or FIX (Hem B) — on-demand or prophylactic"))
story.append(b("<b>DDAVP:</b> mild Hemophilia A only (releases stored vWF/FVIII)"))
story.append(b("<b>Tranexamic acid:</b> adjunct for mucosal bleeding"))
story.append(b("<b>Inhibitors (15–30% of severe Hem A):</b> rFVIIa (NovoSeven) or FEIBA; emicizumab (bispecific Ab)"))
story.append(b("<b>Avoid:</b> IM injections, aspirin/NSAIDs; joint protection (physiotherapy)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q25
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("25. Immune Thrombocytopenic Purpura (ITP)"))
story.append(sp())
story.append(h2("Etiology & Pathogenesis"))
story.append(b("Autoimmune: anti-platelet IgG (against GPIIb/IIIa or GPIb/IX) → splenic destruction + impaired production"))
story.append(b("Children: often preceded by viral infection 1–3 weeks prior"))
story.append(sp())
story.append(h2("Clinic"))
story.append(b("Sudden petechiae, purpura, ecchymoses (skin); epistaxis, gingival bleeding, menorrhagia"))
story.append(b("<b>ICH (rare <1% but most serious)</b>"))
story.append(b("<b>No splenomegaly, no lymphadenopathy</b> (distinguishes from leukemia/lymphoma)"))
story.append(b("Child is otherwise well (afebrile, no systemic symptoms)"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("CBC: isolated thrombocytopenia (<100 × 10⁹/L, often <20); normal or large platelets on smear"))
story.append(b("Normal PT, aPTT; bone marrow: increased megakaryocytes"))
story.append(b("Exclude secondary causes: ANA, HIV, HCV"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>Platelet >30 × 10⁹/L, no significant bleeding:</b> observe (>80% spontaneous remission in children)"))
story.append(b("<b>Active bleeding/platelet <20:</b> IV methylprednisolone 30 mg/kg/day ×3d OR oral prednisolone 4 mg/kg/day"))
story.append(b("<b>IVIG</b> 1 g/kg/day ×1–2d (rapid response; preferred if surgery needed)"))
story.append(b("<b>Chronic ITP (>12 months):</b> splenectomy, rituximab, TPO receptor agonists (eltrombopag, romiplostim)"))
story.append(sp())
story.append(h2("First Aid for Bleeding"))
story.append(b("Direct pressure; ice packs; epistaxis: pinch soft nose ×10–15 min, nasal packing if persists"))
story.append(b("Tranexamic acid for mucosal bleeding; avoid IM injections, aspirin/NSAIDs"))
story.append(b("<b>Platelet transfusion:</b> only for life-threatening bleeding (ICH); give with IVIG simultaneously"))
# ══════════════════════════════════════════════════════════════════════════════
# Q26
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("26. Hemorrhagic Vasculitis (Henoch-Schonlein Purpura / IgA Vasculitis)"))
story.append(sp())
story.append(h2("Etiology & Pathogenesis"))
story.append(b("IgA-mediated small vessel vasculitis; triggers: URTI (GAS, viral), drugs, foods, vaccinations"))
story.append(b("Peak age 2–11 years; most common systemic vasculitis in children"))
story.append(b("Elevated aberrantly glycosylated IgA1 → immune complexes → small vessel deposition → complement activation → vasculitis"))
story.append(sp())
story.append(h2("Classic Tetrad"))
story.append(b("<b>Palpable purpura</b> — non-thrombocytopenic; lower limbs and buttocks; gravity-dependent"))
story.append(b("<b>Arthritis/arthralgia</b> — knees, ankles; migratory, non-destructive"))
story.append(b("<b>GI involvement</b> — colicky abdominal pain (mesenteric vasculitis), nausea, bloody diarrhea; risk of intussusception"))
story.append(b("<b>Renal involvement</b> — hematuria, proteinuria (IgA nephropathy pattern) — most important for prognosis"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("Clinical (palpable purpura + ≥1 criterion); platelets <b>normal</b> (key!)"))
story.append(b("<b>Skin biopsy:</b> IgA deposits on IF (gold standard)"))
story.append(b("Urinalysis (hematuria, proteinuria), elevated IgA (50%), renal biopsy if significant nephritis"))
story.append(sp())
story.append(h2("Treatment"))
story.append(b("<b>Skin/joints only:</b> NSAIDs, rest, hydration; spontaneous resolution in weeks"))
story.append(b("<b>GI involvement:</b> prednisolone 1–2 mg/kg/day (reduces abdominal pain duration)"))
story.append(b("<b>Renal:</b> mild = monitor; significant proteinuria = ACE inhibitors + corticosteroids; severe nephritis = ± azathioprine/cyclophosphamide"))
story.append(note("Prognosis: excellent in most; renal disease determines long-term outcome (CKD in 5–10%)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q27
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("27. Leukemia in Children: Classification, Clinic, Diagnosis"))
story.append(sp())
story.append(h2("Classification"))
story.append(b("<b>ALL</b> (Acute Lymphoblastic Leukemia) — 80% of childhood leukemia; peak age 2–5 years"))
story.append(b("<b>AML</b> (Acute Myeloid Leukemia) — 15–20%"))
story.append(b("<b>CML</b> — rare; <b>CLL</b> — extremely rare in children"))
story.append(b("<b>ALL subtypes:</b>"))
story.append(b2("By immunophenotype: B-cell ALL (85%, CD19+, CD10+) or T-cell ALL (15%, mediastinal mass, older boys)"))
story.append(b2("Favorable cytogenetics: hyperdiploidy, t(12;21)/ETV6-RUNX1"))
story.append(b2("Unfavorable: Ph+ t(9;22)/BCR-ABL1, KMT2A rearrangement, hypodiploidy"))
story.append(b2("NCI risk: Standard (age 1–9, WBC <50,000) vs High (age <1 or >9, or WBC >50,000)"))
story.append(sp())
story.append(h2("Clinic"))
story.append(b("<b>Bone marrow failure:</b>"))
story.append(b2("Anemia: pallor, fatigue, tachycardia"))
story.append(b2("Thrombocytopenia: petechiae, purpura, mucosal bleeding"))
story.append(b2("Neutropenia: recurrent infections, fever"))
story.append(b("<b>Organ infiltration:</b>"))
story.append(b2("Lymphadenopathy (generalized)"))
story.append(b2("Hepatosplenomegaly"))
story.append(b2("Bone/joint pain — limp, refusal to walk (common presenting symptom!)"))
story.append(b2("Mediastinal mass (T-cell ALL — SVC syndrome, respiratory distress)"))
story.append(b2("CNS: headache, vomiting, cranial nerve palsies (CN VI most common), papilledema"))
story.append(b2("Testicular: painless enlargement"))
story.append(sp())
story.append(h2("Diagnosis"))
story.append(b("<b>CBC + smear:</b> anemia, thrombocytopenia, variable WBC, blast cells"))
story.append(b("<b>Bone marrow aspiration (gold standard):</b> >25% blasts + immunophenotyping (flow cytometry)"))
story.append(b("<b>Cytogenetics/FISH/PCR:</b> chromosomal analysis, translocation detection"))
story.append(b("<b>CSF analysis</b> (LP): CNS involvement"))
story.append(b("LDH elevated (tumor burden), uric acid elevated; CXR/CT (mediastinal mass)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q28
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("28. Leukemia in Children: Treatment"))
story.append(sp())
story.append(h2("ALL — Phases"))
story.append(make_table(
[Paragraph('<b>Phase</b>', body_style), Paragraph('<b>Duration</b>', body_style), Paragraph('<b>Agents</b>', body_style)],
[
['Remission Induction', '4–6 weeks', 'Glucocorticoid + Vincristine + L-Asparaginase (± Anthracycline for high-risk)'],
['CNS Prophylaxis', 'Throughout', 'Intrathecal methotrexate (± cytarabine, hydrocortisone); cranial RT largely replaced'],
['Consolidation', 'Months', 'High-dose methotrexate, 6-MP, cytarabine, cyclophosphamide (risk-adapted)'],
['Maintenance', '2–3 years', 'Oral 6-MP daily + methotrexate weekly; pulses of vincristine + steroid'],
],
col_widths=[3.5*cm, 3*cm, 10.5*cm]
))
story.append(sp(6))
story.append(b("<b>Ph+ ALL:</b> add tyrosine kinase inhibitor (imatinib/dasatinib)"))
story.append(b("<b>Very high risk/relapsed:</b> allogeneic HSCT (bone marrow transplant)"))
story.append(b("<b>CAR-T cell therapy</b> (tisagenlecleucel) for relapsed/refractory B-cell ALL"))
story.append(sp())
story.append(h2("AML Treatment"))
story.append(b("Intensive chemotherapy: cytarabine + anthracycline ('7+3' regimen) → consolidation or HSCT"))
story.append(b("<b>AML-M3 (APL):</b> ATRA + arsenic trioxide (differentiation therapy — excellent prognosis)"))
story.append(sp())
story.append(h2("Supportive Care"))
story.append(b("<b>Tumor lysis syndrome prevention:</b> hyperhydration, allopurinol/rasburicase"))
story.append(b("<b>Infection prophylaxis:</b> antifungals, antivirals, cotrimoxazole (Pneumocystis)"))
story.append(b("Transfusions (RBCs, platelets); G-CSF post-transplant"))
story.append(note("Prognosis: ALL — 5-year OS >90% (standard risk); AML ~60–70%"))
# ══════════════════════════════════════════════════════════════════════════════
# Q29
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("29. Acute Allergic Reactions: Urticaria & Quincke's Edema"))
story.append(sp())
story.append(h2("Urticaria"))
story.append(b("<b>Clinic:</b> pruritic wheals (<24h each), erythematous, raised plaques; no residual skin changes"))
story.append(b("<b>Acute (<6 weeks):</b> usually IgE-mediated; triggers: foods, drugs (penicillin, NSAIDs), infections, insect stings"))
story.append(b("<b>Chronic (>6 weeks):</b> usually idiopathic/autoimmune; exclude thyroid disease, SLE"))
story.append(b("<b>Emergency care:</b>"))
story.append(b2("Mild–Moderate: oral non-sedating H1 antihistamine (cetirizine, loratadine, fexofenadine); up to 4× standard dose"))
story.append(b2("Severe/refractory: oral prednisolone 20–40 mg ×3–5d"))
story.append(b2("Chronic urticaria not responding: omalizumab (anti-IgE)"))
story.append(sp())
story.append(h2("Quincke's Edema (Angioedema)"))
story.append(b("Deep dermal/subcutaneous swelling; non-pitting, often non-pruritic"))
story.append(b("Location: face (lips, eyelids, tongue), throat, hands, genitalia"))
story.append(make_table(
[Paragraph('<b>Type</b>', body_style), Paragraph('<b>Feature</b>', body_style), Paragraph('<b>Treatment</b>', body_style)],
[
['Allergic/histaminergic', 'With urticaria; rapid onset', 'Epinephrine, antihistamines, steroids'],
['Hereditary (HAE)', 'No urticaria; recurrent; C1 inhibitor deficiency', 'C1-INH concentrate, icatibant (acute); danazol/tranexamic acid (prophylaxis)'],
['ACE inhibitor-induced', 'Bradykinin-mediated; no urticaria', 'Stop ACE inhibitor'],
],
col_widths=[4*cm, 6*cm, 7*cm]
))
story.append(sp(6))
story.append(h2("Emergency Care (Laryngeal/Anaphylactic Angioedema)"))
story.append(b("<b>PRIORITY: Airway assessment</b> (tongue/throat involvement = asphyxia risk)"))
story.append(b("<b>Epinephrine 0.3–0.5 mg (1:1000) IM — LATERAL THIGH</b> (children: 0.01 mg/kg)"))
story.append(b("IV antihistamines (diphenhydramine), IV/IM corticosteroids (hydrocortisone 200–300 mg)"))
story.append(b("Prepare for airway management (intubation, cricothyrotomy)"))
# ══════════════════════════════════════════════════════════════════════════════
# Q30
# ══════════════════════════════════════════════════════════════════════════════
story.append(h1("30. Anaphylactic Shock"))
story.append(sp())
story.append(h2("Etiology"))
story.append(b("<b>Foods:</b> nuts (peanut, tree nuts), shellfish, fish, milk, eggs"))
story.append(b("<b>Drugs:</b> penicillin (most common), NSAIDs, muscle relaxants, IV contrast, vaccines"))
story.append(b("<b>Insect stings:</b> bee/wasp venom; latex, blood products; exercise-induced, idiopathic"))
story.append(sp())
story.append(h2("Pathophysiology"))
story.append(b("IgE crosslinking → mast cell/basophil degranulation → histamine, tryptase, PGs, leukotrienes → vasodilation, vascular permeability, bronchospasm"))
story.append(sp())
story.append(h2("Clinical Manifestations (multi-system, minutes)"))
story.append(make_table(
[Paragraph('<b>System</b>', body_style), Paragraph('<b>Features</b>', body_style), Paragraph('<b>Frequency</b>', body_style)],
[
['Cutaneous', 'Urticaria, angioedema, flushing, pruritus', '90%'],
['Respiratory', 'Bronchospasm (wheeze), stridor, hoarseness, dyspnea', '70%'],
['Cardiovascular', 'Hypotension, tachycardia, arrhythmia, collapse', '45%'],
['GI', 'Nausea, vomiting, diarrhea, crampy pain', '30–45%'],
['Neurological', 'Dizziness, syncope, anxiety, "sense of doom"', 'Variable'],
],
col_widths=[4*cm, 10*cm, 3*cm]
))
story.append(sp(6))
story.append(h2("Emergency Care — Sequence"))
story.append(b("<b>1. STOP trigger</b> (stop infusion, remove stinger)"))
story.append(b("<b>2. EPINEPHRINE 0.3–0.5 mg (1:1000) IM — LATERAL THIGH</b> (children: 0.01 mg/kg, max 0.5 mg); repeat q5–15 min — THIS IS THE CORNERSTONE"))
story.append(b("<b>3. Position:</b> supine + legs elevated (or recovery position if vomiting; upright if respiratory distress)"))
story.append(b("<b>4.</b> Call for help; <b>high-flow oxygen</b> 10–15 L/min"))
story.append(b("<b>5. IV access + IV normal saline</b> 1–2 L bolus (adults); 10–20 mL/kg (children)"))
story.append(b("<b>6. Second-line (NEVER replace epinephrine):</b>"))
story.append(b2("H1 antihistamine: IV diphenhydramine or chlorphenamine (for urticaria; does NOT treat shock)"))
story.append(b2("H2 antihistamine: ranitidine/famotidine IV"))
story.append(b2("Glucocorticoids: hydrocortisone 200–300 mg IV (prevent biphasic reaction; NOT for acute shock)"))
story.append(b2("Salbutamol nebulization (for persistent bronchospasm)"))
story.append(b2("<b>Glucagon IV</b> (patients on beta-blockers — refractory to epinephrine)"))
story.append(b("<b>7. Vasopressors</b> (norepinephrine, dopamine) if refractory hypotension despite fluids + epinephrine"))
story.append(b("<b>8. Airway management:</b> intubation/surgical airway if laryngeal edema"))
story.append(sp())
story.append(h2("Observation & Discharge"))
story.append(b("Minimum 4–6h observation (biphasic risk up to 72h in 5–20%)"))
story.append(b("Discharge with 2 auto-injector epinephrine pens (EpiPen) + anaphylaxis action plan"))
story.append(b("Refer to allergist for trigger identification and desensitization"))
story.append(sp())
story.append(h2("Prognosis"))
story.append(b("Good if epinephrine given promptly; mortality <1% with rapid treatment"))
story.append(b("<b>Higher risk:</b> delayed epinephrine, severe initial reaction, asthma, cardiovascular disease, beta-blocker use"))
# BUILD
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /tmp/workspace && python section3_pediatrics.py 2>&1
Create a more concise quick reference version