Kindly make for me a pDF for things I need to know about the NBU ,for assessment ,including common diseases in new born ,abnormal findings in a new born ,management of those diseases , medications in new born unit ,resuscitation of neonates ,common drugs and their classes, and any other things I need to know for assessment

Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Reading File
Finding Sources
Reading File
Running Command

mkdir -p /tmp/workspace/nbu-guide && python3 << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import cm, mm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether ) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.pdfgen import canvas output_path = "/tmp/workspace/nbu-guide/NBU_Assessment_Guide.pdf" # Color palette NAVY = colors.HexColor("#1A3C6E") TEAL = colors.HexColor("#0D7377") LIGHT_TEAL = colors.HexColor("#E8F7F7") AMBER = colors.HexColor("#D4860B") LIGHT_AMBER = colors.HexColor("#FFF8E7") RED = colors.HexColor("#C0392B") LIGHT_RED = colors.HexColor("#FDECEA") GREEN = colors.HexColor("#1E8449") LIGHT_GREEN = colors.HexColor("#E9F7EF") LIGHT_GREY = colors.HexColor("#F2F4F7") MID_GREY = colors.HexColor("#BDC3C7") WHITE = colors.white DARK = colors.HexColor("#2C3E50") styles = getSampleStyleSheet() # Custom styles title_style = ParagraphStyle("Title", parent=styles["Normal"], fontSize=24, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER, spaceAfter=6, leading=30) subtitle_style = ParagraphStyle("Subtitle", parent=styles["Normal"], fontSize=13, fontName="Helvetica", textColor=colors.HexColor("#D6EAF8"), alignment=TA_CENTER, spaceAfter=4, leading=18) h1_style = ParagraphStyle("H1", parent=styles["Normal"], fontSize=15, fontName="Helvetica-Bold", textColor=WHITE, spaceAfter=4, spaceBefore=8, leading=20) h2_style = ParagraphStyle("H2", parent=styles["Normal"], fontSize=12, fontName="Helvetica-Bold", textColor=NAVY, spaceAfter=4, spaceBefore=6, leading=16) h3_style = ParagraphStyle("H3", parent=styles["Normal"], fontSize=10.5, fontName="Helvetica-Bold", textColor=TEAL, spaceAfter=3, spaceBefore=4, leading=14) body_style = ParagraphStyle("Body", parent=styles["Normal"], fontSize=9.5, fontName="Helvetica", textColor=DARK, spaceAfter=3, leading=14, alignment=TA_JUSTIFY) bullet_style = ParagraphStyle("Bullet", parent=styles["Normal"], fontSize=9.5, fontName="Helvetica", textColor=DARK, spaceAfter=2, leading=13, leftIndent=14, firstLineIndent=-10) bold_style = ParagraphStyle("Bold", parent=styles["Normal"], fontSize=9.5, fontName="Helvetica-Bold", textColor=DARK, spaceAfter=2, leading=13) note_style = ParagraphStyle("Note", parent=styles["Normal"], fontSize=9, fontName="Helvetica-Oblique", textColor=colors.HexColor("#555555"), spaceAfter=3, leading=13, alignment=TA_JUSTIFY) warning_style = ParagraphStyle("Warning", parent=styles["Normal"], fontSize=9.5, fontName="Helvetica-Bold", textColor=RED, spaceAfter=3, leading=13, alignment=TA_LEFT) def section_header(title, bg_color=NAVY): data = [[Paragraph(title, h1_style)]] t = Table(data, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg_color), ("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ("ROUNDEDCORNERS", [5,5,5,5]), ])) return t def subsection_box(title, color=LIGHT_TEAL, border_color=TEAL): data = [[Paragraph(title, h2_style)]] t = Table(data, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), color), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("LINEBELOW", (0,0), (-1,-1), 1.5, border_color), ])) return t def info_box(text, bg=LIGHT_GREEN, border=GREEN): data = [[Paragraph(text, body_style)]] t = Table(data, colWidths=[17*cm]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 10), ("LINEALL", (0,0), (-1,-1), 1, border), ])) return t def b(text): return f"<b>{text}</b>" def bullet(text): return Paragraph(f"• {text}", bullet_style) story = [] # ============================================================ # COVER PAGE # ============================================================ cover_data = [[Paragraph("NEWBORN UNIT (NBU)", title_style)], [Paragraph("Comprehensive Assessment Study Guide", subtitle_style)], [Paragraph("Neonatal Nursing & Clinical Care", subtitle_style)]] cover_table = Table(cover_data, colWidths=[17*cm]) cover_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), NAVY), ("TOPPADDING", (0,0), (0,0), 30), ("BOTTOMPADDING", (0,0), (0,0), 6), ("TOPPADDING", (0,1), (0,1), 6), ("BOTTOMPADDING", (0,1), (0,1), 6), ("TOPPADDING", (0,2), (0,2), 0), ("BOTTOMPADDING", (0,2), (0,2), 30), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ("ROUNDEDCORNERS", [10,10,10,10]), ])) story.append(Spacer(1, 2*cm)) story.append(cover_table) story.append(Spacer(1, 1*cm)) # Decorative info strip info_items = [["Date:", "August 2026"], ["Level:", "NBU / NICU Clinical Assessment"], ["Prepared by:", "Orris Medical AI"]] info_table_cover = Table(info_items, colWidths=[5*cm, 12*cm]) info_table_cover.setStyle(TableStyle([ ("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"), ("FONTNAME", (1,0), (1,-1), "Helvetica"), ("FONTSIZE", (0,0), (-1,-1), 10), ("TEXTCOLOR", (0,0), (-1,-1), DARK), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LINEABOVE", (0,0), (-1,0), 1, MID_GREY), ("LINEBELOW", (0,-1), (-1,-1), 1, MID_GREY), ])) story.append(info_table_cover) story.append(Spacer(1, 0.5*cm)) # Table of contents toc_data = [ [Paragraph("<b>CONTENTS</b>", h2_style)], [Paragraph("1. Normal Newborn Assessment & Vital Signs", body_style)], [Paragraph("2. Common Diseases in the Newborn Unit", body_style)], [Paragraph("3. Abnormal Findings in the Newborn", body_style)], [Paragraph("4. Management of Neonatal Conditions", body_style)], [Paragraph("5. Neonatal Resuscitation (NRP Algorithm)", body_style)], [Paragraph("6. Medications Used in the NBU", body_style)], [Paragraph("7. Common Drug Classes & Their Actions", body_style)], [Paragraph("8. Phototherapy & Jaundice Management", body_style)], [Paragraph("9. APGAR Score", body_style)], [Paragraph("10. Key Assessment Tips & Red Flags", body_style)], ] toc_table = Table(toc_data, colWidths=[17*cm]) toc_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), LIGHT_GREY), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 12), ("LINEBELOW", (0,0), (-1,-1), 0.5, MID_GREY), ])) story.append(toc_table) story.append(PageBreak()) # ============================================================ # SECTION 1 - NORMAL NEWBORN ASSESSMENT # ============================================================ story.append(section_header("1. NORMAL NEWBORN ASSESSMENT & VITAL SIGNS")) story.append(Spacer(1, 6)) story.append(subsection_box("Normal Vital Signs at Birth (Term Infant)")) vitals_data = [ [b("Parameter"), b("Normal Range"), b("Notes")], ["Heart Rate", "120 – 160 bpm", "May drop briefly to 100 bpm during sleep"], ["Respiratory Rate", "40 – 60 breaths/min", "Periodic breathing is normal"], ["Temperature", "36.5 – 37.5°C axillary", "Use axillary; avoid rectal in premature"], ["Blood Pressure (systolic)", "60 – 90 mmHg", "≈ gestational age in weeks for MAP"], ["SpO2 (after 10 min of birth)", "≥ 95%", "May be 60–80% in first minute"], ["Weight (term)", "2.5 – 4.0 kg", "Expect ~10% weight loss in first week"], ["Blood Glucose", "> 40 mg/dL", "Screen if symptomatic or at-risk"], ] vt = Table(vitals_data, colWidths=[5*cm, 5.5*cm, 6.5*cm]) vt.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GREY]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(vt) story.append(Spacer(1, 6)) story.append(subsection_box("Normal Physical Examination Findings")) exam_items = [ ("Head:", "Molding, caput succedaneum, cephalohematoma may be present after vaginal delivery. Fontanelles should be soft and flat."), ("Eyes:", "Subconjunctival hemorrhages are normal. Slate-grey irises are common in all newborns."), ("Skin:", "Vernix caseosa (waxy coating), milia (white dots on nose/cheeks), Mongolian spots (blue-grey patches – benign), erythema toxicum (red blotchy rash – benign), lanugo (fine hair)."), ("Chest:", "Breast engorgement in both sexes (maternal hormones). Respiratory rate 40–60/min."), ("Abdomen:", "Cord clamp present; should dry and fall off by day 5–15. Umbilicus should be clean with no redness."), ("Genitalia:", "Female: prominent labia due to maternal estrogen, vaginal discharge (normal). Male: testes should be descended; foreskin non-retractable."), ("Neurology:", "Primitive reflexes present – Moro, rooting, sucking, palmar/plantar grasp, Babinski, stepping."), ] for label, desc in exam_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 0.4*cm)) # ============================================================ # SECTION 2 - COMMON DISEASES # ============================================================ story.append(PageBreak()) story.append(section_header("2. COMMON DISEASES IN THE NEWBORN UNIT")) story.append(Spacer(1, 6)) diseases = [ { "name": "Neonatal Jaundice (Hyperbilirubinemia)", "color": LIGHT_AMBER, "border": AMBER, "content": [ ("Definition:", "Yellow discolouration of skin/sclera due to elevated bilirubin (>5 mg/dL visible; >12 mg/dL in term; >15 mg/dL requires treatment usually)."), ("Types:", "Physiological (appears day 2–3, peaks day 4–5, resolves by day 14) vs Pathological (appears <24h, persists >14 days, or rapid rise >0.5 mg/dL/hr)."), ("Causes:", "ABO/Rh incompatibility, G6PD deficiency, sepsis, breast milk jaundice, polycythemia, hypothyroidism, biliary atresia."), ("Risk of untreated:", "Kernicterus – bilirubin crosses BBB causing irreversible brain damage (hearing loss, cerebral palsy, death)."), ] }, { "name": "Neonatal Sepsis", "color": LIGHT_RED, "border": RED, "content": [ ("Definition:", "Systemic infection in the first 28 days of life. Most common cause of neonatal cardiorespiratory distress."), ("Early-onset (<7 days):", "Maternal risk factors – GBS colonisation, prolonged ROM, maternal fever, chorioamnionitis. Organisms: GBS, E. coli, Listeria."), ("Late-onset (>7 days):", "Hospital-acquired; organisms: Staph. aureus, coagulase-negative Staph, Klebsiella, Pseudomonas, Candida."), ("Signs (Table 116-3):", "Temperature instability, lethargy, poor feeding, apnea, tachypnea, grunting, jaundice, rashes, seizures."), ] }, { "name": "Respiratory Distress Syndrome (RDS) / Hyaline Membrane Disease", "color": LIGHT_TEAL, "border": TEAL, "content": [ ("Cause:", "Surfactant deficiency in premature infants (<35 weeks gestation). Surfactant reduces alveolar surface tension."), ("Signs:", "Tachypnea, grunting, nasal flaring, intercostal/subcostal retractions, cyanosis, within first 4 hours of birth."), ("CXR:", "Ground-glass appearance, air bronchograms, low lung volumes, reticulogranular pattern."), ("Treatment:", "Exogenous surfactant (beractant/poractant), CPAP, mechanical ventilation, oxygen therapy."), ] }, { "name": "Neonatal Hypoglycemia", "color": LIGHT_GREEN, "border": GREEN, "content": [ ("Definition:", "Blood glucose <40 mg/dL in term/late preterm infants."), ("Risk groups:", "IDM (infant of diabetic mother), IUGR, prematurity, asphyxia, hypothermia, polycythemia."), ("Signs:", "Jitteriness, tremors, hypotonia, poor feeding, apnea, cyanosis, seizures, lethargy."), ("Treatment:", "If symptomatic: IV dextrose 10% at 2 mL/kg (200 mg/kg). Then continuous dextrose infusion at 4–6 mg/kg/min."), ] }, { "name": "Birth Asphyxia / Hypoxic Ischaemic Encephalopathy (HIE)", "color": LIGHT_AMBER, "border": AMBER, "content": [ ("Definition:", "Failure of adequate oxygenation at birth resulting in multi-organ damage."), ("Signs:", "Low APGAR scores, absent or poor respiratory effort, poor tone, encephalopathy (seizures, altered consciousness)."), ("Grading (Sarnat):", "Mild (Grade I) – hyperalertness, exaggerated Moro; Moderate (II) – stupor, seizures; Severe (III) – coma, flaccidity."), ("Management:", "Therapeutic hypothermia (cooling to 33–34°C for 72 hrs) if >36 weeks and <6 hrs of age; supportive care."), ] }, { "name": "Neonatal Meningitis", "color": LIGHT_RED, "border": RED, "content": [ ("Organisms:", "GBS, E. coli, Listeria, Staph aureus (late-onset)."), ("Signs:", "Bulging fontanelle, seizures, high-pitched cry, hyperthermia or hypothermia, irritability – NB: neck stiffness is RARE in neonates."), ("Diagnosis:", "Lumbar puncture (CSF – elevated WBC, elevated protein, low glucose)."), ("Treatment:", "Ampicillin + cefotaxime (or aminoglycoside). Duration: 14–21 days for GBS, 21 days for Gram-negatives."), ] }, { "name": "Necrotising Enterocolitis (NEC)", "color": LIGHT_TEAL, "border": TEAL, "content": [ ("Definition:", "Intestinal inflammation and necrosis; predominantly in premature infants."), ("Signs:", "Abdominal distension, bloody stools, bilious vomiting, tenderness, temperature instability, apnea."), ("Bell Staging:", "I – Suspected (mild); II – Confirmed (pneumatosis on X-ray); III – Advanced (perforation, peritonitis)."), ("Treatment:", "Bowel rest, NG decompression, IV antibiotics (Ampicillin + Gentamicin + Metronidazole), surgery if perforation."), ] }, { "name": "Transient Tachypnoea of the Newborn (TTN)", "color": LIGHT_GREEN, "border": GREEN, "content": [ ("Cause:", "Delayed clearance of fetal lung fluid; common in Caesarean section births."), ("Signs:", "Tachypnea (>60/min), mild grunting, retractions – onset in first few hours, resolves in 24–72 hours."), ("CXR:", "Perihilar streaking, fluid in fissures, wet lungs."), ("Treatment:", "Supportive – supplemental oxygen, CPAP if needed. Generally resolves spontaneously."), ] }, { "name": "Meconium Aspiration Syndrome (MAS)", "color": LIGHT_AMBER, "border": AMBER, "content": [ ("Cause:", "Aspiration of meconium-stained amniotic fluid (MSAF) into the airways, causing obstruction & inflammation."), ("Signs:", "Yellow-green stained skin/nails/cord, respiratory distress from birth, barrel-chest, hyperinflation."), ("CXR:", "Hyperinflation, patchy infiltrates, pneumothorax possible."), ("Treatment:", "Supportive O2, CPAP/ventilation, surfactant therapy, antibiotics; NO routine endotracheal suctioning unless obstruction suspected."), ] }, { "name": "Neonatal Conjunctivitis (Ophthalmia Neonatorum)", "color": LIGHT_TEAL, "border": TEAL, "content": [ ("Chemical (day 1):", "From silver nitrate/eye prophylaxis – no treatment needed."), ("Gonococcal (day 3–5):", "Profuse purulent discharge; can cause corneal ulceration/blindness. Treat: Cefotaxime 50 mg/kg IV/IM (NOT ceftriaxone – displaces bilirubin)."), ("Chlamydial (day 5–14):", "Mucopurulent discharge, lid swelling. Treat: Oral erythromycin 50 mg/kg/day in 4 doses × 14 days."), ("Herpes (HSV):", "Vesicles + discharge. Treat: Aciclovir 20 mg/kg/dose TDS × 14–21 days."), ] }, { "name": "Patent Ductus Arteriosus (PDA)", "color": LIGHT_RED, "border": RED, "content": [ ("Definition:", "Failure of the ductus arteriosus to close after birth; common in preterm infants."), ("Signs:", "Continuous 'machinery' murmur, bounding pulses, wide pulse pressure, hyperactive precordium."), ("Effects:", "Left-to-right shunt causing pulmonary overcirculation, respiratory deterioration, heart failure."), ("Treatment:", "Indomethacin or ibuprofen (NSAIDs – inhibit prostaglandins); surgical ligation if medical treatment fails."), ] }, ] for d in diseases: story.append(KeepTogether([ subsection_box(d["name"], color=d["color"], border_color=d["border"]), *[bullet(f"{b(label)} {desc}") for label, desc in d["content"]], Spacer(1, 5), ])) # ============================================================ # SECTION 3 - ABNORMAL FINDINGS # ============================================================ story.append(PageBreak()) story.append(section_header("3. ABNORMAL FINDINGS IN THE NEWBORN")) story.append(Spacer(1, 6)) story.append(subsection_box("Head & Neurological Abnormalities")) head_items = [ ("Cephalohematoma:", "Subperiosteal haemorrhage – does NOT cross suture lines; resolves in weeks; may cause jaundice."), ("Caput Succedaneum:", "Oedema crossing suture lines; resolves in 24–48 hours. Normal after vaginal delivery."), ("Bulging Fontanelle:", "Suggests raised intracranial pressure – meningitis, hydrocephalus, encephalopathy."), ("Sunken Fontanelle:", "Dehydration."), ("Microcephaly:", "HC < 2 SD below mean; TORCH infections, genetic, teratogens."), ("Abnormal Tone:", "Hypotonia ('floppy baby') – HIE, sepsis, hypothyroidism, Trisomy 21, neuromuscular disease."), ("Neonatal Seizures:", "Subtle signs – eye deviation, lip smacking, cycling movements, apnea. Causes: HIE, hypoglycemia, hypocalcemia, meningitis, stroke."), ] for label, desc in head_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) story.append(subsection_box("Respiratory Abnormalities")) resp_items = [ ("Tachypnea:", "RR > 60/min – sepsis, RDS, TTN, MAS, congenital heart disease."), ("Grunting:", "Expiratory sound = attempt to maintain FRC; serious sign of respiratory distress."), ("Nasal Flaring:", "Increased respiratory effort."), ("Retractions:", "Sub/intercostal, subcostal – poor lung compliance (RDS, pneumonia)."), ("Cyanosis:", "Central cyanosis = serious – congenital heart disease, pneumonia, respiratory failure."), ("Apnea:", "Cessation of breathing > 20 sec or with bradycardia/desaturation – sepsis, prematurity, HIE."), ("Stridor:", "Inspiratory – laryngomalacia (most common), subglottic stenosis, tracheomalacia, vascular ring."), ] for label, desc in resp_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) story.append(subsection_box("Skin Abnormalities")) skin_items = [ ("Jaundice:", "Pathological if < 24 hrs or prolonged; check bilirubin levels."), ("Pallor:", "Anaemia, hypovolaemia, asphyxia."), ("Plethora (ruddy):", "Polycythemia – IDM, delayed cord clamping."), ("Petechiae/Purpura:", "Sepsis, TORCH infections, thrombocytopenia, DIC."), ("Vesicles:", "Herpes simplex – urgent aciclovir."), ("Port-wine stain:", "Capillary malformation – Sturge-Weber if facial, associated with neurological complications."), ("Umbilical redness:", "Omphalitis – spreading erythema + discharge = emergency; IV antibiotics required."), ] for label, desc in skin_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) story.append(subsection_box("GI / Abdominal Abnormalities")) gi_items = [ ("Bilious vomiting:", "ALWAYS pathological – intestinal obstruction (malrotation, volvulus, atresia) until proven otherwise."), ("Abdominal distension:", "NEC, Hirschsprung's disease, bowel obstruction, ascites."), ("Delayed meconium passage:", "No meconium in 24–48 hrs – Hirschsprung's disease, cystic fibrosis, anorectal malformation."), ("Omphalitis:", "Infection of umbilical stump; requires IV antibiotics."), ("Hernias:", "Umbilical hernia – usually resolves. Inguinal hernia – risk of incarceration; refer for repair."), ] for label, desc in gi_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) story.append(subsection_box("Cardiovascular Abnormalities")) cv_items = [ ("Murmurs:", "Systolic murmur at left sternal border – VSD, PDA, ASD. Evaluate with echo."), ("Central cyanosis:", "Cyanotic CHD – Tetralogy of Fallot, Transposition of Great Arteries (TGA), Tricuspid atresia."), ("Absent/weak femoral pulses:", "Coarctation of aorta."), ("Bounding pulses:", "PDA."), ("Hyperoxia test:", "Give 100% O2 for 10 min – no improvement in SpO2 = cardiac cause likely."), ] for label, desc in cv_items: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) # ============================================================ # SECTION 4 - MANAGEMENT # ============================================================ story.append(PageBreak()) story.append(section_header("4. MANAGEMENT OF NEONATAL CONDITIONS")) story.append(Spacer(1, 6)) mgmt_data = [ [b("Condition"), b("Key Management Steps")], ["Neonatal Sepsis", "• Blood/urine/CSF cultures before antibiotics\n• Ampicillin + Gentamicin (first-line empiric)\n• Cefotaxime if meningitis suspected\n• IV fluids, glucose support\n• Monitor temperature, HR, RR, BP"], ["Neonatal Jaundice", "• Monitor serum bilirubin levels\n• Phototherapy when level exceeds age-specific threshold\n• Exchange transfusion if bilirubin dangerously elevated or rising rapidly\n• IV fluids; treat underlying cause (ABO incompatibility → Rh immunoglobulin in next pregnancy)\n• Discontinue breastfeeding temporarily if breast milk jaundice suspected"], ["RDS / Prematurity", "• Exogenous surfactant (beractant/poractant alfa) via ETT ASAP\n• CPAP / mechanical ventilation\n• Oxygen therapy (titrate SpO2 91–95%)\n• Keep warm (radiant warmer / incubator)\n• Antenatal corticosteroids (betamethasone) if <34 weeks"], ["Hypoglycemia", "• Asymptomatic & glucose >25: frequent feeds (every 1–2 hrs)\n• Symptomatic or glucose <40: IV Dextrose 10% bolus 2 mL/kg\n• Maintenance GIR 4–8 mg/kg/min\n• Recheck glucose every 30–60 min until stable"], ["Birth Asphyxia / HIE", "• Immediate resuscitation at birth (NRP algorithm)\n• Therapeutic hypothermia 33–34°C for 72 hrs (if >36 weeks, <6 hrs, meets criteria)\n• Anticonvulsants for seizures (phenobarbital)\n• Correct electrolytes, glucose, calcium\n• Monitoring: EEG, cranial US, MRI after 72 hrs"], ["NEC", "• Nil by mouth; NG tube decompression\n• IV nutrition (TPN)\n• IV antibiotics: Ampicillin + Gentamicin + Metronidazole\n• Serial abdominal X-rays\n• Surgical consult if deterioration or perforation (Stage III)"], ["Meningitis", "• LP for CSF (do not delay antibiotics if infant unstable)\n• Ampicillin + Cefotaxime IV\n• Dexamethasone – not routinely used in neonates\n• Duration: 14–21 days GBS; 21 days Gram-negative\n• Monitor for hydrocephalus, hearing loss"], ["HIE Seizures", "• Phenobarbital 20 mg/kg IV loading dose (first-line)\n• If persisting: Phenytoin 20 mg/kg IV or levetiracetam\n• Treat underlying cause (glucose, calcium, pyridoxine)\n• EEG monitoring"], ["Hypothermia", "• Dry and wrap immediately at birth\n• Radiant warmer or skin-to-skin with mother\n• Warm IV fluids\n• Monitor temperature every 30 min until normothermic\n• Investigate for sepsis if spontaneous hypothermia"], ["Neonatal Conjunctivitis", "• Gonococcal: Cefotaxime 50 mg/kg IV/IM (not ceftriaxone) + saline irrigation\n• Chlamydial: Oral erythromycin 50 mg/kg/day × 14 days\n• HSV: Aciclovir 20 mg/kg/dose TDS × 14–21 days\n• Prophylaxis: Erythromycin ointment at birth"], ] mt = Table(mgmt_data, colWidths=[5*cm, 12*cm]) mt.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), NAVY), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GREY]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 6), ("RIGHTPADDING", (0,0), (-1,-1), 6), ])) story.append(mt) # ============================================================ # SECTION 5 - NEONATAL RESUSCITATION # ============================================================ story.append(PageBreak()) story.append(section_header("5. NEONATAL RESUSCITATION (NRP ALGORITHM)", bg_color=RED)) story.append(Spacer(1, 6)) story.append(info_box( "<b>Key Principle:</b> Neonatal resuscitation is almost entirely RESPIRATORY management. " "~10% of newborns need some assistance at birth; only 1% need extensive resuscitation. " "The most common cause of bradycardia is inadequate ventilation, not cardiac arrest.", bg=LIGHT_RED, border=RED )) story.append(Spacer(1, 6)) story.append(subsection_box("Initial Steps (First 60 Seconds = 'Golden Minute')")) steps = [ "Warm – radiant warmer, pre-warmed towels; prevent heat loss.", "Dry – rub vigorously to dry and stimulate. Remove wet towels.", "Position – neutral neck position; slight neck extension to open airway.", "Suction – only if secretions obstructing airway; mouth first, then nose.", "Stimulate – flick soles of feet, rub back. Do NOT use overly forceful stimulation.", "Assess: Tone, Breathing/Crying, Heart Rate.", "Apply pulse oximetry (right hand – preductal) and ECG leads for accurate HR.", ] for i, s in enumerate(steps, 1): story.append(bullet(f"{b(str(i)+'.') } {s}")) story.append(Spacer(1, 5)) story.append(subsection_box("Decision Tree", color=LIGHT_AMBER, border_color=AMBER)) decision_data = [ [b("Assessment"), b("Action")], ["Breathing, HR ≥ 100, Good Tone", "Routine care. Observe."], ["Not breathing, HR < 100, or Poor Tone", "Positive Pressure Ventilation (PPV) via face mask; start with air (21% O2 for term)"], ["HR < 60 after 30 sec of good PPV", "Intubate if not done; Start chest compressions (3:1 ratio)"], ["HR still < 60 after 60 sec of CPR", "Adrenaline (epinephrine) via UVC or ETT"], ["Persistent bradycardia despite epinephrine", "Volume expansion (Normal saline 10 mL/kg over 5–10 min) if blood loss suspected"], ] dt = Table(decision_data, colWidths=[7*cm, 10*cm]) dt.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), AMBER), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_AMBER]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(dt) story.append(Spacer(1, 6)) story.append(subsection_box("Positive Pressure Ventilation (PPV)")) ppv = [ ("Rate:", "40–60 breaths per minute."), ("Starting pressure:", "20–25 cmH2O for term; 20–30 cmH2O may be needed for premature."), ("FiO2:", "Start at 21% (room air) for term. Use blended O2 for premature; titrate to target SpO2."), ("Check effectiveness:", "Rising HR is best indicator; chest rise should be subtle, not excessive."), ("Target SpO2:", "1 min: 60–65%; 2 min: 65–70%; 3 min: 70–75%; 4 min: 75–80%; 5 min: 80–85%; 10 min: 85–95%."), ] for label, desc in ppv: story.append(bullet(f"{b(label)} {desc}")) story.append(Spacer(1, 5)) story.append(subsection_box("Chest Compressions")) cc = [ "Indication: HR < 60 bpm after 30 sec of adequate PPV.", "Technique: 2-thumb encircling hands method (preferred) OR 2-finger technique.", "Depth: One-third of anterior-posterior chest diameter.", "Rate: 3 compressions : 1 breath (90 compressions + 30 breaths = 120 events/min).", "Coordinate with ventilation – do not compress simultaneously with breaths.", "Intubate if not already done to ensure effective ventilation.", ] for c in cc: story.append(bullet(c)) story.append(Spacer(1, 5)) story.append(subsection_box("Drugs in Resuscitation")) resus_drug_data = [ [b("Drug"), b("Dose"), b("Route"), b("Indication")], ["Adrenaline (Epinephrine)", "0.1–0.3 mL/kg of 1:10,000 (0.01–0.03 mg/kg)", "IV (UVC preferred); ETT 0.5–1 mL/kg of 1:10,000", "HR < 60 despite CPR"], ["Normal Saline (0.9%)", "10 mL/kg over 5–10 min", "IV", "Hypovolaemia / shock"], ["Naloxone", "0.1 mg/kg", "IV/IM", "Respiratory depression from maternal opioids only (do NOT use routinely)"], ["Sodium Bicarbonate", "1–2 mEq/kg (diluted)", "IV slowly", "Documented metabolic acidosis (prolonged resuscitation only)"], ["Dextrose 10%", "2 mL/kg bolus", "IV", "Hypoglycaemia"], ] rdt = Table(resus_drug_data, colWidths=[4.5*cm, 4.5*cm, 3*cm, 5*cm]) rdt.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), RED), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 8.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_RED]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 5), ])) story.append(rdt) # ============================================================ # SECTION 6 - MEDICATIONS IN NBU # ============================================================ story.append(PageBreak()) story.append(section_header("6. MEDICATIONS COMMONLY USED IN THE NBU")) story.append(Spacer(1, 6)) meds_data = [ [b("Drug"), b("Class"), b("Dose / Route"), b("Indication"), b("Notes")], ["Ampicillin", "Penicillin antibiotic", "50–100 mg/kg/dose q12h IV/IM", "Neonatal sepsis, meningitis, GBS", "First-line with gentamicin"], ["Gentamicin", "Aminoglycoside", "4–5 mg/kg q24–36h IV", "Gram-negative sepsis", "Monitor renal function & drug levels"], ["Cefotaxime", "3rd-gen cephalosporin", "50 mg/kg/dose q6–12h IV", "Meningitis, gonococcal conjunctivitis", "Preferred over ceftriaxone in neonates"], ["Metronidazole", "Nitroimidazole", "7.5–15 mg/kg q12h IV", "Anaerobic cover, NEC", "Give with ampicillin + gentamicin for NEC"], ["Phenobarbital", "Barbiturate anticonvulsant", "20 mg/kg IV loading; 3–5 mg/kg/day maint.", "Neonatal seizures (first-line)", "Monitor respiratory depression"], ["Phenytoin", "Hydantoin anticonvulsant", "15–20 mg/kg IV loading", "Seizures not responding to phenobarbital", "Risk of arrhythmia; slow IV infusion"], ["Caffeine citrate", "Methylxanthine", "Loading 20 mg/kg PO/IV; maint 5–10 mg/kg/day", "Apnoea of prematurity", "Stimulates respiratory drive"], ["Surfactant (beractant)", "Lung surfactant", "100 mg/kg via ETT", "RDS in premature infants", "Give as early as possible"], ["Vitamin K1", "Fat-soluble vitamin", "0.5–1 mg IM × 1 dose", "Haemorrhagic disease of newborn prophylaxis", "Give at birth to all neonates"], ["Indomethacin", "NSAID (COX inhibitor)", "0.1–0.25 mg/kg IV q12–24h × 3 doses", "PDA closure", "Contraindicated if renal/hepatic impairment"], ["Ibuprofen", "NSAID", "10 mg/kg IV then 5 mg/kg q24h × 2 doses", "PDA closure (alternative)", "Fewer renal side effects than indomethacin"], ["Erythromycin", "Macrolide antibiotic", "12.5 mg/kg/dose q6h PO × 14 days", "Chlamydial conjunctivitis/pneumonia", "May cause infantile hypertrophic pyloric stenosis in very young neonates – monitor"], ["Aciclovir", "Antiviral", "20 mg/kg/dose IV q8h × 14–21 days", "Neonatal herpes simplex", "Start empirically if HSV suspected"], ["Fluconazole", "Antifungal (azole)", "6 mg/kg q24–72h IV/PO", "Candida sepsis, prophylaxis in VLBW", "Prophylaxis in high-risk premature infants"], ["Dopamine", "Catecholamine (vasopressor)", "2–20 mcg/kg/min IV infusion", "Neonatal shock, hypotension", "Low dose → renal; high dose → cardiac"], ["Dobutamine", "Beta-1 agonist (inotrope)", "5–20 mcg/kg/min IV infusion", "Impaired cardiac output, cardiogenic shock", "Avoid in hypertrophic obstructive cardiomyopathy (IDM)"], ["Hydrocortisone", "Corticosteroid", "1–2 mg/kg/dose q12h IV", "Refractory hypotension, adrenal insufficiency", "Also used for BPD prevention in VLBW"], ["Prostaglandin E1 (Alprostadil)", "Prostaglandin", "0.05–0.1 mcg/kg/min IV infusion", "Keep ductus arteriosus open in duct-dependent CHD", "Apnea common side effect – have intubation ready"], ["Dextrose 10%", "Glucose solution", "2 mL/kg IV bolus; GIR 4–8 mg/kg/min", "Hypoglycaemia", "Do NOT use D50 in neonates (too hypertonic)"], ["Morphine / Fentanyl", "Opioid analgesic", "Morphine 0.05–0.1 mg/kg; Fentanyl 1–2 mcg/kg IV", "Pain, intubated/ventilated neonates", "Monitor respiratory depression; have naloxone ready"], ] med_table = Table(meds_data, colWidths=[3.2*cm, 3.2*cm, 3.5*cm, 3.5*cm, 3.6*cm]) med_table.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 8), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_TEAL]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ])) story.append(med_table) # ============================================================ # SECTION 7 - DRUG CLASSES # ============================================================ story.append(PageBreak()) story.append(section_header("7. COMMON DRUG CLASSES & MECHANISMS")) story.append(Spacer(1, 6)) drug_classes = [ ("Penicillins (e.g., Ampicillin)", LIGHT_TEAL, TEAL, [ "Mechanism: Inhibit bacterial cell wall synthesis (beta-lactam ring binds PBP).", "Spectrum: Gram-positive (GBS, Listeria), some Gram-negative.", "NBU use: First-line for sepsis (with gentamicin), group B strep, Listeria.", "Side effects: Allergic reactions, diarrhoea.", ]), ("Aminoglycosides (e.g., Gentamicin, Amikacin)", LIGHT_GREEN, GREEN, [ "Mechanism: Bind 30S ribosomal subunit → inhibit protein synthesis.", "Spectrum: Gram-negative bacilli (E. coli, Klebsiella, Pseudomonas).", "NBU use: Neonatal sepsis (paired with ampicillin), synergy with penicillins.", "Side effects: Nephrotoxicity, ototoxicity – monitor trough levels.", ]), ("Cephalosporins (e.g., Cefotaxime, Ceftazidime)", LIGHT_AMBER, AMBER, [ "Mechanism: Beta-lactam antibiotics – inhibit cell wall synthesis.", "3rd generation: Good CNS penetration – used for meningitis.", "Cefotaxime preferred over ceftriaxone in neonates (ceftriaxone displaces bilirubin → kernicterus risk).", "Side effects: Superinfection, allergy (cross-reactivity with penicillin rare).", ]), ("Macrolides (e.g., Erythromycin)", LIGHT_RED, RED, [ "Mechanism: Bind 50S ribosomal subunit → inhibit protein synthesis.", "NBU use: Chlamydial conjunctivitis/pneumonia, pertussis.", "Side effects: Hypertrophic pyloric stenosis risk in neonates < 6 weeks – monitor for projectile vomiting.", "Also: Prokinetic agent (motilin agonist) at low doses.", ]), ("Antivirals (e.g., Aciclovir)", LIGHT_TEAL, TEAL, [ "Mechanism: Nucleoside analogue – inhibits viral DNA polymerase of herpes viruses (HSV, VZV).", "NBU use: Neonatal HSV (skin, eye, CNS disease). Dose: 20 mg/kg/dose q8h IV.", "Side effects: Nephrotoxicity (ensure adequate hydration), bone marrow suppression.", ]), ("Antifungals (e.g., Fluconazole)", LIGHT_GREEN, GREEN, [ "Mechanism: Inhibit ergosterol synthesis → disrupt fungal cell membrane (azole class).", "NBU use: Candida sepsis, prophylaxis in VLBW infants.", "Side effects: Hepatotoxicity, drug interactions (inhibits CYP450).", ]), ("Barbiturates (e.g., Phenobarbital)", LIGHT_AMBER, AMBER, [ "Mechanism: Enhance GABA-A receptor activity → CNS depression, raises seizure threshold.", "NBU use: First-line anticonvulsant for neonatal seizures (loading dose 20 mg/kg IV).", "Side effects: Respiratory depression, sedation – monitor carefully after loading dose.", ]), ("Methylxanthines (e.g., Caffeine Citrate)", LIGHT_RED, RED, [ "Mechanism: Adenosine receptor antagonist → stimulates respiratory centre in brainstem.", "NBU use: Treatment and prevention of apnoea of prematurity.", "Side effects: Tachycardia, agitation, feeding intolerance.", "Monitor: Heart rate, signs of toxicity.", ]), ("NSAIDs (e.g., Indomethacin, Ibuprofen)", LIGHT_TEAL, TEAL, [ "Mechanism: Inhibit cyclo-oxygenase (COX) → reduce prostaglandin synthesis → promote ductal constriction.", "NBU use: Medical closure of patent ductus arteriosus (PDA).", "Contraindications: Thrombocytopenia, renal impairment, NEC, active bleeding.", "Indomethacin side effects: Reduced renal blood flow, oliguria, GI bleeding, IVH reduction (bonus effect).", ]), ("Vasopressors/Inotropes (Dopamine, Dobutamine)", LIGHT_GREEN, GREEN, [ "Dopamine: Low dose (2–5 mcg/kg/min) → D1 agonist → renal/mesenteric vasodilation; " "Medium (5–10) → beta-1 → increased CO; High (>10) → alpha → vasoconstriction.", "Dobutamine: Beta-1 agonist → positive inotropy and chronotropy → for low cardiac output.", "NBU use: Septic/cardiogenic shock, persistent pulmonary hypertension.", ]), ("Corticosteroids (e.g., Hydrocortisone, Dexamethasone)", LIGHT_AMBER, AMBER, [ "Mechanism: Glucocorticoid receptor agonist → anti-inflammatory, upregulates adrenergic receptors.", "NBU use: Refractory hypotension in septic shock, adrenal insufficiency, BPD prevention.", "Dexamethasone: Used in preventing/treating BPD in ventilated premature infants.", "Side effects: Hyperglycaemia, hypertension, immune suppression, impaired growth.", ]), ("Prostaglandins (e.g., Alprostadil/PGE1)", LIGHT_RED, RED, [ "Mechanism: Maintains patency of ductus arteriosus by smooth muscle relaxation.", "NBU use: Duct-dependent congenital heart disease (TGA, pulmonary atresia, severe coarctation).", "Critical side effect: APNOEA (10–12% of cases) – have intubation equipment ready.", "Other side effects: Fever, hypotension, cortical hyperostosis with prolonged use.", ]), ("Vitamin K (Phytomenadione)", LIGHT_TEAL, TEAL, [ "Mechanism: Fat-soluble vitamin essential for synthesis of clotting factors II, VII, IX, X (and proteins C, S).", "NBU use: Prophylaxis for haemorrhagic disease of the newborn (HDN) – given IM 0.5–1 mg at birth to ALL neonates.", "Breastfed infants are at higher risk (breast milk low in Vit K).", "Side effects: Minimal; IV route associated with rare anaphylaxis.", ]), ] for name, bg, border, items in drug_classes: row = KeepTogether([ subsection_box(name, color=bg, border_color=border), *[bullet(item) for item in items], Spacer(1, 5), ]) story.append(row) # ============================================================ # SECTION 8 - PHOTOTHERAPY # ============================================================ story.append(PageBreak()) story.append(section_header("8. PHOTOTHERAPY & JAUNDICE MANAGEMENT")) story.append(Spacer(1, 6)) story.append(body_style and Paragraph( "Phototherapy is the primary treatment for unconjugated (indirect) hyperbilirubinemia. " "Blue-spectrum light (wavelength 460–490 nm) converts bilirubin into water-soluble isomers " "(lumirubin and photo-bilirubin) that can be excreted without liver conjugation.", body_style )) story.append(Spacer(1, 5)) story.append(subsection_box("Indications for Phototherapy (by age/bilirubin level)")) photo_data = [ [b("Age (hours)"), b("Term (≥37 wks): Start phototherapy"), b("Term: Exchange transfusion")], ["<24", "Any jaundice (always pathological)", "Bilirubin >15 mg/dL"], ["24–48", ">12 mg/dL (>200 μmol/L)", ">20 mg/dL (>340 μmol/L)"], ["48–72", ">15 mg/dL (>260 μmol/L)", ">25 mg/dL (>425 μmol/L)"], [">72", ">17 mg/dL (>290 μmol/L)", ">25 mg/dL (>425 μmol/L)"], ] pt = Table(photo_data, colWidths=[4*cm, 7*cm, 6*cm]) pt.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), AMBER), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_AMBER]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(pt) story.append(Spacer(1, 6)) story.append(subsection_box("Phototherapy Nursing Care")) photo_nursing = [ "Expose maximum skin surface area – remove all clothing except nappy.", "Eye shields MUST be worn to protect from light exposure.", "Turn infant every 2 hours to expose all surfaces.", "Monitor temperature closely (risk of hyperthermia).", "Increase fluid intake by 10–20 mL/kg/day (insensible losses increase).", "Continue breastfeeding unless formula supplementation is required.", "Monitor bilirubin levels every 4–12 hours depending on severity.", "Discontinue when level falls 4–5 mg/dL below threshold; recheck in 24 hrs.", "Bronze baby syndrome – dark grey discolouration with direct (conjugated) hyperbilirubinaemia; phototherapy still safe but less effective.", ] for n in photo_nursing: story.append(bullet(n)) story.append(Spacer(1, 5)) story.append(subsection_box("Exchange Transfusion")) et = [ "Indication: Bilirubin reaching exchange level, or haemolytic disease not controlled by phototherapy.", "Volume: Double-volume exchange – 160 mL/kg of packed red blood cells + FFP (2:1 ratio).", "Route: Umbilical vein catheter (UVC).", "Purpose: Remove sensitised red cells, unbound bilirubin, and maternal antibodies.", "Complications: Electrolyte imbalance (hypocalcaemia, hyperkalaemia), hypothermia, thrombocytopenia, infection, NEC, death (1–5%).", ] for e in et: story.append(bullet(e)) # ============================================================ # SECTION 9 - APGAR SCORE # ============================================================ story.append(PageBreak()) story.append(section_header("9. APGAR SCORE")) story.append(Spacer(1, 6)) story.append(Paragraph( "The APGAR score is assessed at 1, 5, and 10 minutes of life. " "The 1-minute score guides immediate resuscitation needs. " "The 5-minute score reflects efficacy of resuscitation. " "<b>HR and respiratory effort</b> are the key indicators during active resuscitation.", body_style )) story.append(Spacer(1, 5)) apgar_data = [ [b("Sign"), b("0"), b("1"), b("2")], ["A – Appearance (Colour)", "Blue/Pale all over", "Blue extremities, pink body", "Pink all over"], ["P – Pulse (HR)", "Absent", "< 100 bpm", "≥ 100 bpm"], ["G – Grimace (Reflex irritability)", "No response", "Grimace", "Cry/cough/sneeze"], ["A – Activity (Muscle tone)", "Limp / Flaccid", "Some flexion", "Active movement"], ["R – Respiration", "Absent", "Weak, irregular", "Strong cry"], ] apgar_t = Table(apgar_data, colWidths=[5.5*cm, 3.5*cm, 3.5*cm, 4.5*cm]) apgar_t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), NAVY), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GREY]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(apgar_t) story.append(Spacer(1, 6)) apgar_interp = [ [b("Score"), b("Interpretation"), b("Action")], ["7–10", "Normal / Good condition", "Routine care; continue monitoring"], ["4–6", "Moderate depression", "Stimulate, O2, prepare for PPV"], ["0–3", "Severe depression / Asphyxia", "Immediate resuscitation (PPV, chest compressions, drugs)"], ] ai = Table(apgar_interp, colWidths=[3*cm, 6*cm, 8*cm]) ai.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), TEAL), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9.5), ("ROWBACKGROUNDS", (0,1), (-1,-1), [LIGHT_GREEN, LIGHT_AMBER, LIGHT_RED]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(ai) story.append(Spacer(1, 6)) story.append(info_box( "<b>Important:</b> APGAR score is NOT an indication for starting resuscitation. " "Resuscitation begins based on real-time assessment (tone, breathing, HR). " "APGAR score is documented retrospectively.", bg=LIGHT_AMBER, border=AMBER )) # ============================================================ # SECTION 10 - KEY ASSESSMENT TIPS & RED FLAGS # ============================================================ story.append(PageBreak()) story.append(section_header("10. KEY ASSESSMENT TIPS & RED FLAGS FOR NBU EXAM")) story.append(Spacer(1, 6)) story.append(subsection_box("Absolute RED FLAGS – Act Immediately")) red_flags = [ "Jaundice appearing in the FIRST 24 hours → always pathological (haemolytic disease, sepsis).", "Bilious (green) vomiting in a neonate → bowel obstruction/malrotation until proven otherwise – surgical emergency.", "Central cyanosis that does not improve with oxygen → suspect cyanotic CHD → do hyperoxia test.", "Bulging fontanelle + fever/irritability → meningitis → LP + immediate antibiotics.", "Apnoea in any neonate → NEVER normal in term infants; investigate and monitor.", "Spreading erythema around umbilicus (omphalitis) → IV antibiotics; risk of necrotising fasciitis.", "No meconium by 48 hours → Hirschsprung's disease, CF, or anorectal malformation.", "Seizing neonate → check glucose IMMEDIATELY; treat hypoglycaemia if present.", "Fever in first month of life (≥38°C rectally) → full septic workup; do NOT assume viral.", "Persistent pulmonary hypertension (PPHN) with cyanosis unresponsive to O2 → iNO (inhaled nitric oxide), ECMO in extreme cases.", ] for r in red_flags: story.append(Paragraph(f"🔴 {r}", ParagraphStyle("RF", parent=body_style, textColor=RED, fontName="Helvetica-Bold", leftIndent=14, firstLineIndent=-10))) story.append(Spacer(1, 2)) story.append(Spacer(1, 5)) story.append(subsection_box("Important Mnemonics")) mnemonics = [ ("APGAR:", "Appearance, Pulse, Grimace, Activity, Respiration"), ("DOPE (ETT problems):", "Displaced, Obstructed, Pneumothorax, Equipment failure"), ("TORCH infections:", "Toxoplasma, Others (syphilis/VZV), Rubella, CMV, Herpes – cause congenital infection, IUGR, thrombocytopenia"), ("Early-onset sepsis risk:", "PPROM, maternal fever, maternal GBS+, fetal distress, preterm delivery"), ("Signs of RDS (5Gs):", "Grunt, Groan, Gasp, Ground-glass on CXR, Gestational age < 35 weeks"), ("Causes of neonatal seizures:", "HHHHH – Hypoxia (HIE), Hypoglycaemia, Hypocalcaemia, Hyponatraemia, Haemorrhage (intracranial)"), ] for label, content in mnemonics: story.append(bullet(f"{b(label)} {content}")) story.append(Spacer(1, 5)) story.append(subsection_box("Must-Know Quick Facts for Exams")) facts = [ "Most common cause of neonatal cardiorespiratory distress = Neonatal Sepsis.", "Most common cause of jaundice < 24 hrs = Haemolytic disease (ABO/Rh incompatibility).", "Most common cause of persistent stridor in neonates = Laryngomalacia.", "First-line anticonvulsant in neonates = Phenobarbital.", "Drug to close PDA = Indomethacin or Ibuprofen (NSAIDs).", "Drug to keep PDA open = Prostaglandin E1 (Alprostadil).", "Surfactant deficiency causes = RDS/Hyaline Membrane Disease (HMD).", "Treatment for neonatal HIE (≥36 weeks) = Therapeutic hypothermia (cooling blanket).", "NEC classic X-ray finding = Pneumatosis intestinalis (gas in bowel wall).", "Vitamin K given at birth prevents = Haemorrhagic disease of the newborn (HDN).", "Caffeine is used for = Apnoea of prematurity.", "Exchange transfusion route = Umbilical vein catheter (UVC).", "Normal neonatal glucose = >40 mg/dL (term) / >25 mg/dL (preterm screen threshold).", "Eye prophylaxis at birth = Erythromycin ointment (prevents gonococcal ophthalmia).", "Ceftriaxone is AVOIDED in neonates because = It displaces bilirubin → kernicterus.", "Chest compression to ventilation ratio in neonates = 3:1 (not 15:2 or 30:2).", "Therapeutic hypothermia criteria = ≥36 weeks gestation, <6 hours of life, evidence of HIE.", "Beware of prostaglandin E1 side effect = Apnoea (in ~10% of cases).", ] for f in facts: story.append(bullet(f"✓ {f}")) story.append(Spacer(1, 5)) story.append(subsection_box("NBU Monitoring Checklist")) checklist_data = [ [b("Parameter"), b("Frequency"), b("Normal Range")], ["Heart rate", "Continuous (monitor)", "120–160 bpm"], ["Respiratory rate", "Continuous (monitor)", "40–60/min"], ["SpO2", "Continuous", ">95% (after 10 min of life)"], ["Temperature", "Every 3–4 hours", "36.5–37.5°C (axillary)"], ["Blood glucose", "Every 3–4 hours (at-risk) / per protocol", ">40 mg/dL"], ["Blood pressure", "Every 4–8 hours", "MAP ≈ gestational age in mmHg"], ["Weight", "Daily", "Track trend; expect ~10% loss first week"], ["Bilirubin (if jaundiced)", "Every 4–12 hours during phototherapy", "Age-specific threshold"], ["Urine output", "Every shift", ">1 mL/kg/hr after day 1"], ["Feed tolerance", "Every feed", "No vomiting, distension, blood in stool"], ] ct = Table(checklist_data, colWidths=[5*cm, 6*cm, 6*cm]) ct.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), NAVY), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,-1), 9), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_GREY]), ("GRID", (0,0), (-1,-1), 0.5, MID_GREY), ("TOPPADDING", (0,0), (-1,-1), 5), ("BOTTOMPADDING", (0,0), (-1,-1), 5), ("LEFTPADDING", (0,0), (-1,-1), 6), ])) story.append(ct) story.append(Spacer(1, 5)) # Footer note story.append(HRFlowable(width="100%", thickness=1, color=MID_GREY)) story.append(Spacer(1, 4)) story.append(Paragraph( "This document is prepared as a study guide for NBU/NICU assessment purposes. " "Always refer to local hospital protocols and current clinical guidelines for patient care decisions. " "Sources: Rosen's Emergency Medicine, Tintinalli's EM, Harriet Lane Handbook, Miller's Anesthesia, Creasy & Resnik's MFM.", note_style )) # ============================================================ # BUILD PDF # ============================================================ def add_page_number(canvas, doc): canvas.saveState() canvas.setFont("Helvetica", 8) canvas.setFillColor(colors.HexColor("#888888")) canvas.drawString(2*cm, 1.2*cm, "NBU Assessment Guide | August 2026") canvas.drawRightString(A4[0] - 2*cm, 1.2*cm, f"Page {doc.page}") canvas.restoreState() doc = SimpleDocTemplate( output_path, pagesize=A4, rightMargin=2*cm, leftMargin=2*cm, topMargin=2*cm, bottomMargin=2.5*cm, title="NBU Assessment Guide", author="Orris Medical AI", ) doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number) print(f"PDF created: {output_path}") import os size = os.path.getsize(output_path) print(f"File size: {size/1024:.1f} KB") PYEOF

Your NBU Assessment Guide PDF is ready! Here is your download link:

NBU Assessment Guide

PDF Document · PDF


Here is what the PDF covers across 10 colour-coded sections:
1. Normal Newborn Assessment & Vital Signs Full table of normal values (HR, RR, temperature, BP, SpO2, blood glucose, weight) + normal physical findings from head to toe including primitive reflexes.
2. Common Diseases in the NBU (11 conditions) Neonatal jaundice, sepsis (early vs late-onset), RDS, hypoglycaemia, birth asphyxia/HIE, meningitis, NEC, TTN, meconium aspiration syndrome, neonatal conjunctivitis, and PDA - each with definition, signs, causes, and key points.
3. Abnormal Findings in the Newborn Organised by system: head/neurological, respiratory, skin, GI/abdominal, and cardiovascular abnormalities with their clinical significance.
4. Management Tables Side-by-side management steps for each major condition including sepsis, jaundice, RDS, NEC, HIE, and meningitis.
5. Neonatal Resuscitation (NRP Algorithm) Full step-by-step resuscitation including the Golden Minute, PPV technique, chest compressions (3:1 ratio), target SpO2 by minute, and drugs used.
6. Medications in the NBU 20-drug reference table with doses, routes, indications, and nursing notes covering antibiotics, anticonvulsants, surfactant, prostaglandins, vasopressors, and more.
7. Common Drug Classes & Mechanisms 13 drug classes explained: penicillins, aminoglycosides, cephalosporins, macrolides, antivirals, antifungals, barbiturates, methylxanthines, NSAIDs, vasopressors, corticosteroids, prostaglandins, and Vitamin K.
8. Phototherapy & Jaundice Management Age-specific bilirubin thresholds for phototherapy and exchange transfusion, nursing care steps, and exchange transfusion details.
9. APGAR Score Full scoring table + interpretation guide (0-3, 4-6, 7-10) with key exam tip that APGAR does not start resuscitation.
10. Key Assessment Tips & Red Flags 10 red-flag signs requiring immediate action, useful mnemonics (APGAR, DOPE, TORCH, HHHHH), 18 must-know exam facts, and a monitoring checklist with frequencies.

Please do

It looks like your message got cut off! Could you let me know what you'd like me to do? For example:
  • Download/open the NBU PDF that was just created?
  • Add more content to the PDF (e.g., more diseases, nursing procedures, lab values)?
  • Something else entirely?
Just let me know and I'll get right on it!

1,2,3,4 please do all the four above

Asking for Preferences
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
This is a shared conversation. Sign in to Orris to start your own chat.