Give me all the important points to remember for all vitamins and minerals
Key principle: Fat-soluble vitamins are absorbed via micellar phase - any fat malabsorption state (Crohn's, celiac, cystic fibrosis, cholestasis) causes deficiency of ALL four. They are stored in the body and toxicity is possible with excess intake.
| Feature | Details |
|---|---|
| RDA | Women: 700 µg RAE / Men: 900 µg RAE |
| UL | 3,000 µg/day |
| Sources | Liver, dairy, eggs (preformed); dark orange/yellow and leafy green vegetables (beta-carotene provitamin) |
| Active forms | Retinol (storage/transport), retinal (vision), retinoic acid (gene regulation) |
| Functions | Vision (rhodopsin synthesis), epithelial differentiation, immune function, reproduction, bone growth |
| Feature | Details |
|---|---|
| RDA | 600 IU (15 µg) for adults under 70; 800 IU for >70 years |
| UL | 4,000 IU/day |
| Sources | Sunlight (skin synthesis), fatty fish, fortified dairy/orange juice, egg yolk |
| Active form | 1,25-dihydroxycholecalciferol (calcitriol) - made in kidney |
| Feature | Details |
|---|---|
| RDA | 15 mg α-tocopherol/day |
| UL | 1,000 mg/day |
| Sources | Vegetable oils, wheat germ, nuts, seeds, green leafy vegetables |
| Active form | α-tocopherol (most biologically active) |
| Feature | Details |
|---|---|
| AI | Women: 90 µg/day / Men: 120 µg/day |
| Sources | K1 (phylloquinone) from leafy green vegetables; K2 (menaquinone) from gut bacteria, fermented foods; K3 (menadione) = synthetic |
| No established UL | - |
Key principle: Excess is generally excreted in urine (less toxicity risk). Deficiency develops faster than fat-soluble vitamins since storage is limited. Most B vitamins act as coenzymes in metabolic reactions.
| Feature | Details |
|---|---|
| RDA | Women: 1.1 mg / Men: 1.2 mg |
| Sources | Whole grains, enriched cereals, legumes, pork, nuts, seeds |
| Active form | Thiamine pyrophosphate (TPP) |
| Feature | Details |
|---|---|
| RDA | Women: 1.1 mg / Men: 1.3 mg |
| Sources | Dairy products, lean meats, enriched cereals, eggs, leafy vegetables |
| Active forms | FMN (flavin mononucleotide), FAD (flavin adenine dinucleotide) |
| Feature | Details |
|---|---|
| RDA | Women: 14 mg NE / Men: 16 mg NE |
| UL | 35 mg/day |
| Sources | Meat, poultry, fish, peanuts, enriched cereals; also synthesized from tryptophan (60 mg Trp = 1 mg niacin) |
| Active forms | NAD⁺/NADH and NADP⁺/NADPH |
| Feature | Details |
|---|---|
| AI | 5 mg/day |
| Sources | Widely distributed in all foods (Greek pantos = "everywhere"); liver, egg yolk, avocado |
| Active form | Coenzyme A (CoA) |
| Feature | Details |
|---|---|
| RDA | 1.3 mg/day (adults) |
| UL | 100 mg/day |
| Sources | Meat, poultry, fish, potatoes, bananas, fortified cereals |
| Active form | Pyridoxal phosphate (PLP) |
| Feature | Details |
|---|---|
| AI | 30 µg/day |
| Sources | Liver, egg yolk, nuts, legumes; intestinal bacteria synthesize some |
| Feature | Details |
|---|---|
| RDA | 400 µg DFE/day; 600 µg in pregnancy; 500 µg while lactating |
| UL | 1,000 µg/day (supplemental folate only) |
| Sources | Leafy green vegetables (spinach, asparagus), legumes, fortified cereals, citrus fruits, liver |
| Active form | Tetrahydrofolate (THF) |
| Feature | Details |
|---|---|
| RDA | 2.4 µg/day |
| Sources | Exclusively animal products (meat, fish, dairy, eggs); vegans need supplements |
| Active forms | Methylcobalamin, adenosylcobalamin |
| Feature | B12 Deficiency | Folate Deficiency |
|---|---|---|
| Megaloblastic anemia | ✓ | ✓ |
| Neurologic symptoms | ✓ (subacute combined degeneration) | ✗ |
| Elevated homocysteine | ✓ | ✓ |
| Elevated MMA | ✓ | ✗ |
| Feature | Details |
|---|---|
| RDA | Women: 75 mg / Men: 90 mg; Smokers +35 mg |
| UL | 2,000 mg/day |
| Sources | Citrus fruits, strawberries, kiwi, broccoli, bell peppers, potatoes |
| Feature | Details |
|---|---|
| RDA | 1,000 mg (adults 19-50); 1,200 mg (women >50, all >70) |
| UL | 2,500 mg/day |
| Sources | Dairy products, fortified foods, leafy greens (kale, bok choy), sardines |
| Absorption | Regulated by calcitriol (Vitamin D); 20-30% absorbed normally |
| Feature | Details |
|---|---|
| RDA | 700 mg/day |
| Sources | Widely distributed; dairy, meat, fish, nuts, legumes, cola drinks |
| Feature | Details |
|---|---|
| RDA | Women: 310-320 mg / Men: 400-420 mg |
| UL | 350 mg (supplemental) |
| Sources | Nuts, seeds, whole grains, leafy greens, legumes, dark chocolate |
| Feature | Details |
|---|---|
| RDA | Women 19-50: 18 mg; Men: 8 mg; Pregnancy: 27 mg |
| Sources | Heme iron (meat, especially red meat - 15-35% absorbed); non-heme iron (legumes, fortified cereals, spinach - 2-10% absorbed); Vitamin C enhances non-heme absorption |
| Feature | Details |
|---|---|
| RDA | Women: 8 mg / Men: 11 mg |
| UL | 40 mg/day |
| Sources | Oysters (richest), red meat, poultry, beans, nuts, fortified cereals |
| Feature | Details |
|---|---|
| RDA | 900 µg/day |
| Sources | Liver, shellfish (oysters), nuts, seeds, dark chocolate, whole grains |
| Feature | Details |
|---|---|
| RDA | 150 µg/day; 220 µg in pregnancy; 290 µg lactation |
| Sources | Iodized salt, seafood, dairy, seaweed |
| Feature | Details |
|---|---|
| RDA | 55 µg/day |
| UL | 400 µg/day |
| Sources | Brazil nuts (highest known food source), seafood, meat, cereals (soil-dependent) |
| Feature | Details |
|---|---|
| AI | 25-35 µg/day |
| Sources | Whole grains, broccoli, nuts, meat, cheese |
| Feature | Details |
|---|---|
| AI | Women: 1.8 mg / Men: 2.3 mg |
| Sources | Whole grains, nuts, legumes, tea, leafy vegetables |
| Feature | Details |
|---|---|
| AI | 3-4 mg/day |
| UL | 10 mg/day |
| Sources | Fluoridated water, toothpaste, tea, seafood |
| Feature | Details |
|---|---|
| RDA | 45 µg/day |
| UL | 2,000 µg/day |
| Sources | Legumes, whole grains, nuts |
| Vitamin | Classic Sign/Symptom |
|---|---|
| A | Night blindness → Bitot spots → Keratomalacia |
| D | Rickets (children), Osteomalacia (adults) |
| E | Hemolytic anemia in premature infants; Spinocerebellar ataxia |
| K | Bleeding (elevated PT); Hemorrhagic disease of newborn |
| B1 (Thiamine) | Beriberi (wet/dry); Wernicke-Korsakoff (alcoholics) |
| B2 (Riboflavin) | Ariboflavinosis: Cheilosis, magenta tongue |
| B3 (Niacin) | Pellagra: Dermatitis, Diarrhea, Dementia, Death |
| B5 (Pantothenic acid) | Burning feet syndrome (rare) |
| B6 (Pyridoxine) | Sideroblastic anemia; Seizures; Peripheral neuropathy |
| B7 (Biotin) | Alopecia; Dermatitis (raw egg white/avidin) |
| B9 (Folate) | Megaloblastic anemia; Neural tube defects (NO neuro symptoms) |
| B12 (Cobalamin) | Megaloblastic anemia + Subacute combined degeneration |
| C (Ascorbic acid) | Scurvy: Perifollicular hemorrhage, gingival bleeding, corkscrew hairs |
| Mineral | Classic Sign/Symptom |
|---|---|
| Calcium | Tetany (Chvostek/Trousseau), seizures, osteoporosis |
| Phosphorus | Refeeding syndrome; Respiratory failure |
| Magnesium | Refractory hypokalemia/hypocalcemia; Torsades; Eclampsia |
| Iron | Microcytic anemia; Koilonychia; Pica; Plummer-Vinson |
| Zinc | Acrodermatitis enteropathica; Alopecia; Hypogonadism; Poor wound healing |
| Copper | Normocytic/macrocytic anemia + neutropenia (mimics B12/folate) |
| Iodine | Goiter; Cretinism; Hypothyroidism |
| Selenium | Keshan disease (cardiomyopathy); Kashin-Beck disease |
| Fluoride | Dental caries (deficiency); Dental/skeletal fluorosis (excess) |
| Chromium | Glucose intolerance |
| Manganese | Toxicity → Parkinsonism (manganism) |
Make a printable pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/vitamins-minerals && cat > /tmp/workspace/vitamins-minerals/make_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, KeepTogether, PageBreak ) from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.platypus import Flowable OUTPUT = "/tmp/workspace/vitamins-minerals/Vitamins_and_Minerals_Reference.pdf" doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=1.8*cm, leftMargin=1.8*cm, topMargin=2*cm, bottomMargin=2*cm, title="Vitamins & Minerals - Complete Clinical Reference", author="Orris Medical" ) W = A4[0] - 3.6*cm # usable width # ── Colour palette ──────────────────────────────────────────────────────────── C_NAVY = colors.HexColor("#1A3A5C") C_TEAL = colors.HexColor("#1B6B8A") C_TEAL2 = colors.HexColor("#2596be") C_GOLD = colors.HexColor("#D4A017") C_GREEN = colors.HexColor("#2E7D32") C_RED = colors.HexColor("#C62828") C_ORANGE = colors.HexColor("#E65100") C_PURPLE = colors.HexColor("#6A1B9A") C_LBLUE = colors.HexColor("#E3F2FD") C_LGREEN = colors.HexColor("#E8F5E9") C_LPUR = colors.HexColor("#F3E5F5") C_LORANGE = colors.HexColor("#FFF3E0") C_LYELLOW = colors.HexColor("#FFFDE7") C_LGRAY = colors.HexColor("#F5F5F5") C_TH_BG = colors.HexColor("#1A3A5C") C_TH2_BG = colors.HexColor("#1B6B8A") C_STRIPE = colors.HexColor("#EEF4FB") C_BORDER = colors.HexColor("#B0BEC5") styles = getSampleStyleSheet() # ── Custom paragraph styles ─────────────────────────────────────────────────── def S(name, **kw): base = kw.pop("parent", "Normal") s = ParagraphStyle(name, parent=styles[base], **kw) return s ST = { "title": S("T_title", fontSize=22, textColor=C_NAVY, leading=28, alignment=TA_CENTER, spaceAfter=4, fontName="Helvetica-Bold"), "subtitle": S("T_sub", fontSize=10, textColor=C_TEAL, leading=14, alignment=TA_CENTER, spaceAfter=2, fontName="Helvetica"), "h1": S("T_h1", fontSize=14, textColor=colors.white, leading=18, fontName="Helvetica-Bold", spaceAfter=0, spaceBefore=4), "h2": S("T_h2", fontSize=11, textColor=C_NAVY, leading=15, fontName="Helvetica-Bold", spaceBefore=8, spaceAfter=2), "h3": S("T_h3", fontSize=9.5,textColor=C_TEAL, leading=13, fontName="Helvetica-Bold", spaceBefore=5, spaceAfter=2), "body": S("T_body", fontSize=8.5,textColor=colors.black, leading=12, fontName="Helvetica", spaceAfter=2), "bullet": S("T_bullet", fontSize=8.5,textColor=colors.black, leading=12, fontName="Helvetica", spaceAfter=1, leftIndent=10, bulletIndent=0), "note": S("T_note", fontSize=8, textColor=C_TEAL, leading=11, fontName="Helvetica-Oblique", spaceAfter=2), "th": S("T_th", fontSize=8.5,textColor=colors.white, leading=11, fontName="Helvetica-Bold", alignment=TA_CENTER), "td": S("T_td", fontSize=8, textColor=colors.black, leading=11, fontName="Helvetica"), "tdg": S("T_tdg", fontSize=8, textColor=C_GREEN, leading=11, fontName="Helvetica-Bold"), "tdr": S("T_tdr", fontSize=8, textColor=C_RED, leading=11, fontName="Helvetica-Bold"), "footer": S("T_foot", fontSize=7, textColor=colors.grey, leading=9, alignment=TA_CENTER), "tag_fat": S("T_fat", fontSize=8, textColor=colors.white, leading=10, fontName="Helvetica-Bold", alignment=TA_CENTER), "tag_water":S("T_water", fontSize=8, textColor=colors.white, leading=10, fontName="Helvetica-Bold", alignment=TA_CENTER), "tag_min": S("T_min", fontSize=8, textColor=colors.white, leading=10, fontName="Helvetica-Bold", alignment=TA_CENTER), "callout": S("T_callout",fontSize=8.5,textColor=C_NAVY, leading=12, fontName="Helvetica", spaceAfter=2, leftIndent=8), } def p(text, style="body"): return Paragraph(text, ST[style]) def bp(text): return Paragraph(f"• {text}", ST["bullet"]) def hr(color=C_BORDER, thickness=0.5): return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=4, spaceBefore=4) # ── Section header band ──────────────────────────────────────────────────────── def section_header(title, bg=C_NAVY): tbl = Table([[Paragraph(title, ST["h1"])]], colWidths=[W]) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING", (0,0),(-1,-1), 6), ("LEFTPADDING", (0,0),(-1,-1), 10), ("RIGHTPADDING", (0,0),(-1,-1), 10), ("ROUNDEDCORNERS",(0,0),(-1,-1), [4,4,4,4]), ])) return tbl # ── Vitamin card builder ─────────────────────────────────────────────────────── def vit_card(name, tag_label, tag_color, rda, ul, sources, functions, deficiency_items, deficiency_label="Deficiency Signs", toxicity_items=None, key_points=None, at_risk=None, bg=C_LGRAY): elems = [] # Title row title_row = [ [Paragraph(name, S("vt_name", parent="Normal", fontSize=11, fontName="Helvetica-Bold", textColor=C_NAVY, leading=14)), Table([[Paragraph(tag_label, ST["tag_fat"])]], colWidths=[2*cm], style=TableStyle([("BACKGROUND",(0,0),(-1,-1),tag_color), ("TOPPADDING",(0,0),(-1,-1),3), ("BOTTOMPADDING",(0,0),(-1,-1),3), ("LEFTPADDING",(0,0),(-1,-1),4), ("RIGHTPADDING",(0,0),(-1,-1),4), ])) ] ] hdr = Table(title_row, colWidths=[W - 2.3*cm, 2.3*cm]) hdr.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), bg), ("TOPPADDING",(0,0),(-1,-1), 6), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 6), ("VALIGN",(0,0),(-1,-1),"MIDDLE"), ])) elems.append(hdr) # Info table info_rows = [ [p("<b>RDA/AI:</b>","body"), p(rda,"body")], ] if ul: info_rows.append([p("<b>UL:</b>","body"), p(ul,"body")]) info_rows.append([p("<b>Sources:</b>","body"), p(sources,"body")]) info_rows.append([p("<b>Functions:</b>","body"), p(functions,"body")]) if at_risk: info_rows.append([p("<b>At-risk:</b>","body"), p(at_risk,"body")]) info = Table(info_rows, colWidths=[2.2*cm, W-2.4*cm]) info.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.white), ("TOPPADDING",(0,0),(-1,-1), 3), ("BOTTOMPADDING",(0,0),(-1,-1), 3), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 6), ("VALIGN",(0,0),(-1,-1),"TOP"), ("LINEBELOW",(0,-1),(-1,-1), 0.3, C_BORDER), ])) elems.append(info) # Deficiency / Toxicity / Key points columns def_items_p = [bp(i) for i in deficiency_items] tox_items_p = [bp(i) for i in toxicity_items] if toxicity_items else [p("Not established / minimal","note")] kp_items_p = [bp(i) for i in key_points] if key_points else [] # Deficiency box def_header = Table([[p(f"<b>⚠ {deficiency_label}</b>","body")]], colWidths=[W]) def_header.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#FFEBEE")), ("TOPPADDING",(0,0),(-1,-1), 3),("BOTTOMPADDING",(0,0),(-1,-1), 3), ("LEFTPADDING",(0,0),(-1,-1), 8),("RIGHTPADDING",(0,0),(-1,-1), 6), ])) tox_header = Table([[p("<b>☠ Toxicity</b>","body")]], colWidths=[W]) tox_header.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#FFF3E0")), ("TOPPADDING",(0,0),(-1,-1), 3),("BOTTOMPADDING",(0,0),(-1,-1), 3), ("LEFTPADDING",(0,0),(-1,-1), 8),("RIGHTPADDING",(0,0),(-1,-1), 6), ])) # Two-column layout for deficiency + toxicity if toxicity_items: col_w = (W - 0.3*cm) / 2 def_cell = [def_header] + def_items_p tox_cell = [tox_header] + tox_items_p two_col = Table([[def_cell, tox_cell]], colWidths=[col_w, col_w]) two_col.setStyle(TableStyle([ ("VALIGN",(0,0),(-1,-1),"TOP"), ("LEFTPADDING",(0,0),(-1,-1), 0), ("RIGHTPADDING",(0,0),(-1,-1), 0), ("TOPPADDING",(0,0),(-1,-1), 0), ("BOTTOMPADDING",(0,0),(-1,-1), 0), ])) elems.append(two_col) else: elems.append(def_header) for i in def_items_p: elems.append(i) if kp_items_p: kp_header = Table([[p("<b>★ Key Points</b>","body")]], colWidths=[W]) kp_header.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#E8F5E9")), ("TOPPADDING",(0,0),(-1,-1), 3),("BOTTOMPADDING",(0,0),(-1,-1), 3), ("LEFTPADDING",(0,0),(-1,-1), 8),("RIGHTPADDING",(0,0),(-1,-1), 6), ])) kp_items_wrap = Table([[kp_header] + kp_items_p], colWidths=[W]) kp_items_wrap.setStyle(TableStyle([ ("LEFTPADDING",(0,0),(-1,-1), 0), ("RIGHTPADDING",(0,0),(-1,-1), 0), ("TOPPADDING",(0,0),(-1,-1), 0), ("BOTTOMPADDING",(0,0),(-1,-1), 0), ])) elems.append(kp_header) for i in kp_items_p: elems.append(i) # Wrap all in a border box card_inner = [[e] for e in elems] card = Table(card_inner, colWidths=[W]) card.setStyle(TableStyle([ ("BOX",(0,0),(-1,-1), 0.8, C_TEAL2), ("LEFTPADDING",(0,0),(-1,-1), 0), ("RIGHTPADDING",(0,0),(-1,-1), 0), ("TOPPADDING",(0,0),(-1,-1), 0), ("BOTTOMPADDING",(0,0),(-1,-1), 0), ])) return KeepTogether([card, Spacer(1, 0.25*cm)]) # ── Simple table helper ──────────────────────────────────────────────────────── def simple_table(headers, rows, col_widths=None, stripe=True): header_row = [Paragraph(h, ST["th"]) for h in headers] data = [header_row] for i, row in enumerate(rows): bg = C_STRIPE if (stripe and i % 2 == 0) else colors.white data.append([Paragraph(str(c), ST["td"]) for c in row]) if col_widths is None: col_widths = [W / len(headers)] * len(headers) tbl = Table(data, colWidths=col_widths, repeatRows=1) style = [ ("BACKGROUND", (0,0), (-1,0), C_TH_BG), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 8.5), ("TEXTCOLOR", (0,0), (-1,0), colors.white), ("ALIGN", (0,0), (-1,0), "CENTER"), ("VALIGN", (0,0), (-1,-1), "TOP"), ("FONTSIZE", (0,1), (-1,-1), 8), ("ROWBACKGROUNDS",(0,1), (-1,-1), [C_STRIPE, colors.white]), ("GRID", (0,0), (-1,-1), 0.3, C_BORDER), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ] tbl.setStyle(TableStyle(style)) return tbl # ══════════════════════════════════════════════════════════════════════════════ # BUILD CONTENT # ══════════════════════════════════════════════════════════════════════════════ story = [] # ── Cover / Title ───────────────────────────────────────────────────────────── story.append(Spacer(1, 0.5*cm)) story.append(p("Vitamins & Minerals", "title")) story.append(p("Complete Clinical Reference — Important Points to Remember", "subtitle")) story.append(p("Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry · Washington Manual · Costanzo Physiology", "footer")) story.append(hr(C_TEAL2, 2)) story.append(Spacer(1, 0.3*cm)) # Key principle box kp_box_data = [[ Paragraph("KEY PRINCIPLES", S("kp_hdr", parent="Normal", fontSize=9, fontName="Helvetica-Bold", textColor=colors.white, leading=12)), Paragraph( "<b>Fat-soluble vitamins (A, D, E, K):</b> absorbed via micellar phase; stored in body; " "any fat malabsorption causes simultaneous deficiency; toxicity possible with excess.<br/>" "<b>Water-soluble vitamins (B-complex, C):</b> excess excreted in urine; limited storage; " "deficiency develops faster; most act as coenzymes.<br/>" "<b>Minerals:</b> essential for enzyme cofactors, structural roles, fluid balance, and signalling.", S("kp_body", parent="Normal", fontSize=8, fontName="Helvetica", textColor=colors.black, leading=12) ) ]] kp_box = Table(kp_box_data, colWidths=[2.5*cm, W-2.5*cm]) kp_box.setStyle(TableStyle([ ("BACKGROUND", (0,0), (0,0), C_NAVY), ("BACKGROUND", (1,0), (1,0), C_LYELLOW), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING",(0,0),(-1,-1), 8), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 8), ("BOX", (0,0),(-1,-1), 1, C_NAVY), ])) story.append(kp_box) story.append(Spacer(1, 0.4*cm)) # ══════════════════════════════════════════════════════════════════════════════ # FAT-SOLUBLE VITAMINS # ══════════════════════════════════════════════════════════════════════════════ story.append(section_header("FAT-SOLUBLE VITAMINS (A · D · E · K)", C_NAVY)) story.append(Spacer(1, 0.2*cm)) story.append(vit_card( name="Vitamin A (Retinol / Retinoic Acid)", tag_label="FAT-SOLUBLE", tag_color=C_TEAL, rda="Women: 700 µg RAE/day | Men: 900 µg RAE/day", ul="3,000 µg/day (teratogenic in excess)", sources="Liver, dairy, eggs (preformed retinol); dark orange/yellow & leafy green vegetables (β-carotene provitamin)", functions="Vision (rhodopsin synthesis - retinal); Epithelial differentiation (retinoic acid - gene regulation); Immune function; Reproduction; Bone growth", deficiency_items=[ "Night blindness — earliest sign", "Bitot's spots (foamy white plaques on conjunctiva)", "Xerophthalmia (dry eyes) → Keratomalacia (corneal ulceration/blindness)", "Follicular hyperkeratosis ('toad skin')", "Increased susceptibility to infection (especially measles, diarrhea in children)", ], toxicity_items=[ "Acute: headache, vomiting, blurred vision, skin peeling", "Chronic: alopecia, dry skin, hepatotoxicity, pseudotumor cerebri", "TERATOGENIC — isotretinoin causes birth defects", "Hypercalcemia with chronic excess", ], key_points=[ "Progression: Night blindness → Bitot spots → Xerophthalmia → Keratomalacia", "Retinoic acid regulates gene transcription → growth and differentiation", "At-risk: fat malabsorption, chronic liver disease, strict vegetarians", ], at_risk="Malabsorptive states (proximal small bowel disease), chronic liver disease, strict vegetarians", bg=colors.HexColor("#FFF8E1") )) story.append(vit_card( name="Vitamin D (Calciferol — the 'Sunshine Vitamin')", tag_label="FAT-SOLUBLE", tag_color=C_TEAL, rda="600 IU (15 µg) under age 70; 800 IU over age 70", ul="4,000 IU/day", sources="Skin synthesis (UV + 7-dehydrocholesterol); fatty fish, fortified dairy/OJ, egg yolk", functions="Increases intestinal Ca²⁺ & phosphate absorption; bone mineralization; immune modulation; cell differentiation", deficiency_items=[ "Children: RICKETS — soft/bowed bones, craniotabes, rachitic rosary, widened epiphyseal plates", "Adults: OSTEOMALACIA — bone pain, pathologic fractures, proximal muscle weakness, waddling gait", "Hypocalcemia → tetany, seizures", ], toxicity_items=[ "Hypercalcemia: nausea, vomiting, polyuria, polydipsia, constipation, confusion", "Metastatic calcifications (kidneys, vessels, soft tissue)", "Nephrolithiasis and nephrocalcinosis", ], key_points=[ "Metabolism: Skin (D3) → Liver (25-OH) → Kidney (1,25-OH₂ = calcitriol) — PTH stimulates 1α-hydroxylation", "25(OH)D is the BEST serum marker of Vitamin D status (half-life ~3 weeks)", "At-risk: dark skin, exclusively breastfed infants, elderly/institutionalized, obesity, chronic liver/kidney disease", ], at_risk="Dark-skinned individuals, exclusively breastfed infants, limited sun exposure, obesity, malabsorptive states, chronic liver/kidney disease", bg=colors.HexColor("#FFF8E1") )) story.append(vit_card( name="Vitamin E (Tocopherol)", tag_label="FAT-SOLUBLE", tag_color=C_TEAL, rda="15 mg α-tocopherol/day", ul="1,000 mg/day", sources="Vegetable oils, wheat germ, nuts, seeds, green leafy vegetables", functions="Major lipid-soluble ANTIOXIDANT; protects cell membranes from peroxidation; RBC integrity; normal neurologic function", deficiency_items=[ "Hemolytic anemia — especially in premature infants (primary risk group)", "Spinocerebellar ataxia (progressive neurologic degeneration)", "Peripheral neuropathy (demyelination — posterior columns + spinocerebellar tracts)", "Ophthalmoplegia, areflexia, retinopathy in premature infants", ], toxicity_items=[ "Inhibits platelet aggregation → bleeding tendency", "Antagonizes Vitamin K → risk of hemorrhage at very high doses", ], key_points=[ "Works synergistically with selenium (both antioxidants)", "Abetalipoproteinemia → profound Vit E deficiency (no chylomicron/VLDL transport)", "At-risk: premature neonates, fat malabsorption syndromes", ], at_risk="Premature neonates, fat malabsorption syndromes, abetalipoproteinemia", bg=colors.HexColor("#FFF8E1") )) story.append(vit_card( name="Vitamin K (Phylloquinone K1 / Menaquinone K2)", tag_label="FAT-SOLUBLE", tag_color=C_TEAL, rda="Women: 90 µg/day | Men: 120 µg/day (AI — no UL established)", ul="No established UL (K1/K2 essentially non-toxic; K3 menadione toxic)", sources="K1: leafy green vegetables; K2: gut bacteria + fermented foods; K3: synthetic form", functions="Cofactor for γ-carboxylation: Clotting factors II, VII, IX, X + Proteins C, S, Z; Osteocalcin synthesis (bone mineralization)", deficiency_items=[ "Bleeding diathesis — elevated PT/INR (prolonged clotting time)", "HEMORRHAGIC DISEASE OF NEWBORN (HDN) — no gut bacteria, little placental transfer → prophylactic K injection at birth", "Spontaneous bruising, hematuria, GI bleeding", ], toxicity_items=[ "K1/K2: essentially non-toxic even in large amounts", "Synthetic K3 (menadione): hemolytic anemia and kernicterus in infants", ], key_points=[ "Warfarin antagonizes Vitamin K (blocks VKOR enzyme)", "Proteins C and S are anticoagulant and ALSO require Vitamin K — warfarin initially procoagulant", "All newborns receive prophylactic IM Vitamin K injection at birth", "At-risk: newborns, broad-spectrum antibiotics, fat malabsorption, warfarin therapy", ], at_risk="Newborns, broad-spectrum antibiotic use, fat malabsorption, warfarin therapy", bg=colors.HexColor("#FFF8E1") )) # ══════════════════════════════════════════════════════════════════════════════ # WATER-SOLUBLE VITAMINS # ══════════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(section_header("WATER-SOLUBLE VITAMINS (B-Complex · Vitamin C)", C_TEAL)) story.append(Spacer(1, 0.2*cm)) story.append(vit_card( name="Vitamin B1 — Thiamine", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="Women: 1.1 mg/day | Men: 1.2 mg/day", ul="No UL established", sources="Whole grains, enriched cereals, legumes, pork, nuts, seeds", functions="As TPP: Pyruvate dehydrogenase (pyruvate→acetyl-CoA); α-ketoglutarate dehydrogenase (TCA); Transketolase (pentose phosphate pathway); Branched-chain AA catabolism", deficiency_items=[ "WET BERIBERI — high-output cardiac failure, dilated cardiomyopathy, edema", "DRY BERIBERI — peripheral neuropathy (distal sensorimotor polyneuropathy, legs > arms)", "WERNICKE'S ENCEPHALOPATHY (triad): Confusion + Ophthalmoplegia + Ataxia — acute, reversible", "KORSAKOFF'S SYNDROME: anterograde amnesia + confabulation — chronic, often irreversible", ], toxicity_items=[ "No known toxicity — excess excreted in urine", ], key_points=[ "ALWAYS give thiamine BEFORE glucose in suspected deficiency (glucose worsens Wernicke's)", "Primary risk group: ALCOHOLICS (reduced intake + impaired absorption + impaired utilization)", "Also at-risk: prolonged IV glucose without thiamine, dialysis, hyperemesis gravidarum, gastric bypass", "Most sensitive test: RBC transketolase activity", ], at_risk="Alcoholics, malnutrition, prolonged IV glucose without thiamine, dialysis, hyperemesis gravidarum, gastric bypass", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B2 — Riboflavin", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="Women: 1.1 mg/day | Men: 1.3 mg/day", ul="No UL established", sources="Dairy products, lean meats, enriched cereals, eggs, leafy vegetables", functions="As FMN/FAD: electron carrier in redox reactions (ETC); fatty acid β-oxidation; glutathione reductase (antioxidant); required for B6 and folate activation", deficiency_items=[ "ARIBOFLAVINOSIS: Cheilosis + angular stomatitis (cracking at corners of mouth)", "Glossitis — magenta tongue", "Seborrheic dermatitis (scrotum, vulva, nasolabial folds)", "Corneal vascularization, photophobia", "Normochromic normocytic anemia", ], toxicity_items=[ "No known significant toxicity", "Urine turns yellow-green (fluorescent) on supplementation", ], key_points=[ "Required for activation of Vitamin B6 and Folate", "Phenothiazines, tricyclics, and probenecid impair riboflavin absorption", ], at_risk="Alcoholics, malabsorption, elderly on poor diets", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B3 — Niacin / Nicotinamide", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="Women: 14 mg NE/day | Men: 16 mg NE/day", ul="35 mg/day (supplemental)", sources="Meat, poultry, fish, peanuts, enriched cereals; also synthesized from tryptophan (60 mg Trp = 1 mg niacin)", functions="As NAD⁺/NADH and NADP⁺/NADPH: central coenzyme in redox reactions — glycolysis, TCA cycle, fatty acid synthesis/oxidation, oxidative phosphorylation", deficiency_items=[ "PELLAGRA — The 4 Ds: Dermatitis + Diarrhea + Dementia + Death", "Casal's necklace — hyperpigmented rash on sun-exposed skin (neck, dorsum of hands)", "Bright red tongue, confusion, neuropsychiatric symptoms", ], toxicity_items=[ "Pharmacologic doses (1-3g): FLUSHING (prostaglandin-mediated → prevent with aspirin)", "Hepatotoxicity (esp. sustained-release forms)", "Hyperglycemia, hyperuricemia (at high therapeutic doses)", ], key_points=[ "Pellagra-causing conditions: Corn-based diets (niacytin form of niacin unabsorbable), ALCOHOLICS", "Hartnup disease: defective neutral AA transport → low tryptophan → pellagra-like symptoms", "Carcinoid syndrome: tryptophan diverted to serotonin → pellagra", "Isoniazid (INH) impairs tryptophan → niacin conversion (give B6 with INH)", "High-dose niacin: best agent for RAISING HDL-C", ], at_risk="Corn-based diets, alcoholics, Hartnup disease, carcinoid syndrome, INH therapy", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B5 — Pantothenic Acid", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="AI: 5 mg/day (both sexes)", ul="No UL established", sources="Ubiquitous in all foods (Greek: pantos = 'everywhere'); liver, egg yolk, avocado are richest sources", functions="As Coenzyme A (CoA): central to ALL CoA-dependent reactions — fatty acid synthesis & oxidation, TCA cycle (acetyl-CoA, succinyl-CoA), steroid synthesis, heme synthesis, acetylcholine synthesis", deficiency_items=[ "Extremely rare due to ubiquitous distribution", "'Burning feet syndrome' — painful paresthesias and burning of feet", "Irritability, fatigue, headache, nausea in severe malnutrition", ], key_points=[ "Backbone of Coenzyme A — essential for ALL acyl-group transfer reactions", "Almost never seen in clinical practice except in extreme starvation", ], bg=C_LGREEN )) story.append(PageBreak()) story.append(vit_card( name="Vitamin B6 — Pyridoxine", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="1.3 mg/day (adults)", ul="100 mg/day", sources="Meat, poultry, fish, potatoes, bananas, fortified cereals", functions="As PLP (Pyridoxal Phosphate): Transamination (ALT, AST); Decarboxylation → neurotransmitters (serotonin, dopamine, GABA, histamine); Heme synthesis (ALA synthase); Glycogenolysis; Cystathionine synthesis (homocysteine→cysteine)", deficiency_items=[ "Seborrheic dermatitis, cheilosis, glossitis (similar to B2 deficiency)", "MICROCYTIC SIDEROBLASTIC ANEMIA — impaired heme synthesis; ring sideroblasts on bone marrow", "PERIPHERAL NEUROPATHY", "CONVULSIONS/SEIZURES — decreased GABA synthesis", "Depression, confusion; elevated homocysteine (cardiovascular risk)", ], toxicity_items=[ "SENSORY NEUROPATHY at >200 mg/day — only B vitamin with significant neurotoxicity", "Ataxia, proprioception loss, irreversible nerve damage with megadose use", ], key_points=[ "Isoniazid (INH) binds and inactivates PLP → give B6 (25-50 mg/day) prophylactically with INH", "Penicillamine and oral contraceptives also deplete B6", "Key memory: B6 needed for EVERY step of neurotransmitter and heme biosynthesis", ], at_risk="Alcoholics, isoniazid therapy, penicillamine, oral contraceptives", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B7 — Biotin", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="AI: 30 µg/day", ul="No UL established", sources="Liver, egg yolk (cooked), nuts, legumes; gut bacteria produce some", functions="Cofactor for carboxylation reactions (CO₂ fixation): Pyruvate carboxylase (pyruvate→OAA); Acetyl-CoA carboxylase (acetyl-CoA→malonyl-CoA, fatty acid synthesis); Propionyl-CoA carboxylase; β-methylcrotonyl-CoA carboxylase", deficiency_items=[ "ALOPECIA (hair loss) — hallmark sign", "PERIORIFICIAL DERMATITIS — scaly rash around eyes, nose, mouth, genitals", "Conjunctivitis", "CNS abnormalities: lethargy, depression, hallucinations", ], key_points=[ "RAW EGG WHITES contain AVIDIN — binds biotin irreversibly → biotin deficiency (cooking denatures avidin)", "Biotinidase deficiency — inherited disorder causing biotin deficiency in infants", "Prolonged TPN without biotin supplementation is a risk", ], at_risk="Raw egg white consumption, prolonged TPN, biotinidase deficiency", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B9 — Folate / Folic Acid", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="400 µg DFE/day; 600 µg in PREGNANCY; 500 µg lactation", ul="1,000 µg/day (supplemental folate only)", sources="Leafy green vegetables (spinach, asparagus), legumes, fortified cereals, citrus fruits, liver", functions="As THF (Tetrahydrofolate): One-carbon transfer reactions — purine synthesis, thymidylate synthesis (dTMP from dUMP), homocysteine→methionine (requires B12)", deficiency_items=[ "MEGALOBLASTIC MACROCYTIC ANEMIA — impaired DNA synthesis; large hypersegmented neutrophils + oval macrocytes", "NEURAL TUBE DEFECTS (spina bifida, anencephaly) — critical in first 4 weeks of pregnancy", "Elevated homocysteine → cardiovascular risk", "NO NEUROLOGIC SYMPTOMS (key difference from B12 deficiency)", ], toxicity_items=[ "Can MASK B12 deficiency (corrects anemia but not neurologic damage)", "Seizure threshold may be lowered at very high doses", ], key_points=[ "400-800 µg/day recommended for ALL women of childbearing age (pre-conceptionally)", "METHYLFOLATE TRAP: B12 deficiency → folate accumulates as inactive N5-methyl-THF", "Drug interactions: Methotrexate, trimethoprim, pyrimethamine → inhibit DHFR", "Phenytoin and sulfasalazine impair folate absorption", ], at_risk="Pregnancy, alcoholics, elderly, methotrexate/TMP use, celiac disease, Crohn's disease", bg=C_LGREEN )) story.append(vit_card( name="Vitamin B12 — Cobalamin", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="2.4 µg/day", ul="No UL established", sources="EXCLUSIVELY animal products (meat, fish, dairy, eggs) — vegans MUST supplement", functions="Methylcobalamin: methionine synthase (homocysteine→methionine, regenerates THF); Adenosylcobalamin: methylmalonyl-CoA mutase (methylmalonyl-CoA→succinyl-CoA)", deficiency_items=[ "MEGALOBLASTIC MACROCYTIC ANEMIA (same as folate)", "SUBACUTE COMBINED DEGENERATION OF SPINAL CORD: posterior columns (↓vibration/proprioception) + lateral corticospinal tracts (UMN signs) + peripheral neuropathy", "Glossitis — beefy red, smooth tongue", "Elevated METHYLMALONIC ACID (MMA) + elevated homocysteine (both elevated vs. folate only homocysteine)", "Neuropsychiatric symptoms: dementia, depression, psychosis", ], toxicity_items=[ "No known toxicity — water soluble, excess excreted", ], key_points=[ "Absorption: B12 + Intrinsic Factor (parietal cells) → ILEUM (terminal ileum is exclusive absorption site)", "PERNICIOUS ANEMIA: autoimmune parietal cell destruction → no IF → B12 malabsorption", "MMA elevated ONLY in B12 deficiency (not folate) — use to distinguish the two", "Metformin impairs B12 absorption — monitor B12 in long-term metformin users", "Other causes: gastrectomy, ileal disease/resection, bacterial overgrowth, D. latum tapeworm", ], at_risk="Strict vegans, pernicious anemia, gastrectomy, ileal resection, bacterial overgrowth, metformin use, elderly", bg=C_LGREEN )) story.append(PageBreak()) story.append(vit_card( name="Vitamin C — Ascorbic Acid", tag_label="WATER-SOLUBLE", tag_color=C_GREEN, rda="Women: 75 mg/day | Men: 90 mg/day | Smokers +35 mg/day", ul="2,000 mg/day", sources="Citrus fruits, strawberries, kiwi, bell peppers, broccoli, potatoes", functions="Cofactor for prolyl/lysyl hydroxylase (collagen synthesis); Iron absorption enhancer (Fe³⁺→Fe²⁺); Antioxidant (regenerates Vitamin E); Dopamine-β-hydroxylase (dopamine→norepinephrine); Carnitine synthesis", deficiency_items=[ "SCURVY — defective collagen → vascular/tissue fragility", "PERIFOLLICULAR HEMORRHAGES + CORKSCREW HAIRS (pathognomonic)", "Gingival bleeding and gingivitis (swollen, spongy, bleeding gums)", "Poor wound healing", "Petechiae and ecchymoses (bruising)", "Infants: Frankel's sign (corner fractures of long bones), Pelkan spurs", ], toxicity_items=[ "GI upset (diarrhea) at >2 g/day", "Oxalate kidney stones with chronic very high intake", "Hemolysis in G6PD-deficient individuals", ], key_points=[ "Corkscrew hairs are PATHOGNOMONIC for scurvy", "Vitamin C enhances non-heme iron absorption — take together", "Does NOT prevent the common cold (evidence does not support this)", "At-risk: elderly on restricted diets, alcoholics, smokers, food insecurity", ], at_risk="Elderly on restricted diets, alcoholics, smokers, food insecurity", bg=C_LGREEN )) # ══════════════════════════════════════════════════════════════════════════════ # MINERALS # ══════════════════════════════════════════════════════════════════════════════ story.append(section_header("MINERALS (Macro & Trace)", colors.HexColor("#4A148C"))) story.append(Spacer(1, 0.2*cm)) PURPLE = colors.HexColor("#F3E5F5") story.append(vit_card( name="Calcium (Ca²⁺)", tag_label="MACROMINERAL", tag_color=C_PURPLE, rda="1,000 mg/day (adults 19-50); 1,200 mg (women >50, all >70)", ul="2,500 mg/day", sources="Dairy products, fortified foods, leafy greens (kale, bok choy), sardines (with bones)", functions="Bone & teeth structure (99% in skeleton as hydroxyapatite); muscle contraction; nerve transmission; coagulation (factor activation); second messenger signalling (Ca²⁺-calmodulin)", deficiency_items=[ "HYPOCALCEMIA: Tetany — Chvostek's sign (tap facial nerve → facial twitch) + Trousseau's sign (BP cuff → carpal spasm)", "Seizures, perioral/digital paresthesias", "Prolonged QT interval → cardiac arrhythmias", "Chronic inadequate intake → OSTEOPOROSIS", ], toxicity_items=[ "'Bones, Stones, Groans, Psychic Moans' (Hypercalcemia mnemonic)", "Kidney stones (nephrolithiasis), constipation, nausea", "Bone pain, confusion, depression, psychosis", "Hypercalcemia causes: primary hyperparathyroidism (most common outpatient), malignancy (most common inpatient)", ], key_points=[ "Absorption requires calcitriol (active Vitamin D) — Vitamin D deficiency → secondary hypocalcemia", "PTH and Vitamin D are the major regulators of calcium homeostasis", "Refractory hypocalcemia → always check and correct MAGNESIUM first", ], at_risk="Postmenopausal women, elderly, low dairy intake, Vitamin D deficiency", bg=PURPLE )) story.append(vit_card( name="Magnesium (Mg²⁺)", tag_label="MACROMINERAL", tag_color=C_PURPLE, rda="Women: 310-320 mg/day | Men: 400-420 mg/day", ul="350 mg/day (supplemental only)", sources="Nuts, seeds, whole grains, leafy greens (spinach), legumes, dark chocolate", functions="Cofactor for >300 enzymes; ATP stabilization (Mg-ATP complex); protein synthesis; DNA replication; muscle relaxation; neuromuscular junction function", deficiency_items=[ "HYPOCALCEMIA refractory to calcium replacement (Mg required for PTH secretion and action)", "HYPOKALEMIA (renal K⁺ wasting — cannot correct K⁺ without first correcting Mg²⁺)", "Muscle cramps, tremors, tetany", "TORSADES DE POINTES and other cardiac arrhythmias", "Personality changes, nystagmus, seizures", ], toxicity_items=[ "Respiratory depression (used therapeutically: IV Mg for eclampsia — monitor respiratory rate)", "Hypotension, cardiac arrest at very high IV levels", "Diarrhea with oral high-dose Mg (osmotic effect)", ], key_points=[ "Most common cause of hypomagnesemia: ALCOHOLISM", "Also: loop/thiazide diuretics, PPIs (chronic use), diarrhea, Gitelman syndrome, DM", "IV Magnesium Sulfate: treatment of eclampsia seizures AND torsades de pointes", "Patellar reflex is clinical monitor for Mg toxicity during IV infusion", ], at_risk="Alcoholics, diuretics (loop/thiazide), chronic PPI use, diarrhea, diabetes", bg=PURPLE )) story.append(vit_card( name="Phosphorus", tag_label="MACROMINERAL", tag_color=C_PURPLE, rda="700 mg/day", ul="4,000 mg/day", sources="Widely distributed; dairy, meat, fish, nuts, legumes, cola drinks (phosphoric acid)", functions="Bone mineralization (hydroxyapatite); ATP (energy currency); phospholipids (cell membranes); DNA/RNA backbone; enzyme regulation via phosphorylation/dephosphorylation", deficiency_items=[ "Muscle weakness, bone pain, hemolytic anemia", "Respiratory failure (ATP depletion → diaphragm failure)", "REFEEDING SYNDROME — dramatic phosphate fall after carbohydrate refeeding of malnourished patients → cardiac arrest, seizures, respiratory failure", ], key_points=[ "Refeeding syndrome triad: Hypophosphatemia + Hypokalemia + Hypomagnesemia", "Prevention: start refeeding slowly; monitor and supplement phosphate", "Hyperphosphatemia in chronic kidney disease → secondary hyperparathyroidism and renal osteodystrophy", ], bg=PURPLE )) story.append(PageBreak()) story.append(vit_card( name="Iron (Fe²⁺/Fe³⁺)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="Women 19-50: 18 mg; Men: 8 mg; Pregnancy: 27 mg", ul="45 mg/day", sources="Heme iron (red meat, organ meats — 15-35% absorbed); Non-heme iron (legumes, fortified cereals, spinach — 2-10% absorbed); Vitamin C enhances non-heme absorption", functions="Hemoglobin (O₂ transport), myoglobin (muscle O₂ storage), cytochromes (electron transport chain), catalase/peroxidase enzymes", deficiency_items=[ "MICROCYTIC HYPOCHROMIC ANEMIA — fatigue, pallor, decreased exercise tolerance", "KOILONYCHIA (spoon-shaped nails)", "PICA (craving ice, clay, starch)", "PLUMMER-VINSON SYNDROME: iron deficiency + dysphagia + esophageal web", "Glossitis, angular stomatitis, restless leg syndrome", "Labs: low ferritin (best marker), low serum iron, high TIBC, low transferrin saturation", ], toxicity_items=[ "HEREDITARY HEMOCHROMATOSIS: HFE gene (C282Y mutation) — 'bronze diabetes' triad (cirrhosis + diabetes + bronze skin)", "Also: cardiac failure, hypogonadism, arthropathy, hepatocellular carcinoma risk", "Acute poisoning (children): gastroenteritis → shock → hepatic failure", "Treatment: phlebotomy (hereditary); deferoxamine (acute toxicity)", ], key_points=[ "Most common nutritional deficiency worldwide", "Heme iron absorbed 5-10x better than non-heme iron", "Serum ferritin is the BEST marker of iron stores (acute phase reactant — falsely elevated in inflammation)", "At-risk: reproductive-age females, pregnancy, infants, vegetarians, GI bleeding, post-gastric bypass, celiac", ], at_risk="Reproductive-age females, pregnancy, infants/children, vegetarians, post-gastric bypass, celiac disease, chronic GI bleeding", bg=colors.HexColor("#FFEBEE") )) story.append(vit_card( name="Zinc (Zn²⁺)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="Women: 8 mg/day | Men: 11 mg/day", ul="40 mg/day", sources="Oysters (richest source), red meat, poultry, beans, nuts, fortified cereals", functions="Cofactor for >100 enzymes (DNA polymerase, RNA polymerase, carbonic anhydrase); zinc finger transcription factors; wound healing; taste/smell; immune function; spermatogenesis; Vitamin A mobilization from liver", deficiency_items=[ "ACRODERMATITIS ENTEROPATHICA — periorificial and acral rash (around mouth, eyes, genitals, hands/feet)", "ALOPECIA (hair loss)", "HYPOGONADISM + growth retardation in children", "DYSGEUSIA/DYSOSMIA (impaired taste and smell)", "Poor wound healing; impaired immune function", "Night blindness (zinc needed to mobilize Vitamin A from liver)", ], toxicity_items=[ "High-dose zinc COMPETITIVELY INHIBITS copper absorption → copper deficiency (anemia + neutropenia)", "Nausea, vomiting, diarrhea, gastric irritation", ], key_points=[ "Acrodermatitis enteropathica = inherited zinc malabsorption (SLC39A4 mutation)", "High-phytate diets (cereals, legumes) chelate zinc → reduced absorption", "Chronic diarrhea and fistulas are major risk factors", ], at_risk="Alcoholics, chronic diarrhea, high-phytate diets, malabsorptive states, nephrotic syndrome, pregnancy, post-gastric bypass, HIV, sickle cell", bg=colors.HexColor("#FFEBEE") )) story.append(vit_card( name="Copper (Cu²⁺)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="900 µg/day", ul="10,000 µg/day", sources="Liver, shellfish (oysters), nuts, seeds, dark chocolate, whole grains", functions="Ceruloplasmin (iron oxidation/transport); Cytochrome c oxidase (ETC complex IV); Superoxide dismutase (antioxidant); Dopamine-β-hydroxylase; Lysyl oxidase (collagen/elastin cross-linking); Tyrosinase (melanin synthesis)", deficiency_items=[ "HYPOCHROMIC NORMOCYTIC OR MACROCYTIC ANEMIA + NEUTROPENIA + thrombocytopenia (mimics B12/folate hematologically)", "Osteoporosis, pathologic fractures", "Depigmentation of skin and hair", "Myelopathy resembling subacute combined degeneration", ], toxicity_items=[ "WILSON'S DISEASE (ATP7B mutation): copper accumulation → liver disease + Kayser-Fleischer rings + neuropsychiatric symptoms", "Nausea, vomiting, hemolytic anemia, liver failure", ], key_points=[ "MENKES DISEASE (X-linked, ATP7A mutation): impaired copper transport → kinky hair + neurodegeneration + connective tissue fragility (defective lysyl oxidase)", "Excess zinc intake → copper deficiency (competitive inhibition of absorption)", "Ceruloplasmin is the main copper-carrying protein (also an acute-phase reactant — low in Wilson's)", ], at_risk="Excessive zinc intake, chronic diarrhea, Menkes disease, high-protein infant formula", bg=colors.HexColor("#FFEBEE") )) story.append(vit_card( name="Iodine (I⁻)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="150 µg/day; 220 µg pregnancy; 290 µg lactation", ul="1,100 µg/day", sources="Iodized salt (most important source), seafood, dairy, seaweed", functions="Required EXCLUSIVELY for thyroid hormone synthesis (T3/T4)", deficiency_items=[ "GOITER — thyroid hyperplasia due to chronically elevated TSH", "HYPOTHYROIDISM: fatigue, cold intolerance, constipation, weight gain, myxedema", "CRETINISM (in utero deficiency): irreversible intellectual disability, short stature, deafness, hypothyroidism (myxedematous vs. neurological cretinism)", ], toxicity_items=[ "Paradoxical HYPOTHYROIDISM via Wolff-Chaikoff effect (excess I⁻ transiently inhibits thyroid peroxidase)", "Jod-Basedow effect: iodine loading → HYPERTHYROIDISM in previously iodine-deficient glands", ], key_points=[ "Iodine deficiency is the leading preventable cause of intellectual disability worldwide", "Universal salt iodization is the primary prevention strategy", "At-risk: inland/mountainous populations ('goiter belt') without access to iodized salt", ], at_risk="Inland/mountainous populations without iodized salt, pregnancy", bg=colors.HexColor("#FFEBEE") )) story.append(PageBreak()) story.append(vit_card( name="Selenium (Se)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="55 µg/day", ul="400 µg/day", sources="Brazil nuts (single highest food source), seafood, meat, cereals (soil-dependent content)", functions="Component of selenoproteins: glutathione peroxidase (antioxidant); thioredoxin reductase; iodothyronine deiodinase (T4 → T3 conversion — works with Vitamin E/iodine)", deficiency_items=[ "KESHAN DISEASE — endemic cardiomyopathy in selenium-deficient areas of China", "KASHIN-BECK DISEASE — endemic osteoarthropathy", "Myopathy, muscle pain", "Hypothyroidism (impaired T4→T3 conversion)", ], toxicity_items=[ "SELENOSIS: garlic-breath odor (selenide compounds in breath/urine)", "Alopecia, nail brittleness/changes, peripheral neuropathy", "Nausea, diarrhea, fatigue", ], key_points=[ "Works synergistically with Vitamin E (both antioxidants)", "At-risk: TPN without selenium supplementation, Crohn's disease, renal dialysis, endemic low-soil areas (China, New Zealand)", ], at_risk="TPN without selenium, Crohn's disease, renal dialysis, selenium-depleted soil regions", bg=colors.HexColor("#FFEBEE") )) story.append(vit_card( name="Fluoride (F⁻)", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="AI: Women 3 mg/day | Men 4 mg/day", ul="10 mg/day", sources="Fluoridated water (main source), toothpaste, tea, seafood", functions="Incorporated into hydroxyapatite (bone and teeth) → resistance to acid dissolution and caries prevention", deficiency_items=[ "Increased dental caries (tooth decay)", ], toxicity_items=[ "DENTAL FLUOROSIS: mottled/pitted enamel, white spots (chronic mild excess during tooth development)", "SKELETAL FLUOROSIS: osteosclerosis, joint stiffness (chronic high exposure)", "Acute (rare): nausea, vomiting, hypocalcemia, cardiac arrhythmias", ], key_points=[ "Optimal water fluoridation: 0.7 mg/L (US recommendation)", "Benefit (caries prevention) occurs at low levels; toxicity only with excess", ], bg=colors.HexColor("#FFEBEE") )) story.append(vit_card( name="Chromium (Cr³⁺) · Manganese (Mn²⁺) · Molybdenum", tag_label="TRACE MINERAL", tag_color=colors.HexColor("#B71C1C"), rda="Chromium: AI 25-35 µg/day | Manganese: AI Women 1.8 mg, Men 2.3 mg | Molybdenum: RDA 45 µg/day", ul="Cr: not established | Mn: 11 mg/day | Mo: 2,000 µg/day", sources="Chromium: whole grains, broccoli, nuts; Manganese: whole grains, nuts, legumes, tea; Molybdenum: legumes, whole grains, nuts", functions="Chromium: potentiates insulin signaling ('glucose tolerance factor'); Manganese: cofactor for SOD, arginase, pyruvate carboxylase, glycosyltransferases; Molybdenum: cofactor for xanthine oxidase, sulfite oxidase, aldehyde oxidase", deficiency_items=[ "Chromium: glucose intolerance, insulin resistance, peripheral neuropathy (mainly TPN-related)", "Manganese: hypercholesterolemia, dermatitis, weight loss (very rare)", "Molybdenum: neurologic symptoms, accumulation of sulfite/xanthine (very rare — seen with TPN)", ], toxicity_items=[ "Manganese INHALATION toxicity: MANGANISM — Parkinson's-like syndrome (tremor, rigidity, behavioral changes) seen in miners/welders", "Chromium Cr⁶⁺ (hexavalent, industrial): lung cancer risk by inhalation", ], key_points=[ "Manganism is the main clinically important toxicity in this group", "These deficiencies are almost exclusively seen in prolonged TPN without trace element supplementation", ], bg=colors.HexColor("#FFEBEE") )) # ══════════════════════════════════════════════════════════════════════════════ # QUICK REFERENCE SUMMARY TABLES # ══════════════════════════════════════════════════════════════════════════════ story.append(PageBreak()) story.append(section_header("QUICK REFERENCE SUMMARY TABLES", colors.HexColor("#1A237E"))) story.append(Spacer(1, 0.3*cm)) # ── Vitamin deficiency buzzwords ────────────────────────────────────────────── story.append(p("<b>Vitamin Deficiency — Classic Signs & Buzzwords</b>", "h2")) vit_rows = [ ["Vitamin A", "Night blindness → Bitot's spots → Xerophthalmia → Keratomalacia"], ["Vitamin D", "Rickets (children) — bowed legs, rachitic rosary; Osteomalacia (adults) — bone pain, proximal weakness"], ["Vitamin E", "Hemolytic anemia in premature infants; Spinocerebellar ataxia; Peripheral neuropathy"], ["Vitamin K", "Bleeding diathesis (elevated PT/INR); Hemorrhagic disease of the newborn (HDN)"], ["B1 Thiamine", "WET Beriberi (cardiac failure/edema); DRY Beriberi (peripheral neuropathy); Wernicke-Korsakoff (alcoholics)"], ["B2 Riboflavin", "Ariboflavinosis: Cheilosis, Angular stomatitis, Magenta tongue, Seborrheic dermatitis"], ["B3 Niacin", "PELLAGRA — 4 Ds: Dermatitis (Casal's necklace), Diarrhea, Dementia, Death"], ["B5 Pantothenic acid", "Burning feet syndrome (rare — seen in severe malnutrition only)"], ["B6 Pyridoxine", "Microcytic sideroblastic anemia; Peripheral neuropathy; Seizures (low GABA); Elevated homocysteine"], ["B7 Biotin", "Alopecia + Periorificial dermatitis + CNS symptoms (raw egg white / avidin)"], ["B9 Folate", "Megaloblastic macrocytic anemia; Neural tube defects (pregnancy); NO neurologic symptoms"], ["B12 Cobalamin", "Megaloblastic anemia + SUBACUTE COMBINED DEGENERATION (posterior & lateral columns) + elevated MMA"], ["Vitamin C", "SCURVY: Perifollicular hemorrhages, Corkscrew hairs (pathognomonic), Gingival bleeding, Poor wound healing"], ] story.append(simple_table( ["Vitamin", "Classic Deficiency Findings"], vit_rows, col_widths=[2.5*cm, W-2.5*cm] )) story.append(Spacer(1, 0.4*cm)) # ── Mineral deficiency buzzwords ────────────────────────────────────────────── story.append(p("<b>Mineral Deficiency — Classic Signs & Buzzwords</b>", "h2")) min_rows = [ ["Calcium", "Tetany (Chvostek/Trousseau signs), Seizures, Prolonged QT; Chronic → Osteoporosis"], ["Magnesium", "Refractory hypokalemia/hypocalcemia; Torsades de pointes; Seizures (most common cause: alcoholism)"], ["Phosphorus", "Refeeding syndrome (hypophosphatemia after refeeding malnourished patients → cardiac arrest, respiratory failure)"], ["Iron", "Microcytic hypochromic anemia; Koilonychia (spoon nails); Pica; Plummer-Vinson syndrome"], ["Zinc", "Acrodermatitis enteropathica (periorificial rash); Alopecia; Hypogonadism; Poor wound healing; Dysgeusia"], ["Copper", "Normocytic/macrocytic anemia + NEUTROPENIA (mimics B12/folate); Osteoporosis; Myelopathy"], ["Iodine", "Goiter; Hypothyroidism; Cretinism (irreversible intellectual disability if in utero deficiency)"], ["Selenium", "Keshan disease (endemic cardiomyopathy); Kashin-Beck disease (osteoarthropathy); Hypothyroidism"], ["Fluoride", "DEFICIENCY: Dental caries; EXCESS: Dental/Skeletal fluorosis"], ["Manganese", "TOXICITY (inhalation): Manganism — Parkinson's-like syndrome (miners, welders)"], ["Chromium", "Glucose intolerance (mainly in TPN patients); Cr⁶⁺ toxicity → lung cancer risk"], ] story.append(simple_table( ["Mineral", "Classic Deficiency/Toxicity Findings"], min_rows, col_widths=[2.5*cm, W-2.5*cm] )) story.append(Spacer(1, 0.4*cm)) # ── B12 vs Folate table ──────────────────────────────────────────────────────── story.append(p("<b>B12 Deficiency vs. Folate Deficiency — Key Differences</b>", "h2")) bf_rows = [ ["Megaloblastic macrocytic anemia", "✓ YES", "✓ YES"], ["Neurologic symptoms (subacute combined degeneration)", "✓ YES", "✗ NO"], ["Elevated homocysteine", "✓ YES", "✓ YES"], ["Elevated methylmalonic acid (MMA)", "✓ YES", "✗ NO"], ["Responds to folate supplementation", "Partially (corrects anemia only; NOT neuro)", "✓ YES"], ["Neural tube defect risk in pregnancy", "✗ NO", "✓ YES"], ] story.append(simple_table( ["Feature", "B12 Deficiency", "Folate Deficiency"], bf_rows, col_widths=[W*0.55, W*0.22, W*0.23] )) story.append(Spacer(1, 0.4*cm)) # ── "Only" facts ────────────────────────────────────────────────────────────── story.append(p("<b>High-Yield 'Only' Facts</b>", "h2")) only_rows = [ ["Only vitamin synthesized by the skin", "Vitamin D"], ["Only vitamin found exclusively in animal products", "Vitamin B12"], ["Only B vitamin with significant neurotoxicity in excess", "Vitamin B6 (pyridoxine) — sensory neuropathy >200 mg/day"], ["Only fat-soluble vitamins", "A, D, E, K (mnemonic: ADEK / 'Fat DEKA')"], ["Only antidote/reversal for warfarin", "Vitamin K"], ["Most common nutritional deficiency worldwide", "Iron deficiency anemia"], ["Only vitamin to treat eclampsia / torsades de pointes", "Magnesium sulfate (IV)"], ["Coenzyme A backbone vitamin", "Vitamin B5 (Pantothenic acid)"], ["Elevated MMA = diagnostic of", "Vitamin B12 deficiency ONLY (not folate) — key distinguishing marker"], ["Methylfolate trap caused by", "Vitamin B12 deficiency → folate accumulates as inactive N5-methyl-THF"], ["Corkscrew hairs = pathognomonic for", "Scurvy (Vitamin C deficiency)"], ["Excess zinc → causes deficiency of", "Copper (competitive absorption inhibition → anemia + neutropenia)"], ["'Give thiamine BEFORE glucose' rule", "Suspected Wernicke's encephalopathy — glucose alone worsens the condition"], ["Iodine: leading cause of preventable intellectual disability", "Iodine deficiency → cretinism (in utero)"], ["Refeeding syndrome: watch for", "Severe hypophosphatemia + hypokalemia + hypomagnesemia"], ] story.append(simple_table( ["Key Fact", "Answer"], only_rows, col_widths=[W*0.5, W*0.5] )) # ── Footer ──────────────────────────────────────────────────────────────────── story.append(Spacer(1, 0.5*cm)) story.append(hr(C_TEAL2)) story.append(p("Sources: Goldman-Cecil Medicine (Vol.2 Ch.199) · Basic Medical Biochemistry 6e · Washington Manual of Medical Therapeutics · Costanzo Physiology 7e", "footer")) story.append(p("Generated by Orris Medical AI · For educational purposes only", "footer")) # ── BUILD ───────────────────────────────────────────────────────────────────── doc.build(story) print(f"PDF saved: {OUTPUT}") PYEOF echo "Script written"
cd /tmp/workspace/vitamins-minerals && python make_pdf.py 2>&1
ls -lh /tmp/workspace/vitamins-minerals/Vitamins_and_Minerals_Reference.pdf
Vitamins and Minerals Reference
PDF Document · PDF
Make it concise and in easy table format for quick learning But make sure that the tables doesn't go outside the page
cat > /tmp/workspace/vitamins-minerals/make_concise_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether ) from reportlab.lib.styles import ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT OUTPUT = "/tmp/workspace/vitamins-minerals/Vitamins_Minerals_Quick_Reference.pdf" PAGE_W, PAGE_H = A4 L_MARGIN = R_MARGIN = 1.5*cm T_MARGIN = B_MARGIN = 1.8*cm USABLE_W = PAGE_W - L_MARGIN - R_MARGIN # ~17.7 cm doc = SimpleDocTemplate( OUTPUT, pagesize=A4, leftMargin=L_MARGIN, rightMargin=R_MARGIN, topMargin=T_MARGIN, bottomMargin=B_MARGIN, title="Vitamins & Minerals Quick Reference" ) # ── Colours ──────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A3A5C") TEAL = colors.HexColor("#1B6B8A") GREEN = colors.HexColor("#2E7D32") RED = colors.HexColor("#B71C1C") PURPLE = colors.HexColor("#4A148C") ORANGE = colors.HexColor("#E65100") GOLD = colors.HexColor("#F57F17") LBLUE = colors.HexColor("#E3F2FD") LGREEN = colors.HexColor("#E8F5E9") LRED = colors.HexColor("#FFEBEE") LPURP = colors.HexColor("#F3E5F5") LYELL = colors.HexColor("#FFFDE7") LGRAY = colors.HexColor("#F5F5F5") STRIPE = colors.HexColor("#EEF4FB") BORDER = colors.HexColor("#90A4AE") WHITE = colors.white # ── Styles ───────────────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) TH = S("th", fontName="Helvetica-Bold", fontSize=7.5, textColor=WHITE, leading=10, alignment=TA_CENTER) TH2 = S("th2", fontName="Helvetica-Bold", fontSize=7, textColor=WHITE, leading=9, alignment=TA_CENTER) TD = S("td", fontName="Helvetica", fontSize=7, textColor=colors.black, leading=9, alignment=TA_LEFT) TDB = S("tdb", fontName="Helvetica-Bold", fontSize=7, textColor=colors.black, leading=9, alignment=TA_LEFT) TDR = S("tdr", fontName="Helvetica-Bold", fontSize=7, textColor=RED, leading=9, alignment=TA_LEFT) TDG = S("tdg", fontName="Helvetica-Bold", fontSize=7, textColor=GREEN, leading=9, alignment=TA_LEFT) H1 = S("h1", fontName="Helvetica-Bold", fontSize=11, textColor=WHITE, leading=14, alignment=TA_LEFT) H2 = S("h2", fontName="Helvetica-Bold", fontSize=9, textColor=NAVY, leading=12, alignment=TA_LEFT) TTL = S("ttl", fontName="Helvetica-Bold", fontSize=18, textColor=NAVY, leading=22, alignment=TA_CENTER) SUB = S("sub", fontName="Helvetica", fontSize=9, textColor=TEAL, leading=12, alignment=TA_CENTER) FTR = S("ftr", fontName="Helvetica", fontSize=6.5, textColor=colors.grey, leading=9, alignment=TA_CENTER) NOTE= S("note",fontName="Helvetica-Oblique",fontSize=7, textColor=TEAL, leading=9, alignment=TA_LEFT) def p(txt, style=TD): return Paragraph(txt, style) def pb(txt): return Paragraph(txt, TDB) def pr(txt): return Paragraph(txt, TDR) def pg(txt): return Paragraph(txt, TDG) def hr(col=BORDER, t=0.5): return HRFlowable(width="100%", thickness=t, color=col, spaceAfter=3, spaceBefore=3) # ── Section banner ───────────────────────────────────────────────────────────── def banner(title, bg=NAVY): t = Table([[Paragraph(title, H1)]], colWidths=[USABLE_W]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 8), ("RIGHTPADDING", (0,0),(-1,-1), 8), ])) return t # ── Generic table builder with fixed total width = USABLE_W ─────────────────── def make_table(headers, rows, col_fracs, header_bg=NAVY, row_bgs=None): """ col_fracs: list of fractions that sum to 1.0 Guarantees total width == USABLE_W so nothing bleeds off-page. """ col_widths = [USABLE_W * f for f in col_fracs] header_row = [p(h, TH) for h in headers] data = [header_row] for row in rows: data.append([p(str(c), TD) if not isinstance(c, Paragraph) else c for c in row]) if row_bgs is None: row_bgs = [STRIPE, WHITE] tbl = Table(data, colWidths=col_widths, repeatRows=1) style = TableStyle([ ("BACKGROUND", (0,0), (-1,0), header_bg), ("ROWBACKGROUNDS",(0,1), (-1,-1), row_bgs), ("GRID", (0,0), (-1,-1), 0.3, BORDER), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 7.5), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTSIZE", (0,1), (-1,-1), 7), ]) tbl.setStyle(style) return tbl # ══════════════════════════════════════════════════════════════════════════════ # DATA # ══════════════════════════════════════════════════════════════════════════════ # FAT-SOLUBLE VITAMINS TABLE # Cols: Vitamin | RDA | Key Sources | Functions | Deficiency | Toxicity | High-Yield Note fat_sol_rows = [ ["A (Retinol)", "M: 900 µg\nF: 700 µg\nUL: 3000 µg", "Liver, dairy, eggs;\nβ-carotene from dark veg", "Vision (rhodopsin); epithelial differentiation; immune function; reproduction", "Night blindness (1st sign); Bitot's spots; Xerophthalmia; Keratomalacia; follicular hyperkeratosis", "Acute: headache, vomiting\nChronic: alopecia, hepatotoxicity, pseudotumor cerebri\nTERATOGENIC", "Progression: Night blindness→Bitot spots→Xerophthalmia→Keratomalacia"], ["D (Calciferol)", "< 70 yr: 600 IU\n> 70 yr: 800 IU\nUL: 4000 IU", "Sunlight (skin); fatty fish; fortified dairy", "Ca²⁺/PO₄ absorption; bone mineralisation; immune modulation", "Children: RICKETS (bowed legs, rachitic rosary)\nAdults: OSTEOMALACIA (bone pain, proximal weakness, waddling gait)", "Hypercalcaemia (polyuria, constipation, confusion); nephrolithiasis; metastatic calcification", "25(OH)D = best serum marker\nPTH stimulates 1α-hydroxylation in kidney\nOnly vitamin made by skin"], ["E (Tocopherol)", "15 mg/day\nUL: 1000 mg", "Veg oils, wheat germ, nuts, seeds, leafy greens", "Lipid-soluble antioxidant; protects RBC membranes; neurological function", "Premature infants: HAEMOLYTIC ANAEMIA\nSpinoc. ataxia; peripheral neuropathy (posterior columns); ophthalmoplegia", "Inhibits platelets → bleeding risk\nAntagonises Vitamin K", "Works synergistically with selenium\nAbetalipoproteinaemia → severe deficiency"], ["K (Phylloquinone)", "M: 120 µg (AI)\nF: 90 µg (AI)\nNo UL", "K1: leafy greens\nK2: gut bacteria, fermented food", "γ-carboxylation: clotting factors II, VII, IX, X; Proteins C, S, Z; osteocalcin", "Bleeding (elevated PT/INR); HAEMORRHAGIC DISEASE OF NEWBORN (HDN); bruising, haematuria, GI bleed", "K1/K2: essentially non-toxic\nK3 (menadione-synthetic): haemolytic anaemia, kernicterus in infants", "Warfarin blocks VKOR enzyme\nAll newborns receive prophylactic IM Vit K\nProteins C & S also need Vit K → warfarin initially procoagulant"], ] # WATER-SOLUBLE VITAMINS TABLE water_sol_rows = [ ["B1\nThiamine", "M: 1.2 mg\nF: 1.1 mg\nNo UL", "Whole grains, pork, legumes, nuts", "TPP cofactor: pyruvate DH; α-KG DH; transketolase (PPP); BCAA catabolism", "WET BERIBERI: cardiomyopathy, high-output failure, oedema\nDRY BERIBERI: peripheral neuropathy\nWERNICKE'S: confusion + ophthalmoplegia + ataxia\nKORSAKOFF'S: amnesia + confabulation", "None known", "Give THIAMINE BEFORE glucose in suspected deficiency\nPrimary risk: alcoholics\nBest test: RBC transketolase"], ["B2\nRiboflavin", "M: 1.3 mg\nF: 1.1 mg\nNo UL", "Dairy, meats, enriched cereals, eggs", "FMN/FAD: redox reactions, ETC; fatty acid β-oxidation; activates B6 & folate", "ARIBOFLAVINOSIS:\nCheilosis + angular stomatitis\nMagenta tongue (glossitis)\nSeborrhoeic dermatitis\nCorneal vascularisation", "None known\n(Urine turns yellow-green)", "Required to activate B6 and folate\nPhenothiazines impair absorption"], ["B3\nNiacin", "M: 16 mg NE\nF: 14 mg NE\nUL: 35 mg", "Meat, fish, peanuts; made from tryptophan (60 mg Trp = 1 mg niacin)", "NAD⁺/NADH, NADP⁺/NADPH: central coenzyme in glycolysis, TCA, FAO, OXPHOS", "PELLAGRA — 4 Ds:\nDermatitis (Casal's necklace)\nDiarrhoea\nDementia\nDeath", "Pharmacologic doses:\nFlushing (give aspirin to prevent)\nHepatotoxicity\nHyperglycaemia, hyperuricaemia", "Pellagra causes: corn diet, alcoholism, Hartnup disease, carcinoid syndrome, INH therapy\nHigh-dose niacin = best HDL-raising agent"], ["B5\nPantothenic acid", "AI: 5 mg\nNo UL", "Ubiquitous (liver, egg yolk, avocado are richest)", "Coenzyme A backbone: ALL acyl-transfer reactions — FA synthesis/oxidation, TCA, steroid synthesis", "RARE: burning feet syndrome\nIrritability, fatigue (severe malnutrition only)", "None known", "Deficiency almost never seen clinically\nGreek: pantos = 'everywhere'"], ["B6\nPyridoxine", "1.3 mg/day\nUL: 100 mg", "Meat, fish, potatoes, bananas, fortified cereals", "PLP cofactor: transamination (ALT/AST); neurotransmitter synthesis (serotonin, dopamine, GABA); heme synthesis (ALA synthase); cystathionine synthesis", "Microcytic SIDEROBLASTIC anaemia (ring sideroblasts)\nPeripheral neuropathy\nSEIZURES (↓GABA)\nDermatitis; ↑homocysteine", "SENSORY NEUROPATHY at >200 mg/day\n(Only B vitamin with significant neurotoxicity)", "INH inactivates PLP → give B6 with INH\nB6 needed for EVERY neurotransmitter biosynthesis step"], ["B7\nBiotin", "AI: 30 µg\nNo UL", "Liver, cooked egg yolk, nuts, legumes", "Carboxylation cofactor: pyruvate carboxylase; acetyl-CoA carboxylase; propionyl-CoA carboxylase", "ALOPECIA (hallmark)\nPeriorificial dermatitis (around mouth, eyes, genitals)\nConjunctivitis; CNS abnormalities", "None known", "Raw egg white AVIDIN binds biotin irreversibly → cooking destroys avidin\nBiotinidase deficiency in infants"], ["B9\nFolate", "400 µg DFE\nPregnancy: 600 µg\nUL: 1000 µg", "Leafy greens, legumes, fortified cereals, citrus, liver", "THF: one-carbon transfers — purine & thymidylate synthesis; homocysteine→methionine", "MEGALOBLASTIC MACROCYTIC anaemia\nNEURAL TUBE DEFECTS (spina bifida, anencephaly)\n↑Homocysteine\nNO neurologic symptoms", "Masks B12 deficiency (corrects anaemia but not neuro damage)", "400-800 µg/day for ALL women of childbearing age\nMETHYLFOLATE TRAP (B12 deficiency)\nMTX/TMP inhibit DHFR"], ["B12\nCobalamin", "2.4 µg/day\nNo UL", "ONLY animal products (meat, fish, dairy, eggs)\nVegans must supplement", "Methionine synthase (methylcobalamin); methylmalonyl-CoA mutase (adenosylcobalamin)", "MEGALOBLASTIC MACROCYTIC anaemia\nSUBACUTE COMBINED DEGENERATION (posterior + lateral columns)\n↑MMA + ↑homocysteine\nGlossitis; neuropsychiatric symptoms", "None known", "Absorbed ONLY in terminal ileum (needs intrinsic factor)\nPernicious anaemia = anti-IF antibodies\nElevated MMA = B12 only (not folate)\nMetformin impairs B12 absorption"], ["C\nAscorbic acid", "M: 90 mg\nF: 75 mg\nSmokers +35 mg\nUL: 2000 mg", "Citrus, kiwi, strawberries, bell peppers, broccoli", "Prolyl/lysyl hydroxylase (collagen); Fe³⁺→Fe²⁺ (iron absorption); antioxidant; dopamine-β-hydroxylase; carnitine synthesis", "SCURVY:\nCorkscrew hairs (PATHOGNOMONIC)\nPerifollicular haemorrhages\nGingival bleeding\nPoor wound healing\nPetechiae, ecchymoses", "GI upset (>2 g/day)\nOxalate kidney stones\nHaemolysis in G6PD deficiency", "Corkscrew hairs = pathognomonic for scurvy\nVit C enhances non-heme iron absorption\nDoes NOT prevent common cold"], ] # MINERALS TABLE mineral_rows = [ # Macrominerals ["CALCIUM\nCa²⁺", "19-50 yr: 1000 mg\n>50F/>70 all: 1200 mg\nUL: 2500 mg", "Dairy, fortified foods, leafy greens (kale), sardines", "Bone structure (99% in skeleton); muscle contraction; nerve transmission; coagulation; 2nd messenger", "HYPOCALCAEMIA:\nChvostek's sign (facial tap → twitch)\nTrousseau's sign (BP cuff → carpal spasm)\nProlonged QT; seizures\nChronic: OSTEOPOROSIS", "HYPERCALCAEMIA ('Bones Stones Groans Moans'):\nKidney stones; bone pain\nConstipation, nausea\nConfusion, depression", "Refractory hypocalcaemia → check Mg first\nVit D required for absorption\nCauses: hyperPTH (outpatient), malignancy (inpatient)"], ["MAGNESIUM\nMg²⁺", "M: 400-420 mg\nF: 310-320 mg\nUL: 350 mg (suppl)", "Nuts, seeds, whole grains, spinach, legumes, dark chocolate", "Cofactor for >300 enzymes; ATP stabilisation; protein/DNA synthesis; muscle relaxation", "Refractory HYPOKALAEMIA\nRefractory HYPOCALCAEMIA\nTORSADES DE POINTES\nSeizures; tetany; personality changes", "IV: respiratory depression, hypotension, cardiac arrest\nOral: diarrhoea (osmotic)", "Most common cause: ALCOHOLISM\nAlso: loop/thiazide diuretics, PPIs, Gitelman syndrome\nIV MgSO₄ = treatment for ECLAMPSIA and torsades\nMonitor patellar reflex during IV infusion"], ["PHOSPHORUS", "700 mg/day\nUL: 4000 mg", "Dairy, meat, fish, nuts, legumes, cola drinks", "Bone mineralisation; ATP; phospholipids; DNA/RNA; enzyme phosphorylation", "REFEEDING SYNDROME:\nhypophosphataemia after re-feeding malnourished patient → cardiac arrest, respiratory failure, seizures", "Hyperphosphataemia in CKD → secondary hyperPTH, renal osteodystrophy", "Refeeding syndrome triad: ↓PO₄ + ↓K⁺ + ↓Mg²⁺\nPrevent: refeed slowly + supplement PO₄"], # Trace minerals ["IRON\nFe²⁺/³⁺", "M: 8 mg\nF 19-50: 18 mg\nPregnancy: 27 mg\nUL: 45 mg", "Heme iron: red meat (15-35% absorbed)\nNon-heme: legumes, fortified cereals (2-10%)\nVit C enhances absorption", "Haemoglobin; myoglobin; cytochromes (ETC); catalase/peroxidase", "MICROCYTIC HYPOCHROMIC ANAEMIA\nKOILONYCHIA (spoon nails)\nPICA (craving ice, clay)\nPLUMMER-VINSON: Fe def + dysphagia + oesophageal web\nGlossitis; restless legs", "HAEMOCHROMATOSIS (HFE, C282Y): 'Bronze diabetes' (cirrhosis + DM + bronze skin)\nCardiac failure; hypogonadism; arthropathy\nAcute ingestion (children): GE → shock → liver failure", "Most common nutritional deficiency worldwide\nFerritin = BEST marker of iron stores (↑ in inflammation)\nTx: phlebotomy (hereditary); deferoxamine (acute toxicity)"], ["ZINC\nZn²⁺", "M: 11 mg\nF: 8 mg\nUL: 40 mg", "Oysters (richest), red meat, beans, nuts, fortified cereals", "Cofactor for >100 enzymes (DNA/RNA pol, carbonic anhydrase); zinc finger TFs; wound healing; taste/smell; spermatogenesis", "ACRODERMATITIS ENTEROPATHICA (periorificial + acral rash)\nALOPECIA\nHYPOGONADISM + growth retardation\nDysgeusia/dysosmia\nPoor wound healing; night blindness", "High-dose Zn → COPPER DEFICIENCY (competitive inhibition → anaemia + neutropenia)\nNausea, vomiting, GI irritation", "AE = inherited Zn malabsorption (SLC39A4 mutation)\nPhytate in cereals/legumes chelates zinc\nHigh-phytate diets and chronic diarrhoea = major risk factors"], ["COPPER\nCu²⁺", "900 µg/day\nUL: 10,000 µg", "Liver, oysters, nuts, seeds, dark chocolate, whole grains", "Ceruloplasmin (Fe transport); cytochrome c oxidase (ETC IV); SOD; dopamine-β-hydroxylase; lysyl oxidase (collagen/elastin cross-linking); tyrosinase (melanin)", "NORMOCYTIC/MACROCYTIC ANAEMIA + NEUTROPENIA + thrombocytopenia (mimics B12/folate)\nOsteoporosis; pathological fractures\nMyelopathy (like SCD); depigmentation", "WILSON'S DISEASE (ATP7B mutation): liver disease + KAYSER-FLEISCHER rings + neuropsychiatric symptoms", "MENKES DISEASE (X-linked, ATP7A): kinky hair + neurodegeneration + connective tissue fragility\nExcess Zn → Cu deficiency\nCeruloplasmin: main Cu-carrying protein (LOW in Wilson's)"], ["IODINE\nI⁻", "150 µg/day\nPregnancy: 220 µg\nLactation: 290 µg\nUL: 1100 µg", "Iodised salt (most important), seafood, dairy, seaweed", "Required EXCLUSIVELY for thyroid hormone synthesis (T3, T4)", "GOITRE (thyroid hyperplasia, ↑TSH)\nHYPOTHYROIDISM\nCRETINISM (in utero): irreversible intellectual disability, short stature, deafness", "Wolff-Chaikoff: excess I⁻ → paradoxical HYPOTHYROIDISM\nJod-Basedow: I⁻ loading → HYPERTHYROIDISM", "Leading preventable cause of intellectual disability worldwide\nUniversal salt iodisation = primary prevention\nAt-risk: inland/mountainous regions"], ["SELENIUM\nSe", "55 µg/day\nUL: 400 µg", "Brazil nuts (highest), seafood, meat, cereals (soil-dependent)", "Glutathione peroxidase (antioxidant); iodothyronine deiodinase (T4→T3 conversion); thioredoxin reductase", "KESHAN DISEASE (endemic cardiomyopathy, China)\nKASHIN-BECK DISEASE (osteoarthropathy)\nMyopathy; hypothyroidism", "SELENOSIS: garlic-breath odour, alopecia, nail changes, peripheral neuropathy, nausea", "Synergistic with Vitamin E (both antioxidants)\nAt-risk: TPN without Se, Crohn's, renal dialysis, low-selenium soil areas"], ["FLUORIDE\nF⁻", "M: 4 mg (AI)\nF: 3 mg (AI)\nUL: 10 mg", "Fluoridated water (main source), toothpaste, tea, seafood", "Incorporated into hydroxyapatite → resistance to acid dissolution; dental caries prevention", "DEFICIENCY: Increased dental caries", "DENTAL FLUOROSIS: mottled enamel (chronic mild excess in childhood)\nSKELETAL FLUOROSIS: osteosclerosis, joint stiffness\nAcute: hypocalcaemia, cardiac arrhythmia", "Optimal water fluoridation: 0.7 mg/L\nBenefit at low levels; toxicity only with excess"], ["CHROMIUM\nCr³⁺", "AI: 25-35 µg\nNo UL", "Whole grains, broccoli, nuts, meat", "Potentiates insulin signalling ('glucose tolerance factor')", "Glucose intolerance (insulin resistance)\nPeripheral neuropathy\n(Mainly TPN-related — rare otherwise)", "Cr⁶⁺ (hexavalent, industrial): LUNG CANCER risk by inhalation", "Deficiency almost exclusively in prolonged TPN\nCr³⁺ is dietary form (safe); Cr⁶⁺ is industrial toxin"], ["MANGANESE\nMn²⁺", "M: 2.3 mg (AI)\nF: 1.8 mg (AI)\nUL: 11 mg", "Whole grains, nuts, legumes, tea, leafy veg", "Cofactor: Mn-SOD; arginase; pyruvate carboxylase; glycosyltransferases", "Hypercholesterolaemia, dermatitis, weight loss (very rare — TPN)", "MANGANISM (inhalation): Parkinson's-like syndrome — tremor, rigidity, behavioural changes (miners/welders)", "Toxicity more clinically relevant than deficiency\nManganism occurs with chronic Mn INHALATION"], ["MOLYBDENUM", "RDA: 45 µg\nUL: 2000 µg", "Legumes, whole grains, nuts", "Cofactor: xanthine oxidase (purine catabolism); sulfite oxidase; aldehyde oxidase", "Neurologic symptoms; sulfite/xanthine accumulation\n(Only in prolonged TPN without trace elements)", "Gout-like symptoms at very high intake (↑xanthine oxidase → ↑uric acid)", "Clinically rare — almost exclusively TPN-related"], ] # HIGH-YIELD SUMMARY summary_rows = [ ["Only vitamin made by the skin", "Vitamin D"], ["Only vitamin EXCLUSIVELY in animal products", "Vitamin B12"], ["Fat-soluble vitamins (mnemonic)", "A, D, E, K — 'ADEK'"], ["Only B vitamin neurotoxic in excess", "B6 pyridoxine (sensory neuropathy >200 mg/day)"], ["Give THIAMINE before glucose — why?", "Glucose alone worsens Wernicke's encephalopathy"], ["Corkscrew hairs = pathognomonic for", "Scurvy (Vitamin C deficiency)"], ["Elevated MMA = diagnostic of", "Vitamin B12 deficiency ONLY (not folate)"], ["Methylfolate trap caused by", "B12 deficiency → folate trapped as inactive N5-methyl-THF"], ["B12 vs folate: key neuro difference", "B12 → subacute combined degeneration of spinal cord; Folate → NO neuro symptoms"], ["Antidote / reversal for warfarin", "Vitamin K"], ["Most common nutritional deficiency worldwide", "Iron deficiency anaemia"], ["Refractory hypoK + hypoCa → check first", "Magnesium (must correct Mg before K or Ca will respond)"], ["IV MgSO₄ used to treat", "Eclampsia (seizures) AND torsades de pointes"], ["Refeeding syndrome triad", "↓Phosphate + ↓Potassium + ↓Magnesium"], ["Excess zinc → causes deficiency of", "Copper → normocytic anaemia + neutropenia"], ["Acrodermatitis enteropathica", "Inherited zinc malabsorption (SLC39A4 mutation)"], ["Menkes disease", "X-linked Cu transport defect (ATP7A) → kinky hair + neurodegeneration"], ["Wilson's disease", "Cu excretion defect (ATP7B) → Kayser-Fleischer rings + liver disease"], ["Pernicious anaemia", "Anti-intrinsic factor antibodies → B12 malabsorption"], ["Iodine deficiency: leading cause of", "Preventable intellectual disability worldwide (cretinism)"], ["Pellagra: 4 Ds", "Dermatitis (Casal's necklace), Diarrhoea, Dementia, Death"], ["Keshan disease", "Selenium deficiency → endemic cardiomyopathy (China)"], ["Manganism (Mn inhalation toxicity)", "Parkinson's-like syndrome (miners, welders)"], ["Raw egg white causes deficiency of", "Biotin (avidin binds irreversibly; destroyed by cooking)"], ["Vitamin needed for GABA synthesis", "Vitamin B6 (PLP — decarboxylation of glutamate)"], ["Neural tube defect prevention", "Folic acid 400-800 µg/day pre-conceptionally"], ["Ferritin: clinical note", "BEST marker of iron stores; falsely elevated in inflammation (acute-phase reactant)"], ["Hartnup disease → pellagra-like symptoms", "Defective tryptophan absorption → can't synthesise niacin"], ["Carcinoid syndrome → pellagra", "Tryptophan diverted to serotonin → niacin deficiency"], ["INH therapy: give prophylactic", "Vitamin B6 (INH binds/inactivates PLP)"], ] # B12 vs Folate comparison b12_vs_fol_rows = [ ["Megaloblastic macrocytic anaemia", "YES", "YES"], ["Neurologic symptoms (SCD of cord)","YES", "NO"], ["Elevated homocysteine", "YES", "YES"], ["Elevated methylmalonic acid (MMA)","YES", "NO"], ["Neural tube defect risk", "NO", "YES"], ["Source", "Only animal products", "Green veg, fortified grains"], ["Absorption site", "Terminal ileum (needs IF)", "Proximal small intestine"], ["Key drug interactions", "Metformin (↓absorption)", "Methotrexate, TMP (inhibit DHFR)"], ] # ══════════════════════════════════════════════════════════════════════════════ # BUILD STORY # ══════════════════════════════════════════════════════════════════════════════ story = [] # ── Title ────────────────────────────────────────────────────────────────────── story.append(Spacer(1, 0.3*cm)) story.append(Paragraph("Vitamins & Minerals", TTL)) story.append(Paragraph("Quick Reference — Important Points for Rapid Learning", SUB)) story.append(hr(TEAL, 2)) story.append(Spacer(1, 0.2*cm)) # Key principle box (compact) kp = Table([[ Paragraph("<b>FAT-SOLUBLE (A,D,E,K):</b> stored in body; absorbed via micellar phase; fat malabsorption → all 4 deficient simultaneously; toxicity possible.<br/>" "<b>WATER-SOLUBLE (B1-B12, C):</b> limited storage; excess excreted; deficiency faster; most are coenzymes.<br/>" "<b>MINERALS:</b> enzyme cofactors, structural (bone/teeth), fluid balance, signalling.", S("kpb", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=11)) ]], colWidths=[USABLE_W]) kp.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), LYELL), ("BOX", (0,0),(-1,-1), 1, GOLD), ("TOPPADDING", (0,0),(-1,-1), 6), ("BOTTOMPADDING", (0,0),(-1,-1), 6), ("LEFTPADDING", (0,0),(-1,-1), 8), ("RIGHTPADDING", (0,0),(-1,-1), 8), ])) story.append(kp) story.append(Spacer(1, 0.3*cm)) # ── FAT-SOLUBLE VITAMINS ─────────────────────────────────────────────────────── story.append(banner("FAT-SOLUBLE VITAMINS (A · D · E · K)", NAVY)) story.append(Spacer(1, 0.15*cm)) fat_headers = ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] fat_fracs = [0.08, 0.09, 0.12, 0.15, 0.21, 0.17, 0.18] # sums to 1.0 story.append(make_table(fat_headers, fat_sol_rows, fat_fracs, header_bg=NAVY, row_bgs=[LBLUE, WHITE])) story.append(Spacer(1, 0.35*cm)) # ── WATER-SOLUBLE VITAMINS ───────────────────────────────────────────────────── story.append(PageBreak()) story.append(banner("WATER-SOLUBLE VITAMINS (B1 · B2 · B3 · B5 · B6 · B7 · B9 · B12 · Vitamin C)", TEAL)) story.append(Spacer(1, 0.15*cm)) ws_headers = ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] ws_fracs = [0.07, 0.09, 0.12, 0.17, 0.21, 0.14, 0.20] story.append(make_table(ws_headers, water_sol_rows, ws_fracs, header_bg=TEAL, row_bgs=[LGREEN, WHITE])) story.append(Spacer(1, 0.35*cm)) # ── B12 vs FOLATE ────────────────────────────────────────────────────────────── story.append(banner("B12 vs FOLATE DEFICIENCY — Key Differences", colors.HexColor("#2E7D32"))) story.append(Spacer(1, 0.15*cm)) story.append(make_table( ["Feature", "B12 (Cobalamin)", "Folate (B9)"], b12_vs_fol_rows, [0.42, 0.29, 0.29], header_bg=GREEN )) story.append(Spacer(1, 0.35*cm)) # ── MINERALS ─────────────────────────────────────────────────────────────────── story.append(PageBreak()) story.append(banner("MINERALS (Macrominerals: Ca · Mg · P | Trace: Fe · Zn · Cu · I · Se · F · Cr · Mn · Mo)", PURPLE)) story.append(Spacer(1, 0.15*cm)) min_headers = ["Mineral", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] min_fracs = [0.08, 0.09, 0.12, 0.15, 0.21, 0.17, 0.18] story.append(make_table(min_headers, mineral_rows, min_fracs, header_bg=PURPLE, row_bgs=[LPURP, WHITE])) story.append(Spacer(1, 0.35*cm)) # ── HIGH-YIELD SUMMARY ───────────────────────────────────────────────────────── story.append(PageBreak()) story.append(banner("HIGH-YIELD SUMMARY — Must-Know Facts", colors.HexColor("#BF360C"))) story.append(Spacer(1, 0.15*cm)) story.append(make_table( ["Key Fact / Question", "Answer"], summary_rows, [0.44, 0.56], header_bg=ORANGE, row_bgs=[LRED, WHITE] )) story.append(Spacer(1, 0.4*cm)) # Footer story.append(hr(TEAL, 1)) story.append(Paragraph( "Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry 6e · Washington Manual of Medical Therapeutics · Costanzo Physiology 7e | Generated by Orris Medical AI · For educational use only", FTR )) doc.build(story) print(f"PDF saved: {OUTPUT}") PYEOF echo "Script written"
cd /tmp/workspace/vitamins-minerals && python make_concise_pdf.py 2>&1
ls -lh /tmp/workspace/vitamins-minerals/Vitamins_Minerals_Quick_Reference.pdf
Vitamins Minerals Quick Reference
PDF Document · PDF
| Page | Content |
|---|---|
| 1 | Key principle box + Fat-Soluble Vitamins table (A, D, E, K) |
| 2 | Water-Soluble Vitamins table (B1–B12, Vit C) + B12 vs Folate comparison table |
| 3 | Minerals table (Ca, Mg, P, Fe, Zn, Cu, I, Se, F, Cr, Mn, Mo) |
| 4 | High-Yield Summary — 30 must-know facts in Q&A table format |
Make the first page in horizontal format of the above pdf
cat > /tmp/workspace/vitamins-minerals/make_mixed_pdf.py << 'PYEOF' """ Build a multi-page PDF where: • Page 1 = LANDSCAPE (fat-soluble vitamins table) • Pages 2+ = PORTRAIT (water-soluble, minerals, B12vsFolate, summary) Strategy: build two separate PDFs with ReportLab, then merge with pypdf. """ from reportlab.lib.pagesizes import A4, landscape from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak ) from reportlab.lib.styles import ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from pypdf import PdfWriter, PdfReader import io # ── Page sizes ───────────────────────────────────────────────────────────────── PORT_W, PORT_H = A4 # 595 x 842 pt LAND_W, LAND_H = landscape(A4) # 842 x 595 pt L_MAR = R_MAR = 1.5*cm T_MAR = B_MAR = 1.6*cm # ── Colours ──────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A3A5C") TEAL = colors.HexColor("#1B6B8A") GREEN = colors.HexColor("#2E7D32") RED = colors.HexColor("#B71C1C") PURPLE = colors.HexColor("#4A148C") ORANGE = colors.HexColor("#E65100") GOLD = colors.HexColor("#F57F17") LBLUE = colors.HexColor("#E3F2FD") LGREEN = colors.HexColor("#E8F5E9") LRED = colors.HexColor("#FFEBEE") LPURP = colors.HexColor("#F3E5F5") LYELL = colors.HexColor("#FFFDE7") STRIPE = colors.HexColor("#EEF4FB") BORDER = colors.HexColor("#90A4AE") WHITE = colors.white # ── Styles ───────────────────────────────────────────────────────────────────── def S(name, **kw): return ParagraphStyle(name, **kw) TH = S("th", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE, leading=10, alignment=TA_CENTER) TD = S("td", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=10, alignment=TA_LEFT) TDB = S("tdb", fontName="Helvetica-Bold", fontSize=7.5, textColor=colors.black, leading=10, alignment=TA_LEFT) H1 = S("h1", fontName="Helvetica-Bold", fontSize=12, textColor=WHITE, leading=15, alignment=TA_LEFT) TTL = S("ttl", fontName="Helvetica-Bold", fontSize=20, textColor=NAVY, leading=24, alignment=TA_CENTER) SUB = S("sub", fontName="Helvetica", fontSize=9, textColor=TEAL, leading=12, alignment=TA_CENTER) FTR = S("ftr", fontName="Helvetica", fontSize=6.5, textColor=colors.grey, leading=9, alignment=TA_CENTER) def p(txt, style=TD): return Paragraph(txt, style) def pb(txt): return Paragraph(txt, TDB) def hr(col=BORDER, t=0.5): return HRFlowable(width="100%", thickness=t, color=col, spaceAfter=3, spaceBefore=3) def banner(title, usable_w, bg=NAVY): t = Table([[Paragraph(title, H1)]], colWidths=[usable_w]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 8), ("RIGHTPADDING", (0,0),(-1,-1), 8), ])) return t def make_table(headers, rows, col_fracs, usable_w, header_bg=NAVY, row_bgs=None): col_widths = [usable_w * f for f in col_fracs] if row_bgs is None: row_bgs = [STRIPE, WHITE] header_row = [p(h, TH) for h in headers] data = [header_row] for row in rows: data.append([p(str(c), TD) if not isinstance(c, Paragraph) else c for c in row]) tbl = Table(data, colWidths=col_widths, repeatRows=1) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), header_bg), ("ROWBACKGROUNDS",(0,1), (-1,-1), row_bgs), ("GRID", (0,0), (-1,-1), 0.3, BORDER), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ("FONTSIZE", (0,0), (-1,0), 8), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("FONTSIZE", (0,1), (-1,-1), 7.5), ])) return tbl # ══════════════════════════════════════════════════════════════════════════════ # DATA — same as before # ══════════════════════════════════════════════════════════════════════════════ fat_sol_rows = [ ["A\n(Retinol)", "M: 900 µg\nF: 700 µg\nUL: 3000 µg", "Liver, dairy, eggs\n(preformed);\nβ-carotene from dark\norange/green veg", "Vision (rhodopsin — retinal);\nepithelial differentiation\n(retinoic acid);\nimmune function;\nreproduction; bone growth", "Night blindness (1st sign)\nBitot's spots (conjunctiva)\nXerophthalmia (dry eyes)\nKeratomalacia (corneal ulcer/blindness)\nFollicular hyperkeratosis ('toad skin')\nIncreased infection susceptibility", "Acute: headache, vomiting, skin peeling\nChronic: alopecia, hepatotoxicity,\npseudotumour cerebri\nTERATOGENIC (isotretinoin)\nHypercalcaemia", "Progression: Night blindness → Bitot spots → Xerophthalmia → Keratomalacia\nAt-risk: fat malabsorption, chronic liver disease, strict vegetarians\nRetinoic acid regulates gene transcription"], ["D\n(Calciferol)", "<70 yr: 600 IU\n>70 yr: 800 IU\nUL: 4000 IU", "Skin + UV light\n(main source);\nFatty fish;\nFortified dairy/OJ;\nEgg yolk", "Increases intestinal Ca²⁺ & PO₄\nabsorption; bone mineralisation;\nimmune modulation;\ncell differentiation", "Children: RICKETS\n(bowed legs, rachitic rosary,\ncraniotabes, widened epiphysis)\nAdults: OSTEOMALACIA\n(bone pain, pathological fractures,\nproximal muscle weakness,\nwaddling gait)\nHypocalcaemia → tetany, seizures", "HYPERCALCAEMIA:\nnausea, vomiting, polyuria,\npolydipsia, constipation, confusion\nNephrolithiasis\nMetastatic calcifications", "ONLY vitamin synthesised by skin\nMetabolism: Skin (D3) → Liver (25-OH) → Kidney (1,25-OH₂ = calcitriol)\nPTH stimulates 1α-hydroxylation in kidney\n25(OH)D = BEST serum marker\nAt-risk: dark skin, exclusively breastfed infants, elderly, obesity"], ["E\n(Tocopherol)", "15 mg/day\nUL: 1000 mg", "Vegetable oils,\nwheat germ,\nnuts, seeds,\nleafy greens", "Major lipid-soluble ANTIOXIDANT;\nprotects cell membranes from\nlipid peroxidation;\nRBC integrity;\nnormal neurological function", "Premature infants: HAEMOLYTIC ANAEMIA\nSpinocerebellar ataxia\n(progressive neurodegeneration)\nPeripheral neuropathy\n(posterior columns + spinocerebellar)\nOphthalmoplegia; areflexia", "Inhibits platelet aggregation\n→ bleeding tendency\nAntagonises Vitamin K\n→ haemorrhage risk", "Works synergistically with selenium (both antioxidants)\nAbetalipoproteinaemia → profound Vit E deficiency\n(no chylomicron/VLDL transport)\nAt-risk: premature neonates, fat malabsorption"], ["K\n(Phylloquinone\n/Menaquinone)", "M: 120 µg AI\nF: 90 µg AI\nNo UL", "K1: leafy green veg\nK2: gut bacteria,\nfermented foods\nK3: synthetic\n(menadione)", "γ-carboxylation cofactor:\nClotting factors II,VII,IX,X;\nProteins C, S, Z;\nOsteocalcin (bone mineralisation)", "BLEEDING DIATHESIS\n(elevated PT/INR)\nHAEMORRHAGIC DISEASE OF NEWBORN\n(HDN) — no gut bacteria, minimal\nplacental transfer\nSpontaneous bruising,\nhaematuria, GI bleed", "K1/K2: essentially non-toxic\nK3 (menadione-synthetic):\nhaemolytic anaemia,\nkernicterus in infants", "Warfarin blocks VKOR enzyme (antagonises Vit K)\nAll newborns receive prophylactic IM Vit K injection\nProteins C & S also need Vit K → warfarin initially PROCOAGULANT\nAt-risk: newborns, broad-spectrum antibiotics, fat malabsorption"], ] water_sol_rows = [ ["B1\nThiamine", "M: 1.2 mg\nF: 1.1 mg", "Whole grains, pork, legumes, nuts", "TPP cofactor: pyruvate DH; α-KG DH; transketolase (PPP); BCAA catabolism", "WET BERIBERI: cardiomyopathy, high-output failure, oedema\nDRY BERIBERI: peripheral neuropathy\nWERNICKE'S: confusion + ophthalmoplegia + ataxia\nKORSAKOFF'S: amnesia + confabulation", "None known", "Give THIAMINE BEFORE glucose (prevents Wernicke's worsening)\nPrimary risk: alcoholics\nBest test: RBC transketolase activity"], ["B2\nRiboflavin", "M: 1.3 mg\nF: 1.1 mg", "Dairy, meats, enriched cereals, eggs", "FMN/FAD: redox reactions, ETC; fatty acid β-oxidation; activates B6 & folate", "ARIBOFLAVINOSIS:\nCheilosis + angular stomatitis\nMagenta tongue (glossitis)\nSeborrhoeic dermatitis\nCorneal vascularisation", "None known\n(Urine turns yellow-green)", "Required to activate Vitamins B6 and Folate\nPhenothiazines impair absorption"], ["B3\nNiacin", "M: 16 mg NE\nF: 14 mg NE\nUL: 35 mg", "Meat, fish, peanuts;\nmade from tryptophan\n(60 mg Trp = 1 mg niacin)", "NAD⁺/NADH, NADP⁺/NADPH: glycolysis, TCA, FA oxidation, OXPHOS", "PELLAGRA — 4 Ds:\nDermatitis (Casal's necklace)\nDiarrhoea\nDementia\nDeath", "Pharmacologic doses:\nFlushing (give aspirin)\nHepatotoxicity\nHyperglycaemia, hyperuricaemia", "Pellagra: corn diets, alcoholism, Hartnup disease, carcinoid syndrome, INH\nHigh-dose niacin = best HDL-raising agent"], ["B5\nPantothenic\nacid", "AI: 5 mg\nNo UL", "Ubiquitous (liver, egg yolk, avocado richest)", "Coenzyme A backbone: ALL acyl-transfer reactions — FA synthesis/oxidation, TCA, steroids", "RARE: burning feet syndrome\nIrritability, fatigue\n(severe malnutrition only)", "None known", "Greek pantos = 'everywhere' — deficiency almost never seen clinically"], ["B6\nPyridoxine", "1.3 mg/day\nUL: 100 mg", "Meat, fish, potatoes, bananas, fortified cereals", "PLP cofactor: transamination (ALT/AST); neurotransmitter synthesis (5-HT, DA, GABA); heme synthesis; cystathionine synthesis", "Microcytic SIDEROBLASTIC anaemia\n(ring sideroblasts on BM)\nPeripheral neuropathy\nSEIZURES (↓GABA)\nDermatitis; ↑homocysteine", "SENSORY NEUROPATHY\n>200 mg/day\n(Only B vitamin with neurotoxicity)", "INH inactivates PLP → give B6 prophylactically with INH\nB6 needed for every neurotransmitter biosynthesis step"], ["B7\nBiotin", "AI: 30 µg\nNo UL", "Liver, cooked egg yolk, nuts, legumes", "Carboxylation cofactor: pyruvate carboxylase; acetyl-CoA carboxylase; propionyl-CoA carboxylase", "ALOPECIA (hallmark)\nPeriorificial dermatitis\n(around mouth, eyes, genitals)\nConjunctivitis; CNS abnormalities", "None known", "Raw egg white AVIDIN binds biotin irreversibly → cooking destroys avidin\nBiotinidase deficiency in infants"], ["B9\nFolate", "400 µg DFE\nPregnancy: 600 µg\nUL: 1000 µg", "Leafy greens, legumes, fortified cereals, citrus, liver", "THF: one-carbon transfers — purine & thymidylate synthesis; homocysteine→methionine", "MEGALOBLASTIC MACROCYTIC anaemia\nNEURAL TUBE DEFECTS\n(spina bifida, anencephaly)\n↑Homocysteine\nNO neurologic symptoms", "Masks B12 deficiency\n(corrects anaemia not neuro damage)", "400-800 µg/day for ALL women of childbearing age\nMETHYLFOLATE TRAP (caused by B12 deficiency)\nMTX/TMP inhibit DHFR"], ["B12\nCobalamin", "2.4 µg/day\nNo UL", "ONLY animal products\n(meat, fish, dairy, eggs)\nVegans must supplement", "Methionine synthase (methylcobalamin); methylmalonyl-CoA mutase (adenosylcobalamin)", "MEGALOBLASTIC MACROCYTIC anaemia\nSUBACUTE COMBINED DEGENERATION\n(posterior + lateral columns)\n↑MMA + ↑homocysteine\nGlossitis; neuropsychiatric symptoms", "None known", "Absorbed ONLY in terminal ileum (needs intrinsic factor)\nPernicious anaemia = anti-IF antibodies\nElevated MMA = B12 ONLY (not folate)\nMetformin impairs B12 absorption"], ["C\nAscorbic acid", "M: 90 mg\nF: 75 mg\n+35 mg smokers\nUL: 2000 mg", "Citrus, kiwi, strawberries, bell peppers, broccoli", "Prolyl/lysyl hydroxylase (collagen); Fe³⁺→Fe²⁺; antioxidant; dopamine-β-hydroxylase; carnitine synthesis", "SCURVY:\nCorkscrew hairs (PATHOGNOMONIC)\nPerifollicular haemorrhages\nGingival bleeding\nPoor wound healing\nPetechiae, ecchymoses", "GI upset >2 g/day\nOxalate kidney stones\nHaemolysis in G6PD deficiency", "Corkscrew hairs = pathognomonic for scurvy\nVit C enhances non-heme iron absorption\nDoes NOT prevent common cold"], ] mineral_rows = [ ["CALCIUM\nCa²⁺", "19-50: 1000 mg\n>50F/>70: 1200 mg\nUL: 2500 mg", "Dairy, fortified foods, leafy greens (kale), sardines", "Bone structure (99% in skeleton); muscle contraction; nerve transmission; coagulation; 2nd messenger", "HYPOCALCAEMIA:\nChvostek's sign (facial tap→twitch)\nTrousseau's sign (BP cuff→carpal spasm)\nProlonged QT; seizures\nChronic: OSTEOPOROSIS", "HYPERCALCAEMIA\n('Bones Stones Groans Moans'):\nKidney stones; bone pain\nConstipation, nausea\nConfusion, depression", "Refractory hypoCa → check Mg first\nVit D required for absorption\nCauses: hyperPTH (outpatient), malignancy (inpatient)"], ["MAGNESIUM\nMg²⁺", "M: 400-420 mg\nF: 310-320 mg\nUL: 350 mg (suppl)", "Nuts, seeds, whole grains, spinach, legumes, dark chocolate", "Cofactor for >300 enzymes; ATP stabilisation; protein/DNA synthesis; muscle relaxation", "Refractory HYPOKALAEMIA\nRefractory HYPOCALCAEMIA\nTORSADES DE POINTES\nSeizures; tetany; personality changes", "IV: respiratory depression,\nhypotension, cardiac arrest\nOral: diarrhoea (osmotic)", "Most common cause: ALCOHOLISM\nAlso: loop/thiazide diuretics, PPIs, Gitelman\nIV MgSO₄ = ECLAMPSIA + torsades\nMonitor patellar reflex during IV infusion"], ["PHOSPHORUS", "700 mg/day\nUL: 4000 mg", "Dairy, meat, fish, nuts, legumes, cola drinks", "Bone mineralisation; ATP; phospholipids; DNA/RNA; enzyme phosphorylation", "REFEEDING SYNDROME:\nDramatic ↓PO₄ after refeeding malnourished patient → cardiac arrest, respiratory failure, seizures", "Hyperphosphataemia in CKD\n→ secondary hyperPTH\n→ renal osteodystrophy", "Refeeding triad: ↓PO₄ + ↓K⁺ + ↓Mg²⁺\nRefeed slowly + supplement PO₄"], ["IRON\nFe²⁺/³⁺", "M: 8 mg\nF 19-50: 18 mg\nPregnancy: 27 mg\nUL: 45 mg", "Heme iron: red meat\n(15-35% absorbed)\nNon-heme: legumes,\nfortified cereals\n(2-10%)\nVit C enhances absorption", "Haemoglobin; myoglobin; cytochromes (ETC); catalase/peroxidase", "MICROCYTIC HYPOCHROMIC ANAEMIA\nKOILONYCHIA (spoon nails)\nPICA (craving ice, clay)\nPLUMMER-VINSON:\n(Fe def + dysphagia + oesophageal web)\nGlossitis; restless legs", "HAEMOCHROMATOSIS (HFE/C282Y):\n'Bronze diabetes'\n(cirrhosis + DM + bronze skin)\nCardiac failure; hypogonadism\nAcute (children): GE→shock→liver failure", "Most common nutritional deficiency worldwide\nFerritin = BEST stores marker (↑ in inflammation)\nTx: phlebotomy (hereditary); deferoxamine (acute)"], ["ZINC\nZn²⁺", "M: 11 mg\nF: 8 mg\nUL: 40 mg", "Oysters (richest), red meat, beans, nuts, fortified cereals", "Cofactor for >100 enzymes; zinc finger TFs; wound healing; taste/smell; spermatogenesis; Vit A mobilisation", "ACRODERMATITIS ENTEROPATHICA\n(periorificial + acral rash)\nALOPECIA\nHYPOGONADISM + growth retardation\nDysgeusia/dysosmia\nPoor wound healing; night blindness", "High-dose Zn → COPPER DEFICIENCY\n(competitive inhibition)\n→ anaemia + neutropenia\nNausea, vomiting, GI irritation", "AE = inherited Zn malabsorption (SLC39A4 mutation)\nPhytate chelates zinc → high-phytate diets = risk\nHigh dose zinc supplementation causes Cu deficiency"], ["COPPER\nCu²⁺", "900 µg/day\nUL: 10,000 µg", "Liver, oysters, nuts, seeds, dark chocolate, whole grains", "Ceruloplasmin (Fe transport); cytochrome c oxidase (ETC IV); SOD; dopamine-β-hydroxylase; lysyl oxidase; tyrosinase", "NORMOCYTIC/MACROCYTIC ANAEMIA\n+ NEUTROPENIA\n(mimics B12/folate!)\nOsteoporosis; myelopathy;\ndepigmentation", "WILSON'S DISEASE (ATP7B):\nliver disease + Kayser-Fleischer\nrings + neuropsychiatric symptoms", "MENKES DISEASE (X-linked, ATP7A): kinky hair + neurodegeneration + connective tissue fragility\nExcess Zn → Cu deficiency\nCeruloplasmin LOW in Wilson's disease"], ["IODINE\nI⁻", "150 µg/day\nPregnancy: 220 µg\nLactation: 290 µg\nUL: 1100 µg", "Iodised salt (most important), seafood, dairy, seaweed", "Required EXCLUSIVELY for thyroid hormone synthesis (T3, T4)", "GOITRE (thyroid hyperplasia, ↑TSH)\nHYPOTHYROIDISM\nCRETINISM (in utero):\nirreversible intellectual disability,\nshort stature, deafness", "Wolff-Chaikoff:\nexcess I⁻ → paradoxical HYPOTHYROIDISM\nJod-Basedow:\nI⁻ loading → HYPERTHYROIDISM", "Leading preventable cause of intellectual disability worldwide\nUniversal salt iodisation = primary prevention"], ["SELENIUM\nSe", "55 µg/day\nUL: 400 µg", "Brazil nuts (highest), seafood, meat, cereals (soil-dependent)", "Glutathione peroxidase (antioxidant); iodothyronine deiodinase (T4→T3 conversion); thioredoxin reductase", "KESHAN DISEASE\n(endemic cardiomyopathy — China)\nKASHIN-BECK DISEASE (osteoarthropathy)\nMyopathy; hypothyroidism", "SELENOSIS:\nGarlic-breath odour\nAlopecia; nail changes\nPeripheral neuropathy; nausea", "Synergistic with Vitamin E\nAt-risk: TPN without Se, Crohn's, renal dialysis, low-selenium soil regions"], ["FLUORIDE\nF⁻", "M: 4 mg AI\nF: 3 mg AI\nUL: 10 mg", "Fluoridated water (main), toothpaste, tea, seafood", "Incorporated into hydroxyapatite → resistance to acid dissolution; dental caries prevention", "DEFICIENCY: Increased dental caries", "Dental fluorosis: mottled enamel\nSkeletal fluorosis: osteosclerosis\nAcute: hypocalcaemia, arrhythmia", "Optimal water fluoridation: 0.7 mg/L\nBenefit at low levels; toxicity only with excess"], ["CHROMIUM Cr³⁺\nMANGANESE Mn²⁺\nMOLYBDENUM", "Cr: AI 25-35 µg\nMn: AI 1.8-2.3 mg\nMo: RDA 45 µg", "Cr: whole grains, broccoli\nMn: whole grains, nuts, tea\nMo: legumes, whole grains", "Cr: insulin signalling (glucose tolerance factor)\nMn: Mn-SOD, arginase, pyruvate carboxylase\nMo: xanthine oxidase, sulfite oxidase", "Cr: glucose intolerance (TPN)\nMn: hypercholesterolaemia, dermatitis (rare)\nMo: neurologic symptoms (TPN only)", "Mn INHALATION: MANGANISM\n(Parkinson's-like: tremor, rigidity)\n— miners/welders\nCr⁶⁺: lung cancer (industrial)", "Deficiencies almost exclusively in prolonged TPN without trace elements\nManganism is the main clinical toxicity in this group"], ] b12_vs_fol_rows = [ ["Megaloblastic macrocytic anaemia", "YES", "YES"], ["Neurologic symptoms (SCD of cord)", "YES", "NO"], ["Elevated homocysteine", "YES", "YES"], ["Elevated methylmalonic acid (MMA)", "YES — diagnostic", "NO"], ["Neural tube defect risk in pregnancy", "NO", "YES"], ["Source", "Only animal products", "Green veg, fortified grains"], ["Absorption site", "Terminal ileum (needs IF)", "Proximal small intestine"], ["Key drug interactions", "Metformin (↓absorption)", "Methotrexate, TMP (inhibit DHFR)"], ] summary_rows = [ ["Only vitamin made by the skin", "Vitamin D"], ["Only vitamin exclusively in animal products", "Vitamin B12"], ["Fat-soluble vitamins mnemonic", "A, D, E, K — 'ADEK'"], ["Only B vitamin neurotoxic in excess", "B6 pyridoxine (sensory neuropathy >200 mg/day)"], ["Give THIAMINE before glucose — why?", "Glucose alone worsens Wernicke's encephalopathy"], ["Corkscrew hairs = pathognomonic for", "Scurvy (Vitamin C deficiency)"], ["Elevated MMA = diagnostic of", "Vitamin B12 deficiency ONLY (not folate)"], ["Methylfolate trap caused by", "B12 deficiency → folate trapped as inactive N5-methyl-THF"], ["B12 vs folate: neurological difference", "B12 → subacute combined degeneration of spinal cord; Folate → NO neuro symptoms"], ["Antidote / reversal for warfarin", "Vitamin K"], ["Most common nutritional deficiency worldwide", "Iron deficiency anaemia"], ["Refractory hypoK + hypoCa → check first", "Magnesium (must correct Mg first)"], ["IV MgSO₄ used to treat", "Eclampsia (seizures) AND torsades de pointes"], ["Refeeding syndrome triad", "↓Phosphate + ↓Potassium + ↓Magnesium"], ["Excess zinc → causes deficiency of", "Copper → normocytic anaemia + neutropenia"], ["Acrodermatitis enteropathica", "Inherited zinc malabsorption (SLC39A4 mutation)"], ["Menkes disease", "X-linked Cu transport defect (ATP7A) → kinky hair + neurodegeneration"], ["Wilson's disease", "Cu excretion defect (ATP7B) → Kayser-Fleischer rings + liver disease"], ["Pernicious anaemia", "Anti-intrinsic factor antibodies → B12 malabsorption"], ["Iodine deficiency: leading cause of", "Preventable intellectual disability worldwide (cretinism)"], ["Pellagra 4 Ds", "Dermatitis (Casal's necklace), Diarrhoea, Dementia, Death"], ["Keshan disease", "Selenium deficiency → endemic cardiomyopathy (China)"], ["Manganism", "Mn inhalation toxicity → Parkinson's-like syndrome (miners, welders)"], ["Raw egg white causes deficiency of", "Biotin (avidin binds irreversibly; destroyed by cooking)"], ["Neural tube defect prevention", "Folic acid 400-800 µg/day pre-conceptionally"], ["Ferritin: clinical note", "BEST iron stores marker; falsely elevated in inflammation"], ["Hartnup disease → pellagra-like", "Defective tryptophan absorption → can't synthesise niacin"], ["Carcinoid syndrome → pellagra", "Tryptophan diverted to serotonin → niacin deficiency"], ["INH therapy: give prophylactic", "Vitamin B6 (INH inactivates PLP)"], ["Vitamin needed for GABA synthesis", "Vitamin B6 (PLP — decarboxylation of glutamate)"], ] # ══════════════════════════════════════════════════════════════════════════════ # BUILD LANDSCAPE PAGE 1 (fat-soluble vitamins) # ══════════════════════════════════════════════════════════════════════════════ LAND_UW = LAND_W - L_MAR - R_MAR def build_landscape_page(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=landscape(A4), leftMargin=L_MAR, rightMargin=R_MAR, topMargin=T_MAR, bottomMargin=B_MAR) story = [] story.append(Paragraph("Vitamins & Minerals — Quick Reference", TTL)) story.append(Paragraph("Page 1 of 4 | Fat-Soluble Vitamins (A · D · E · K)", SUB)) story.append(hr(TEAL, 1.5)) # Key principle strip kp = Table([[Paragraph( "<b>FAT-SOLUBLE (A,D,E,K):</b> stored in body; absorbed via micellar phase; " "any fat malabsorption → all 4 deficient simultaneously; toxicity possible with excess. " " <b>WATER-SOLUBLE:</b> limited storage; excess excreted; deficiency develops faster; most act as coenzymes.", S("kpb", fontName="Helvetica", fontSize=8, textColor=colors.black, leading=11)) ]], colWidths=[LAND_UW]) kp.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), LYELL), ("BOX", (0,0),(-1,-1), 1, GOLD), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 8), ("RIGHTPADDING", (0,0),(-1,-1), 8), ])) story.append(kp) story.append(Spacer(1, 0.2*cm)) story.append(banner("FAT-SOLUBLE VITAMINS (A · D · E · K)", LAND_UW, NAVY)) story.append(Spacer(1, 0.1*cm)) fat_headers = ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] # Wider columns thanks to landscape fat_fracs = [0.06, 0.09, 0.12, 0.15, 0.22, 0.17, 0.19] # sum = 1.0 story.append(make_table(fat_headers, fat_sol_rows, fat_fracs, LAND_UW, header_bg=NAVY, row_bgs=[LBLUE, WHITE])) story.append(Spacer(1, 0.3*cm)) story.append(hr(TEAL, 0.5)) story.append(Paragraph( "Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry 6e · Washington Manual · Costanzo Physiology 7e | Orris Medical AI", FTR)) doc.build(story) buf.seek(0) return buf # ══════════════════════════════════════════════════════════════════════════════ # BUILD PORTRAIT PAGES 2-4 # ══════════════════════════════════════════════════════════════════════════════ PORT_UW = PORT_W - L_MAR - R_MAR def build_portrait_pages(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=A4, leftMargin=L_MAR, rightMargin=R_MAR, topMargin=T_MAR, bottomMargin=B_MAR) story = [] # ── Page 2: Water-soluble vitamins ───────────────────────────────────────── story.append(banner("WATER-SOLUBLE VITAMINS (B1 · B2 · B3 · B5 · B6 · B7 · B9 · B12 · Vitamin C)", PORT_UW, TEAL)) story.append(Spacer(1, 0.1*cm)) ws_headers = ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] ws_fracs = [0.07, 0.09, 0.12, 0.17, 0.21, 0.14, 0.20] story.append(make_table(ws_headers, water_sol_rows, ws_fracs, PORT_UW, header_bg=TEAL, row_bgs=[LGREEN, WHITE])) story.append(Spacer(1, 0.3*cm)) # B12 vs Folate story.append(banner("B12 vs FOLATE DEFICIENCY — Key Differences", PORT_UW, GREEN)) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Feature", "B12 (Cobalamin)", "Folate (B9)"], b12_vs_fol_rows, [0.44, 0.28, 0.28], PORT_UW, header_bg=GREEN )) # ── Page 3: Minerals ─────────────────────────────────────────────────────── story.append(PageBreak()) story.append(banner("MINERALS (Ca · Mg · P | Fe · Zn · Cu · I · Se · F · Cr · Mn · Mo)", PORT_UW, PURPLE)) story.append(Spacer(1, 0.1*cm)) min_headers = ["Mineral", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"] min_fracs = [0.08, 0.09, 0.12, 0.15, 0.21, 0.17, 0.18] story.append(make_table(min_headers, mineral_rows, min_fracs, PORT_UW, header_bg=PURPLE, row_bgs=[LPURP, WHITE])) # ── Page 4: High-yield summary ───────────────────────────────────────────── story.append(PageBreak()) story.append(banner("HIGH-YIELD SUMMARY — Must-Know Facts", PORT_UW, colors.HexColor("#BF360C"))) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Key Fact / Question", "Answer"], summary_rows, [0.44, 0.56], PORT_UW, header_bg=ORANGE, row_bgs=[LRED, WHITE] )) story.append(Spacer(1, 0.3*cm)) story.append(hr(TEAL, 1)) story.append(Paragraph( "Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry 6e · Washington Manual of Medical Therapeutics · Costanzo Physiology 7e | Orris Medical AI · Educational use only", FTR)) doc.build(story) buf.seek(0) return buf # ══════════════════════════════════════════════════════════════════════════════ # MERGE both PDFs # ══════════════════════════════════════════════════════════════════════════════ print("Building landscape page 1...") land_buf = build_landscape_page() print("Building portrait pages 2-4...") port_buf = build_portrait_pages() print("Merging...") writer = PdfWriter() reader1 = PdfReader(land_buf) for page in reader1.pages: writer.add_page(page) reader2 = PdfReader(port_buf) for page in reader2.pages: writer.add_page(page) OUTPUT = "/tmp/workspace/vitamins-minerals/Vitamins_Minerals_Mixed_Orientation.pdf" with open(OUTPUT, "wb") as f: writer.write(f) import os size_kb = os.path.getsize(OUTPUT) / 1024 print(f"Done! PDF saved: {OUTPUT} ({size_kb:.1f} KB, {len(writer.pages)} pages)") PYEOF echo "Script written."
cd /tmp/workspace/vitamins-minerals && python make_mixed_pdf.py 2>&1
Vitamins Minerals Mixed Orientation
PDF Document · PDF
| Page | Orientation | Content |
|---|---|---|
| 1 | Landscape (horizontal) | Title + Key principle box + Fat-Soluble Vitamins table (A, D, E, K) — extra-wide columns for easier reading |
| 2 | Portrait | Water-Soluble Vitamins (B1–B12, Vit C) + B12 vs Folate comparison |
| 3 | Portrait | Minerals (Ca, Mg, P, Fe, Zn, Cu, I, Se, F, Cr, Mn, Mo) |
| 4 | Portrait | High-Yield Summary — 30 must-know facts |
Make the first page in horizontal format of the above pdf Also add a page of marasmus vs kwashiorkor al the last
cat > /tmp/workspace/vitamins-minerals/make_final_pdf.py << 'PYEOF' """ Final PDF: Page 1 = LANDSCAPE — Fat-Soluble Vitamins Pages 2-4 = PORTRAIT — Water-soluble, Minerals, Summary Page 5 = PORTRAIT — Marasmus vs Kwashiorkor (new) """ from reportlab.lib.pagesizes import A4, landscape from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak ) from reportlab.lib.styles import ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from pypdf import PdfWriter, PdfReader import io PORT_W, PORT_H = A4 LAND_W, LAND_H = landscape(A4) L = R = 1.5*cm T = B = 1.6*cm LAND_UW = LAND_W - L - R PORT_UW = PORT_W - L - R # ── Colours ──────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A3A5C") TEAL = colors.HexColor("#1B6B8A") GREEN = colors.HexColor("#2E7D32") RED = colors.HexColor("#B71C1C") PURPLE = colors.HexColor("#4A148C") ORANGE = colors.HexColor("#E65100") GOLD = colors.HexColor("#F57F17") DKRED = colors.HexColor("#7B1FA2") LBLUE = colors.HexColor("#E3F2FD") LGREEN = colors.HexColor("#E8F5E9") LRED = colors.HexColor("#FFEBEE") LPURP = colors.HexColor("#F3E5F5") LYELL = colors.HexColor("#FFFDE7") LORANGE= colors.HexColor("#FFF3E0") STRIPE = colors.HexColor("#EEF4FB") BORDER = colors.HexColor("#90A4AE") WHITE = colors.white def S(name, **kw): return ParagraphStyle(name, **kw) TH = S("th", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE, leading=10, alignment=TA_CENTER) TD = S("td", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=10, alignment=TA_LEFT) TDB = S("tdb", fontName="Helvetica-Bold", fontSize=7.5, textColor=colors.black, leading=10, alignment=TA_LEFT) H1 = S("h1", fontName="Helvetica-Bold", fontSize=12, textColor=WHITE, leading=15, alignment=TA_LEFT) TTL = S("ttl", fontName="Helvetica-Bold", fontSize=20, textColor=NAVY, leading=24, alignment=TA_CENTER) SUB = S("sub", fontName="Helvetica", fontSize=9, textColor=TEAL, leading=12, alignment=TA_CENTER) FTR = S("ftr", fontName="Helvetica", fontSize=6.5, textColor=colors.grey, leading=9, alignment=TA_CENTER) H2S = S("h2s", fontName="Helvetica-Bold", fontSize=10, textColor=WHITE, leading=13, alignment=TA_LEFT) NRM = S("nrm", fontName="Helvetica", fontSize=8, textColor=colors.black, leading=11, alignment=TA_LEFT) def p(txt, style=TD): return Paragraph(txt, style) def pb(txt): return Paragraph(txt, TDB) def pn(txt): return Paragraph(txt, NRM) def hr(col=BORDER, t=0.5): return HRFlowable(width="100%", thickness=t, color=col, spaceAfter=3, spaceBefore=3) def banner(title, uw, bg=NAVY, style=H1): t = Table([[Paragraph(title, style)]], colWidths=[uw]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,-1), bg), ("TOPPADDING", (0,0),(-1,-1), 5), ("BOTTOMPADDING", (0,0),(-1,-1), 5), ("LEFTPADDING", (0,0),(-1,-1), 8), ("RIGHTPADDING", (0,0),(-1,-1), 8), ])) return t def make_table(headers, rows, col_fracs, uw, header_bg=NAVY, row_bgs=None): col_widths = [uw * f for f in col_fracs] if row_bgs is None: row_bgs = [STRIPE, WHITE] data = [[p(h, TH) for h in headers]] for row in rows: data.append([p(str(c), TD) if not isinstance(c, Paragraph) else c for c in row]) tbl = Table(data, colWidths=col_widths, repeatRows=1) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), header_bg), ("ROWBACKGROUNDS",(0,1),(-1,-1), row_bgs), ("GRID", (0,0),(-1,-1), 0.3, BORDER), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 3), ("BOTTOMPADDING", (0,0),(-1,-1), 3), ("LEFTPADDING", (0,0),(-1,-1), 4), ("RIGHTPADDING", (0,0),(-1,-1), 4), ("FONTSIZE", (0,0),(-1,0), 8), ("FONTNAME", (0,0),(-1,0), "Helvetica-Bold"), ("TEXTCOLOR", (0,0),(-1,0), WHITE), ("FONTSIZE", (0,1),(-1,-1), 7.5), ])) return tbl # ═══════════════════════════════════════════════════════════════════ # ALL DATA (reused from previous script) # ═══════════════════════════════════════════════════════════════════ fat_sol_rows = [ ["A\n(Retinol)","M: 900 µg\nF: 700 µg\nUL: 3000 µg", "Liver, dairy, eggs\n(preformed);\nβ-carotene from dark\norange/green veg", "Vision (rhodopsin — retinal);\nepithelial differentiation\n(retinoic acid);\nimmune function;\nreproduction; bone growth", "Night blindness (1st sign)\nBitot's spots (conjunctiva)\nXerophthalmia (dry eyes)\nKeratomalacia (corneal ulcer/blindness)\nFollicular hyperkeratosis ('toad skin')\nIncreased infection susceptibility", "Acute: headache, vomiting, skin peeling\nChronic: alopecia, hepatotoxicity,\npseudotumour cerebri\nTERATOGENIC (isotretinoin)\nHypercalcaemia", "Progression: Night blindness→Bitot spots→Xerophthalmia→Keratomalacia\nAt-risk: fat malabsorption, chronic liver disease, strict vegetarians"], ["D\n(Calciferol)","<70 yr: 600 IU\n>70 yr: 800 IU\nUL: 4000 IU", "Skin + UV light\n(main source);\nFatty fish;\nFortified dairy/OJ;\nEgg yolk", "Increases intestinal Ca²⁺ & PO₄\nabsorption; bone mineralisation;\nimmune modulation;\ncell differentiation", "Children: RICKETS\n(bowed legs, rachitic rosary,\ncraniotabes, widened epiphysis)\nAdults: OSTEOMALACIA\n(bone pain, pathological fractures,\nproximal muscle weakness,\nwaddling gait)\nHypocalcaemia → tetany, seizures", "HYPERCALCAEMIA: nausea, vomiting,\npolyuria, polydipsia, constipation,\nconfusion; nephrolithiasis;\nmetastatic calcifications", "ONLY vitamin synthesised by skin\nMetabolism: Skin (D3)→Liver (25-OH)→Kidney (1,25-OH₂ calcitriol)\nPTH stimulates 1α-hydroxylation\n25(OH)D = BEST serum marker"], ["E\n(Tocopherol)","15 mg/day\nUL: 1000 mg", "Vegetable oils,\nwheat germ,\nnuts, seeds,\nleafy greens", "Major lipid-soluble ANTIOXIDANT;\nprotects cell membranes from\nlipid peroxidation;\nRBC integrity;\nnormal neurological function", "Premature infants: HAEMOLYTIC ANAEMIA\nSpinocerebellar ataxia\nPeripheral neuropathy\n(posterior columns + spinocerebellar)\nOphthalmoplegia; areflexia", "Inhibits platelet aggregation\n→ bleeding tendency\nAntagonises Vitamin K\n→ haemorrhage risk", "Synergistic with selenium (both antioxidants)\nAbetalipoproteinaemia → profound Vit E deficiency\nAt-risk: premature neonates, fat malabsorption"], ["K\n(Phylloquinone\n/Menaquinone)","M: 120 µg AI\nF: 90 µg AI\nNo UL", "K1: leafy green veg\nK2: gut bacteria,\nfermented foods\nK3: synthetic\n(menadione)", "γ-carboxylation cofactor:\nClotting factors II,VII,IX,X;\nProteins C, S, Z;\nOsteocalcin (bone)", "BLEEDING DIATHESIS\n(elevated PT/INR)\nHAEMORRHAGIC DISEASE OF NEWBORN\n(no gut bacteria, low placental transfer)\nSpontaneous bruising,\nhaematuria, GI bleed", "K1/K2: essentially non-toxic\nK3 (menadione-synthetic):\nhaemolytic anaemia,\nkernicterus in infants", "Warfarin blocks VKOR (antagonises Vit K)\nAll newborns receive prophylactic IM Vit K\nProteins C & S need Vit K → warfarin initially procoagulant\nAt-risk: newborns, broad-spectrum ABx, fat malabsorption"], ] water_sol_rows = [ ["B1\nThiamine","M: 1.2 mg\nF: 1.1 mg", "Whole grains, pork, legumes, nuts", "TPP cofactor: pyruvate DH; α-KG DH; transketolase (PPP); BCAA catabolism", "WET BERIBERI: cardiomyopathy, high-output failure, oedema\nDRY BERIBERI: peripheral neuropathy\nWERNICKE'S: confusion + ophthalmoplegia + ataxia\nKORSAKOFF'S: amnesia + confabulation", "None known","Give THIAMINE BEFORE glucose (prevents Wernicke's worsening)\nPrimary risk: ALCOHOLICS\nBest test: RBC transketolase activity"], ["B2\nRiboflavin","M: 1.3 mg\nF: 1.1 mg", "Dairy, meats, enriched cereals, eggs", "FMN/FAD: redox reactions, ETC; FA β-oxidation; activates B6 & folate", "ARIBOFLAVINOSIS:\nCheilosis + angular stomatitis\nMagenta tongue (glossitis)\nSeborrhoeic dermatitis\nCorneal vascularisation", "None known\n(Urine turns yellow-green)","Required to activate B6 and folate\nPhenothiazines impair absorption"], ["B3\nNiacin","M: 16 mg NE\nF: 14 mg NE\nUL: 35 mg", "Meat, fish, peanuts;\nmade from tryptophan\n(60 mg Trp = 1 mg niacin)", "NAD⁺/NADH, NADP⁺/NADPH: glycolysis, TCA, FA oxidation, OXPHOS", "PELLAGRA — 4 Ds:\nDermatitis (Casal's necklace)\nDiarrhoea\nDementia\nDeath", "Pharmacologic doses:\nFlushing (give aspirin)\nHepatotoxicity\nHyperglycaemia, hyperuricaemia", "Causes: corn diet, alcoholism, Hartnup disease, carcinoid, INH\nHigh-dose niacin = best HDL-raising agent"], ["B5\nPantothenic\nacid","AI: 5 mg\nNo UL", "Ubiquitous (liver, egg yolk, avocado richest)", "Coenzyme A backbone: ALL acyl-transfer reactions — FA synthesis/oxidation, TCA, steroids", "RARE: burning feet syndrome\nIrritability, fatigue\n(severe malnutrition only)", "None known","Greek pantos = 'everywhere' — deficiency almost never seen clinically"], ["B6\nPyridoxine","1.3 mg/day\nUL: 100 mg", "Meat, fish, potatoes, bananas, fortified cereals", "PLP cofactor: transamination (ALT/AST); neurotransmitter synthesis (5-HT, DA, GABA); heme synthesis (ALA synthase); cystathionine synthesis", "Microcytic SIDEROBLASTIC anaemia\n(ring sideroblasts on BM)\nPeripheral neuropathy\nSEIZURES (↓GABA)\nDermatitis; ↑homocysteine", "SENSORY NEUROPATHY\n>200 mg/day\n(Only B vitamin with neurotoxicity)", "INH inactivates PLP → give B6 prophylactically with INH\nB6 needed for every neurotransmitter biosynthesis step"], ["B7\nBiotin","AI: 30 µg\nNo UL", "Liver, cooked egg yolk, nuts, legumes", "Carboxylation cofactor: pyruvate carboxylase; acetyl-CoA carboxylase; propionyl-CoA carboxylase", "ALOPECIA (hallmark)\nPeriorificial dermatitis\n(around mouth, eyes, genitals)\nConjunctivitis; CNS abnormalities", "None known", "Raw egg white AVIDIN binds biotin irreversibly → cooking destroys avidin\nBiotinidase deficiency in infants"], ["B9\nFolate","400 µg DFE\nPregnancy: 600 µg\nUL: 1000 µg", "Leafy greens, legumes, fortified cereals, citrus, liver", "THF: one-carbon transfers — purine & thymidylate synthesis; homocysteine→methionine", "MEGALOBLASTIC MACROCYTIC anaemia\nNEURAL TUBE DEFECTS\n(spina bifida, anencephaly)\n↑Homocysteine\nNO neurologic symptoms", "Masks B12 deficiency\n(corrects anaemia not neuro damage)", "400-800 µg/day for ALL women of childbearing age\nMETHYLFOLATE TRAP (caused by B12 deficiency)\nMTX/TMP inhibit DHFR"], ["B12\nCobalamin","2.4 µg/day\nNo UL", "ONLY animal products\n(meat, fish, dairy, eggs)\nVegans must supplement", "Methionine synthase (methylcobalamin); methylmalonyl-CoA mutase (adenosylcobalamin)", "MEGALOBLASTIC MACROCYTIC anaemia\nSUBACUTE COMBINED DEGENERATION\n(posterior + lateral columns)\n↑MMA + ↑homocysteine\nGlossitis; neuropsychiatric symptoms", "None known", "Absorbed ONLY in terminal ileum (needs intrinsic factor)\nPernicious anaemia = anti-IF antibodies\nElevated MMA = B12 ONLY (not folate)\nMetformin impairs B12 absorption"], ["C\nAscorbic acid","M: 90 mg\nF: 75 mg\n+35 mg smokers\nUL: 2000 mg", "Citrus, kiwi, strawberries, bell peppers, broccoli", "Prolyl/lysyl hydroxylase (collagen); Fe³⁺→Fe²⁺; antioxidant; dopamine-β-hydroxylase; carnitine synthesis", "SCURVY:\nCorkscrew hairs (PATHOGNOMONIC)\nPerifollicular haemorrhages\nGingival bleeding\nPoor wound healing\nPetechiae, ecchymoses", "GI upset >2 g/day\nOxalate kidney stones\nHaemolysis in G6PD deficiency", "Corkscrew hairs = pathognomonic for scurvy\nVit C enhances non-heme iron absorption\nDoes NOT prevent common cold"], ] mineral_rows = [ ["CALCIUM\nCa²⁺","19-50: 1000 mg\n>50F/>70: 1200 mg\nUL: 2500 mg", "Dairy, fortified foods, leafy greens (kale), sardines", "Bone structure (99% in skeleton); muscle contraction; nerve transmission; coagulation; 2nd messenger", "HYPOCALCAEMIA:\nChvostek's + Trousseau's signs\nProlonged QT; seizures\nChronic: OSTEOPOROSIS", "HYPERCALCAEMIA ('Bones Stones Groans Moans'):\nKidney stones; bone pain\nConstipation; confusion, depression", "Refractory hypoCa → check Mg first\nVit D required for absorption\nCauses: hyperPTH (outpatient), malignancy (inpatient)"], ["MAGNESIUM\nMg²⁺","M: 400-420 mg\nF: 310-320 mg\nUL: 350 mg (suppl)", "Nuts, seeds, whole grains, spinach, legumes, dark chocolate", "Cofactor for >300 enzymes; ATP stabilisation; protein/DNA synthesis; muscle relaxation", "Refractory HYPOKALAEMIA\nRefractory HYPOCALCAEMIA\nTORSADES DE POINTES\nSeizures; tetany; personality changes", "IV: respiratory depression,\nhypotension, cardiac arrest\nOral: diarrhoea (osmotic)", "Most common cause: ALCOHOLISM\nAlso: loop/thiazide diuretics, PPIs, Gitelman\nIV MgSO₄ = ECLAMPSIA + torsades\nMonitor patellar reflex during IV infusion"], ["PHOSPHORUS","700 mg/day\nUL: 4000 mg", "Dairy, meat, fish, nuts, legumes, cola drinks", "Bone mineralisation; ATP; phospholipids; DNA/RNA; enzyme phosphorylation", "REFEEDING SYNDROME:\n↓PO₄ after refeeding malnourished patient → cardiac arrest, respiratory failure, seizures", "Hyperphosphataemia in CKD\n→ secondary hyperPTH\n→ renal osteodystrophy", "Refeeding triad: ↓PO₄ + ↓K⁺ + ↓Mg²⁺\nRefeed slowly + supplement PO₄"], ["IRON\nFe²⁺/³⁺","M: 8 mg\nF 19-50: 18 mg\nPregnancy: 27 mg\nUL: 45 mg", "Heme iron: red meat\n(15-35% absorbed)\nNon-heme: legumes,\nfortified cereals\n(2-10%)\nVit C enhances absorption", "Haemoglobin; myoglobin; cytochromes (ETC); catalase/peroxidase", "MICROCYTIC HYPOCHROMIC ANAEMIA\nKOILONYCHIA (spoon nails)\nPICA (craving ice, clay)\nPLUMMER-VINSON: Fe def + dysphagia + oesophageal web\nGlossitis; restless legs", "HAEMOCHROMATOSIS (HFE/C282Y):\n'Bronze diabetes'\n(cirrhosis + DM + bronze skin)\nCardiac failure; hypogonadism\nAcute (children): GE→shock→liver failure", "Most common nutritional deficiency worldwide\nFerritin = BEST stores marker\nTx: phlebotomy (hereditary); deferoxamine (acute)"], ["ZINC\nZn²⁺","M: 11 mg\nF: 8 mg\nUL: 40 mg", "Oysters (richest), red meat, beans, nuts, fortified cereals", "Cofactor for >100 enzymes; zinc finger TFs; wound healing; taste/smell; spermatogenesis; Vit A mobilisation", "ACRODERMATITIS ENTEROPATHICA\n(periorificial + acral rash)\nALOPECIA\nHYPOGONADISM + growth retardation\nDysgeusia/dysosmia\nPoor wound healing; night blindness", "High-dose Zn → COPPER DEFICIENCY\n→ anaemia + neutropenia\nNausea, vomiting, GI irritation", "AE = inherited Zn malabsorption (SLC39A4 mutation)\nPhytate chelates zinc\nHigh-dose zinc supplementation causes Cu deficiency"], ["COPPER\nCu²⁺","900 µg/day\nUL: 10,000 µg", "Liver, oysters, nuts, seeds, dark chocolate, whole grains", "Ceruloplasmin (Fe transport); cytochrome c oxidase (ETC IV); SOD; dopamine-β-hydroxylase; lysyl oxidase; tyrosinase", "NORMOCYTIC/MACROCYTIC ANAEMIA\n+ NEUTROPENIA\n(mimics B12/folate!)\nOsteoporosis; myelopathy;\ndepigmentation", "WILSON'S DISEASE (ATP7B):\nliver disease + Kayser-Fleischer\nrings + neuropsychiatric symptoms", "MENKES DISEASE (X-linked, ATP7A): kinky hair + neurodegeneration\nExcess Zn → Cu deficiency\nCeruloplasmin LOW in Wilson's disease"], ["IODINE\nI⁻","150 µg/day\nPregnancy: 220 µg\nLactation: 290 µg\nUL: 1100 µg", "Iodised salt (most important), seafood, dairy, seaweed", "Required EXCLUSIVELY for thyroid hormone synthesis (T3, T4)", "GOITRE (thyroid hyperplasia, ↑TSH)\nHYPOTHYROIDISM\nCRETINISM (in utero):\nirreversible intellectual disability,\nshort stature, deafness", "Wolff-Chaikoff:\nexcess I⁻ → paradoxical HYPOTHYROIDISM\nJod-Basedow:\nI⁻ loading → HYPERTHYROIDISM", "Leading preventable cause of intellectual disability worldwide\nUniversal salt iodisation = primary prevention"], ["SELENIUM\nSe","55 µg/day\nUL: 400 µg", "Brazil nuts (highest), seafood, meat, cereals (soil-dependent)", "Glutathione peroxidase (antioxidant); iodothyronine deiodinase (T4→T3 conversion); thioredoxin reductase", "KESHAN DISEASE\n(endemic cardiomyopathy — China)\nKASHIN-BECK DISEASE (osteoarthropathy)\nMyopathy; hypothyroidism", "SELENOSIS:\nGarlic-breath odour\nAlopecia; nail changes\nPeripheral neuropathy; nausea", "Synergistic with Vitamin E\nAt-risk: TPN without Se, Crohn's, renal dialysis, low-selenium soil regions"], ["FLUORIDE\nF⁻","M: 4 mg AI\nF: 3 mg AI\nUL: 10 mg", "Fluoridated water (main), toothpaste, tea, seafood", "Incorporated into hydroxyapatite → resistance to acid dissolution; dental caries prevention", "DEFICIENCY: Increased dental caries", "Dental fluorosis: mottled enamel\nSkeletal fluorosis: osteosclerosis\nAcute: hypocalcaemia, arrhythmia", "Optimal water fluoridation: 0.7 mg/L\nBenefit at low levels; toxicity only with excess"], ["CHROMIUM\nMANGANESE\nMOLYBDENUM","Cr: AI 25-35 µg\nMn: AI 1.8-2.3 mg\nMo: RDA 45 µg", "Cr: whole grains, broccoli\nMn: whole grains, nuts, tea\nMo: legumes, whole grains", "Cr: insulin signalling (glucose tolerance factor)\nMn: Mn-SOD, arginase, pyruvate carboxylase\nMo: xanthine oxidase, sulfite oxidase", "Cr: glucose intolerance (TPN)\nMn: hypercholesterolaemia, dermatitis (rare)\nMo: neurologic symptoms (TPN only)", "Mn INHALATION: MANGANISM\n(Parkinson's-like: tremor, rigidity)\n— miners/welders\nCr⁶⁺: lung cancer (industrial)", "Deficiencies almost exclusively in prolonged TPN\nManganism = main clinical toxicity in this group"], ] b12_fol_rows = [ ["Megaloblastic macrocytic anaemia", "YES", "YES"], ["Neurologic symptoms (SCD of cord)", "YES", "NO"], ["Elevated homocysteine", "YES", "YES"], ["Elevated methylmalonic acid (MMA)", "YES — diagnostic", "NO"], ["Neural tube defect risk in pregnancy", "NO", "YES"], ["Source", "Only animal products", "Green veg, fortified grains"], ["Absorption site", "Terminal ileum (needs IF)", "Proximal small intestine"], ["Key drug interactions", "Metformin (↓absorption)", "Methotrexate, TMP (inhibit DHFR)"], ] summary_rows = [ ["Only vitamin made by the skin", "Vitamin D"], ["Only vitamin exclusively in animal products", "Vitamin B12"], ["Fat-soluble vitamins mnemonic", "A, D, E, K — 'ADEK'"], ["Only B vitamin neurotoxic in excess", "B6 pyridoxine (sensory neuropathy >200 mg/day)"], ["Give THIAMINE before glucose — why?", "Glucose alone worsens Wernicke's encephalopathy"], ["Corkscrew hairs = pathognomonic for", "Scurvy (Vitamin C deficiency)"], ["Elevated MMA = diagnostic of", "Vitamin B12 deficiency ONLY (not folate)"], ["Methylfolate trap caused by", "B12 deficiency → folate trapped as inactive N5-methyl-THF"], ["B12 vs folate: neurological difference", "B12 → subacute combined degeneration of spinal cord; Folate → NO neuro symptoms"], ["Antidote / reversal for warfarin", "Vitamin K"], ["Most common nutritional deficiency worldwide", "Iron deficiency anaemia"], ["Refractory hypoK + hypoCa → check first", "Magnesium (must correct Mg first)"], ["IV MgSO₄ used to treat", "Eclampsia (seizures) AND torsades de pointes"], ["Refeeding syndrome triad", "↓Phosphate + ↓Potassium + ↓Magnesium"], ["Excess zinc → causes deficiency of", "Copper → normocytic anaemia + neutropenia"], ["Acrodermatitis enteropathica", "Inherited zinc malabsorption (SLC39A4 mutation)"], ["Menkes disease", "X-linked Cu transport defect (ATP7A) → kinky hair + neurodegeneration"], ["Wilson's disease", "Cu excretion defect (ATP7B) → Kayser-Fleischer rings + liver disease"], ["Pernicious anaemia", "Anti-intrinsic factor antibodies → B12 malabsorption"], ["Iodine deficiency: leading cause of", "Preventable intellectual disability worldwide (cretinism)"], ["Pellagra 4 Ds", "Dermatitis (Casal's necklace), Diarrhoea, Dementia, Death"], ["Keshan disease", "Selenium deficiency → endemic cardiomyopathy (China)"], ["Manganism", "Mn inhalation toxicity → Parkinson's-like syndrome (miners, welders)"], ["Raw egg white causes deficiency of", "Biotin (avidin binds irreversibly; destroyed by cooking)"], ["Neural tube defect prevention", "Folic acid 400-800 µg/day pre-conceptionally"], ["Ferritin: clinical note", "BEST iron stores marker; falsely elevated in inflammation"], ["Hartnup disease → pellagra-like", "Defective tryptophan absorption → can't synthesise niacin"], ["Carcinoid syndrome → pellagra", "Tryptophan diverted to serotonin → niacin deficiency"], ["INH therapy: give prophylactic", "Vitamin B6 (INH inactivates PLP)"], ["Vitamin needed for GABA synthesis", "Vitamin B6 (PLP — decarboxylation of glutamate)"], ] # ═══════════════════════════════════════════════════════════════════ # MARASMUS vs KWASHIORKOR DATA # ═══════════════════════════════════════════════════════════════════ mkw_comparison = [ ["Definition / Aetiology", "Severe global calorie (protein + energy) deficiency\n< 60% expected weight for age", "Protein deficiency disproportionate to calorie deficiency\n60-80% expected weight (masked by oedema)"], ["Pathophysiology", "Adaptive response: somatic protein (muscle) catabolised to provide amino acids for energy\nVisceral protein largely PRESERVED\nHigh cortisol → lipolysis of subcutaneous fat", "Non-adaptive: visceral protein compartment severely DEPLETED\nHypoalbuminaemia → generalised oedema\nRelative preservation of muscle and subcutaneous fat"], ["Oedema", "ABSENT — hallmark of marasmus", "PRESENT (generalised/dependent) — hallmark of kwashiorkor\nAscites; puffiness of face, hands, legs"], ["Body weight appearance", "Grossly underweight\nExtremes of wasting — 'skin and bones'\nHead appears too large for emaciated body", "Weight may appear near-normal (masked by oedema)\nPot-belly (ascites) common"], ["Muscle wasting", "SEVERE — generalised atrophy of skeletal muscle\nSpindly limbs; prominent ribs", "LESS SEVERE — partially masked by oedema"], ["Subcutaneous fat", "SEVERELY DEPLETED — loss of buccal fat pad ('old man face')\nLoss of perirenal and abdominal fat", "RELATIVELY PRESERVED (masked by oedema)"], ["Serum albumin", "Normal or MILDLY reduced\n(visceral protein largely spared)", "SEVERELY reduced (< 2.8 g/dL)\n→ oncotic pressure ↓ → oedema"], ["Skin changes", "Thin, wrinkled, lax skin\nNo typical rash", "'Flaky paint' dermatosis:\nAlternating zones of hyperpigmentation, desquamation, and hypopigmentation"], ["Hair changes", "Sparse, thin, brittle hair\n(less specific)", "Flag sign (alternating bands of light and dark pigmentation)\nEasy pluckability; straightening; depigmentation (reddish-yellow)"], ["Liver", "NOT enlarged\nNo fatty change", "ENLARGED, FATTY LIVER (hepatic steatosis)\nCaused by ↓apoprotein synthesis → impaired VLDL export → fat accumulates"], ["Mental / behaviour", "Alert, wide-eyed, hungry (though weak)", "Apathetic, listless, irritable, anorexic\nMiserable expression ('kwashi' face)"], ["Immunity / infections", "IMPAIRED (esp. T-cell mediated)\nConcurrent infections common", "IMPAIRED (similar defects)\nConcurrent infections common"], ["Anaemia", "Present (multifactorial: iron, folate, B12 deficiency)", "Present (multifactorial)\n+/- haemolytic anaemia"], ["GI changes", "Villous atrophy → malabsorption\n(worsens nutritional state)", "Villous atrophy → malabsorption\nAlso seen"], ["Age group / typical setting", "Infants < 1 year; severe food shortage/famine\nWasting in older children with chronic illness", "Children 1-4 years after early weaning onto carbohydrate diet\nClassic: weaned child displaced by new baby"], ["Origin of term", "Greek: marasmos = 'wasting'", "Ga language (Ghana): 'disease of the displaced/deposed child'"], ] # Treatment comparison mkw_tx = [ ["Acute stabilisation (Phase 1)", "Treat hypoglycaemia, hypothermia, dehydration\nTreat infections (amoxicillin)\nCorrect electrolytes (avoid IV fluids if possible — risk of heart failure)\nStart F-75 therapeutic milk (75 kcal/100 mL)", "SAME — treat hypoglycaemia, infections\nAVOID aggressive fluid resuscitation (oedema worsens)\nCorrect electrolytes; do NOT give IV albumin"], ["Transition / catch-up growth (Phase 2)", "Gradually increase to F-100 (100 kcal/100 mL)\nOr RUTF (Ready-to-Use Therapeutic Food)\nHigh protein + energy", "Reduce oedema first, then increase protein intake\nF-100 / RUTF once oedema resolving"], ["Micronutrient supplementation", "Vitamins A, D, folate, zinc, copper\n(Give on day 2, after initial stabilisation)", "Same micronutrients\n(Avoid excess vitamin A on day 1 — risk of toxicity)"], ["Monitoring", "Weight gain, mid-upper arm circumference (MUAC)\nTarget: >5 g/kg/day weight gain", "Monitor oedema resolution\nBilateral pitting oedema + MUAC for discharge criteria"], ["Discharge criteria", "MUAC ≥ 12.5 cm\nNo oedema, no acute illness\nEating well", "MUAC ≥ 12.5 cm + oedema resolved\nNo acute illness"], ] # Key distinguishing features box mkw_key_facts = [ ["Key distinguishing feature", "WASTING without oedema", "OEDEMA is the cardinal sign"], ["Mnemonic", "'MAR-ASMUS = Marked wasting, No Oedema'", "'KWAshiorkor = K-WAter = Wet = Oedema'"], ["Serum albumin", "Normal / mildly ↓", "Severely ↓ (< 2.8 g/dL)"], ["Liver", "Normal", "Enlarged + fatty"], ["'Flaky paint' skin", "Absent", "PRESENT"], ["'Flag sign' of hair", "Absent", "PRESENT"], ["Behaviour", "Alert but weak", "Apathetic, miserable, anorexic"], ["WHO weight-for-height", "< -3 SD (severe wasting)", "Oedema present regardless of weight"], ["Visceral protein", "PRESERVED", "SEVERELY DEPLETED"], ["Somatic protein (muscle)", "SEVERELY DEPLETED", "Relatively preserved"], ] # ═══════════════════════════════════════════════════════════════════ # BUILD PAGE 1 — LANDSCAPE # ═══════════════════════════════════════════════════════════════════ def build_page1(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=landscape(A4), leftMargin=L, rightMargin=R, topMargin=T, bottomMargin=B) story = [] story.append(Paragraph("Vitamins & Minerals — Quick Reference", TTL)) story.append(Paragraph("Page 1 of 5 | Fat-Soluble Vitamins (A · D · E · K)", SUB)) story.append(hr(TEAL, 1.5)) kp = Table([[Paragraph( "<b>FAT-SOLUBLE (A,D,E,K):</b> stored in body; absorbed via micellar phase; any fat malabsorption → all 4 deficient simultaneously; toxicity possible. " "<b>WATER-SOLUBLE (B1-B12, C):</b> limited storage; excess excreted in urine; deficiency develops faster; most act as coenzymes.", S("kpb", fontName="Helvetica", fontSize=8, textColor=colors.black, leading=11)) ]], colWidths=[LAND_UW]) kp.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),LYELL), ("BOX",(0,0),(-1,-1),1,GOLD), ("TOPPADDING",(0,0),(-1,-1),5), ("BOTTOMPADDING",(0,0),(-1,-1),5), ("LEFTPADDING",(0,0),(-1,-1),8), ("RIGHTPADDING",(0,0),(-1,-1),8), ])) story.append(kp) story.append(Spacer(1, 0.2*cm)) story.append(banner("FAT-SOLUBLE VITAMINS (A · D · E · K)", LAND_UW, NAVY)) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"], fat_sol_rows, [0.06, 0.09, 0.12, 0.15, 0.22, 0.17, 0.19], LAND_UW, header_bg=NAVY, row_bgs=[LBLUE, WHITE] )) story.append(Spacer(1, 0.3*cm)) story.append(hr(TEAL, 0.5)) story.append(Paragraph("Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry 6e · Washington Manual · Costanzo Physiology 7e | Orris Medical AI", FTR)) doc.build(story) buf.seek(0) return buf # ═══════════════════════════════════════════════════════════════════ # BUILD PAGES 2-4 — PORTRAIT # ═══════════════════════════════════════════════════════════════════ def build_pages2_4(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=A4, leftMargin=L, rightMargin=R, topMargin=T, bottomMargin=B) story = [] # Page 2 story.append(banner("WATER-SOLUBLE VITAMINS (B1 · B2 · B3 · B5 · B6 · B7 · B9 · B12 · Vitamin C)", PORT_UW, TEAL)) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Vitamin", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"], water_sol_rows, [0.07, 0.09, 0.12, 0.17, 0.21, 0.14, 0.20], PORT_UW, header_bg=TEAL, row_bgs=[LGREEN, WHITE] )) story.append(Spacer(1, 0.25*cm)) story.append(banner("B12 vs FOLATE DEFICIENCY — Key Differences", PORT_UW, GREEN)) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Feature", "B12 (Cobalamin)", "Folate (B9)"], b12_fol_rows, [0.44, 0.28, 0.28], PORT_UW, header_bg=GREEN )) # Page 3 story.append(PageBreak()) story.append(banner("MINERALS (Ca · Mg · P | Fe · Zn · Cu · I · Se · F · Cr · Mn · Mo)", PORT_UW, PURPLE)) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Mineral", "RDA / UL", "Key Sources", "Functions", "Deficiency Signs", "Toxicity", "High-Yield Notes"], mineral_rows, [0.08, 0.09, 0.12, 0.15, 0.21, 0.17, 0.18], PORT_UW, header_bg=PURPLE, row_bgs=[LPURP, WHITE] )) # Page 4 story.append(PageBreak()) story.append(banner("HIGH-YIELD SUMMARY — Must-Know Facts", PORT_UW, colors.HexColor("#BF360C"))) story.append(Spacer(1, 0.1*cm)) story.append(make_table( ["Key Fact / Question", "Answer"], summary_rows, [0.44, 0.56], PORT_UW, header_bg=ORANGE, row_bgs=[LRED, WHITE] )) story.append(Spacer(1, 0.3*cm)) story.append(hr(TEAL, 1)) story.append(Paragraph( "Sources: Goldman-Cecil Medicine · Basic Medical Biochemistry 6e · Washington Manual · Costanzo Physiology 7e | Orris Medical AI · Educational use only", FTR)) doc.build(story) buf.seek(0) return buf # ═══════════════════════════════════════════════════════════════════ # BUILD PAGE 5 — MARASMUS vs KWASHIORKOR (PORTRAIT) # ═══════════════════════════════════════════════════════════════════ def build_page5(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=A4, leftMargin=L, rightMargin=R, topMargin=T, bottomMargin=B) story = [] # Title banner story.append(banner("PROTEIN-ENERGY MALNUTRITION | Marasmus vs Kwashiorkor", PORT_UW, colors.HexColor("#4E342E"))) story.append(Spacer(1, 0.15*cm)) # Intro note intro = Table([[Paragraph( "<b>Protein-Energy Malnutrition (PEM)</b> encompasses a spectrum from <b>marasmus</b> (global calorie starvation) to " "<b>kwashiorkor</b> (predominantly protein deficiency). Both are forms of severe acute malnutrition (SAM) and carry high mortality. " "The key clinical distinction is <b>oedema</b> — present in kwashiorkor, absent in marasmus. " "<i>Source: Robbins & Cotran Pathologic Basis of Disease; Park's Preventive & Social Medicine</i>", S("intro", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=11)) ]], colWidths=[PORT_UW]) intro.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#EFEBE9")), ("BOX",(0,0),(-1,-1), 0.8, colors.HexColor("#4E342E")), ("TOPPADDING",(0,0),(-1,-1), 5), ("BOTTOMPADDING",(0,0),(-1,-1), 5), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 8), ])) story.append(intro) story.append(Spacer(1, 0.2*cm)) # KEY DISTINGUISHING FEATURES (compact at top) story.append(Paragraph( Paragraph("KEY DISTINGUISHING FEATURES AT A GLANCE", H2S), H2S) if False else None) key_banner = Table([[Paragraph("KEY DISTINGUISHING FEATURES AT A GLANCE", H2S)]], colWidths=[PORT_UW]) key_banner.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#BF360C")), ("TOPPADDING",(0,0),(-1,-1), 4), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 8), ])) story.append(key_banner) story.append(Spacer(1, 0.05*cm)) # Key features table (3 cols) TH_MK = S("thmk", fontName="Helvetica-Bold", fontSize=8, textColor=WHITE, leading=10, alignment=TA_CENTER) TDM = S("tdm", fontName="Helvetica", fontSize=7.5, textColor=colors.black, leading=10, alignment=TA_LEFT) TDB_M = S("tdbm", fontName="Helvetica-Bold", fontSize=7.5, textColor=colors.HexColor("#1A237E"), leading=10, alignment=TA_LEFT) TDB_K = S("tdbk", fontName="Helvetica-Bold", fontSize=7.5, textColor=colors.HexColor("#B71C1C"), leading=10, alignment=TA_LEFT) kf_header = [p("Feature", TH_MK), p("MARASMUS", TH_MK), p("KWASHIORKOR", TH_MK)] kf_data = [kf_header] kf_row_bgs = [colors.HexColor("#EFEBE9"), WHITE] M_COL = colors.HexColor("#E3F2FD") K_COL = colors.HexColor("#FCE4EC") for i, row in enumerate(mkw_key_facts): bg_m = M_COL if i % 2 == 0 else colors.HexColor("#BBDEFB") bg_k = K_COL if i % 2 == 0 else colors.HexColor("#F8BBD0") kf_data.append([ Paragraph(row[0], TDB_M), Paragraph(row[1], TDM), Paragraph(row[2], TDM), ]) kf_fracs = [0.30, 0.35, 0.35] kf_col_w = [PORT_UW * f for f in kf_fracs] kf_tbl = Table(kf_data, colWidths=kf_col_w) kf_style = [ ("BACKGROUND", (0,0), (-1,0), colors.HexColor("#BF360C")), ("BACKGROUND", (1,1), (1,-1), M_COL), ("BACKGROUND", (2,1), (2,-1), K_COL), ("ROWBACKGROUNDS",(0,1), (0,-1), [colors.HexColor("#EFEBE9"), WHITE]), ("GRID", (0,0), (-1,-1), 0.3, BORDER), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ] kf_tbl.setStyle(TableStyle(kf_style)) story.append(kf_tbl) story.append(Spacer(1, 0.2*cm)) # DETAILED COMPARISON TABLE det_banner = Table([[Paragraph("DETAILED CLINICAL COMPARISON", H2S)]], colWidths=[PORT_UW]) det_banner.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), colors.HexColor("#4E342E")), ("TOPPADDING",(0,0),(-1,-1), 4), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 8), ])) story.append(det_banner) story.append(Spacer(1, 0.05*cm)) det_header = [p("Feature", TH_MK), p("MARASMUS", TH_MK), p("KWASHIORKOR", TH_MK)] det_data = [det_header] for row in mkw_comparison: det_data.append([Paragraph(row[0], TDB_M), Paragraph(row[1], TDM), Paragraph(row[2], TDM)]) det_col_w = [PORT_UW * f for f in [0.22, 0.39, 0.39]] det_tbl = Table(det_data, colWidths=det_col_w, repeatRows=1) det_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), colors.HexColor("#4E342E")), ("BACKGROUND", (1,1), (1,-1), M_COL), ("BACKGROUND", (2,1), (2,-1), K_COL), ("ROWBACKGROUNDS",(0,1), (0,-1), [colors.HexColor("#EFEBE9"), WHITE]), ("GRID", (0,0), (-1,-1), 0.3, BORDER), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ])) story.append(det_tbl) story.append(Spacer(1, 0.2*cm)) # MANAGEMENT TABLE tx_banner = Table([[Paragraph("MANAGEMENT PRINCIPLES (WHO SAM Protocol)", H2S)]], colWidths=[PORT_UW]) tx_banner.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), GREEN), ("TOPPADDING",(0,0),(-1,-1), 4), ("BOTTOMPADDING",(0,0),(-1,-1), 4), ("LEFTPADDING",(0,0),(-1,-1), 8), ("RIGHTPADDING",(0,0),(-1,-1), 8), ])) story.append(tx_banner) story.append(Spacer(1, 0.05*cm)) tx_header = [p("Phase", TH_MK), p("MARASMUS", TH_MK), p("KWASHIORKOR", TH_MK)] tx_data = [tx_header] for row in mkw_tx: tx_data.append([Paragraph(row[0], TDB_M), Paragraph(row[1], TDM), Paragraph(row[2], TDM)]) tx_col_w = [PORT_UW * f for f in [0.22, 0.39, 0.39]] tx_tbl = Table(tx_data, colWidths=tx_col_w, repeatRows=1) tx_tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), GREEN), ("ROWBACKGROUNDS",(0,1), (-1,-1), [LGREEN, WHITE]), ("GRID", (0,0), (-1,-1), 0.3, BORDER), ("VALIGN", (0,0), (-1,-1), "TOP"), ("TOPPADDING", (0,0), (-1,-1), 3), ("BOTTOMPADDING", (0,0), (-1,-1), 3), ("LEFTPADDING", (0,0), (-1,-1), 4), ("RIGHTPADDING", (0,0), (-1,-1), 4), ])) story.append(tx_tbl) story.append(Spacer(1, 0.25*cm)) story.append(hr(colors.HexColor("#4E342E"), 1)) story.append(Paragraph( "Sources: Robbins & Cotran Pathologic Basis of Disease (10e) · Robbins & Kumar Basic Pathology · Park's Preventive & Social Medicine · WHO Guidelines for SAM Management | Orris Medical AI · Educational use only", FTR)) doc.build(story) buf.seek(0) return buf # ═══════════════════════════════════════════════════════════════════ # MERGE ALL # ═══════════════════════════════════════════════════════════════════ print("Building page 1 (landscape)...") buf1 = build_page1() print("Building pages 2-4 (portrait)...") buf24 = build_pages2_4() print("Building page 5 (marasmus vs kwashiorkor)...") buf5 = build_page5() print("Merging...") writer = PdfWriter() for buf in [buf1, buf24, buf5]: reader = PdfReader(buf) for page in reader.pages: writer.add_page(page) OUTPUT = "/tmp/workspace/vitamins-minerals/Vitamins_Minerals_Final.pdf" with open(OUTPUT, "wb") as f: writer.write(f) import os sz = os.path.getsize(OUTPUT) / 1024 npg = sum(1 for _ in writer.pages) print(f"Done! {OUTPUT} ({sz:.1f} KB, {npg} pages)") PYEOF echo "Script written."
cd /tmp/workspace/vitamins-minerals && python make_final_pdf.py 2>&1
Vitamins Minerals Final
PDF Document · PDF
| Page | Orientation | Content |
|---|---|---|
| 1 | Landscape | Key principle box + Fat-Soluble Vitamins table (A, D, E, K) |
| 2 | Portrait | Water-Soluble Vitamins (B1–B12, Vit C) + B12 vs Folate table |
| 3 | Portrait | Minerals (Ca, Mg, P, Fe, Zn, Cu, I, Se, F, Cr, Mn, Mo) |
| 4 | Portrait | High-Yield Summary — 30 must-know facts |
| 5 | Portrait | Marasmus vs Kwashiorkor — 3 tables: |
| • Key distinguishing features at a glance (colour-coded: blue = marasmus, pink = kwashiorkor) | ||
| • Detailed clinical comparison (16 features: oedema, albumin, liver, skin, hair, behaviour, etc.) | ||
| • WHO SAM management protocol (Phase 1, Phase 2, micronutrients, monitoring, discharge) |
Make a table for all.the schemes and programmes in maternal and child health from park's textbook of PSM Mention - Aims, goals, objectives, strategies and miscellaneous important points in the table Make the table in such a way that it fits into A4 size page Make a printable pdf
cat > /tmp/workspace/vitamins-minerals/mch_schemes_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4, landscape from reportlab.lib import colors from reportlab.lib.units import cm from reportlab.platypus import ( SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether ) from reportlab.lib.styles import ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from pypdf import PdfWriter, PdfReader import io # ── Page dims ────────────────────────────────────────────────────────────────── A4W, A4H = A4 LW, LH = landscape(A4) LM = RM = 1.2*cm TM = BM = 1.5*cm PORT_UW = A4W - LM - RM # ~17.1 cm LAND_UW = LW - LM - RM # ~25.6 cm # ── Colours ──────────────────────────────────────────────────────────────────── NAVY = colors.HexColor("#1A3A5C") TEAL = colors.HexColor("#0D6E8A") GREEN = colors.HexColor("#1B5E20") DKGRN = colors.HexColor("#2E7D32") MAROON = colors.HexColor("#880E4F") PURPLE = colors.HexColor("#4A148C") ORANGE = colors.HexColor("#BF360C") BROWN = colors.HexColor("#4E342E") INDIGO = colors.HexColor("#1A237E") DKTEAL = colors.HexColor("#004D40") LBLUE = colors.HexColor("#E3F2FD") LGREEN = colors.HexColor("#E8F5E9") LRED = colors.HexColor("#FCE4EC") LPINK = colors.HexColor("#F8BBD0") LPURP = colors.HexColor("#EDE7F6") LYELL = colors.HexColor("#FFFDE7") LORANGE= colors.HexColor("#FFF3E0") LGRAY = colors.HexColor("#F5F5F5") STRIPE = colors.HexColor("#F1F8E9") BORDER = colors.HexColor("#90A4AE") WHITE = colors.white def S(name, **kw): return ParagraphStyle(name, **kw) TH = S("th", fontName="Helvetica-Bold", fontSize=7, textColor=WHITE, leading=9, alignment=TA_CENTER) TD = S("td", fontName="Helvetica", fontSize=6.8, textColor=colors.black, leading=9, alignment=TA_LEFT) TDB = S("tdb", fontName="Helvetica-Bold", fontSize=6.8, textColor=NAVY, leading=9, alignment=TA_LEFT) TTL = S("ttl", fontName="Helvetica-Bold", fontSize=17, textColor=NAVY, leading=21, alignment=TA_CENTER) SUB = S("sub", fontName="Helvetica", fontSize=8.5, textColor=TEAL, leading=12, alignment=TA_CENTER) H1 = S("h1", fontName="Helvetica-Bold", fontSize=10, textColor=WHITE, leading=13, alignment=TA_LEFT) H2 = S("h2", fontName="Helvetica-Bold", fontSize=9, textColor=WHITE, leading=12, alignment=TA_LEFT) FTR = S("ftr", fontName="Helvetica", fontSize=6, textColor=colors.grey, leading=8, alignment=TA_CENTER) NOTE= S("note",fontName="Helvetica-Oblique",fontSize=7, textColor=TEAL, leading=9, alignment=TA_LEFT) def p(txt, st=TD): return Paragraph(txt, st) def pb(txt): return Paragraph(txt, TDB) def hr(col=BORDER, t=0.5): return HRFlowable(width="100%", thickness=t, color=col, spaceAfter=2, spaceBefore=2) def banner(title, uw, bg=NAVY, st=H1): t = Table([[Paragraph(title, st)]], colWidths=[uw]) t.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1),bg), ("TOPPADDING",(0,0),(-1,-1),4), ("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),8), ("RIGHTPADDING",(0,0),(-1,-1),8), ])) return t def make_table(headers, rows, fracs, uw, hbg=NAVY, rbgs=None): col_w = [uw * f for f in fracs] if rbgs is None: rbgs = [STRIPE, WHITE] data = [[p(h, TH) for h in headers]] for row in rows: data.append([p(str(c), TD) if not isinstance(c, Paragraph) else c for c in row]) tbl = Table(data, colWidths=col_w, repeatRows=1) tbl.setStyle(TableStyle([ ("BACKGROUND", (0,0),(-1,0), hbg), ("ROWBACKGROUNDS",(0,1),(-1,-1), rbgs), ("GRID", (0,0),(-1,-1), 0.25, BORDER), ("VALIGN", (0,0),(-1,-1), "TOP"), ("TOPPADDING", (0,0),(-1,-1), 2), ("BOTTOMPADDING", (0,0),(-1,-1), 2), ("LEFTPADDING", (0,0),(-1,-1), 3), ("RIGHTPADDING", (0,0),(-1,-1), 3), ("FONTSIZE", (0,1),(-1,-1), 6.8), ])) return tbl # ═══════════════════════════════════════════════════════════════════════════════ # SCHEME DATA — all from Park's PSM # ═══════════════════════════════════════════════════════════════════════════════ # COLUMNS: Scheme | Year/Ministry | Aim | Goal/Objective | Strategies | Important Points MCH_SCHEMES = [ # ─── ANTENATAL / MATERNAL HEALTH ────────────────────────────────────────── ["REPRODUCTIVE AND CHILD HEALTH PROGRAMME (RCH-II)", "2005–\nMoHFW", "Improve maternal, newborn and child health outcomes; achieve population stabilisation", "↓ MMR, IMR, TFR; increase institutional delivery; improve ANC quality", "Client-centred, community-needs-based approach; integration with NRHM;\nFRU operationalisation; skilled attendance at birth;\nStrengthened referral system; untied funds to PRIs", "RCH-II is district-specific; EAG states = Bihar, UP, MP, Rajasthan, Odisha, Uttarakhand, Jharkhand, Chhattisgarh;\nFRU minimum criteria: 20-30 beds, OT, labour room, blood storage, 24h water/electricity;\n3 critical FRU determinants: surgical interventions + newborn care + blood storage (all 24h)"], ["JANANI SURAKSHA YOJANA (JSY)", "2005–\nNRHM/\nMoHFW", "Reduce maternal and neonatal mortality by promoting institutional deliveries among poor pregnant women", "Increase % of institutional deliveries;\nEnsure skilled birth attendance;\nCash assistance to incentivise delivery at health facilities", "Cash benefit to pregnant women on institutional delivery;\nASHA as facilitator and cash incentive recipient;\nDirect Benefit Transfer (DBT) to Aadhaar-linked bank accounts;\nNo restriction on age/birth order in Low Performing States (LPS)", "LPS (10 states: UP, Bihar, MP, Rajasthan, CG, JH, Odisha, Uttarakhand, Assam, J&K) vs HPS;\nLPS: ALL women delivering in govt/accredited private facility eligible;\nHPS: BPL + SC/ST only, upto 2 live births;\nBPL home delivery: Rs.500 regardless of age/birth order;\nASHA incentive: Rs.200/delivery + Rs.250 for referral transport;\nSubsidises C-section: Rs.1500 to institutions;\nYear 2006-07 declared 'Year for Institutional Deliveries';\n~100.41 lakh women benefited in 2018-19"], ["JANANI-SHISHU SURAKSHA KARYAKRAM (JSSK)", "2011–\nMoHFW", "Eliminate out-of-pocket expenditure for pregnant women and sick newborns accessing public health institutions", "Provide FREE and cashless services to ALL pregnant women delivering in govt facilities;\nReduce barriers to institutional delivery", "Entitlements to ALL pregnant women (rural and urban) in govt facilities:\n(1) Free & zero expense delivery incl. C-section;\n(2) Free drugs and consumables;\n(3) Free diagnostics;\n(4) Free blood;\n(5) Free diet during hospital stay (3 days for normal, 7 days for C-section);\n(6) Free transport from home→facility, facility→home and between facilities;\n(7) Exemption from all user charges", "Extended to sick newborns (up to 30 days after birth);\nSick newborn entitlements: free treatment, drugs, diagnostics, blood, diet for mother, transport;\nNo means test — entitlement to ALL irrespective of BPL/APL;\nCovers urban areas too (unlike earlier schemes restricted to rural);\nReduces 'three delays' (delay in decision, reaching, receiving care)"], ["PRADHAN MANTRI SURAKSHIT MATRITVA ABHIYAN (PMSMA)", "2016–\nMoHFW", "Provide fixed day, free, quality ANC to all pregnant women on 9th of every month", "Ensure every pregnant woman in India receives minimum 1 ANC on 9th of each month;\nEarly identification of high-risk pregnancies", "Fixed day (9th of every month) comprehensive ANC at govt health facilities;\nOBGYN/MBBS doctors volunteer services;\nMinimum package: BP, weight, abdominal exam, labs (Hb, urine, blood glucose, ultrasound where available);\nCertain conditions (high-risk) get sticker on ANC card for special tracking", "Private sector OBGYN doctors can volunteer (Vandemataram-type);\nBenefits ALL pregnant women in 2nd and 3rd trimester (≥4 months);\n'Red sticker' for high-risk pregnancies needing special attention;\n'Green sticker' for low-risk;\nIntegrated with RMNCH+A strategy;\nLinks to SBA, JSSK and JSY"], ["LAQSHYA PROGRAMME", "2017–\nMoHFW", "Improve quality of care during labour, delivery and immediate postpartum in labour rooms (LR) and maternity operation theatres (OT)", "Reduce preventable maternal and newborn deaths, stillbirths;\nImprove experience of care for mothers;\nGoal: 70% of public health facilities achieve LAQSHYA certification", "Labour Room Quality Improvement Initiative;\nQuality benchmarks for LR/OT in govt facilities;\nQuality assessment tools, checklists;\nFacility-level quality improvement teams;\nTraining of health providers in infection prevention, respectful maternity care;\nMonitoring through HMIS", "LAQSHYA = 'Target' in Hindi;\nTwo levels of certification: Silver (70% score) and Gold (>90% score);\nFocus on 5 areas: (1) Respectful maternity care, (2) Prevention of infections, (3) Management of complications, (4) Immediate newborn care, (5) Discharge procedures;\nLinks to LaQshya/NQA (National Quality Assurance) framework;\nIntegrates Kangaroo Mother Care (KMC) for LBW newborns"], ["SURAKSHIT MATRITVA AASHWASAN (SUMAN)", "2019–\nMoHFW", "Provide assured, dignified, respectful and quality healthcare at no cost to all pregnant women and newborns visiting public health facilities", "Zero preventable maternal and newborn deaths;\nProvide guaranteed services to every mother and newborn", "Guaranteed package:\n(1) Minimum 4 ANC contacts;\n(2) Skilled birth attendance;\n(3) Free C-section if required;\n(4) At least 48h postnatal stay;\n(5) ≥3 postnatal check-ups;\n(6) Free transport;\n(7) Zero tolerance for denial of services", "Builds on JSY + JSSK + PMSMA;\nIntroduces 'rights-based approach' to maternity care;\nGrievance redressal mechanism for denied services;\nASHA/ANM facilitate access;\nCovers newborns up to 6 weeks of age;\nIncludes free immunization, Vit K, eye care at birth"], # ─── ANAEMIA / NUTRITION ────────────────────────────────────────────────── ["ANAEMIA MUKT BHARAT (AMB) PROGRAMME", "2018–\nMoHFW", "Reduce prevalence of anaemia among women (15-49 years), children (6-59 months), adolescents (10-19 years) and pregnant women", "Target: Reduce anaemia prevalence by 3 percentage points per year;\nUniversal iron supplementation across lifecycle", "6×6 Strategy:\n6 target beneficiary groups × 6 interventions:\nBeneficiaries: Children 6-59m, 5-9yr, 10-19yr (S+BW), Pregnant women, Lactating mothers, Reproductive age women (15-49yr);\nInterventions: (1) Prophylactic iron-folic acid supplementation, (2) Deworming, (3) Behaviour change communication, (4) Testing and treatment, (5) Non-nutritional causes (malaria, haemoglobinopathies), (6) Fortified foods/diversified diet", "Part of Intensified National Iron Plus Initiative (NIPI);\nWeekly iron-folic acid supplementation (WIFS) for adolescents;\nAntenatal IFA: 1 IFA tablet/day from 14 weeks, ≥180 tablets;\nPostpartum IFA: 180 tablets after delivery;\nChildren 6-59 months: Syrup IFA (1 mL = 20 mg elemental iron);\nDeworming: Albendazole 400 mg twice yearly (National Deworming Day - Feb and Aug);\nHaemoglobin estimation targets: Hb <7 g/dL = severe; 7-10 = moderate; 10-11 = mild"], ["NUTRITION REHABILITATION CENTRE (NRC) / MANAGEMENT OF SAM", "NRHM–\nMoHFW", "Reduce mortality among children with Severe Acute Malnutrition (SAM) and facilitate nutritional recovery", "Reduce SAM-related mortality;\nImprove weight gain in SAM children;\nCapacity building of families for home-based care", "Inpatient facility-based care in NRCs (attached to CHC/DH);\n3-phase management: Stabilization (1-2 days: F-75 starter diet), Transition (2-3 days), Rehabilitation (catch-up: F-100/RUTF);\nTriage: ABCD (Airway, Breathing, Circulation, Coma, Convulsion, Dehydration);\nMicronutrient supplementation (day 2+);\nMother counselling;\nHome-based care after discharge", "SAM definition: WHZ <-3 SD OR MUAC <11.5 cm OR bilateral pitting oedema;\nMAM: WHZ -3 to -2 OR MUAC 11.5-12.5 cm;\nNRC stay: typically 2 weeks;\nTarget weight gain: >5 g/kg/day;\nDischarge criteria: MUAC ≥12.5 cm + good appetite + no oedema + no illness;\nCommunity-based Management of Acute Malnutrition (CMAM) complements NRC;\nReady-to-Use Therapeutic Food (RUTF) = peanut paste + milk powder + sugar + oil + vitamins/minerals"], # ─── CHILD HEALTH ───────────────────────────────────────────────────────── ["UNIVERSAL IMMUNIZATION PROGRAMME (UIP)", "1985–86\nMoHFW", "Reduce morbidity and mortality due to vaccine-preventable diseases (VPDs) in infants and young children", "Universal coverage (>90%) of all children <1 year;\n100% coverage of pregnant women with TT/Td;\nEliminate/eradicate VPDs (polio eradicated 2014)", "Vaccines under UIP:\nBCG (at birth), OPV (0,6,10,14 wk), IPV (6 wk), HepB (0,6,10,14 wk), Penta (DPT+HepB+Hib), PCV, Rotavirus, fIPV, DPT booster, MR (measles-rubella), JE (endemic areas), TT/Td for pregnant women;\nMission Indradhanush to reach unimmunized/under-immunized;\nCold chain maintenance (2-8°C);\nVillage Health, Nutrition and Sanitation Day (VHND) as outreach platform", "India polio-free since Jan 2011, WHO certified March 2014;\nMission Indradhanush (2014): reach 90% full immunization coverage;\nIntensified Mission Indradhanush (iMI 2.0 and 3.0) for catch-up;\nAnnual full immunization coverage target: >90%;\nFollowing vaccines recently added: PCV (2017), Rota (2016), IPV (2015), Measles-Rubella (2017), Adult JE;\nVHND: 4th Tuesday of every month at sub-centre/Anganwadi;\nASHA mobilises children; ANM administers vaccines"], ["RASHTRIYA BAL SWASTHYA KARYAKRAM (RBSK)", "2013–\nMoHFW", "Early identification and management of selected health conditions in children (0-18 years) that can cause death, disability, disease, deficiency or developmental delays (4 Ds)", "Reach all children 0-18 years through universal screening;\nProvide free treatment and corrective surgery for identified conditions", "Child Health Screening and Early Intervention Services;\nMobile Health Teams (MHT): 2 AYUSH doctors + ANM per team;\nScreening for 30 conditions (4D framework) covering:\nBirth defects (congenital), Diseases (childhood), Deficiencies, Developmental delays incl. disability;\nScreening at delivery points, AWCs, govt schools;\nReferral to District Early Intervention Centre (DEIC) for management;\nFree surgery for complex conditions at empanelled govt/private hospitals", "4 Ds: Birth Defects, Diseases, Deficiency conditions, Developmental Delays/Disabilities;\n30 selected conditions include: CHD, cleft lip/palate, club foot, thalassaemia, sickle cell, ROP, hearing impairment, anaemia, malnutrition, vision problems, cataract, learning disability, autism, developmental delay;\nDEIC: District Early Intervention Centre at DH;\nCovers 27 crore children 0-18 years;\nMHT: 1 team per 1 lakh population;\nFree corrective surgery under RBSK for conditions like CHD, cleft lip, club foot"], ["NATIONAL HEALTH MISSION — CHILD HEALTH (IMNCI/HBNC/SNCU)", "NHM/\nMoHFW", "Reduce neonatal and under-5 mortality through continuum of care from community to facility", "↓ NMR (target <10/1000 LB by 2030);\n↓ U5MR (target <25/1000 LB by 2030);\nEliminate preventable neonatal deaths", "IMNCI (Integrated Management of Neonatal and Childhood Illness):\n- Systematic approach to assess, classify, treat sick children <5 years\n- Community IMNCI: ASHAs trained for home-based newborn care (HBNC)\nHBNC: ASHAs make 7 home visits (days 1,3,7,14,21,28,42) for newborns;\nSNSU/SNCU: Sick Newborn Care Units at FRU/DH for preterm, LBW, ill neonates;\nKangaroo Mother Care (KMC) for LBW;<2500g", "IMNCI 17 clinical signs assessed → classified → treated;\nHBNC visits: Day 0 (birth), Day 3, 7, 14, 21, 28, 42 = 7 visits (6 visits by ASHA + 1 by SBA);\nSNSU criteria: Birth weight <1500g, sick newborn needing special care;\nKMC: Skin-to-skin contact, exclusive breastfeeding, early discharge, outpatient follow-up;\nNBS (Newborn Screening): congenital hypothyroidism, G6PD deficiency at birth;\nFacility-based Newborn Care (FBNC): warm chain, immediate skin-to-skin, delayed cord clamping, Vit K at birth"], # ─── ADOLESCENT HEALTH ──────────────────────────────────────────────────── ["RASHTRIYA KISHOR SWASTHYA KARYAKRAM (RKSK)", "2014–\nMoHFW", "Enable all adolescents (10-19 years) to realise their full potential through promotion of healthy behaviours and well-being", "Address nutrition, SRHR, mental health, injuries/violence, NCDs in adolescents;\nFocus on equity and gender", "Adolescent Friendly Health Clinic (AFHC) at each PHC/CHC;\nPeer educators (trained adolescents) in schools and communities;\nRKSK Hubs (CHC-level) and Spokes (sub-centre level);\nProgramme areas: Nutrition, SRHR, substance misuse, NCDs, mental health, injuries/violence;\nWeekly Iron-Folic Acid Supplementation (WIFS) for adolescent boys and girls;\nSchool health activities through RBSK teams", "Target: 253 million adolescents (10-19 years) = world's largest adolescent population;\nAFHC (Adolescent Friendly Health Clinic) - 1 day/week at PHC;\nPeer Educator: 1 trained adolescent per 50 adolescents in community;\nWIFS: Weekly 1 IFA tablet (100mg elemental iron + 500 µg folic acid) on fixed day (usually Friday);\nAlbendazole 400mg twice yearly (deworming);\nSABLA scheme merged into RKSK (nutrition component);\nMenstrual Hygiene Scheme (MHS) — free sanitary napkins to rural adolescent girls (10-19yr) at Re.1 per pack"], ["SCHEMES FOR ADOLESCENT GIRLS (SABLA/KISHORI SHAKTI YOJANA)", "2010 (SABLA)\nMoWCD", "Empower adolescent girls (11-18 years) for self-development and holistic development (nutrition, health, life skills, vocational training)", "Improve nutritional and health status of girls 11-18 years;\nEducate and motivate girls for self-care;\nMainstream out-of-school girls into formal/non-formal education;\nBuild capacity for family/child care", "Implemented through ICDS infrastructure (Anganwadi Centres);\nComponents: Nutrition (THR/hot cooked meal), IFA supplementation, health check-up and referral, nutrition and health education, life skills education, guidance on family welfare/childcare;\nOut-of-school girls: non-formal education + vocational training;\nMother's meeting and community mobilisation", "SABLA = Rajiv Gandhi Scheme for Empowerment of Adolescent Girls;\nKishori Shakti Yojana (KSY) merged into SABLA;\nNutrition: 600 kcal, 18-20g protein, micronutrients per day (100 days);\nTarget: 11-14 year school-going girls = 1 IFA tablet/week (WIFS through AWC);\nMenstrual Hygiene promotion;\nLater evolved into Beti Bachao Beti Padhao alignment;\nNow subsumed under POSHAN 2.0 / Mission POSHAN"], # ─── INTEGRATED PROGRAMMES ──────────────────────────────────────────────── ["INTEGRATED CHILD DEVELOPMENT SERVICES (ICDS)", "1975–\nMoWCD", "Comprehensive development of children <6 years and pregnant/lactating women; address nutrition, health, education simultaneously", "Reduce infant mortality, malnutrition, school drop-out;\nImprove nutritional and health status of 0-6 year children;\nPromote school readiness and cognitive development;\nReduce gender inequity", "Delivered through ANGANWADI CENTRES (AWC) — 1 per ~400-800 population;\n6 services:\n(1) Supplementary Nutrition (SNP): THR/hot cooked meal;\n(2) Pre-school Non-formal Education (PSE);\n(3) Nutrition and Health Education (NHED) for mothers;\n(4) Immunisation (through ANM linkage);\n(5) Health Check-up;\n(6) Referral services;\nAnganwadi Worker (AWW) + Anganwadi Helper (AWH)", "Launched Oct 2, 1975 (Gandhi Jayanti);\nTarget: 0-6 years children + pregnant/lactating women;\nSNP: Children 6m-3yr = 500 kcal+12-15g protein; 3-6yr = 500 kcal; PW/LM = 600 kcal;\nPSE for 3-6 years (school readiness);\nNHED: monthly mother meetings at AWC;\nICDS covers ~1.4 million AWCs;\nAnganwadi mini-centre: 1 per 300 population in tribal/hilly areas;\nMission POSHAN 2.0 (2021) replaced and subsumed ICDS + other nutrition schemes;\nSAM referral from AWC to NRC/NHC"], ["RMNCH+A STRATEGY (Reproductive, Maternal, Newborn, Child Health + Adolescent)", "2013–\nMoHFW", "Accelerate reduction in MMR, IMR, NMR and improve nutritional status through life-cycle approach from adolescence to delivery to childhood", "Achieve MDG/SDG targets:\n↓ MMR to <100/lakh LB;\n↓ IMR to <25/1000 LB;\n↓ NMR to <10/1000 LB;\n↓ TFR to 2.1", "Continuum of care across 5 life stages:\nAdolescence → Pregnancy → Birth → Newborn → Infancy/childhood;\nHigh Impact Interventions (HII) approach;\nStrategic focus on high-burden districts;\nName-based tracking via MCTS/RCH portal;\nIntersectoral convergence (MoHFW + MoWCD + MoE);\nSDHP (State Disease Health Plans) integrated into NHM-PIP", "RMNCH+A replaced standalone RCH and NHM child health programmes;\n'+A' = Adolescent health added in 2013;\n7 strategic areas: Contraception, ANC, Safe delivery, Newborn care, Child health, Adolescent health, Gender equity;\nHigh Priority Districts (HPDs): 184 districts with worst health indicators;\nMother and Child Tracking System (MCTS) → now renamed RCH Portal for name-based tracking;\nLast Mile Connectivity: ASHA + Anganwadi + ANM 'triad';\nCommunity-based events: VHND, VHSNC"], # ─── POSTPARTUM / FAMILY PLANNING ───────────────────────────────────────── ["ALL INDIA HOSPITAL POSTPARTUM PROGRAMME", "1970–\nMoHFW", "Provide comprehensive MCH and family planning services to mothers and newborns during and after delivery in hospitals", "Promote postpartum contraception acceptance;\nProvide immediate postpartum IUD insertion;\nIncrease family planning uptake in the critical postpartum period", "Implemented at district and sub-district hospitals;\nServices: IUD insertion (within 48h of delivery or 6-8 weeks postpartum), sterilisation, OCP;\nTraining of medical officers and paramedics;\nIEC activities in hospital maternity wards;\nLinkages with ANM for community-level follow-up", "Launched 1970 as first structured postpartum FP programme;\nPostpartum IUCD (PPIUCD) insertion within 48 hours of delivery — highly effective;\nPPIUCD Insertion rate: national indicator under NHM;\nPPSTERILIZATION: done at time of C-section or within 7 days of delivery;\nMission Parivar Vikas districts: higher compensation for sterilisation (Rs.3500 for tubectomy);\nNFPIS (National FP Indemnity Scheme): death after sterilisation Rs.2 lakh; complications Rs.25,000; failure Rs.30,000"], ["NATIONAL FAMILY WELFARE PROGRAMME", "1952–\nMoHFW", "Achieve population stabilisation through voluntary acceptance of small family norm; improve maternal and child health", "Demographic targets (NPP 2000):\nMMR < 100/lakh LB;\nIMR < 30/1000 LB;\nTFR = 2.1 (replacement level);\nCPR ≥ 65%;\nAchieve NRR = 1", "Cafeteria approach — full range of contraceptive choices;\nASHA, AWW, ANM as frontline workers;\nCompensation scheme for sterilisation;\nIEC/BCC campaigns;\nMission Parivar Vikas (2016) in 146 high-TFR districts;\nFamily planning boxes at sub-centres;\nNew contraceptive choices: Injectable MPA (Antara), centchroman (Chhaya)", "India = world's FIRST country to launch national FP programme (1952);\nMinilaprotomy replaced laparotomy for female sterilisation;\n1977: Ministry renamed 'Family Welfare' (removed 'Planning');\n1977: Voluntary basis — no compulsion after Emergency era;\n'Eligible couple': married woman 15-44 years with husband;\nSterilisation compensation: Rs.2000-3500 depending on state and operation type;\nMission Parivar Vikas: 7 high TFR states (UP, MP, Bihar, Rajasthan, CG, JH, Assam);\nFamily Planning 2020 (FP2020) India commitment"], # ─── SCHOOL HEALTH ───────────────────────────────────────────────────────── ["NATIONAL SCHOOL HEALTH PROGRAMME (NSHP) / RASHTRIYA BALSWASTHYA", "NHM–\nMoH + MoE", "Improve health status of school-age children (6-18 years) through school-based health services and health promotion", "Early detection and treatment of health problems in school children;\nHealth education and promotion;\nNutrition improvement;\nCreate health-literate generation", "School Health Checkups (annual) by RBSK Mobile Health Teams;\nMid-Day Meal (MDM) programme (MoE) for nutrition;\nWater sanitation and hygiene (WASH) in schools;\nHealth and Wellness Ambassadors (HWA) — trained teachers;\nAdolescent health education;\nMenstrual hygiene education and Menstural Hygiene Scheme (MHS)", "School health checkup = annual RBSK MHT visit;\nMid-Day Meal: covers 11.5 crore children in govt schools;\nIron Folic Acid: Weekly IFA supplementation (WIFS) for 10-19yr school-going adolescents;\nAlbendazole (400mg) twice yearly on National Deworming Day (Feb 10 + Aug 10);\nNational Deworming Day (NDD) 2015–: world's largest deworming programme;\nHealth & Wellness Ambassadors: 1 trained teacher/school under Ayushman Bharat-HWC"], # ─── NUTRITION ──────────────────────────────────────────────────────────── ["POSHAN ABHIYAAN / NATIONAL NUTRITION MISSION (NNM)", "2018–\nMoWCD", "Holistic improvement in nutritional outcomes for children (0-6 yr), adolescent girls, pregnant women and lactating mothers", "Reduce stunting (by 2%/year), underweight (by 2%/year), low birth weight (by 2%/year), anaemia in children 6-59m and women 15-49yr (by 3%/year)", "Convergence of 9+ nutrition schemes under one platform;\nICT-based Real-Time Monitoring (Poshan Tracker app for AWWs);\nJan Andolan (mass movement for nutrition);\nSocial and Behaviour Change Communication (SBCC);\nDiversified diet and complementary feeding counselling;\nIntersectoral convergence: MoHFW + MoWCD + MoE + MoRD;\nDelivery through AWC (ICDS platform)", "POSHAN = Prime Minister's Overarching Scheme for Holistic Nourishment;\nTarget beneficiaries: 10 crore+ women and children;\nPoshan Tracker: mobile app for AWWs to record daily activities and monitor beneficiaries;\nSeptember = 'Poshan Maah' (Nutrition Month) - national nutrition awareness month;\nPOSHAN 2.0 (2021) merged ICDS, PMMVY, National Creche Scheme, KSY under Mission POSHAN 2.0;\nSAM management through NRCs integrated under POSHAN 2.0;\nFocus on 1000 golden days (conception to 2 years)"], ["PRADHAN MANTRI MATRU VANDANA YOJANA (PMMVY)", "2017–\nMoWCD", "Provide partial wage compensation to pregnant and lactating women for first live birth, and incentivise good health-seeking behaviour", "Reduce LBW and improve ANC compliance;\nEnsure adequate rest during pregnancy;\nSupport nutritional needs of pregnant/lactating women", "Cash benefit of Rs.5000 in 3 instalments:\n(1) 1st instalment (Rs.1000): Early registration of pregnancy before 150 days;\n(2) 2nd instalment (Rs.2000): Minimum 1 ANC after 6 months of pregnancy;\n(3) 3rd instalment (Rs.2000): Child's birth registered + 1st cycle of immunisation done;\n+Rs.1000 delivered as JSY incentive for institutional delivery", "Applicable to ALL women for FIRST living child only (not subsequent children);\nBeneficiaries: women >19 years of age;\nDirect Benefit Transfer (DBT) to Aadhaar-linked bank account;\n~2.5 crore women benefited since launch;\nExclusion: women employed in central/state govt (already have paid maternity leave);\nTotal cash incentive: Rs.6000 (PMMVY Rs.5000 + JSY Rs.1000) for LPS;\nIntegrated with MCP card and MCTS/RCH portal"], ] # ═══════════════════════════════════════════════════════════════════════════════ # BUILD PDF — LANDSCAPE (all pages) for wide table fit # ═══════════════════════════════════════════════════════════════════════════════ HEADERS = ["Programme/Scheme", "Year/\nMinistry", "Aim", "Goal / Objectives", "Strategies", "Important Points"] FRACS = [0.12, 0.06, 0.11, 0.15, 0.24, 0.32] # sum = 1.0 def build_pdf(): buf = io.BytesIO() doc = SimpleDocTemplate(buf, pagesize=landscape(A4), leftMargin=LM, rightMargin=RM, topMargin=TM, bottomMargin=BM) story = [] # Cover story.append(Paragraph("MCH Schemes & Programmes", TTL)) story.append(Paragraph("Maternal and Child Health — All Major National Programmes | Source: Park's Textbook of Preventive & Social Medicine", SUB)) story.append(hr(TEAL, 1.5)) story.append(Spacer(1, 0.1*cm)) note_box = Table([[Paragraph( "<b>Coverage:</b> RCH-II · JSY · JSSK · PMSMA · LAQSHYA · SUMAN · Anaemia Mukt Bharat · NRC/SAM · UIP · RBSK · IMNCI/HBNC/SNCU · RKSK · SABLA · ICDS · RMNCH+A · Postpartum Programme · National Family Welfare Programme · School Health · POSHAN Abhiyan · PMMVY", S("nb", fontName="Helvetica", fontSize=7, textColor=colors.black, leading=10)) ]], colWidths=[LAND_UW]) note_box.setStyle(TableStyle([ ("BACKGROUND",(0,0),(-1,-1), LYELL), ("BOX",(0,0),(-1,-1), 0.8, TEAL), ("TOPPADDING",(0,0),(-1,-1),4), ("BOTTOMPADDING",(0,0),(-1,-1),4), ("LEFTPADDING",(0,0),(-1,-1),8), ("RIGHTPADDING",(0,0),(-1,-1),8), ])) story.append(note_box) story.append(Spacer(1, 0.2*cm)) # Section 1: Maternal Health story.append(banner("SECTION 1: MATERNAL HEALTH PROGRAMMES", LAND_UW, NAVY)) story.append(Spacer(1, 0.08*cm)) story.append(make_table(HEADERS, MCH_SCHEMES[0:6], FRACS, LAND_UW, hbg=NAVY, rbgs=[LBLUE, WHITE])) story.append(Spacer(1, 0.2*cm)) story.append(hr(TEAL, 0.5)) story.append(Paragraph("Park's Textbook of Preventive & Social Medicine (26th Ed.) — For educational use | Orris Medical AI", FTR)) # Section 2: Nutrition & Child Health story.append(PageBreak()) story.append(banner("SECTION 2: NUTRITION & CHILD HEALTH PROGRAMMES", LAND_UW, DKGRN)) story.append(Spacer(1, 0.08*cm)) story.append(make_table(HEADERS, MCH_SCHEMES[6:12], FRACS, LAND_UW, hbg=DKGRN, rbgs=[LGREEN, WHITE])) story.append(Spacer(1, 0.2*cm)) # Section 3: Adolescent + Integrated + Family Welfare story.append(banner("SECTION 3: ADOLESCENT HEALTH, INTEGRATED & FAMILY WELFARE PROGRAMMES", LAND_UW, MAROON)) story.append(Spacer(1, 0.08*cm)) story.append(make_table(HEADERS, MCH_SCHEMES[12:], FRACS, LAND_UW, hbg=MAROON, rbgs=[LRED, WHITE])) story.append(Spacer(1, 0.2*cm)) story.append(hr(TEAL, 0.5)) story.append(Paragraph("Park's Textbook of Preventive & Social Medicine (26th Ed.) — For educational use | Orris Medical AI", FTR)) doc.build(story) buf.seek(0) return buf print("Building MCH Schemes PDF...") buf = build_pdf() writer = PdfWriter() reader = PdfReader(buf) for page in reader.pages: writer.add_page(page) OUTPUT = "/tmp/workspace/vitamins-minerals/MCH_Schemes_Programmes.pdf" with open(OUTPUT, "wb") as f: writer.write(f) import os sz = os.path.getsize(OUTPUT)/1024 npg = len(writer.pages) print(f"Done: {OUTPUT} ({sz:.1f} KB, {npg} pages)") PYEOF echo "Script written."
cd /tmp/workspace/vitamins-minerals && python mch_schemes_pdf.py 2>&1
MCH Schemes Programmes
PDF Document · PDF
| Page | Section | Programmes Covered |
|---|---|---|
| 1 | Maternal Health | RCH-II, JSY, JSSK, PMSMA, LAQSHYA, SUMAN |
| 2 | Nutrition & Child Health | Anaemia Mukt Bharat, NRC/SAM, UIP, RBSK, IMNCI/HBNC/SNCU, RKSK |
| 3-4 | Adolescent + Integrated + Family Welfare | SABLA/KSY, ICDS, RMNCH+A, Postpartum Programme, National Family Welfare, School Health, POSHAN Abhiyan, PMMVY |