Guidance for pediatric viva
pediatric viva important questions growth development neonatology immunization nutrition
| Age | Weight |
|---|---|
| Birth | ~3 kg |
| 5 months | Double birth weight |
| 1 year | Triple birth weight |
| 2 years | Quadruple birth weight |
| 3-10 years | +2 kg/year |
| Age | Gross Motor | Fine Motor | Language | Social |
|---|---|---|---|---|
| 3 months | Holds head at 90Β° | Hands open | Coos | Social smile |
| 6 months | Sits with support | Palmer grasp | Babbles | Recognizes strangers |
| 9 months | Stands with support | Pincer grasp (immature) | "Mama/Dada" nonsense | Peek-a-boo |
| 12 months | Walks with support | Mature pincer | 1-2 words with meaning | Waves bye-bye |
| 18 months | Walks independently | Scribbles | 8-10 words | Parallel play |
| 2 years | Runs, climbs stairs | Builds tower (6 blocks) | 2-word sentences | Possessive |
| 3 years | Rides tricycle | Copies circle | 3-word sentences | Group play |
| 4 years | Hops on one foot | Copies cross | Tells stories | Cooperative play |
| 5 years | Skips | Copies triangle | Complete sentences | Rules in games |
| Feature | Kwashiorkor | Marasmus |
|---|---|---|
| Timing | After weaning | Infancy |
| Cause | Protein deficiency | Calorie + protein deficiency |
| Edema | Present (pitting) | Absent |
| Appearance | "Moon face", pot belly | "Old man" look, baggy pants |
| Skin | Flaky paint, pigmentation | Wrinkled, no fat |
| Hair | Flag sign, easily pluckable | Sparse |
| Appetite | Poor | Good (ravenous) |
| Fatty liver | Present | Absent |
| Vitamin | Disease | Key Signs |
|---|---|---|
| A | Night blindness β Keratomalacia | Bitot's spots, xerophthalmia |
| B1 (Thiamine) | Beriberi | Dry (neuropathy), Wet (cardiac), Infantile |
| B2 (Riboflavin) | Ariboflavinosis | Angular stomatitis, glossitis |
| B3 (Niacin) | Pellagra | 3Ds: Dermatitis, Diarrhea, Dementia |
| B12 | Megaloblastic anemia | Subacute combined degeneration |
| C (Ascorbic acid) | Scurvy | Bleeding gums, Corkscrew hair, "Scorbutic rosary" |
| D | Rickets | Craniotabes, Rachitic rosary, Bowing of legs, Widened metaphysis |
| K | Hemorrhagic disease of newborn | Bleeding |
| Sign | 0 | 1 | 2 |
|---|---|---|---|
| Appearance | Blue/pale all over | Blue extremities | Pink all over |
| Pulse | Absent | <100 | >100 |
| Grimace | None | Grimace | Cry/cough |
| Activity | Limp | Some flexion | Active motion |
| Respiration | Absent | Weak/irregular | Strong cry |
| Age | Vaccine |
|---|---|
| Birth | BCG, OPV-0, Hep B-1 |
| 6 weeks | DTwP/DTaP-1, IPV-1, Hep B-2, Hib-1, Rotavirus-1, PCV-1 |
| 10 weeks | DTwP/DTaP-2, IPV-2, Hib-2, Rotavirus-2, PCV-2 |
| 14 weeks | DTwP/DTaP-3, IPV-3, Hib-3, Rotavirus-3, PCV-3 |
| 6 months | Hep B-3, OPV-1 |
| 9 months | MMR-1, OPV-2 |
| 12 months | Hep A-1, Varicella-1 |
| 15-18 months | DTwP/DTaP Booster-1, IPV Booster, Hib Booster, MMR-2, Varicella-2, PCV Booster |
| 2 years | Hep A-2, Typhoid |
| 5 years | DTwP/DTaP Booster-2, OPV Booster |
| 10-12 years | Tdap/Td, HPV (girls) |
| Parasite | Route | Key Feature | Treatment |
|---|---|---|---|
| Ascaris | Feco-oral | Loeffler's syndrome, intestinal obstruction | Albendazole |
| Hookworm | Skin penetration | Iron deficiency anemia | Albendazole |
| Pinworm/Enterobius | Feco-oral | Perianal itching at night | Mebendazole |
| Giardia | Feco-oral | Frothy, foul-smelling stool, malabsorption | Metronidazole |
| Tapeworm | Undercooked meat | Cysticercosis (pork), Echinococcus | Praziquantel |
5 years: Mycoplasma, S. pneumoniae
| Alpha Thal | Beta Thal Minor | Beta Thal Major | |
|---|---|---|---|
| Genetic defect | HBA1/HBA2 | One beta gene | Both beta genes |
| Hb electrophoresis | - | HbA2 β (>3.5%) | HbF β, HbA absent |
| Severity | Mild-hydrops | Mild anemia | Severe transfusion-dependent |
| Features | - | Mild anemia | Chipmunk face, frontal bossing, hepatosplenomegaly |
| Treatment | - | Folic acid | Regular transfusions, desferrioxamine, bone marrow transplant |
| Hemophilia A | Hemophilia B | |
|---|---|---|
| Factor deficient | VIII | IX |
| Inheritance | X-linked recessive | X-linked recessive |
| APTT | Prolonged | Prolonged |
| PT | Normal | Normal |
| Treatment | Factor VIII concentrate | Factor IX concentrate |
| Feature | Nephrotic | Nephritic |
|---|---|---|
| Proteinuria | Massive (>3.5g) | Mild (<2g) |
| Hematuria | Absent/minimal | Present (cola-colored urine) |
| BP | Normal/low | Hypertension |
| Edema | Periorbital (morning) β anasarca | Mild |
| Complement | Normal | β C3 in PSGN |
Study Strategy: Focus on tables and comparisons - examiners love asking you to compare two similar conditions. Practice drawing the developmental milestones table from memory. Know all the "first signs" of puberty, and be very clear on vaccine schedules as these are extremely commonly asked in vivas.
Create a comprehensive PDF summary/quick reference of all 10 topics for easy revision
mkdir -p /home/daytona/workspace/pediatrics-pdf && ls /home/daytona/workspace/
~/pediatrics-pdf/generate_pdf.py
#!/usr/bin/env python3
"""
Pediatrics 1st Internal Exam - Comprehensive Quick Reference PDF
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
PageBreak, HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus.flowables import HRFlowable
# ββ Color Palette ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
NAVY = colors.HexColor("#1a2b5e")
TEAL = colors.HexColor("#00838f")
ORANGE = colors.HexColor("#e65100")
LIGHT_BLUE = colors.HexColor("#e3f2fd")
LIGHT_TEAL = colors.HexColor("#e0f7fa")
LIGHT_ORANGE= colors.HexColor("#fff3e0")
LIGHT_GRAY = colors.HexColor("#f5f5f5")
MID_GRAY = colors.HexColor("#eceff1")
WHITE = colors.white
DARK_TEXT = colors.HexColor("#212121")
RED_ACCENT = colors.HexColor("#c62828")
GREEN_ACCENT= colors.HexColor("#2e7d32")
PURPLE = colors.HexColor("#6a1b9a")
W, H = A4
def build_styles():
base = getSampleStyleSheet()
styles = {}
styles["cover_title"] = ParagraphStyle(
"cover_title", fontName="Helvetica-Bold", fontSize=28,
textColor=WHITE, alignment=TA_CENTER, leading=34, spaceAfter=6
)
styles["cover_sub"] = ParagraphStyle(
"cover_sub", fontName="Helvetica", fontSize=14,
textColor=colors.HexColor("#b3e5fc"), alignment=TA_CENTER, leading=18
)
styles["cover_badge"] = ParagraphStyle(
"cover_badge", fontName="Helvetica-Bold", fontSize=12,
textColor=WHITE, alignment=TA_CENTER, leading=16
)
styles["topic_num"] = ParagraphStyle(
"topic_num", fontName="Helvetica-Bold", fontSize=22,
textColor=WHITE, alignment=TA_CENTER, leading=26
)
styles["section_title"] = ParagraphStyle(
"section_title", fontName="Helvetica-Bold", fontSize=15,
textColor=WHITE, alignment=TA_LEFT, leading=20,
leftIndent=8
)
styles["sub_heading"] = ParagraphStyle(
"sub_heading", fontName="Helvetica-Bold", fontSize=11,
textColor=NAVY, alignment=TA_LEFT, leading=15,
spaceAfter=3, spaceBefore=6,
borderPad=2
)
styles["body"] = ParagraphStyle(
"body", fontName="Helvetica", fontSize=9,
textColor=DARK_TEXT, alignment=TA_LEFT, leading=13,
spaceAfter=3
)
styles["bullet"] = ParagraphStyle(
"bullet", fontName="Helvetica", fontSize=9,
textColor=DARK_TEXT, alignment=TA_LEFT, leading=13,
leftIndent=12, firstLineIndent=-8, spaceAfter=2
)
styles["highlight_box"] = ParagraphStyle(
"highlight_box", fontName="Helvetica-Bold", fontSize=9,
textColor=RED_ACCENT, alignment=TA_LEFT, leading=13,
leftIndent=4
)
styles["key_point"] = ParagraphStyle(
"key_point", fontName="Helvetica-BoldOblique", fontSize=9,
textColor=GREEN_ACCENT, alignment=TA_LEFT, leading=13,
leftIndent=4
)
styles["mnemonic"] = ParagraphStyle(
"mnemonic", fontName="Helvetica-Bold", fontSize=9,
textColor=PURPLE, alignment=TA_LEFT, leading=13,
leftIndent=4
)
styles["footer_text"] = ParagraphStyle(
"footer_text", fontName="Helvetica", fontSize=7,
textColor=colors.HexColor("#90a4ae"), alignment=TA_CENTER
)
styles["toc_entry"] = ParagraphStyle(
"toc_entry", fontName="Helvetica", fontSize=10,
textColor=NAVY, alignment=TA_LEFT, leading=16,
leftIndent=20
)
styles["toc_num"] = ParagraphStyle(
"toc_num", fontName="Helvetica-Bold", fontSize=10,
textColor=TEAL, alignment=TA_LEFT, leading=16
)
return styles
S = build_styles()
def section_header(title, color=NAVY, num=None):
"""Returns a colored banner for a topic section."""
label = f" {num} " if num else " "
data = [[
Paragraph(label, ParagraphStyle("n", fontName="Helvetica-Bold", fontSize=16,
textColor=WHITE, alignment=TA_CENTER, leading=20)),
Paragraph(title, S["section_title"])
]]
col_widths = [1.2*cm, 16*cm]
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("LEFTPADDING",(0,0), (-1,-1), 4),
("RIGHTPADDING",(0,0),(-1,-1), 4),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING",(0,0),(-1,-1), 6),
("ROUNDEDCORNERS", [4, 4, 4, 4]),
]))
return t
def sub_header(text, color=TEAL):
data = [[Paragraph(f" {text}", ParagraphStyle(
"sh", fontName="Helvetica-Bold", fontSize=10,
textColor=WHITE, alignment=TA_LEFT, leading=14
))]]
t = Table(data, colWidths=[17.2*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), color),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING",(0,0),(-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
]))
return t
def make_table(headers, rows, col_widths=None, header_color=NAVY, alt_color=LIGHT_GRAY):
data = [headers] + rows
if col_widths is None:
n = len(headers)
col_widths = [17.2*cm / n] * n
t = Table(data, colWidths=col_widths, repeatRows=1)
style = [
("BACKGROUND", (0,0), (-1,0), header_color),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 8.5),
("ALIGN", (0,0), (-1,0), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("FONTNAME", (0,1), (-1,-1), "Helvetica"),
("FONTSIZE", (0,1), (-1,-1), 8),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#b0bec5")),
("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, alt_color]),
("LEFTPADDING", (0,0), (-1,-1), 4),
("RIGHTPADDING", (0,0), (-1,-1), 4),
("TOPPADDING", (0,0), (-1,-1), 3),
("BOTTOMPADDING",(0,0), (-1,-1), 3),
]
t.setStyle(TableStyle(style))
return t
def info_box(text, bg=LIGHT_BLUE, border=TEAL):
data = [[Paragraph(text, S["body"])]]
t = Table(data, colWidths=[17.2*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("LINEAFTER", (0,0), (0,-1), 3, border),
("LEFTPADDING",(0,0), (-1,-1), 8),
("RIGHTPADDING",(0,0),(-1,-1), 6),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
]))
return t
def b(text): return f"<b>{text}</b>"
def red(text): return f'<font color="#c62828"><b>{text}</b></font>'
def grn(text): return f'<font color="#2e7d32"><b>{text}</b></font>'
def teal_t(text): return f'<font color="#00838f"><b>{text}</b></font>'
def orange_t(text): return f'<font color="#e65100"><b>{text}</b></font>'
def bullet(text):
return Paragraph(f"β’ {text}", S["bullet"])
def sp(n=4): return Spacer(1, n)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# PAGE CALLBACKS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PAGE_NUM = [0]
def on_page(canvas, doc):
PAGE_NUM[0] += 1
canvas.saveState()
# Header bar
canvas.setFillColor(NAVY)
canvas.rect(0, H - 1.0*cm, W, 1.0*cm, fill=1, stroke=0)
canvas.setFont("Helvetica-Bold", 8)
canvas.setFillColor(WHITE)
canvas.drawString(1*cm, H - 0.65*cm, "PEDIATRICS β 1st Internal Exam Quick Reference")
canvas.drawRightString(W - 1*cm, H - 0.65*cm, "Viva Preparation Guide")
# Footer bar
canvas.setFillColor(NAVY)
canvas.rect(0, 0, W, 0.75*cm, fill=1, stroke=0)
canvas.setFont("Helvetica", 7.5)
canvas.setFillColor(WHITE)
canvas.drawCentredString(W/2, 0.22*cm, f"Page {PAGE_NUM[0]}")
canvas.restoreState()
def on_cover_page(canvas, doc):
canvas.saveState()
# Full-page gradient-like background
canvas.setFillColor(NAVY)
canvas.rect(0, 0, W, H, fill=1, stroke=0)
# Accent strip
canvas.setFillColor(TEAL)
canvas.rect(0, H*0.38, W, 6, fill=1, stroke=0)
canvas.setFillColor(ORANGE)
canvas.rect(0, H*0.38 - 8, W, 6, fill=1, stroke=0)
canvas.restoreState()
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# CONTENT BUILDERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def cover_page():
items = []
items.append(Spacer(1, 3.5*cm))
items.append(Paragraph("π©Ί PEDIATRICS", S["cover_title"]))
items.append(Spacer(1, 0.3*cm))
items.append(Paragraph("1st Internal Examination", S["cover_sub"]))
items.append(Paragraph("Comprehensive Quick Reference", S["cover_sub"]))
items.append(Spacer(1, 0.8*cm))
items.append(HRFlowable(width="60%", thickness=2, color=TEAL, spaceAfter=12))
# Topic boxes
topics = [
("1","Growth & Development"), ("2","Nutrition"),
("3","Neonatology"), ("4","Immunization"),
("5","Diseases of GIT"), ("6","Infections & Infestations"),
("7","Adolescent Medicine"), ("8","Respiratory System"),
("9","Haematological Disorders"), ("10","Renal Disorders"),
]
col1 = [[Paragraph(f"<b>{n}.</b> {t}", ParagraphStyle(
"tp", fontName="Helvetica", fontSize=11, textColor=WHITE,
leading=16, alignment=TA_LEFT
))] for n,t in topics[:5]]
col2 = [[Paragraph(f"<b>{n}.</b> {t}", ParagraphStyle(
"tp2", fontName="Helvetica", fontSize=11, textColor=WHITE,
leading=16, alignment=TA_LEFT
))] for n,t in topics[5:]]
tdata = [[Table(col1, colWidths=[8.6*cm]), Table(col2, colWidths=[8.6*cm])]]
tbl = Table(tdata, colWidths=[8.6*cm, 8.6*cm])
tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 10),
]))
items.append(tbl)
items.append(Spacer(1, 1.2*cm))
items.append(HRFlowable(width="60%", thickness=2, color=ORANGE, spaceAfter=12))
items.append(Paragraph("For MBBS / BDS / BSc Nursing Students", S["cover_badge"]))
items.append(Spacer(1, 0.3*cm))
items.append(Paragraph("Quick-reference format | Tables | Mnemonics | Viva Q&A", S["cover_sub"]))
return items
def topic1():
"""Growth & Development"""
items = []
items.append(section_header("GROWTH & DEVELOPMENT", NAVY, "1"))
items.append(sp(6))
# Weight & Height
items.append(sub_header("Weight & Height Milestones", TEAL))
items.append(sp(4))
wh_data = [
[b("Age"), b("Weight"), b("Height")],
["Birth", "~3 kg", "~50 cm"],
["5 months", "Double (6 kg)", "β"],
["1 year", "Triple (9 kg)", "75 cm (1.5Γ)"],
["2 years", "Quadruple (12 kg)", "87 cm"],
["3-10 years", "+2 kg/year", "+6 cm/year"],
]
items.append(make_table(wh_data[0], wh_data[1:], col_widths=[5.7*cm,5.7*cm,5.7*cm]))
items.append(sp(6))
# Head circumference
items.append(sub_header("Head Circumference & Fontanelle", TEAL))
items.append(sp(4))
hc_data = [
[b("Age"), b("HC"), b("Notes")],
["Birth", "34 cm", "Posterior fontanelle closes by 6-8 weeks"],
["3 months", "40 cm", "+2 cm/month for 1st 3 months"],
["6 months", "44 cm", "+1 cm/month from 3-12 months"],
["1 year", "47 cm", "Anterior fontanelle closes 12-18 months"],
["2 years", "49 cm", "Normal ant. fontanelle size = 2Γ2 cm"],
]
items.append(make_table(hc_data[0], hc_data[1:], col_widths=[4*cm,4*cm,9.2*cm]))
items.append(sp(6))
# Developmental Milestones
items.append(sub_header("Developmental Milestones", TEAL))
items.append(sp(4))
dm_headers = [b("Age"), b("Gross Motor"), b("Fine Motor"), b("Language"), b("Social")]
dm_rows = [
["3 mo", "Head at 90Β°", "Hands open", "Coos", "Social smile"],
["6 mo", "Sits with support", "Palmar grasp", "Babbles", "Stranger anxiety"],
["9 mo", "Stands w/ support", "Pincer (immature)", "Mama/Dada (nonsense)", "Peek-a-boo"],
["12 mo", "Walks w/ support", "Mature pincer", "1-2 meaningful words", "Waves bye-bye"],
["18 mo", "Walks alone", "Scribbles", "8-10 words", "Parallel play"],
["2 yr", "Runs, stairs", "Builds 6 blocks", "2-word sentences", "Possessive (mine)"],
["3 yr", "Tricycle", "Copies circle", "3-word sentences", "Group play"],
["4 yr", "Hops 1 foot", "Copies cross (+)", "Tells stories", "Cooperative play"],
["5 yr", "Skips", "Copies triangle", "Complete sentences", "Follows rules"],
]
items.append(make_table(dm_headers, dm_rows,
col_widths=[1.8*cm, 3.6*cm, 3.5*cm, 4.3*cm, 4*cm]))
items.append(sp(6))
# Dentition + Theories side by side
left_data = [
[Paragraph(b("Dentition"), S["sub_heading"])],
[bullet("Primary teeth start: 6 months (lower central incisors)")],
[bullet(f"Rule: No. of teeth = Age(months) {teal_t('- 6')} (up to 2 yrs)")],
[bullet("Total primary teeth: 20")],
[bullet("Permanent teeth start: 6 years (1st molar or lower central incisor)")],
[bullet("Total permanent teeth: 32")],
]
right_data = [
[Paragraph(b("Developmental Theories"), S["sub_heading"])],
[Paragraph(f"{b('Freud')}: OralβAnalβPhallicβLatencyβGenital", S["body"])],
[Paragraph(f"{b('Erikson')}: Trust vs Mistrust (0-1y), Autonomy vs Shame (1-3y), Initiative vs Guilt (3-6y)", S["body"])],
[Paragraph(f"{b('Piaget')}: Sensorimotor(0-2y) β Preoperational(2-7y) β Concrete Operational(7-11y) β Formal Operational(11y+)", S["body"])],
]
lt = Table(left_data, colWidths=[8.4*cm])
rt = Table(right_data, colWidths=[8.4*cm])
combined = Table([[lt, rt]], colWidths=[8.6*cm, 8.6*cm])
combined.setStyle(TableStyle([("VALIGN",(0,0),(-1,-1),"TOP")]))
items.append(combined)
items.append(sp(6))
# Key viva points
items.append(info_box(
f"{red('KEY VIVA POINTS:')} Object permanence = 9 months | "
f"Child says 'No' (negativism) = 18 months | "
f"Anterior fontanelle bulges in {red('meningitis/hydrocephalus')}, "
f"sunken in {red('dehydration')} | "
f"Peak height velocity: Girls Tanner 2-3, Boys Tanner 4",
bg=LIGHT_ORANGE, border=ORANGE
))
return items
def topic2():
"""Nutrition"""
items = []
items.append(section_header("NUTRITION", colors.HexColor("#00695c"), "2"))
items.append(sp(6))
items.append(sub_header("Breastfeeding", TEAL))
items.append(sp(4))
items.append(bullet(f"{b('Exclusive breastfeeding')}: 0-6 months | Continue up to 2 years with complementary feeds"))
items.append(bullet(f"{b('Colostrum')} (1st 3-5 days): Rich in IgA, lactoferrin, leukocytes, proteins, Vitamin A"))
items.append(bullet(f"Benefits: Anti-infective, anti-allergic, βIQ, bonding, protects against SIDS, otitis media"))
items.append(bullet(f"{red('Contraindications')}: HIV (resource-rich), active TB (untreated), galactosemia, maternal chemotherapy"))
items.append(sp(6))
items.append(sub_header("Weaning / Complementary Feeding", TEAL))
items.append(sp(4))
items.append(bullet("Start at 6 months | First foods: semi-solid (khichdi, rice, dal)"))
items.append(bullet("Sequence: Cereals β Vegetables β Fruits β Non-veg"))
items.append(bullet("By 1 year: Family foods | Never introduce cow's milk before 1 year"))
items.append(sp(6))
items.append(sub_header("Protein Energy Malnutrition (PEM) β Comparison", TEAL))
items.append(sp(4))
pem_headers = [b("Feature"), b("Kwashiorkor"), b("Marasmus")]
pem_rows = [
["Timing", "Post-weaning (1-3 yr)", "Early infancy"],
["Cause", "Protein deficiency", "Calorie + Protein deficiency"],
["Edema", red("Present (pitting)"), "Absent"],
["Appearance", "'Moon face', pot belly", "'Old man' look, baggy pants"],
["Skin", "Flaky paint dermatosis", "Wrinkled, no subcutaneous fat"],
["Hair", "Flag sign, depigmented, pluckable", "Sparse, thin"],
["Appetite", "Poor", grn("Good (ravenous)")],
["Fatty liver", "Present", "Absent"],
["Wt for age", ">60% expected", "<60% expected"],
]
items.append(make_table(pem_headers, pem_rows, col_widths=[4.5*cm, 6.3*cm, 6.3*cm]))
items.append(sp(6))
items.append(sub_header("Vitamin Deficiencies", TEAL))
items.append(sp(4))
vit_headers = [b("Vitamin"), b("Disease"), b("Key Signs / Findings")]
vit_rows = [
["A (Retinol)", "Xerophthalmia", "Night blindness β Bitot's spots β Keratomalacia"],
["B1 (Thiamine)", "Beriberi", "Dry (neuropathy), Wet (cardiac), Infantile (heart failure)"],
["B2 (Riboflavin)", "Ariboflavinosis", "Angular stomatitis, cheilosis, glossitis, corneal vascularization"],
["B3 (Niacin)", "Pellagra", "3Ds: Dermatitis, Diarrhea, Dementia (+ Death = 4Ds)"],
["B9 (Folate)", "Megaloblastic anemia", "Neural tube defects (periconception deficiency)"],
["B12", "Megaloblastic anemia", "Subacute combined degeneration of spinal cord"],
["C (Ascorbic acid)", "Scurvy", red("Bleeding gums, corkscrew hair, perifollicular hemorrhage, Scorbutic rosary")],
["D (Calciferol)", "Rickets", red("Craniotabes, rachitic rosary, Harrison's sulcus, bowing of legs, widened metaphysis")],
["K", "Hemorrhagic disease", "Bleeding in newborn (day 1-7); treat with Vit K injection at birth"],
]
items.append(make_table(vit_headers, vit_rows, col_widths=[3.5*cm, 4*cm, 9.7*cm]))
items.append(sp(6))
items.append(sub_header("Iron Deficiency Anemia", TEAL))
items.append(sp(4))
items.append(info_box(
f"Most common nutritional deficiency in children | {b('Hypochromic microcytic anemia')} | "
f"Serum ferritin {red('β')} (earliest indicator) | Serum iron {red('β')} | TIBC {grn('β')} | "
f"Blood smear: pencil cells, anisocytosis | "
f"Treatment: {b('3-6 mg/kg/day')} elemental iron for 3-6 months",
bg=LIGHT_TEAL, border=TEAL
))
return items
def topic3():
"""Neonatology"""
items = []
items.append(section_header("NEONATOLOGY", colors.HexColor("#4527a0"), "3"))
items.append(sp(6))
items.append(sub_header("Key Definitions", TEAL))
items.append(sp(4))
def_data = [
[b("Term"), b("Definition")],
["Neonate", "0-28 days of life"],
["Preterm", "< 37 weeks gestation"],
["Post-term", "> 42 weeks gestation"],
["LBW", "< 2500 g at birth"],
["VLBW", "< 1500 g at birth"],
["ELBW", "< 1000 g at birth"],
["SGA", "Weight < 10th percentile for gestational age"],
["LGA", "Weight > 90th percentile (e.g., IDM baby)"],
["IUGR", "Intrauterine growth restriction (asymmetric = placental; symmetric = TORCH)"],
]
items.append(make_table(def_data[0], def_data[1:], col_widths=[3.5*cm, 13.7*cm]))
items.append(sp(6))
items.append(sub_header("APGAR Score (assess at 1 min and 5 min)", TEAL))
items.append(sp(4))
apgar_headers = [b("Sign"), b("Score 0"), b("Score 1"), b("Score 2")]
apgar_rows = [
["Appearance", "Blue/pale all over", "Blue extremities", "Pink all over"],
["Pulse", "Absent", "< 100/min", "> 100/min"],
["Grimace", "None", "Grimace", "Cry / cough"],
["Activity (tone)", "Limp", "Some flexion", "Active motion"],
["Respiration", "Absent", "Weak / irregular", "Strong cry"],
]
items.append(make_table(apgar_headers, apgar_rows, col_widths=[4.3*cm, 4.3*cm, 4.3*cm, 4.3*cm]))
items.append(sp(3))
items.append(info_box(
f"7-10 = Normal | 4-6 = Moderate depression (stimulate) | {red('0-3 = Severe (resuscitate')})",
bg=LIGHT_ORANGE, border=ORANGE
))
items.append(sp(6))
items.append(sub_header("Neonatal Jaundice", TEAL))
items.append(sp(4))
jaund_headers = [b("Feature"), b("Physiological"), b("Pathological")]
jaund_rows = [
["Onset", "Day 2-3", red("Within 24 hours = always pathological")],
["Peak", "Day 4-5 (term)", "Varies"],
["Resolution", "Day 7-10 (term)\nDay 14 (preterm)", "Persists >14 days (term)"],
["Bilirubin rise", "< 5 mg/dL/day", "> 5 mg/dL/day"],
["Max bilirubin", "< 12 mg/dL (term)", "> 12 mg/dL (term)"],
["Cause", "Physiological hemolysis\n+ liver immaturity", "Rh/ABO incompatibility,\nG6PD, sepsis, TORCH"],
]
items.append(make_table(jaund_headers, jaund_rows, col_widths=[4*cm, 6.5*cm, 6.7*cm]))
items.append(sp(3))
items.append(bullet(f"{b('Phototherapy')}: Indicated when bilirubin approaching exchange levels"))
items.append(bullet(f"{b('Exchange transfusion')}: Bilirubin > 20 mg/dL (term); double volume (2Γ85 mL/kg)"))
items.append(bullet(f"{b('Breast milk jaundice')}: Appears after day 5, lasts up to 3 months β benign, continue breastfeeding"))
items.append(sp(6))
items.append(sub_header("Respiratory Distress Syndrome (RDS / HMD)", TEAL))
items.append(sp(4))
items.append(bullet(f"Cause: {b('Surfactant deficiency')} β Type II pneumocytes mature after 34-35 weeks"))
items.append(bullet(f"Signs: Grunting, tachypnea, subcostal retractions, cyanosis, flaring nares"))
items.append(bullet(f"CXR: {b('Ground-glass opacity')}, air bronchograms, 'white-out' lungs"))
items.append(bullet(f"Treatment: Surfactant replacement (intratracheal), CPAP, supplemental O2"))
items.append(bullet(f"Prevention: {red('Antenatal betamethasone')} 24-34 weeks (accelerates lung maturity)"))
items.append(sp(6))
items.append(sub_header("Neonatal Sepsis", TEAL))
items.append(sp(4))
sep_headers = [b("Type"), b("Onset"), b("Organisms"), b("Treatment")]
sep_rows = [
["Early-onset", "< 72 hours", "GBS, E. coli, Listeria\n(maternal organisms)", "Ampicillin + Gentamicin"],
["Late-onset", "> 72 hours", "Staph. aureus, Staph. epidermidis,\nKlebsiella, Candida", "Vancomycin + Aminoglycoside"],
]
items.append(make_table(sep_headers, sep_rows, col_widths=[3*cm, 3*cm, 6.2*cm, 5*cm]))
items.append(sp(3))
items.append(bullet(f"Features: Temp instability, poor feeding, lethargy, bulging fontanelle, seizures, jaundice, apnea"))
items.append(sp(6))
items.append(sub_header("Birth Injuries & Other Key Topics", TEAL))
items.append(sp(4))
bi_data = [
[b("Condition"), b("Key Features")],
["Erb's palsy (C5-C6)", "'Waiter's tip' β arm adducted, internally rotated, elbow extended, forearm pronated; absent Moro on affected side"],
["Klumpke's palsy (C8-T1)", "Claw hand; if sympathetics involved β Horner syndrome"],
["Hypoglycemia", "< 40 mg/dL (term); treat with 10% Dextrose 2 mL/kg IV bolus β infusion"],
["MAS", "Barrel chest, chemical pneumonitis; CXR: patchy opacities; complication: PPHN, pneumothorax"],
["Hypothermia", "Temp < 36.5Β°C; treat with KMC/skin-to-skin; cold stress β hypoglycemia + metabolic acidosis"],
]
items.append(make_table(bi_data[0], bi_data[1:], col_widths=[4.5*cm, 12.7*cm]))
return items
def topic4():
"""Immunization"""
items = []
items.append(section_header("IMMUNIZATION", colors.HexColor("#1b5e20"), "4"))
items.append(sp(6))
items.append(sub_header("National Immunization Schedule (India - UIP + IAP 2024)", TEAL))
items.append(sp(4))
imm_headers = [b("Age"), b("Vaccines")]
imm_rows = [
["Birth", "BCG | OPV-0 (bOPV) | Hepatitis B-1"],
["6 weeks", "DTwP-1 / DTaP-1 | IPV-1 | Hep B-2 | Hib-1 | Rotavirus-1 | PCV-1"],
["10 weeks", "DTwP-2 | IPV-2 | Hib-2 | Rotavirus-2 | PCV-2"],
["14 weeks", "DTwP-3 | IPV-3 | Hib-3 | Rotavirus-3 | PCV-3"],
["6 months", "Hep B-3 | OPV-1"],
["9 months", "MMR-1 | OPV-2"],
["12 months", "Hep A-1 | Varicella-1"],
["15-18 months", "DTwP Booster-1 | IPV Booster | Hib Booster | MMR-2 | Varicella-2 | PCV Booster"],
["2 years", "Hep A-2 | Typhoid conjugate"],
["4-6 years", "DTwP Booster-2 | OPV Booster"],
["10-12 years", "Tdap / Td | HPV (girls, 2-dose series)"],
]
items.append(make_table(imm_headers, imm_rows, col_widths=[3.5*cm, 13.7*cm]))
items.append(sp(6))
items.append(sub_header("Vaccine Types", TEAL))
items.append(sp(4))
vt_headers = [b("Type"), b("Examples")]
vt_rows = [
["Live attenuated", "BCG, OPV, MMR, Varicella, Rotavirus, Yellow fever, JE (live)"],
["Killed / Inactivated", "IPV, Hep A, Rabies, Cholera, Influenza (TIV), Typhoid (Vi)"],
["Toxoid", "Diphtheria toxoid (DT), Tetanus toxoid (TT)"],
["Subunit / Conjugate", "Hep B (HBsAg), Hib (conjugate), PCV (conjugate), HPV, acellular Pertussis (aP)"],
]
items.append(make_table(vt_headers, vt_rows, col_widths=[4.5*cm, 12.7*cm]))
items.append(sp(6))
items.append(sub_header("Cold Chain & Storage", TEAL))
items.append(sp(4))
cold_data = [
[b("Storage Temp"), b("Vaccines")],
["-20Β°C (Freezer)", "OPV only"],
["2-8Β°C (Refrigerator)", "BCG, MMR, Varicella, IPV, DPT, Hep B, Hib, PCV, Rotavirus"],
[red("DO NOT FREEZE"), "Hep B, DPT, IPV, Hib β freeze kills adsorbed vaccines (shake test detects)"],
]
items.append(make_table(cold_data[0], cold_data[1:], col_widths=[4.5*cm, 12.7*cm]))
items.append(sp(3))
items.append(bullet(f"{b('Shake test')}: Shake frozen + non-frozen vials β if frozen, forms uniform flocculate vs normal vial"))
items.append(sp(6))
items.append(sub_header("BCG Vaccine", TEAL))
items.append(sp(4))
items.append(info_box(
f"{b('Route')}: Intradermal (left deltoid) | {b('Dose')}: 0.05 mL (neonates), 0.1 mL (>1 month) | "
f"{b('Age')}: At birth (up to 5 years if not given) | "
f"PPD reaction appears {b('6-10 weeks')} after BCG | "
f"{b('BCG scar')}: Appears 2-6 weeks post-vaccination | "
f"{red('Contraindication')}: Symptomatic HIV, immunocompromised state",
bg=LIGHT_TEAL, border=TEAL
))
items.append(sp(6))
items.append(sub_header("Contraindications to Vaccination", TEAL))
items.append(sp(4))
ci_headers = [b("TRUE Contraindications"), b("NOT Contraindications (Common Misconceptions)")]
ci_rows = [
["Anaphylaxis to previous dose", "Mild fever / mild illness"],
["Encephalopathy after pertussis vaccine", "Current antibiotic use"],
["Severe combined immunodeficiency (for live vaccines)", "Breastfeeding"],
["Pregnancy (for live vaccines)", "Premature birth (vaccinate at chronological age)"],
["", "Family history of seizures or adverse reactions"],
]
items.append(make_table(ci_headers, ci_rows, col_widths=[8.6*cm, 8.6*cm]))
return items
def topic5():
"""Diseases of GIT"""
items = []
items.append(section_header("DISEASES OF GIT", ORANGE, "5"))
items.append(sp(6))
items.append(sub_header("Diarrhea β Classification & Management", TEAL))
items.append(sp(4))
items.append(bullet(f"{b('Acute')}: < 14 days | {b('Persistent')}: 14-30 days | {b('Chronic')}: > 30 days"))
items.append(bullet(f"Most common cause: {red('Rotavirus')} (viral) | Most common bacterial: E. coli"))
items.append(sp(4))
deh_headers = [b("Sign"), b("No Dehydration"), b("Some Dehydration (5-10%)"), b("Severe (>10%)")]
deh_rows = [
["Condition", "Well, alert", "Restless, irritable", "Lethargic, unconscious"],
["Eyes", "Normal", "Sunken", "Very sunken"],
["Tears", "Present", "Absent", "Absent"],
["Mouth/tongue", "Moist", "Dry", "Very dry"],
["Thirst", "Normal", "Thirsty, drinks eagerly", "Unable to drink"],
["Skin pinch", "Goes back quickly", "Goes back slowly", "Goes back very slowly (>2s)"],
["Plan", grn("Plan A"), orange_t("Plan B"), red("Plan C")],
]
items.append(make_table(deh_headers, deh_rows, col_widths=[3*cm, 4.4*cm, 5*cm, 4.8*cm]))
items.append(sp(4))
items.append(info_box(
f"{b('ORS composition (WHO 2002)')}: Na 75 | Cl 65 | Glucose 75 | K 20 | Citrate 10 mEq/L | Osmolarity 245 mOsm/L | "
f"{b('Plan B')}: 75 mL/kg ORS over 4 hours | {b('Plan C')}: Ringer's Lactate 100 mL/kg (30 mL/kg fast + 70 mL/kg slow) | "
f"{b('Zinc')}: 20 mg/day Γ 14 days (>6 months); 10 mg/day (<6 months) β reduces severity & recurrence",
bg=LIGHT_TEAL, border=TEAL
))
items.append(sp(6))
items.append(sub_header("Intussusception", TEAL))
items.append(sp(4))
items.append(bullet(f"Age: Most common {b('3 months - 5 years')} | Peak: 6-18 months"))
items.append(bullet(f"{b('Classic triad')}: Colicky abdominal pain + {red('red currant jelly stool')} + sausage-shaped mass (RUQ)"))
items.append(bullet(f"Investigation: Ultrasound ({b('target/doughnut sign')}) β contrast enema (diagnostic + therapeutic)"))
items.append(bullet(f"Treatment: Pneumatic/hydrostatic reduction; surgical if failed or peritonitis"))
items.append(sp(6))
items.append(sub_header("Other Important GIT Conditions", TEAL))
items.append(sp(4))
git_data = [
[b("Condition"), b("Key Points")],
["Hirschsprung's Disease",
f"Absent ganglion cells (Meissner's + Auerbach's plexus) in rectosigmoid | "
f"Features: Delayed meconium (>48 hrs), constipation, abdominal distension | "
f"Barium enema: narrow distal + dilated proximal | "
f"{b('Gold standard')}: Rectal biopsy | Treatment: Surgical pull-through"],
["GERD",
f"Physiological regurgitation vs pathological GERD | Alarm signs: poor weight gain, blood in stool, apnea | "
f"Treatment: Positioning (upright 30 min after feed), thickened feeds, PPI if severe"],
["Celiac Disease",
f"Gluten sensitivity (wheat, barley, rye) | Features: Chronic diarrhea, FTT, abdominal distension | "
f"Screening: {b('Anti-tTG IgA')} | Gold standard: {b('Small bowel biopsy')} (villous atrophy) | "
f"Treatment: Lifelong gluten-free diet"],
["Pyloric Stenosis",
f"Males 4:1 | Age: 2-6 weeks | {b('Projectile non-bilious vomiting')} after feeds | "
f"Olive-shaped mass epigastrium | Hypochloremic hypokalemic metabolic alkalosis | "
f"USS: pyloric channel length >14mm, muscle thickness >4mm | Treatment: Ramstedt pyloromyotomy"],
["Appendicitis",
f"Peak age: 10-12 years | Features: RIF pain, fever, vomiting, Rovsing's sign, Psoas sign | "
f"Alvarado score | CT scan (gold standard for diagnosis in children) | "
f"Treatment: Emergency appendicectomy"],
]
items.append(make_table(git_data[0], git_data[1:], col_widths=[3.8*cm, 13.4*cm]))
return items
def topic6():
"""Infections & Infestations"""
items = []
items.append(section_header("INFECTIONS & INFESTATIONS", RED_ACCENT, "6"))
items.append(sp(6))
items.append(sub_header("Viral Exanthems β Quick Comparison", TEAL))
items.append(sp(4))
exan_headers = [b("Disease"), b("Virus"), b("Incubation"), b("Pathognomonic / Key"), b("Rash")]
exan_rows = [
["Measles", "Paramyxovirus", "10-14 days", red("Koplik's spots (buccal mucosa)"), "Maculopapular, cephalocaudal; 3Cs prodrome"],
["Rubella", "Togavirus", "14-21 days", "Forchheimer spots (soft palate)", "Pink maculopapular; post-auricular LN"],
["Chickenpox", "VZV", "14-21 days", "Pleomorphic: all stages simultaneously", "MaculeβPapuleβVesicleβCrust (starry sky)"],
["Roseola", "HHV-6", "10-14 days", "Fever resolves β rash appears", "Rose-pink macules (trunk first)"],
["Scarlet fever", "GAS (Strep)", "2-5 days", "Strawberry tongue", "Sandpaper rash; Pastia's lines"],
["Hand-foot-mouth", "Coxsackievirus A16", "3-7 days", "Oral ulcers + vesicles on extremities", "Vesicles on palms/soles"],
]
items.append(make_table(exan_headers, exan_rows, col_widths=[2.8*cm, 3*cm, 2.5*cm, 5*cm, 3.9*cm]))
items.append(sp(3))
items.append(info_box(
f"{b('Measles complications')}: Pneumonia (most common cause of death), Encephalitis, Otitis media, "
f"{red('SSPE')} (subacute sclerosing panencephalitis β 7-10 yrs later) | "
f"{b('Chickenpox treatment')}: Acyclovir in immunocompromised/severe cases",
bg=LIGHT_ORANGE, border=ORANGE
))
items.append(sp(6))
items.append(sub_header("Dengue Fever", TEAL))
items.append(sp(4))
items.append(bullet(f"Vector: {b('Aedes aegypti')} mosquito (day biter) | Flavivirus, 4 serotypes"))
items.append(bullet(f"Classic: High fever + severe headache + {b('retroorbital pain')} + myalgia + arthralgia ('breakbone fever')"))
items.append(bullet(f"{red('Warning signs')}: Abdominal pain, persistent vomiting, bleeding, hepatomegaly, rapid deterioration"))
items.append(bullet(f"{b('DHF Criteria (all 4)')}: Fever + hemorrhagic manifestations + thrombocytopenia (<100,000) + plasma leakage (βHCT β₯20%)"))
items.append(bullet(f"Diagnosis: {b('NS1 antigen')} (day 1-5) | IgM/IgG after day 5 | CBC daily (monitor platelet/HCT)"))
items.append(bullet(f"Treatment: Supportive β IV fluids, platelet transfusion if <10,000 or active bleeding"))
items.append(sp(6))
items.append(sub_header("Typhoid (Enteric Fever)", TEAL))
items.append(sp(4))
items.append(bullet(f"Organism: {b('Salmonella typhi')} | Feco-oral route | Incubation 10-14 days"))
items.append(bullet(f"Features: Stepladder fever, relative bradycardia, rose spots (anterior chest), splenomegaly"))
items.append(bullet(f"Week 1 β Blood culture (best) | Week 2-3 β Widal (TOβ₯1:160, THβ₯1:160) | Week 3-4 β Stool/urine culture"))
items.append(bullet(f"Treatment: {b('Azithromycin')} (1st line uncomplicated) | Ceftriaxone (IV, severe) | Ciprofloxacin (adults)"))
items.append(sp(6))
items.append(sub_header("Worm Infestations", TEAL))
items.append(sp(4))
worm_headers = [b("Parasite"), b("Route of Entry"), b("Key Features"), b("Treatment")]
worm_rows = [
["Ascaris lumbricoides", "Feco-oral (eggs)", "Loeffler's syndrome; intestinal obstruction (most common cause in children)", "Albendazole 400 mg single dose"],
["Hookworm", "Skin penetration (larvae)", "Iron deficiency anemia; cutaneous larva migrans", "Albendazole + iron supplementation"],
["Enterobius (Pinworm)", "Feco-oral", "Perianal itching at night; Scotch tape test", "Mebendazole 100 mg Γ 1 (repeat after 2 weeks)"],
["Giardia lamblia", "Feco-oral (cysts)", "Frothy foul-smelling stool; malabsorption; cysts in stool", "Metronidazole 5 days"],
["Tapeworm (Taenia)", "Undercooked meat", "Pork β cysticercosis (CNS); Beef β intestinal only", "Praziquantel"],
]
items.append(make_table(worm_headers, worm_rows, col_widths=[3.2*cm, 3.2*cm, 6.5*cm, 4.3*cm]))
items.append(sp(6))
items.append(sub_header("Malaria & Kala-azar", TEAL))
items.append(sp(4))
mk_data = [
[b("Feature"), b("Malaria"), b("Kala-azar (VL)")],
["Organism", "Plasmodium spp.", "Leishmania donovani"],
["Vector", "Anopheles mosquito (female)", "Phlebotomus sandfly"],
["Fever pattern", "Tertian (48h) P.vivax; Quartan (72h) P.malariae", "Prolonged, irregular"],
["Splenomegaly", "Moderate", red("Massive (hallmark)")],
["Skin", "Normal", "Darkening (post-kala-azar)"],
["Diagnosis", "Peripheral smear (thick+thin)", "rK39 strip; bone marrow/splenic aspirate (gold standard)"],
["Treatment", "Chloroquine (P.vivax); Artesunate (P.falciparum)", "Liposomal Amphotericin B (India 1st line)"],
]
items.append(make_table(mk_data[0], mk_data[1:], col_widths=[3.5*cm, 6.8*cm, 6.9*cm]))
return items
def topic7():
"""Adolescent Medicine"""
items = []
items.append(section_header("ADOLESCENT MEDICINE", colors.HexColor("#880e4f"), "7"))
items.append(sp(6))
items.append(sub_header("Puberty β Tanner Stages", TEAL))
items.append(sp(4))
t_headers = [b("Stage"), b("Girls (onset 8-13 yrs)"), b("Boys (onset 9-14 yrs)")]
t_rows = [
["Stage 1", "Prepubertal", "Prepubertal"],
["Stage 2", red("Breast budding (FIRST sign)") + "\nPublic hair begins (villous)",
red("Testicular enlargement >4 mL (FIRST sign)") + "\nPublic hair begins"],
["Stage 3", "Breast enlargement; pubic hair darkens/coarsens", "Penile elongation; pubic hair darkens"],
["Stage 4", "Secondary areolar mound; axillary hair; menarche", "Darkening of scrotum; increased penile width"],
["Stage 5", "Adult breast configuration", "Adult genitalia size"],
]
items.append(make_table(t_headers, t_rows, col_widths=[2.2*cm, 7.5*cm, 7.5*cm]))
items.append(sp(3))
items.append(info_box(
f"{b('Menarche')}: Occurs at Tanner stage 3-4 (1-3 years after breast budding) | "
f"{b('Peak height velocity')}: Girls = Tanner 2-3 | Boys = Tanner 4 | "
f"{b('Girls height increase')}: ~6-10 cm/year at PHV | {b('Boys')}: ~8-14 cm/year",
bg=LIGHT_BLUE, border=TEAL
))
items.append(sp(6))
items.append(sub_header("Precocious Puberty", TEAL))
items.append(sp(4))
pp_headers = [b("Type"), b("Definition"), b("Causes"), b("Treatment")]
pp_rows = [
["Central (GnRH-dependent)",
"Girls < 8 yrs\nBoys < 9 yrs",
"Idiopathic (girls 80%)\nCNS tumors, hydrocephalus\nHypothyroidism",
"GnRH analogues\n(leuprolide)"],
["Peripheral (GnRH-independent)",
"Same age criteria",
"McCune-Albright, CAH\nGonadal/adrenal tumors\nExogenous estrogen",
"Treat underlying cause"],
]
items.append(make_table(pp_headers, pp_rows, col_widths=[3.8*cm, 3*cm, 6*cm, 4.4*cm]))
items.append(sp(6))
items.append(sub_header("Key Adolescent Conditions", TEAL))
items.append(sp(4))
ac_data = [
[b("Condition"), b("Key Points")],
["Acne vulgaris",
"Androgen-induced βsebum; Propionibacterium acnes | Comedonal: topical retinoids | "
"Mild-moderate: benzoyl peroxide Β± topical antibiotics | Severe/nodular: oral isotretinoin"],
["Anorexia Nervosa",
f"{red('< 85% ideal body weight')} | Body dysmorphia | Amenorrhea | Lanugo hair | "
f"Bradycardia, hypotension, electrolyte imbalance | Russell's sign (knuckle scarring in purging type)"],
["Bulimia Nervosa",
"Binge-purge cycles | Normal/overweight | Hypokalemia, metabolic alkalosis | "
"Dental erosion, parotid enlargement | Treatment: CBT + SSRI (fluoxetine)"],
["PCOS",
"Rotterdam criteria (2/3): Oligo-anovulation + hyperandrogenism + polycystic ovaries | "
"Treatment: OCP + metformin (insulin resistance); clomiphene (infertility)"],
["Gynecomastia",
"Common in Tanner stage 3-4 boys (physiological) | Unilateral subareolar disc | "
"Resolves in 1-2 years | Pathological: Klinefelter's, drugs, liver disease"],
]
items.append(make_table(ac_data[0], ac_data[1:], col_widths=[3.5*cm, 13.7*cm]))
items.append(sp(6))
items.append(info_box(
f"{b('HEADS assessment')}: Home, Education/Employment, Activities, Drugs, Sexuality, Suicide/depression | "
f"{b('HPV vaccine')}: 2-dose (9-14 yrs) or 3-dose (15+ yrs); protects against HPV 6,11,16,18 | "
f"{b('Iron requirement in adolescent girls')}: 32.7 mg/day (menstruating) | "
f"{red('Red flags')}: BMI < 17.5 (anorexia), suicidal ideation, substance use",
bg=LIGHT_ORANGE, border=ORANGE
))
return items
def topic8():
"""Respiratory System"""
items = []
items.append(section_header("RESPIRATORY SYSTEM", colors.HexColor("#01579b"), "8"))
items.append(sp(6))
items.append(sub_header("WHO Pneumonia Classification (IMCI)", TEAL))
items.append(sp(4))
pn_headers = [b("Age Group"), b("Fast Breathing Threshold"), b("Classification"), b("Management")]
pn_rows = [
["< 2 months", "> 60 breaths/min", "Severe disease β chest indrawing or fast breathing", "Refer + Ampicillin + Gentamicin"],
["2-12 months", "> 50 breaths/min", "Pneumonia (fast breathing only)", "Amoxicillin 3 days (outpatient)"],
["1-5 years", "> 40 breaths/min", "Severe pneumonia (chest indrawing + fast breathing)", "IV antibiotics + O2 (admit)"],
["", "", red("Very severe (cyanosis, unable to drink, convulsions)"), red("Urgent referral / ICU")],
]
items.append(make_table(pn_headers, pn_rows, col_widths=[3*cm, 4*cm, 5.5*cm, 4.7*cm]))
items.append(sp(3))
items.append(bullet(f"{b('Common organisms by age')}: < 3 months: GBS/Chlamydia | 3m-5y: S. pneumoniae, H. influenzae | > 5y: Mycoplasma, S. pneumoniae"))
items.append(sp(6))
items.append(sub_header("Bronchiolitis vs Asthma vs Croup β Comparison", TEAL))
items.append(sp(4))
bac_headers = [b("Feature"), b("Bronchiolitis"), b("Asthma"), b("Croup")]
bac_rows = [
["Peak age", "< 2 years", "Any age (often 2-5 yrs)", "6 months - 3 years"],
["Cause", red("RSV (most common)"), "Allergic, multifactorial", "Parainfluenza virus"],
["Key symptom", "Wheeze + hyperinflation", "Wheeze + cough at night", red("Barking cough + stridor")"],
["CXR", "Hyperinflation, peribronchial thickening", "Hyperinflation (chronic)", red("'Steeple sign'")],
["Treatment", "Supportive, O2, hydration", "SABA β ICS β ICS+LABA", "Dexamethasone + nebulized epinephrine (severe)"],
["Hospital indication", "O2 sat < 92%, poor feeding", "No improvement with SABA", "Stridor at rest"],
]
items.append(make_table(bac_headers, bac_rows, col_widths=[3*cm, 4.5*cm, 4.8*cm, 4.9*cm]))
items.append(sp(6))
items.append(sub_header("Tuberculosis in Children", TEAL))
items.append(sp(4))
items.append(bullet(f"{b('Mantoux (Tuberculin test)')}: Read at 48-72 hrs | Induration (not redness):"))
items.append(bullet(f"β₯ {b('5 mm')}: HIV+, close contact, immunocompromised, CXR abnormality"))
items.append(bullet(f"β₯ {b('10 mm')}: Children < 5 yrs, immigrants from high-prevalence areas, general population"))
items.append(bullet(f"β₯ {b('15 mm')}: No known risk factors"))
items.append(sp(3))
tb_data = [
[b("Type"), b("CXR / Features")],
["Primary complex", "Ghon focus (parenchymal) + ipsilateral hilar LN = Ranke complex"],
["Progressive primary TB", "Extensive pneumonia, lobar consolidation in children"],
["Miliary TB", red("'Millet seed' opacities (1-2 mm) uniformly distributed | Hematogenous spread")],
["TB meningitis", "Most dangerous; complications: hydrocephalus, cranial nerve palsies"],
["Lymph node TB", "Most common extrapulmonary in children; cervical LN most frequent"],
]
items.append(make_table(tb_data[0], tb_data[1:], col_widths=[4*cm, 13.2*cm]))
items.append(sp(3))
items.append(info_box(
f"{b('RNTCP Treatment')} β New case: {b('2HRZE / 4HR')} | "
f"H=Isoniazid | R=Rifampicin | Z=Pyrazinamide | E=Ethambutol | "
f"{b('Side effects')}: INH β peripheral neuropathy (give B6) | Rifampicin β hepatotoxicity, orange urine | "
f"Ethambutol β {red('optic neuritis')} (avoid < 5 yrs or check vision regularly)",
bg=LIGHT_TEAL, border=TEAL
))
items.append(sp(6))
items.append(sub_header("Whooping Cough (Pertussis)", TEAL))
items.append(sp(4))
items.append(bullet(f"Organism: {b('Bordetella pertussis')} | Highly contagious; infants <6 months most vulnerable"))
items.append(bullet(f"Stages: {b('Catarrhal')} (1-2 wks, most infectious; mimics URTI) β {b('Paroxysmal')} (4-6 wks; inspiratory 'whoop', post-tussive vomiting) β {b('Convalescent')} (weeks)"))
items.append(bullet(f"Diagnosis: Nasopharyngeal swab culture (gold standard); PCR | Lymphocytosis on CBC"))
items.append(bullet(f"Treatment: {b('Azithromycin')} (drug of choice); erythromycin alternative | Post-exposure prophylaxis for close contacts"))
return items
def topic9():
"""Haematological Disorders"""
items = []
items.append(section_header("HAEMATOLOGICAL DISORDERS", colors.HexColor("#b71c1c"), "9"))
items.append(sp(6))
items.append(sub_header("Anemia β Classification by MCV", TEAL))
items.append(sp(4))
anemia_headers = [b("Type"), b("MCV"), b("Causes"), b("Key Finding")]
anemia_rows = [
["Microcytic hypochromic", "< 80 fL", "Iron deficiency, Thalassemia, lead poisoning, sideroblastic", "Serum ferritin β (IDA); HbA2 β (Beta thal minor)"],
["Normocytic normochromic", "80-100 fL", "Acute blood loss, hemolysis, aplastic anemia, CKD", "Reticulocyte count differentiates"],
["Macrocytic", "> 100 fL", "Folate/B12 deficiency, hypothyroidism, liver disease", "Hypersegmented neutrophils; megaloblasts"],
]
items.append(make_table(anemia_headers, anemia_rows, col_widths=[3.8*cm, 2*cm, 6.5*cm, 4.9*cm]))
items.append(sp(6))
items.append(sub_header("Thalassemia β Overview", TEAL))
items.append(sp(4))
thal_headers = [b("Feature"), b("Beta Thal Minor"), b("Beta Thal Major (Cooley's)"), b("Alpha Thal Major (Hydrops)")]
thal_rows = [
["Inheritance", "1 beta gene mutation", "Both beta genes mutated", "All 4 alpha genes deleted"],
["Hb electrophoresis", "HbA2 > 3.5% ββ", "HbF ββ, HbA absent", "Only Hb Barts (Ξ³4)"],
["Clinical", "Mild anemia, asymptomatic", red("Severe: chipmunk face, frontal bossing, hepatosplenomegaly"), red("Hydrops fetalis, stillbirth")],
["Transfusion need", "None / occasional", "Regular (every 2-4 wks)", "Usually fatal in utero"],
["Treatment", "Folic acid", "Transfusions + Desferrioxamine\nBone marrow transplant (curative)", "Intrauterine transfusion / termination"],
]
items.append(make_table(thal_headers, thal_rows, col_widths=[3*cm, 3.7*cm, 5.5*cm, 5*cm]))
items.append(sp(6))
items.append(sub_header("Sickle Cell Disease", TEAL))
items.append(sp(4))
items.append(bullet(f"Mutation: {b('GluβVal')} at position 6 of beta chain | HbS polymerizes under low O2/dehydration/acidosis"))
scd_data = [
[b("Crisis Type"), b("Trigger"), b("Features")],
["Vaso-occlusive (most common)", "Dehydration, cold, infection", "Painful crises β bones, chest, abdomen; dactylitis in infants (hand-foot syndrome)"],
["Aplastic crisis", red("Parvovirus B19"), "Sudden Hb drop; bone marrow suppression"],
["Splenic sequestration", "Sudden red cell pooling", "Acute splenomegaly; hypovolemic shock (emergency!)"],
["Hemolytic crisis", "Infection, oxidant drugs", "β jaundice, β Hb, β reticulocytes"],
]
items.append(make_table(scd_data[0], scd_data[1:], col_widths=[4.5*cm, 4*cm, 8.7*cm]))
items.append(sp(3))
items.append(bullet(f"Features: Autosplenectomy by age 5 β susceptible to encapsulated organisms | Stroke | Acute chest syndrome"))
items.append(bullet(f"Treatment: {b('Hydroxyurea')} (βHbF) | Penicillin prophylaxis | Transfusions | BMT (curative)"))
items.append(sp(6))
items.append(sub_header("Hemophilia vs ITP vs ALL", TEAL))
items.append(sp(4))
bleed_headers = [b("Feature"), b("Hemophilia A/B"), b("ITP"), b("ALL")]
bleed_rows = [
["Defect", "Factor VIII (A) / IX (B) deficiency", "Autoimmune platelet destruction", "Malignant lymphoblasts"],
["Inheritance", "X-linked recessive", "Acquired (post-viral)", "Sporadic (peak 2-5 yrs)"],
["Bleeding type", "Hemarthrosis, deep hematomas", "Petechiae, purpura, mucous membrane", "Petechiae + pallor + bone pain"],
["Platelets", "Normal", red("< 20,000/mmΒ³"), "Low (bone marrow failure)"],
["PT/APTT", "APTT prolonged, PT normal", "Normal", "Normal or β"],
["Treatment", "Factor concentrate\n(VIII or IX)", "Observation (self-limiting)\nIVIG / Steroids if severe", "Vincristine + Prednisolone\n+ Asparaginase (induction)"],
]
items.append(make_table(bleed_headers, bleed_rows, col_widths=[3*cm, 4.5*cm, 4.5*cm, 5.2*cm]))
items.append(sp(3))
items.append(info_box(
f"{b('Hemophilia')}: Knee most common hemarthrosis joint | DDAVP raises factor VIII (mild hemophilia A) | "
f"{b('ITP')}: NO hepatosplenomegaly; 80% resolve in 6 months spontaneously | "
f"{b('ALL')}: Most common childhood cancer; 'starry sky' in Burkitt's (L3 FAB)",
bg=LIGHT_ORANGE, border=ORANGE
))
return items
def topic10():
"""Renal Disorders"""
items = []
items.append(section_header("RENAL DISORDERS", colors.HexColor("#004d40"), "10"))
items.append(sp(6))
items.append(sub_header("Nephrotic vs Nephritic Syndrome", TEAL))
items.append(sp(4))
ns_headers = [b("Feature"), b("Nephrotic Syndrome"), b("Nephritic Syndrome")]
ns_rows = [
["Proteinuria", red("> 3.5 g/day (massive)"), "< 2 g/day (mild)"],
["Hematuria", "Absent / minimal", red("Present (cola-colored urine)")],
["Blood pressure", "Normal or low", red("Hypertension")],
["Edema", "Periorbital (morning) β anasarca", "Mild, periorbital"],
["Complement", "Normal (MCD) / β in MPGN", red("β C3 in PSGN")],
["Albumin", red("< 2.5 g/dL"), "Normal"],
["Cholesterol", red("ββ (hypercholesterolemia)"), "Normal"],
["Most common cause (children)", "Minimal Change Disease (MCD)", "Post-Streptococcal GN (PSGN)"],
]
items.append(make_table(ns_headers, ns_rows, col_widths=[4*cm, 6.5*cm, 6.7*cm]))
items.append(sp(6))
items.append(sub_header("Nephrotic Syndrome β Deep Dive", TEAL))
items.append(sp(4))
items.append(bullet(f"{b('Tetrad')}: Massive proteinuria + hypoalbuminemia + edema + hypercholesterolemia"))
items.append(bullet(f"{b('Pathophysiology')}: βalbumin β βoncotic pressure β fluid extravasation β edema β βaldosterone β Na/water retention"))
items.append(bullet(f"{b('Complications')}: {red('Spontaneous bacterial peritonitis')} (S. pneumoniae most common) | VTE | Hypothyroidism | βinfection risk"))
items.append(bullet(f"{b('MCD histology')}: EM = fusion of foot processes (effacement); LM = normal; IF = negative"))
items.append(bullet(f"{b('Treatment')}: Prednisolone 60 mg/mΒ²/day Γ 4 weeks β 40 mg/mΒ²/alternate day Γ 4 weeks"))
items.append(bullet(f"Steroid-sensitive (85% in children) vs steroid-resistant (consider biopsy β FSGS, MPGN)"))
items.append(sp(6))
items.append(sub_header("Post-Streptococcal Glomerulonephritis (PSGN)", TEAL))
items.append(sp(4))
items.append(bullet(f"Follows GAS throat (1-3 weeks) or skin infection (3-6 weeks)"))
items.append(bullet(f"Features: Hematuria (cola/smoky urine), hypertension, edema, oliguria"))
items.append(bullet(f"Investigations: βC3, βASO titer (throat) or Anti-DNase B (skin) | Urine: RBC casts"))
items.append(bullet(f"EM: Subepithelial {red('humps')} | IF: Granular 'starry sky' IgG + C3"))
items.append(bullet(f"Treatment: Supportive (antihypertensives, fluid/Na restriction, diuretics) | Penicillin to clear strep | Prognosis: Excellent in children"))
items.append(sp(6))
items.append(sub_header("UTI, HUS & Wilms' Tumor", TEAL))
items.append(sp(4))
misc_data = [
[b("Condition"), b("Key Points")],
["UTI in Children",
f"Most common organism: {b('E. coli')} (> 80%) | Boys: structural anomaly till proven otherwise | "
f"Girls < 5 yrs after 1st UTI β MCUG + DMSA scan for VUR | "
f"Diagnosis: Urine culture > 10β΅ CFU/mL | Treatment: Nitrofurantoin/TMP-SMX (lower UTI); IV cephalosporin (pyelonephritis)"],
["HUS (Hemolytic Uremic Syndrome)",
f"{b('Triad')}: Microangiopathic hemolytic anemia + Thrombocytopenia + {red('AKI')} | "
f"Cause: {b('E. coli O157:H7')} (post-diarrheal, most common in children) | "
f"Most common cause of AKI in children | Treatment: Supportive; avoid antibiotics (βShiga toxin release); dialysis if needed"],
["Wilms' Tumor (Nephroblastoma)",
f"Peak age: {b('3-4 years')} | Most common renal tumor in children | "
f"Associations: WAGR syndrome (WT1), Beckwith-Wiedemann syndrome (WT2) | "
f"{b('Smooth non-tender flank mass')} (does NOT cross midline unlike neuroblastoma) | "
f"Investigation: USS + CT abdomen (no biopsy before surgery) | "
f"Treatment: Nephrectomy + chemotherapy Β± radiotherapy | Prognosis: Excellent (> 90% 5-yr survival)"],
["Vesicoureteral Reflux (VUR)",
f"Reflux of urine from bladder into ureter/kidney | Graded I-V | "
f"Risk: recurrent UTI β renal scarring β hypertension β CKD | "
f"Diagnosis: MCUG (micturating cystourethrogram) | "
f"Treatment: Prophylactic antibiotics (low grade); surgical correction (high grade)"],
]
items.append(make_table(misc_data[0], misc_data[1:], col_widths=[3.8*cm, 13.4*cm]))
return items
def quick_fire_page():
"""Quick-fire summary / exam tips page"""
items = []
items.append(section_header("QUICK-FIRE VIVA REFERENCE", colors.HexColor("#37474f"), "β
"))
items.append(sp(6))
items.append(sub_header("'Most Common' β High-Yield Exam Facts", TEAL))
items.append(sp(4))
mc_data = [
[b("Question"), b("Answer")],
["Most common cause of diarrhea in children", red("Rotavirus")],
["Most common childhood cancer", red("ALL (Acute Lymphoblastic Leukemia)")],
["Most common nephrotic syndrome in children", red("Minimal Change Disease (MCD)")],
["Most common cause of AKI in children", red("HUS (E. coli O157:H7)")],
["Most common cause of bronchiolitis", red("RSV (Respiratory Syncytial Virus)")],
["Most common worm causing intestinal obstruction", red("Ascaris lumbricoides")],
["Most common nutritional deficiency", red("Iron Deficiency Anemia")],
["Most common organism in UTI", red("E. coli (> 80%)")],
["Most common cause of death in measles", red("Pneumonia")],
["Most common extrapulmonary TB in children", red("Lymph node TB (cervical)")],
["Most common renal tumor in children", red("Wilms' Tumor (Nephroblastoma)")],
["Most common bleeding disorder in children", red("ITP")],
["First sign of puberty in girls", red("Breast budding (thelarche)")],
["First sign of puberty in boys", red("Testicular enlargement > 4 mL")],
["Most common cause of neonatal seizures", red("Hypoxic ischemic encephalopathy (HIE)")],
["Most common cause of meningitis in neonate (early)", red("GBS (Group B Streptococcus)")],
]
items.append(make_table(mc_data[0], mc_data[1:], col_widths=[9.5*cm, 7.7*cm]))
items.append(sp(6))
items.append(sub_header("Mnemonics Collection", TEAL))
items.append(sp(4))
mn_data = [
[b("Topic"), b("Mnemonic")],
["APGAR", "Appearance, Pulse, Grimace, Activity, Respiration"],
["Measles prodrome", "3 Cs β Cough, Coryza, Conjunctivitis"],
["Pellagra", "3 Ds β Dermatitis, Diarrhea, Dementia (+Death = 4Ds)"],
["Rickets X-ray", "CALLFBS β Craniotabes, Anterior fontanelle (large), Lordosis, Leg bowing, Fraying/cupping, Bossing (frontal), Swelling (wrists)"],
["Nephrotic tetrad", "HEAP β Hypoalbuminemia, Edema, Albuminuria (proteinuria), hypercholesterolaemia (Proteinemia)"],
["HUS triad", "HAK β Hemolytic anemia, thrombocytopenia (low plAtelets), Kidney (AKI)"],
["Immunization β live vaccines", "BCG, OPV, MMR, Varicella, Rotavirus β 'Born Of Mother Makes Vaccine Real'"],
["Kwashiorkor vs Marasmus", "Kwashiorkor = K = protein malnutrition; Marasmus = Massive calorie deficit"],
["Tanner staging", "Girls: Breast first | Boys: Testis first (both Stage 2)"],
["Sepsis early vs late", "Early = External (maternal) organisms GBS/E.coli | Late = Nosocomial Staph/Klebsiella"],
]
items.append(make_table(mn_data[0], mn_data[1:], col_widths=[4.5*cm, 12.7*cm]))
items.append(sp(6))
items.append(sub_header("Key Differentials β Examiner Favorites", TEAL))
items.append(sp(4))
diff_pairs = [
("Physiological vs Pathological Jaundice", "Timing (day 2-3 vs <24h), level, cause, direct vs indirect"),
("Kwashiorkor vs Marasmus", "Edema, appearance, cause, fatty liver, appetite β see Topic 2 table"),
("Nephrotic vs Nephritic", "Proteinuria level, hematuria, BP, complement β see Topic 10 table"),
("Bronchiolitis vs Asthma", "Age, causative organism, CXR, response to bronchodilators"),
("MCD vs FSGS", "MCD: foot process effacement only; FSGS: focal segmental sclerosis on LM; MCD steroid-sensitive"),
("Hemophilia A vs B", "Factor VIII vs IX; both X-linked; both have prolonged APTT + normal PT"),
("Intussusception vs Appendicitis", "Intussusception: younger child, currant jelly stool, RUQ mass; Appendicitis: older, RIF pain, Rovsing's sign"),
]
for pair, detail in diff_pairs:
items.append(bullet(f"{b(pair)}: {detail}"))
items.append(sp(6))
items.append(sub_header("Normal Pediatric Values β Quick Reference", TEAL))
items.append(sp(4))
nv_headers = [b("Parameter"), b("Value"), b("Parameter"), b("Value")]
nv_rows = [
["HR Neonate", "120-160 bpm", "HR 1-5 yrs", "80-120 bpm"],
["RR Neonate", "40-60/min", "RR 1-5 yrs", "25-40/min"],
["BP Neonate (systolic)", "60-80 mmHg", "BP 5 yr", "90-110 systolic"],
["Hb at birth", "16-18 g/dL", "Hb 6 months", "~11 g/dL (nadir)"],
["WBC Neonates", "9,000-30,000", "WBC children", "5,000-15,000"],
["Platelets", "150,000-450,000", "Blood glucose (neonatal)", "40-100 mg/dL"],
["Serum sodium", "135-145 mEq/L", "Serum potassium", "3.5-5.5 mEq/L"],
["Normal weight gain (0-3 mo)", "25-30 g/day", "Normal weight gain (3-6 mo)", "20 g/day"],
]
items.append(make_table(nv_headers, nv_rows, col_widths=[4*cm, 4.5*cm, 4*cm, 4.7*cm]))
return items
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# MAIN BUILD
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def build_pdf():
output_path = "/home/daytona/workspace/pediatrics-pdf/Pediatrics_Viva_Quick_Reference.pdf"
doc = SimpleDocTemplate(
output_path,
pagesize=A4,
leftMargin=1.2*cm,
rightMargin=1.2*cm,
topMargin=1.5*cm,
bottomMargin=1.3*cm,
title="Pediatrics Viva Quick Reference",
author="Orris Medical"
)
story = []
# Cover page (special callback)
story += cover_page()
story.append(PageBreak())
# Topics
topic_builders = [
topic1, topic2, topic3, topic4, topic5,
topic6, topic7, topic8, topic9, topic10,
quick_fire_page
]
for i, builder in enumerate(topic_builders):
story += builder()
if i < len(topic_builders) - 1:
story.append(PageBreak())
# Use cover callback for page 1, normal for rest
page_counter = [0]
def on_page_universal(canvas, doc):
page_counter[0] += 1
if page_counter[0] == 1:
on_cover_page(canvas, doc)
else:
on_page(canvas, doc)
doc.build(story, onFirstPage=on_page_universal, onLaterPages=on_page_universal)
print(f"PDF created: {output_path}")
return output_path
if __name__ == "__main__":
build_pdf()
cd /home/daytona/workspace/pediatrics-pdf && python generate_pdf.py 2>&1
~/pediatrics-pdf/generate_pdf.py
Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/pediatrics-pdf/generate_pdf.py'
cd /home/daytona/workspace/pediatrics-pdf && python generate_pdf.py 2>&1
ls -lh /home/daytona/workspace/pediatrics-pdf/Pediatrics_Viva_Quick_Reference.pdβ¦
Pediatrics Viva Quick Reference
PDF Document Β· PDF
| Section | Contents |
|---|---|
| Cover Page | Full topic list with color-coded design |
| 1. Growth & Development | Weight/height milestones, HC table, full developmental milestones table (birth-5 yrs), Erikson/Piaget/Freud stages |
| 2. Nutrition | Breastfeeding, weaning guide, Kwashiorkor vs Marasmus comparison table, all vitamin deficiency table, IDA |
| 3. Neonatology | Key definitions (LBW/VLBW/SGA), APGAR scoring table, physiological vs pathological jaundice comparison, RDS, neonatal sepsis, birth injuries |
| 4. Immunization | Full IAP 2024 schedule, vaccine types, cold chain storage, BCG details, true vs false contraindications |
| 5. GIT Diseases | WHO dehydration/ORS table with Plan A/B/C, intussusception, Hirschsprung's, celiac, pyloric stenosis, appendicitis |
| 6. Infections & Infestations | Viral exanthem comparison table (measles/rubella/varicella/roseola/scarlet fever), dengue, typhoid, worm infestation table, malaria vs kala-azar |
| 7. Adolescent Medicine | Tanner staging (boys + girls), precocious puberty, acne, eating disorders, PCOS, gynecomastia |
| 8. Respiratory System | WHO IMCI pneumonia classification, bronchiolitis vs asthma vs croup table, TB types + treatment, pertussis stages |
| 9. Haematological Disorders | Anemia classification, thalassemia comparison, SCD crisis types, hemophilia vs ITP vs ALL table |
| 10. Renal Disorders | Nephrotic vs nephritic comparison, MCD deep dive, PSGN, UTI, HUS, Wilms' tumor, VUR |
| Quick-Fire Reference | 16 "Most Common" facts, mnemonics collection, key differentials list, normal pediatric values table |