Actually tomorrow is my psm exam and i dont know about snakebite . Please provide me answer is easy language and easy way i will write in exam without forgeting
snakebite PSM community medicine exam notes management classification India
https://nhm.gov.in/images/pdf/guidelines/nrhm-guidelines/stgβ¦
https://cdn.who.int/media/docs/default-source/searo/india/heβ¦
| Snake | Type | Venom Type |
|---|---|---|
| Spectacled Cobra (Naja naja) | Elapid | Neurotoxic |
| Common Krait (Bungarus caeruleus) | Elapid | Neurotoxic |
| Russell's Viper (Daboia russelli) | Viper | Vasculotoxic (haemotoxic) |
| Saw-scaled Viper (Echis carinatus) | Viper | Vasculotoxic (haemotoxic) |
Memory trick: "Come Kill Russell's Saw" = Cobra, Krait, Russell's, Saw-scaled
| Feature | Elapidae (Cobra, Krait) | Viperidae (Russell's, Saw-scaled) |
|---|---|---|
| Fangs | Short, fixed, front | Long, hinged, front |
| Venom effect | Neurotoxic | Haemotoxic/Vasculotoxic |
| Main danger | Respiratory paralysis | Bleeding, clotting failure |
| Syndrome | Snake | Key Features |
|---|---|---|
| 1. Neuroparalytic | Cobra, Krait | "5D + 2P" (see below) |
| 2. Vasculotoxic/Haemotoxic | Russell's, Saw-scaled | Bleeding, clotting failure |
| 3. Myotoxic | Sea snakes | Muscle pain, myoglobinuria, renal failure |
| 4. Local tissue swelling | Vipers | Painful progressive swelling, necrosis |
This test is a BEDSIDE test - cheap, simple, no lab required. Perfect for rural/PHC settings!
Pressure immobilization bandage - used ONLY for neurotoxic (elapid) bites in Australia/specialized settings; NOT recommended routinely in India
| Snake | Initial dose (vials) |
|---|---|
| Cobra (Naja naja) | 10-20 vials |
| Krait (Bungarus caeruleus) | 10-20 vials |
| Russell's Viper (Daboia russelli) | 10 vials |
| Saw-scaled Viper (Echis carinatus) | 5-10 vials |
| Problem | Treatment |
|---|---|
| Respiratory paralysis | Intubation + Mechanical ventilation |
| Renal failure | Dialysis |
| Wound necrosis | Surgical debridement |
| Hypotension | IV fluids, vasopressors |
| Pain | Paracetamol (NOT aspirin/NSAIDs) |
| Tetanus | Tetanus toxoid |
| Point | Detail |
|---|---|
| Notification | Snakebite is a notifiable disease in some states (public health importance) |
| Prevention | Protective footwear, avoiding walking barefoot at night in fields |
| High-risk group | Farmers, agricultural workers, people walking at night |
| Common time | Monsoon season, nighttime |
| Habitat | Rural areas, forests, agricultural fields |
| PHC management | Give 10 vials ASV, stabilize, then refer if needed |
| Cold chain | ASV does NOT require cold chain (stable at room temperature) |
| Shelf life | ASV vials have long shelf life |
| Feature | Elapid (Cobra/Krait) | Viper (Russell's/Saw-scaled) |
|---|---|---|
| Venom | Neurotoxic | Haemotoxic |
| 20WBCT | Normal (clots) | Abnormal (does NOT clot) |
| Main symptom | Ptosis, paralysis, respiratory failure | Bleeding, swelling, renal failure |
| First sign | Ptosis (eyelid drooping) | Local pain, swelling |
| ASV dose | 10-20 vials | 5-10 vials |
| Special treatment | Neostigmine + ventilation | Fresh Frozen Plasma (FFP) if needed |
| To remember | Mnemonic |
|---|---|
| Big Four | Come Kill Russell's Saw (Cobra, Krait, Russell's, Saw-scaled) |
| Neuroparalytic symptoms | 5D + 2P |
| Order of symptoms | Ptosis β Diplopia β Dysarthria β Dysphonia β Dysphagia β Paralysis |
| Don'ts in first aid | No Cut-Suck, No Tourniquet, No Ice, No Electric shock, No Aspirin |
how to difference wheater the snake bite if from krait or cobra??
krait vs cobra bite difference clinical features symptoms India exam
https://journals.lww.com/mjdy/fulltext/2025/12002/clinical_pβ¦
| Feature | COBRA (Naja naja) | KRAIT (Bungarus caeruleus) |
|---|---|---|
| Time of bite | Day or night | Night only (nocturnal snake) |
| Bite marks | Usually visible fang marks | Often NO visible fang marks (tiny teeth) |
| Local signs | PRESENT - pain, swelling, redness, necrosis at bite site | ABSENT or minimal - no pain, no swelling |
| Symptom onset | Fast: 30 min - 6 hours | Slow: 6 - 24 hours (ptosis up to 36 hrs!) |
| Type of paralysis | Ascending paralysis | Descending paralysis |
| First sign | Ptosis (drooping eyelids) | Abdominal pain/cramps, then ptosis |
| Abdominal pain | Rare | Very common (classic early symptom) |
| Necrosis at bite site | Yes - tissue death can occur | No |
| Mechanism of toxin | Post-synaptic blockade (blocks acetylcholine receptor) | Pre-synaptic blockade (stops release of ACh) |
| Neostigmine test | Responds (improvement in ptosis) | Does NOT respond (pre-synaptic, so ACh cannot be released even if enzyme is blocked) |
| Paralysis severity | Moderate to severe | Often severe, can cause deep coma |
| History given by patient | Usually tells about bite | Often NO history of bite (bitten in sleep!) |
"Patient wakes up in the morning, no history of snakebite, no bite marks, has abdominal pain and slowly gets weakness/ptosis"
"Patient comes with painful swelling on hand, bite marks visible, ptosis developing within 2 hours"
Memory trick: "Krait Kills the Kitchen (pre-synaptic = the factory is destroyed). Cobra Chokes the Customer (post-synaptic = the receiver is blocked)"
| Feature | Cobra | Krait |
|---|---|---|
| Hood | Spreads hood when threatened | No hood |
| Color | Brown/olive, with spectacle mark on back of hood | Black and white banded |
| Size | 1.5 - 2.5 m | Smaller, 0.9 - 1.5 m |
| Activity | Day + night | Strictly nocturnal |
Actually tomorrow is my psm exam and i dont know about difference between karsiworker and marasmus. Please provide me answer is easy language and easy way i will write in exam without forgeting
Marasmus = Child gets nothing at all (no food, no protein, no calories - total starvation) Kwashiorkor = Child gets some food but almost no protein (eats rice/carbs but no protein)

| Feature | KWASHIORKOR | MARASMUS |
|---|---|---|
| Full name meaning | "Disease of the displaced child" (Ga language, Ghana) - child displaced by new sibling | From Greek "marasmos" = wasting |
| Deficiency | Mainly PROTEIN deficiency (calories may be adequate) | Both PROTEIN + CALORIES deficient (total starvation) |
| Age | Older child: 1 - 5 years (after weaning) | Infant: under 1 year (first year of life) |
| Cause/Story | Child weaned early, given only rice/carbohydrate diet when new baby born | Early cessation of breastfeeding, total food deprivation |
| Body weight | 60-80% of normal (edema masks real weight loss) | Less than 60% of normal (severe wasting) |
| EDEMA | PRESENT (hallmark sign!) - puffy face, hands, legs, ascites | ABSENT |
| Wasting of muscle | Mild (muscle is relatively spared) | Severe - "skin and bones" |
| Subcutaneous fat | Relatively preserved (masked by edema) | Completely gone |
| Face appearance | "Moon face" - puffy, round, swollen | "Old man face" - wrinkled, sunken |
| Skin changes | "Flaky paint" dermatosis - patches of hyperpigmentation + desquamation + hypopigmentation (peeling skin) | Dry, loose, wrinkled skin hanging off bones |
| Hair changes | Flag sign - alternating light and dark bands. Hair becomes thin, soft, easily pluckable, straight, loses color ("hypopigmented") | Sparse, dry, brittle hair |
| Liver | Enlarged + Fatty liver (hepatomegaly due to fatty infiltration - reduced lipoprotein carrier proteins) | Normal size liver |
| Serum albumin | Very LOW (hypoalbuminemia - this causes edema!) | Low/normal (less severe drop) |
| Serum proteins | Severely reduced (visceral protein compartment depleted) | Relatively preserved initially |
| Behaviour/Mood | Apathetic, irritable, miserable, anorexic - child does NOT want to eat | Alert but weak - child looks hungry, wants food |
| Appetite | Poor/lost | Preserved - child wants to eat |
| Immunity | Impaired (secondary infections common) | Impaired (secondary infections common) |
| Prognosis | Worse (more complications) | Slightly better if treated |
"Kwashiorkor has Komedo (edema = swelling)" - both start with similar sounds OR simply: "Kwashiorkor = Kudos (puffy, bloated look)"
MARASMUS KWASHIORKOR
----------- ------------
Total starvation Only protein deficient
< 1 year 1-5 years
Bones visible Puffy/swollen
"Old man face" "Moon face"
NO edema EDEMA (hallmark!)
NO liver enlargement Fatty liver +++
Alert, wants food Apathetic, no appetite
"Bag of bones" "Bloated child"
Hair: sparse, dry Hair: flag sign, depigmented
Skin: dry/wrinkled Skin: "flaky paint" rash
Memory: "Kwashiorkor = K for Kept fat in liver (can't export it)"
| Point | Detail |
|---|---|
| Classification used | Wellcome classification (based on weight for age + edema) |
| Diagnosis tool in field | Weight-for-age chart (Road to Health card / growth chart) |
| MUAC (Mid-Upper Arm Circumference) | <12.5 cm = severe malnutrition; 12.5-13.5 = moderate; >13.5 = normal |
| SAM definition | Weight-for-height Z-score < -3SD OR MUAC < 115 mm OR nutritional edema |
| Prevention | Breastfeeding, proper weaning foods, nutrition education, growth monitoring |
| Treatment | F-75 (stabilization phase) β F-100 (rehabilitation phase) therapeutic food |
| Severely wasted child | 9 times more likely to die than well-nourished child |
| Weight for age | With Edema | Without Edema |
|---|---|---|
| 60-80% of normal | KWASHIORKOR | Undernutrition |
| < 60% of normal | Marasmic-Kwashiorkor | MARASMUS |
Create a quick reference PDF summary of Kwashiorkor vs Marasmus for last-minute revision
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not found"
mkdir -p /home/daytona/workspace/nutrition-pdf
~/nutrition-pdf/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
OUTPUT = "/home/daytona/workspace/nutrition-pdf/Kwashiorkor_vs_Marasmus_QuickRef.pdf"
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=15*mm,
rightMargin=15*mm,
topMargin=12*mm,
bottomMargin=12*mm,
)
W, H = A4
# ββ Colour palette ββββββββββββββββββββββββββββββββββββββββββββββββββ
C_GREEN = colors.HexColor("#1B7A3E") # Kwashiorkor header
C_ORANGE = colors.HexColor("#C0550A") # Marasmus header
C_BLUE = colors.HexColor("#1A4D8F") # Section titles
C_GOLD = colors.HexColor("#F0A500") # Mnemonic highlight
C_PINK = colors.HexColor("#FFE4EC") # Kwashiorkor row bg
C_PEACH = colors.HexColor("#FFF3E0") # Marasmus row bg
C_LTBLUE = colors.HexColor("#E8F0FB") # Alternating row
C_DKGRAY = colors.HexColor("#2C2C2C")
C_WHITE = colors.white
C_LTGREEN = colors.HexColor("#E6F5EC")
C_LTORANGE= colors.HexColor("#FFF0E6")
# ββ Styles ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
styles = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
title_style = S("Title",
fontSize=20, leading=24, alignment=TA_CENTER,
textColor=C_WHITE, fontName="Helvetica-Bold",
spaceAfter=2)
subtitle_style = S("Subtitle",
fontSize=11, leading=14, alignment=TA_CENTER,
textColor=colors.HexColor("#FFE680"), fontName="Helvetica-Oblique",
spaceAfter=4)
section_style = S("Section",
fontSize=12, leading=15, alignment=TA_LEFT,
textColor=C_WHITE, fontName="Helvetica-Bold",
spaceBefore=6, spaceAfter=3,
leftIndent=4, borderPad=4)
body_style = S("Body",
fontSize=8.5, leading=11.5, alignment=TA_LEFT,
textColor=C_DKGRAY, fontName="Helvetica",
spaceBefore=1, spaceAfter=1)
bold_body = S("BoldBody",
fontSize=8.5, leading=11.5, alignment=TA_LEFT,
textColor=C_DKGRAY, fontName="Helvetica-Bold")
mnemonic_style = S("Mnemonic",
fontSize=9, leading=13, alignment=TA_CENTER,
textColor=colors.HexColor("#7A3800"), fontName="Helvetica-BoldOblique",
spaceBefore=2, spaceAfter=2,
backColor=colors.HexColor("#FFF8DC"),
borderColor=C_GOLD, borderWidth=1, borderPad=5)
footer_style = S("Footer",
fontSize=7, leading=9, alignment=TA_CENTER,
textColor=colors.HexColor("#888888"), fontName="Helvetica-Oblique")
cell_hdr = S("CellHdr",
fontSize=9, leading=11, alignment=TA_CENTER,
textColor=C_WHITE, fontName="Helvetica-Bold")
cell_body = S("CellBody",
fontSize=8, leading=10.5, alignment=TA_LEFT,
textColor=C_DKGRAY, fontName="Helvetica")
cell_body_c = S("CellBodyC",
fontSize=8, leading=10.5, alignment=TA_CENTER,
textColor=C_DKGRAY, fontName="Helvetica")
cell_bold_c = S("CellBoldC",
fontSize=8.2, leading=11, alignment=TA_CENTER,
textColor=C_DKGRAY, fontName="Helvetica-Bold")
cell_green = S("CellGreen",
fontSize=8, leading=10.5, alignment=TA_CENTER,
textColor=C_GREEN, fontName="Helvetica-Bold")
cell_orange = S("CellOrange",
fontSize=8, leading=10.5, alignment=TA_CENTER,
textColor=C_ORANGE, fontName="Helvetica-Bold")
# ββ Helper to make coloured section header ββββββββββββββββββββββββββ
def section_header(text, bg=C_BLUE):
tbl = Table([[Paragraph(text, section_style)]], colWidths=[W - 30*mm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("ROUNDEDCORNERS", [4]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
return tbl
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# BUILD CONTENT
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story = []
# ββ TITLE BANNER ββββββββββββββββββββββββββββββββββββββββββββββββββββ
banner_data = [[
Paragraph("π½οΈ KWASHIORKOR vs MARASMUS", title_style),
]]
banner_data.append([
Paragraph("Quick Reference Card β PSM / Community Medicine | Source: Park's PSM + Robbins Pathology", subtitle_style)
])
banner = Table(banner_data, colWidths=[W - 30*mm])
banner.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), C_BLUE),
("ROUNDEDCORNERS", [6]),
("TOPPADDING", (0,0), (-1,-1), 8),
("BOTTOMPADDING", (0,0), (-1,-1), 8),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 10),
]))
story.append(banner)
story.append(Spacer(1, 6))
# ββ CONCEPT BOX βββββββββββββββββββββββββββββββββββββββββββββββββββββ
concept_rows = [
[
Paragraph("KWASHIORKOR", S("kh", fontSize=11, fontName="Helvetica-Bold",
textColor=C_WHITE, alignment=TA_CENTER)),
Paragraph("CONCEPT", S("cc", fontSize=10, fontName="Helvetica-Bold",
textColor=C_DKGRAY, alignment=TA_CENTER)),
Paragraph("MARASMUS", S("mh", fontSize=11, fontName="Helvetica-Bold",
textColor=C_WHITE, alignment=TA_CENTER)),
],
[
Paragraph("Mainly <b>PROTEIN</b> deficient<br/>(some calories present)", cell_body_c),
Paragraph("Deficiency", cell_bold_c),
Paragraph("<b>PROTEIN + CALORIES</b><br/>both deficient (starvation)", cell_body_c),
],
[
Paragraph("Child given only rice/carbs<br/>after weaning from breast", cell_body_c),
Paragraph("Story", cell_bold_c),
Paragraph("Total starvation,<br/>early cessation of breastfeeding", cell_body_c),
],
[
Paragraph("<b>1 β 5 years</b><br/>(after weaning)", cell_green),
Paragraph("Age", cell_bold_c),
Paragraph("<b>< 1 year</b><br/>(infancy)", cell_orange),
],
]
concept_tbl = Table(concept_rows, colWidths=[72*mm, 36*mm, 72*mm])
concept_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), C_GREEN),
("BACKGROUND", (2,0), (2,0), C_ORANGE),
("BACKGROUND", (1,0), (1,0), colors.HexColor("#DDDDDD")),
("BACKGROUND", (0,1), (0,-1), C_LTGREEN),
("BACKGROUND", (2,1), (2,-1), C_LTORANGE),
("BACKGROUND", (1,1), (1,-1), colors.HexColor("#F5F5F5")),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
story.append(concept_tbl)
story.append(Spacer(1, 6))
# ββ MAIN COMPARISON TABLE βββββββββββββββββββββββββββββββββββββββββββ
story.append(section_header("π MASTER COMPARISON TABLE"))
story.append(Spacer(1, 3))
headers = [
Paragraph("Feature", cell_hdr),
Paragraph("KWASHIORKOR", S("kh2", fontSize=9, fontName="Helvetica-Bold",
textColor=C_WHITE, alignment=TA_CENTER)),
Paragraph("MARASMUS", S("mh2", fontSize=9, fontName="Helvetica-Bold",
textColor=C_WHITE, alignment=TA_CENTER)),
]
rows = [
["Body Weight", "60β80% of normal (edema masks true loss)", "< 60% of normal (severe wasting)"],
["EDEMA", "β
PRESENT β hallmark sign!\n(face, legs, ascites)", "β ABSENT"],
["Muscle Wasting", "Mild β relatively SPARED", "SEVERE β skin and bones"],
["Subcutaneous Fat", "Relatively preserved (hidden by edema)", "Completely ABSENT"],
["Face", "\"Moon face\" β puffy, round, swollen", "\"Old man face\" β sunken, wrinkled"],
["Skin", "\"Flaky paint\" dermatosis\n(hyper + desquamation + hypopigmentation)", "Dry, loose, wrinkled"],
["Hair", "FLAG SIGN β alternating light & dark bands,\nthin, easily pluckable", "Sparse, dry, brittle"],
["Liver", "β
ENLARGED β fatty liver (hepatomegaly)", "Normal size"],
["Serum Albumin", "Very LOW (hypoalbuminaemia β edema)", "Low/normal"],
["Behaviour", "Apathetic, irritable, anorexic, miserable", "Alert, looks hungry, wants food"],
["Appetite", "POOR / lost", "PRESERVED"],
["Immunity", "Impaired, secondary infections common", "Impaired, secondary infections common"],
["Prognosis", "Worse β more complications", "Slightly better if treated early"],
]
tbl_data = [headers]
for r in rows:
tbl_data.append([
Paragraph(r[0], bold_body),
Paragraph(r[1], cell_body_c),
Paragraph(r[2], cell_body_c),
])
col_w = [36*mm, 80*mm, 64*mm]
main_tbl = Table(tbl_data, colWidths=col_w)
ts = TableStyle([
# Header row
("BACKGROUND", (0,0), (0,0), C_BLUE),
("BACKGROUND", (1,0), (1,0), C_GREEN),
("BACKGROUND", (2,0), (2,0), C_ORANGE),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
# Alternating rows
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 5),
("RIGHTPADDING", (0,0), (-1,-1), 5),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
# EDEMA row highlight
("BACKGROUND", (1,2), (1,2), colors.HexColor("#C8F5D8")),
("BACKGROUND", (2,2), (2,2), colors.HexColor("#FFE0E0")),
("FONTNAME", (0,2), (-1,2), "Helvetica-Bold"),
])
for i in range(1, len(tbl_data)):
if i % 2 == 0:
ts.add("BACKGROUND", (0,i), (0,i), colors.HexColor("#F0F0F0"))
else:
ts.add("BACKGROUND", (0,i), (0,i), colors.HexColor("#FAFAFA"))
main_tbl.setStyle(ts)
story.append(main_tbl)
story.append(Spacer(1, 6))
# ββ TWO COLUMN: WHY EDEMA + WHY FATTY LIVER βββββββββββββββββββββββββ
story.append(section_header("π§ PATHOPHYSIOLOGY (WHY?)"))
story.append(Spacer(1, 3))
edema_text = [
Paragraph("<b>WHY EDEMA in Kwashiorkor?</b>", S("eh", fontSize=9,
fontName="Helvetica-Bold", textColor=C_GREEN, alignment=TA_CENTER)),
Spacer(1, 3),
Paragraph("No protein intake", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("Liver can't make <b>Albumin</b>", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("Low oncotic pressure in blood", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("<b>Water leaks into tissues</b>", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("<b>EDEMA β
</b>", S("ee", fontSize=9, fontName="Helvetica-Bold",
textColor=C_GREEN, alignment=TA_CENTER)),
]
liver_text = [
Paragraph("<b>WHY FATTY LIVER in Kwashiorkor?</b>", S("lh", fontSize=9,
fontName="Helvetica-Bold", textColor=C_ORANGE, alignment=TA_CENTER)),
Spacer(1, 3),
Paragraph("No protein intake", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("Can't make <b>Lipoprotein carrier</b>", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("Fat made but <b>can't be exported</b>", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("<b>Fat accumulates in liver cells</b>", cell_body_c),
Paragraph("β¬", cell_body_c),
Paragraph("<b>FATTY LIVER β
</b>", S("fl", fontSize=9, fontName="Helvetica-Bold",
textColor=C_ORANGE, alignment=TA_CENTER)),
]
path_tbl = Table(
[[edema_text, liver_text]],
colWidths=[87*mm, 87*mm]
)
path_tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("BACKGROUND", (0,0), (0,0), C_LTGREEN),
("BACKGROUND", (1,0), (1,0), C_LTORANGE),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
]))
story.append(path_tbl)
story.append(Spacer(1, 6))
# ββ WELLCOME CLASSIFICATION ββββββββββββββββββββββββββββββββββββββββββ
story.append(section_header("π WELLCOME CLASSIFICATION (Must Know for MCQ!)"))
story.append(Spacer(1, 3))
wc_data = [
[
Paragraph("Weight for Age", cell_hdr),
Paragraph("WITH Edema", cell_hdr),
Paragraph("WITHOUT Edema", cell_hdr),
],
[
Paragraph("60 β 80% of normal", cell_body_c),
Paragraph("KWASHIORKOR", S("wk", fontSize=9, fontName="Helvetica-Bold",
textColor=C_GREEN, alignment=TA_CENTER)),
Paragraph("Undernutrition", cell_body_c),
],
[
Paragraph("< 60% of normal", cell_body_c),
Paragraph("MARASMIC-KWASHIORKOR\n(Mixed)", S("wmk", fontSize=8.5,
fontName="Helvetica-Bold", textColor=C_BLUE, alignment=TA_CENTER)),
Paragraph("MARASMUS", S("wm", fontSize=9, fontName="Helvetica-Bold",
textColor=C_ORANGE, alignment=TA_CENTER)),
],
]
wc_tbl = Table(wc_data, colWidths=[50*mm, 72*mm, 58*mm])
wc_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), C_BLUE),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("BACKGROUND", (0,1), (-1,1), C_LTGREEN),
("BACKGROUND", (0,2), (-1,2), C_LTORANGE),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
]))
story.append(wc_tbl)
story.append(Spacer(1, 6))
# ββ MUAC + SAM BOX ββββββββββββββββββββββββββββββββββββββββββββββββββ
muac_data = [
[
Paragraph("MUAC (Mid-Upper Arm Circumference)", S("mh3",
fontSize=9, fontName="Helvetica-Bold", textColor=C_WHITE,
alignment=TA_CENTER)),
Paragraph("SAM Definition (WHO)", S("sh",
fontSize=9, fontName="Helvetica-Bold", textColor=C_WHITE,
alignment=TA_CENTER)),
],
[
Paragraph(
"β’ <b>> 13.5 cm</b> β Normal β
<br/>"
"β’ <b>12.5 β 13.5 cm</b> β Mild-Moderate malnutrition β οΈ<br/>"
"β’ <b>< 12.5 cm</b> β Severe malnutrition β<br/>"
"β’ <b>< 11.5 cm</b> β SAM (critical) π¨",
cell_body),
Paragraph(
"Any ONE of the following:<br/>"
"β’ Weight-for-height Z-score <b>< β3SD</b><br/>"
"β’ MUAC <b>< 115 mm</b><br/>"
"β’ <b>Nutritional oedema</b> present<br/>"
"Severely wasted = <b>9Γ more likely to die</b>",
cell_body),
]
]
muac_tbl = Table(muac_data, colWidths=[87*mm, 87*mm])
muac_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (0,0), C_GREEN),
("BACKGROUND", (1,0), (1,0), C_ORANGE),
("BACKGROUND", (0,1), (0,1), C_LTGREEN),
("BACKGROUND", (1,1), (1,1), C_LTORANGE),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
("RIGHTPADDING", (0,0), (-1,-1), 7),
]))
story.append(muac_tbl)
story.append(Spacer(1, 6))
# ββ MNEMONICS βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_header("π‘ MNEMONICS & MEMORY TRICKS", bg=colors.HexColor("#8B4513")))
story.append(Spacer(1, 3))
mn_rows = [
["Kwashiorkor = PUFFY",
"P-Protein def | U-Underweight (60β80%) | F-Fatty liver | F-Flag sign hair | Y-Young 1β5yr"],
["Marasmus = WASTE",
"W-Wasting severe | A-Alert child | S-Subcutaneous fat gone | T-Total starvation | E-Emaciated"],
["K for Kwashiorkor",
"K = Keeps water (edema) | K = keeps fat in liver | K = Kids 1-5yr"],
["Moon face vs Old man",
"Kwashiorkor = MOON face (round, puffy). Marasmus = OLD MAN face (sunken, wrinkled)"],
["Flaky paint skin",
"ONLY Kwashiorkor. Imagine peeling paint on a wall β that's the skin rash pattern"],
["Flag sign",
"ONLY Kwashiorkor. Hair bands = flag stripes. Each band = one episode of protein deficiency"],
]
mn_tbl_data = [[
Paragraph("<b>Mnemonic</b>", cell_hdr),
Paragraph("<b>Meaning</b>", cell_hdr),
]]
for r in mn_rows:
mn_tbl_data.append([
Paragraph(r[0], S("mnk", fontSize=8.2, fontName="Helvetica-Bold",
textColor=colors.HexColor("#5C3A00"))),
Paragraph(r[1], cell_body),
])
mn_tbl = Table(mn_tbl_data, colWidths=[55*mm, 120*mm])
mn_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), colors.HexColor("#8B4513")),
("TEXTCOLOR", (0,0), (-1,0), C_WHITE),
("BACKGROUND", (0,1), (-1,-1), colors.HexColor("#FFF8DC")),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#DEB887")),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("ROWBACKGROUNDS", (0,1), (-1,-1),
[colors.HexColor("#FFF8DC"), colors.HexColor("#FFF0C0")]),
]))
story.append(mn_tbl)
story.append(Spacer(1, 6))
# ββ 3-LINE EXAM SUMMARY βββββββββββββββββββββββββββββββββββββββββββββ
story.append(section_header("βοΈ 3-LINE EXAM SUMMARY (Write this first in your answer!)", bg=C_BLUE))
story.append(Spacer(1, 3))
summary_items = [
("1.", "Kwashiorkor",
"= Mainly PROTEIN deficient, age 1β5 yrs. Key features: EDEMA + Moon face + Fatty liver "
"+ Flaky paint skin + Flag sign hair + Apathy. Child looks puffy but is wasted underneath."),
("2.", "Marasmus",
"= Total starvation (protein + calories), under 1 year. Key features: NO edema, severe wasting, "
"Old man face, bones visible, alert child who wants to eat. Weight < 60% of normal."),
("3.", "Key difference",
"EDEMA β present in Kwashiorkor, absent in Marasmus. "
"Kwashiorkor also has fatty liver, flag sign hair, flaky paint skin which Marasmus does NOT have."),
]
for num, bold, rest in summary_items:
row_data = [[
Paragraph(num, S("sn", fontSize=11, fontName="Helvetica-Bold",
textColor=C_BLUE, alignment=TA_CENTER)),
Paragraph(f"<b>{bold}</b>", S("sk", fontSize=9, fontName="Helvetica-Bold",
textColor=C_BLUE, alignment=TA_CENTER)),
Paragraph(rest, cell_body),
]]
row_tbl = Table(row_data, colWidths=[8*mm, 35*mm, 134*mm])
row_tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#F0F4FF")),
("LINEBELOW", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
]))
story.append(row_tbl)
story.append(Spacer(1, 5))
# ββ FOOTER ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
story.append(HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#AAAAAA")))
story.append(Spacer(1, 2))
story.append(Paragraph(
"Sources: Park's Textbook of Preventive & Social Medicine | Robbins & Kumar Basic Pathology | "
"Harper's Illustrated Biochemistry β’ Generated by Orris AI for last-minute PSM revision",
footer_style))
# ββ BUILD ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
doc.build(story)
print(f"PDF created: {OUTPUT}")
Actually tomorrow is my psm exam and i dont know about gamow bag . Please provide me answer is easy language and easy way i will write in exam without forgeting
tomorrow is my icmhe practical exam in the last exam they asked about hopi of vomiting and shortness of breath , what might they ask tommorow apartv from this