Thalassemia in pediatrics in detail in memorizing easy way
Sources: Robbins & Kumar Pathologic Basis of Disease; Goldman-Cecil Medicine; Lippincott Biochemistry; Robbins Basic Pathology
"THALASSA = SEA (Greek) โ Mediterranean Sea โ Anemia from missing globin chains โ Unpaired chains precipitate โ Destroy red cells from inside"
| ฮฒ-Thalassemia | ฮฑ-Thalassemia | |
|---|---|---|
| Gene location | Chromosome 11 (1 gene) | Chromosome 16 (2 genes = 4 alleles total) |
| Mutation type | Mainly point mutations | Mainly deletions |
| Unpaired chain | Excess ฮฑ chains precipitate | Excess ฮฒ/ฮณ chains precipitate |
| Result | HbA2 โ, HbF โ | HbH (ฮฒ4) or Hb Bart (ฮณ4) |
| ฮฒ-Thal Minor | ฮฒ-Thal Intermedia | ฮฒ-Thal Major (Cooley Anemia) | |
|---|---|---|---|
| Genotype | ฮฒโบ/ฮฒ OR ฮฒโฐ/ฮฒ (heterozygous) | ฮฒโบ/ฮฒโบ or ฮฒโฐ/ฮฒโบ (variable) | ฮฒโฐ/ฮฒโฐ or ฮฒโบ/ฮฒโฐ (homozygous) |
| Hb level | ~10-12 g/dL (mild โ) | 7-10 g/dL | <7 g/dL |
| Presentation | Usually asymptomatic | Age 2-6 years | <2 years of life |
| Transfusion | Not needed | Usually not needed | Required regularly |
| HbA2 | โ (>3.5%) | Variable | >3.5% |
| HbF | Mildly โ | 10-50% | >50% |
โ ฮฒ-globin synthesis
โ
Excess ฮฑ-chains accumulate (they have nothing to pair with)
โ
ฮฑ-chains precipitate inside RBC precursors โ form INCLUSIONS
โ
Membrane damage โ APOPTOSIS of 70-85% of erythroid precursors
โ
INEFFECTIVE ERYTHROPOIESIS (biggest culprit in ฮฒ-thal major)
โ โ
SEVERE ANEMIA Erythroid hyperplasia
โ โ
Tissue hypoxia Massive marrow expansion
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โ โ
Bone erosion/deformities Extramedullary hematopoiesis
(frontal bossing, (liver, spleen, lymph nodes)
"chipmunk face") โ
Hepatosplenomegaly
| Feature | What you see | Why |
|---|---|---|
| Face | Frontal bossing, prominent cheekbones, "chipmunk face", protrusion of jaws | Marrow expansion erodes facial bones |
| Anemia | Pallor, fatigue, Hb <7 g/dL, microcytic hypochromic | โ HbA synthesis |
| Cardiac | Cardiomegaly, heart failure | Chronic anemia + iron overload in myocardium |
| Enlarged liver & spleen | Massive hepatosplenomegaly | Extramedullary hematopoiesis |
| Bone | Pathological fractures, osteoporosis | Cortical thinning from marrow expansion |
| Overload of iron | Bronze skin, diabetes, hypogonadism | Secondary hemochromatosis |
| Nutritional wasting | Growth retardation, cachexia | Erythroid progenitors "steal" nutrients |
| Endocrine** | Short stature, delayed puberty | Iron deposits in pituitary, gonads |
| Deleted Genes | Name | Clinical Result | Hemoglobin Formed |
|---|---|---|---|
| 1 of 4 | Silent carrier | Completely normal | Normal HbA |
| 2 of 4 | ฮฑ-Thalassemia trait | Mild microcytic anemia only | Near-normal |
| 3 of 4 | Hemoglobin H disease | Moderate-severe hemolytic anemia | HbH (ฮฒโ) - precipitates = Heinz bodies |
| 4 of 4 | Hb Bart's hydrops fetalis | Fetal death / stillbirth | Hb Bart (ฮณโ) - useless for Oโ delivery |


| Test | ฮฒ-Thal Minor | ฮฒ-Thal Major |
|---|---|---|
| Hb | 10-12 g/dL | <7 g/dL |
| MCV | Low (<70 fL) | Very low |
| HbA2 (HPLC) | >3.5% (KEY finding!) | >3.5% |
| HbF | Slightly โ | >50% |
| Serum iron | Normal or โ | โโ (iron overload) |
| Ferritin | Normal | โโโ |
| Reticulocytes | Mildly โ | โโ |
| Letter | Treatment | Details |
|---|---|---|
| Iron chelation | Deferoxamine (IV/SC), Deferasirox (oral), Deferiprone (oral) | Start when ferritin >1000 ฮผg/L or after ~10-20 transfusions |
| Transfusion | Regular every 2-5 weeks | Maintain pre-transfusion Hb >9-10 g/dL to suppress endogenous (ineffective) erythropoiesis |
| Cure | HSCT (Bone marrow transplant) | Best results in pediatric patients with HLA-identical sibling donors; adults have worse outcomes due to advanced iron overload |
| Hydroxyurea | Increases HbF; helps some patients | More effective in sickle cell but used in some thalassemia intermedia cases |
| Gene therapy | Luspatercept, CRISPR/Cas9, lentiviral vectors | Luspatercept approved for adults; CRISPR gene editing now available for ฮฒ-thalassemia and sickle cell disease (2025) |
ฮฒ-THALASSEMIA MAJOR COMPLICATIONS
|
โโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
FROM ANEMIA FROM IRON OVERLOAD
| |
โ Cardiac failure โ Cardiomyopathy (arrhythmia, failure)
โ Growth retardation โ Hepatic fibrosis โ cirrhosis
โ Skeletal deformities โ Diabetes mellitus
โ Recurrent infections โ Hypogonadism (delayed puberty)
โ Extramedullary masses โ Hypothyroidism/hypoparathyroidism
โ Gallstones (bilirubin) โ Osteoporosis
| Parents | Offspring risk |
|---|---|
| Both ฮฒ-thal trait (carriers) | 25% normal, 50% trait, 25% major |
| One ฮฒ-thal major + one normal | 50% trait |
| Both ฮฑ-thal trait (cis/trans) | Variable - depends on cis (--/ฮฑฮฑ) vs trans (-ฮฑ/-ฮฑ) |
| Feature | ฮฑ-Thalassemia | ฮฒ-Thalassemia |
|---|---|---|
| Chromosome | 16 | 11 |
| Mechanism | Deletion | Point mutation |
| No. of alleles | 4 | 2 |
| Worst form | Hb Bart's (hydrops, fatal) | Thal major (Cooley anemia) |
| Abnormal Hb | HbH (ฮฒ4), Hb Bart (ฮณ4) | โHbA2, โHbF |
| Onset | Fetal/neonatal (worst form) | 6-24 months (when HbF โ HbA switch) |
| Common region | SE Asia, Africa | Mediterranean, Middle East, India |
| Parameter | Value |
|---|---|
| HbA2 threshold for ฮฒ-thal trait | >3.5% |
| Hb level to start transfusions | <7 g/dL (or symptomatic) |
| Target pre-transfusion Hb | 9-10 g/dL |
| Transfusion frequency | Every 2-5 weeks |
| Start chelation when ferritin | >1000 ฮผg/L |
| Danger ferritin level | >2500 ฮผg/L |
| HSCT best in | Pediatric patients with HLA-matched sibling |
| Chromosome for ฮฒ-globin | 11 |
| Chromosome for ฮฑ-globin | 16 |
| ฮฑ-globin alleles total | 4 |
Could you please make this as pdf
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/thalassemia-pdf && cat > /tmp/workspace/thalassemia-pdf/build_pdf.py << 'PYEOF' from reportlab.lib.pagesizes import A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import mm, cm from reportlab.platypus import (SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, HRFlowable, PageBreak, KeepTogether) from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont import urllib.request, os OUTPUT = "/tmp/workspace/thalassemia-pdf/Thalassemia_Pediatrics.pdf" # โโ Colour palette โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ RED = colors.HexColor("#C0392B") DARK_RED = colors.HexColor("#922B21") BLUE = colors.HexColor("#1A5276") LIGHT_BLUE= colors.HexColor("#D6EAF8") TEAL = colors.HexColor("#1ABC9C") DARK_TEAL = colors.HexColor("#148F77") YELLOW = colors.HexColor("#FEF9E7") ORANGE = colors.HexColor("#E67E22") PURPLE = colors.HexColor("#6C3483") LIGHT_PURPLE = colors.HexColor("#E8DAEF") GREEN = colors.HexColor("#1E8449") LIGHT_GREEN = colors.HexColor("#D5F5E3") GREY_BG = colors.HexColor("#F2F3F4") DARK_GREY = colors.HexColor("#2C3E50") WHITE = colors.white BLACK = colors.black # โโ Document โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ doc = SimpleDocTemplate( OUTPUT, pagesize=A4, rightMargin=1.5*cm, leftMargin=1.5*cm, topMargin=1.8*cm, bottomMargin=1.8*cm, title="Thalassemia in Pediatrics", author="Orris Medical Assistant" ) W = A4[0] - 3*cm # usable width styles = getSampleStyleSheet() # Custom styles def S(name, **kw): return ParagraphStyle(name, **kw) TITLE_STYLE = S("TITLE_STYLE", fontSize=24, textColor=WHITE, alignment=TA_CENTER, fontName="Helvetica-Bold", spaceAfter=4, leading=28) SUBTITLE_STYLE = S("SUBTITLE_STYLE", fontSize=12, textColor=LIGHT_BLUE, alignment=TA_CENTER, fontName="Helvetica", spaceAfter=2) H1 = S("H1", fontSize=13, textColor=WHITE, fontName="Helvetica-Bold", spaceAfter=4, spaceBefore=6, leading=16) H2 = S("H2", fontSize=11, textColor=DARK_RED, fontName="Helvetica-Bold", spaceAfter=3, spaceBefore=5, leading=14) H3 = S("H3", fontSize=10, textColor=BLUE, fontName="Helvetica-Bold", spaceAfter=2, spaceBefore=4, leading=13) BODY = S("BODY", fontSize=9, textColor=DARK_GREY, fontName="Helvetica", spaceAfter=3, leading=13, alignment=TA_JUSTIFY) BULLET = S("BULLET", fontSize=9, textColor=DARK_GREY, fontName="Helvetica", spaceAfter=2, leading=13, leftIndent=12, bulletIndent=0) HOOK = S("HOOK", fontSize=10, textColor=DARK_GREY, fontName="Helvetica-Oblique", spaceAfter=3, leading=14, alignment=TA_CENTER) SMALL = S("SMALL", fontSize=8, textColor=colors.HexColor("#555555"), fontName="Helvetica", spaceAfter=2, leading=11) TABLE_HEADER = S("TH", fontSize=9, textColor=WHITE, fontName="Helvetica-Bold", alignment=TA_CENTER, leading=11) TABLE_CELL = S("TC", fontSize=8.5, textColor=DARK_GREY, fontName="Helvetica", alignment=TA_LEFT, leading=11) TABLE_CELL_C = S("TCC", fontSize=8.5, textColor=DARK_GREY, fontName="Helvetica", alignment=TA_CENTER, leading=11) MNEMONIC = S("MNEMONIC", fontSize=9, textColor=DARK_GREY, fontName="Helvetica", spaceAfter=2, leading=14, leftIndent=8) def colored_row(cells, bg, style=TABLE_CELL_C): return [Paragraph(c, style) for c in cells] def hr(color=TEAL, thickness=1.5): return HRFlowable(width="100%", thickness=thickness, color=color, spaceAfter=4, spaceBefore=4) def section_header(text, emoji=""): data = [[Paragraph(f"{emoji} {text}", H1)]] t = Table(data, colWidths=[W]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), BLUE), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 10), ("RIGHTPADDING", (0,0), (-1,-1), 8), ("ROUNDEDCORNERS", [4]), ])) return t def callout_box(text, bg=LIGHT_BLUE, border=BLUE): data = [[Paragraph(text, HOOK)]] t = Table(data, colWidths=[W]) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), bg), ("BOX", (0,0), (-1,-1), 1.5, border), ("TOPPADDING", (0,0), (-1,-1), 8), ("BOTTOMPADDING", (0,0), (-1,-1), 8), ("LEFTPADDING", (0,0), (-1,-1), 12), ("RIGHTPADDING", (0,0), (-1,-1), 12), ])) return t def mnemonic_table(title, rows, bg_header=TEAL, bg_alt=LIGHT_GREEN): """rows = list of [letter, meaning, detail]""" header = [Paragraph(h, TABLE_HEADER) for h in title] data = [header] + [[Paragraph(str(c), TABLE_CELL_C) for c in row] for row in rows] col_w = [W*0.06, W*0.30, W*0.64] if len(title)==3 else [W*0.20, W*0.80] t = Table(data, colWidths=col_w, repeatRows=1) style = [ ("BACKGROUND", (0,0), (-1,0), bg_header), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_BG]), ("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#AAAAAA")), ("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#CCCCCC")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"), ("FONTSIZE", (0,1), (0,-1), 9), ] t.setStyle(TableStyle(style)) return t def data_table(headers, rows, col_widths=None, header_bg=BLUE): header_row = [Paragraph(h, TABLE_HEADER) for h in headers] data_rows = [] for row in rows: data_rows.append([Paragraph(str(c), TABLE_CELL_C) for c in row]) all_data = [header_row] + data_rows cw = col_widths or [W/len(headers)]*len(headers) t = Table(all_data, colWidths=cw, repeatRows=1) t.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,0), header_bg), ("TEXTCOLOR", (0,0), (-1,0), WHITE), ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, LIGHT_BLUE]), ("BOX", (0,0), (-1,-1), 0.6, colors.HexColor("#888888")), ("INNERGRID", (0,0), (-1,-1), 0.3, colors.HexColor("#BBBBBB")), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("LEFTPADDING", (0,0), (-1,-1), 5), ("RIGHTPADDING", (0,0), (-1,-1), 5), ("VALIGN", (0,0), (-1,-1), "MIDDLE"), ("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"), ])) return t # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # BUILD STORY # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story = [] # โโ COVER / TITLE BLOCK โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ cover_data = [[ Paragraph("๐ฉธ THALASSEMIA IN PEDIATRICS", TITLE_STYLE), Paragraph("Complete Easy-Memorization Guide", SUBTITLE_STYLE), Paragraph("Pathophysiology ยท Clinical Features ยท Diagnosis ยท Management", SUBTITLE_STYLE), ]] cover = Table([[Paragraph("๐ฉธ THALASSEMIA IN PEDIATRICS", TITLE_STYLE)], [Paragraph("Complete Easy-Memorization Guide", SUBTITLE_STYLE)], [Paragraph("Pathophysiology ยท Clinical Features ยท Diagnosis ยท Management", SUBTITLE_STYLE)]], colWidths=[W]) cover.setStyle(TableStyle([ ("BACKGROUND", (0,0), (-1,-1), DARK_RED), ("TOPPADDING", (0,0), (-1,-1), 12), ("BOTTOMPADDING", (0,0), (-1,-1), 12), ("LEFTPADDING", (0,0), (-1,-1), 14), ("RIGHTPADDING", (0,0), (-1,-1), 14), ("ROUNDEDCORNERS", [6]), ])) story.append(cover) story.append(Spacer(1, 8)) # Hook box story.append(callout_box( '<b>"THALASSA = SEA (Greek) โ Mediterranean โ Anemia from missing globin chains โ ' 'Unpaired chains precipitate โ Destroy RBCs from inside"</b>', bg=YELLOW, border=ORANGE)) story.append(Spacer(1, 6)) # โโ PART 1: BASICS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 1: THE BASICS", "๐")) story.append(Spacer(1, 4)) story.append(Paragraph("<b>Definition:</b> Inherited disorder of <b>reduced globin chain synthesis</b> " "(not abnormal chains โ chain is normal, just made in too small a quantity). " "Endemic in Mediterranean, Middle East, Africa, Indian subcontinent, and SE Asia.", BODY)) story.append(Spacer(1, 4)) story.append(Paragraph('<b>๐ Memory Trick: "16 has 4, 11 has 1"</b>', H3)) story.append(Paragraph("Chromosome <b>16</b> = ฮฑ-globin = <b>4 alleles</b> (2 per chromosome) | " "Chromosome <b>11</b> = ฮฒ-globin = <b>2 alleles</b> (1 gene per chromosome)", BODY)) story.append(Spacer(1, 4)) story.append(data_table( ["Feature", "ฮฒ-Thalassemia", "ฮฑ-Thalassemia"], [ ["Gene location", "Chromosome 11 (1 gene)", "Chromosome 16 (2 genes = 4 alleles)"], ["Mutation type", "Mainly POINT MUTATIONS", "Mainly DELETIONS"], ["Unpaired chain", "Excess ฮฑ-chains precipitate", "Excess ฮฒ/ฮณ-chains precipitate"], ["Region", "Mediterranean, Middle East, India", "SE Asia, Africa"], ["Abnormal Hb", "โHbA2, โHbF", "HbH (ฮฒ4), Hb Bart (ฮณ4)"], ], col_widths=[W*0.22, W*0.39, W*0.39] )) story.append(Spacer(1, 8)) # โโ PART 2: ฮฒ-THALASSEMIA SPECTRUM โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 2: ฮฒ-THALASSEMIA SPECTRUM", "๐")) story.append(Spacer(1, 4)) story.append(callout_box( '<b>MINOR โ INTERMEDIA โ MAJOR = More trouble each step</b>', bg=LIGHT_GREEN, border=GREEN)) story.append(Spacer(1, 4)) story.append(data_table( ["Feature", "ฮฒ-Thal MINOR", "ฮฒ-Thal INTERMEDIA", "ฮฒ-Thal MAJOR (Cooley)"], [ ["Genotype", "ฮฒโบ/ฮฒ or ฮฒโฐ/ฮฒ (heterozygous)", "ฮฒโบ/ฮฒโบ or ฮฒโฐ/ฮฒโบ (variable)", "ฮฒโฐ/ฮฒโฐ or ฮฒโบ/ฮฒโฐ (homozygous)"], ["Hb level", "~10โ12 g/dL (mild โ)", "7โ10 g/dL", "< 7 g/dL"], ["Presentation", "Usually ASYMPTOMATIC", "Age 2โ6 years", "< 2 YEARS of life"], ["Transfusion", "NOT needed", "Usually not needed", "Required every 2โ5 weeks"], ["HbA2", "โ > 3.5% (KEY!)", "Variable < 4%", "> 3.5%"], ["HbF", "Mildly โ", "10โ50%", "> 50%"], ], col_widths=[W*0.18, W*0.24, W*0.27, W*0.31], header_bg=DARK_RED )) story.append(Spacer(1, 6)) story.append(Paragraph("<b>Molecular Mutations โ Mnemonic: \"SPC\"</b>", H3)) story.append(mnemonic_table( ["", "Type", "Detail"], [ ["S", "Splicing mutations", "Most common ฮฒโบ cause; create ectopic splice sites within introns"], ["P", "Promoter mutations", "Reduce transcription 75โ80%; always ฮฒโบ-thalassemia"], ["C", "Chain terminator", "Most common ฮฒโฐ cause; nonsense/frameshift โ zero ฮฒ-globin"], ] )) story.append(Spacer(1, 8)) # โโ PART 3: PATHOPHYSIOLOGY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 3: PATHOPHYSIOLOGY CHAIN REACTION", "๐")) story.append(Spacer(1, 4)) path_data = [ [Paragraph("โ ฮฒ-globin synthesis", TABLE_CELL_C)], [Paragraph("โผ", TABLE_CELL_C)], [Paragraph("Excess ฮฑ-chains accumulate โ precipitate inside RBC precursors", TABLE_CELL_C)], [Paragraph("โผ", TABLE_CELL_C)], [Paragraph("Membrane damage โ APOPTOSIS of 70โ85% erythroid precursors", TABLE_CELL_C)], [Paragraph("โผ", TABLE_CELL_C)], [Paragraph("INEFFECTIVE ERYTHROPOIESIS (biggest culprit in ฮฒ-thal major)", TABLE_HEADER)], ] pt = Table(path_data, colWidths=[W]) pt.setStyle(TableStyle([ ("BACKGROUND", (0,6), (-1,6), RED), ("ROWBACKGROUNDS", (0,0), (-1,5), [GREY_BG, WHITE, GREY_BG, WHITE, GREY_BG, WHITE]), ("BOX", (0,0), (-1,-1), 1, BLUE), ("TOPPADDING", (0,0), (-1,-1), 4), ("BOTTOMPADDING", (0,0), (-1,-1), 4), ("ALIGN", (0,0), (-1,-1), "CENTER"), ])) story.append(pt) story.append(Spacer(1, 6)) story.append(data_table( ["From Ineffective Erythropoiesis", "Effect", "Clinical Result"], [ ["Severe anemia", "Tissue hypoxia", "Pallor, fatigue, cardiac failure"], ["Erythroid hyperplasia", "Marrow expansion", "Bone erosion โ skull deformity"], ["Extramedullary hematopoiesis", "Liver/spleen/nodes expand", "Massive hepatosplenomegaly"], ["โ Erythroferrone โ โ Hepcidin", "โ Gut iron absorption", "Iron overload (hemochromatosis)"], ["Nutrients stolen by erythroid cells", "Other tissues starved", "Growth retardation, cachexia"], ], col_widths=[W*0.30, W*0.32, W*0.38], header_bg=PURPLE )) story.append(Spacer(1, 8)) # โโ PART 4: CLINICAL FEATURES โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 4: CLINICAL FEATURES IN CHILDREN (ฮฒ-Thal Major)", "๐")) story.append(Spacer(1, 4)) story.append(callout_box( '<b>Age of presentation: First year of life</b> โ when HbFโHbA switch occurs ' 'but ฮฒ-chains cannot be made', bg=YELLOW, border=ORANGE)) story.append(Spacer(1, 4)) story.append(Paragraph('<b>Mnemonic: "FACE-BONE"</b>', H3)) story.append(mnemonic_table( ["", "Feature", "Mechanism / Details"], [ ["F", "Facies โ chipmunk face", "Frontal bossing, prominent cheekbones, jaw protrusion from marrow expansion eroding facial bones"], ["A", "Anemia (severe, Hb < 7)", "โ HbA synthesis โ hypochromic microcytic RBCs"], ["C", "Cardiac failure", "Chronic anemia + iron overload in myocardium โ cardiomegaly, arrhythmia"], ["E", "Enlarged liver & spleen", "Extramedullary hematopoiesis"], ["B", "Bone changes", "Pathological fractures, osteoporosis, X-ray: HAIR-ON-END skull"], ["O", "Overload of iron", "Bronze skin, diabetes mellitus, hypogonadism (hemochromatosis)"], ["N", "Nutrition / growth failure", "Erythroid progenitors steal nutrients; severe cachexia"], ["E", "Endocrine problems", "Short stature, delayed puberty, hypothyroidism (iron in glands)"], ], bg_header=DARK_RED )) story.append(Spacer(1, 8)) # โโ PART 5: ฮฑ-THALASSEMIA โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 5: ฮฑ-THALASSEMIA โ THE 4-GENE STORY", "๐")) story.append(Spacer(1, 4)) story.append(callout_box( '<b>4 ฮฑ-globin genes total (2 on each Chr 16). Count the deleted genes โ know the severity.</b>', bg=LIGHT_PURPLE, border=PURPLE)) story.append(Spacer(1, 4)) story.append(data_table( ["Deleted Genes", "Name", "Clinical Result", "Hemoglobin Formed"], [ ["1 of 4", "Silent carrier", "Completely NORMAL", "Normal HbA"], ["2 of 4", "ฮฑ-Thal TRAIT", "Mild microcytic anemia only", "Near-normal"], ["3 of 4", "HbH Disease", "Moderate-severe hemolytic anemia", "HbH (ฮฒ4) โ Heinz bodies"], ["4 of 4", "Hb Bart's HYDROPS", "Fetal death / stillbirth", "Hb Bart (ฮณ4) โ useless for Oโ"], ], col_widths=[W*0.16, W*0.22, W*0.32, W*0.30], header_bg=PURPLE )) story.append(Spacer(1, 4)) story.append(callout_box( '<b>Why Hb Bart is lethal:</b> ฮณ4 has extreme Oโ affinity โ won\'t release Oโ to tissues โ ' 'severe intrauterine hypoxia โ generalized edema (hydrops) โ fetal death', bg=LIGHT_PURPLE, border=PURPLE)) story.append(Spacer(1, 6)) story.append(Paragraph("<b>โ ๏ธ Cis vs Trans ฮฑ-thal trait:</b> Cis deletion (--/ฮฑฮฑ) is MORE dangerous " "for offspring โ two cis carriers can produce a child with all 4 deleted genes (Hb Bart's). " "Trans (-ฮฑ/-ฮฑ) cannot produce Hb Bart's offspring.", BODY)) story.append(Spacer(1, 8)) # โโ PART 6: DIAGNOSIS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 6: DIAGNOSIS & LAB WORK", "๐")) story.append(Spacer(1, 4)) story.append(Paragraph('<b>Blood Film Mnemonic: "HINT"</b>', H3)) story.append(mnemonic_table( ["", "Finding"], [ ["H", "Hypochromic microcytic RBCs"], ["I", "Inclusion bodies (Heinz bodies in HbH; precipitated globin chains)"], ["N", "Nucleated RBCs (released from expanded marrow)"], ["T", "Target cells (codocytes)"], ], bg_header=TEAL )) story.append(Spacer(1, 5)) story.append(Paragraph("<b>Key Lab Values โ ฮฒ-Thalassemia</b>", H3)) story.append(data_table( ["Test", "ฮฒ-Thal Minor", "ฮฒ-Thal Intermedia", "ฮฒ-Thal Major"], [ ["Hb (g/dL)", "10โ12", "7โ10", "< 7"], ["MCV (fL)", "Low (< 70)", "Very low", "Very low"], ["HbA2 (HPLC)", "> 3.5% โญ", "< 4% (variable)", "> 3.5%"], ["HbF", "Slightly โ", "10โ50%", "> 50% โญ"], ["Serum Ferritin", "Normal", "โ (variable)", "โโโ"], ["Reticulocytes", "Mildly โ", "โโ", "โโ"], ], col_widths=[W*0.24, W*0.22, W*0.27, W*0.27], header_bg=DARK_TEAL )) story.append(Spacer(1, 4)) story.append(callout_box( '<b>Gold Standard: Hemoglobin HPLC / Electrophoresis</b><br/>' 'HbA2 > 3.5% = ฮฒ-thal trait/major | Hb Bart (ฮณ4) on newborn screen = ฮฑ-thalassemia | ' 'Genetic testing for molecular confirmation', bg=LIGHT_BLUE, border=BLUE)) story.append(Spacer(1, 8)) # โโ PART 7: MANAGEMENT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 7: MANAGEMENT โ Mnemonic \"ITCH-G\"", "๐")) story.append(Spacer(1, 4)) story.append(mnemonic_table( ["", "Treatment", "Details"], [ ["I", "Iron Chelation", "Start when ferritin > 1000 ฮผg/L or after ~20 transfusions\n" "โข Deferoxamine (IV/SC, 8โ12 h nightly)\n" "โข Deferasirox = oral, once daily (now first-line)\n" "โข Deferiprone = oral, 3ร/day; best for cardiac iron; monitor for agranulocytosis"], ["T", "Transfusion", "Regular every 2โ5 weeks\n" "Target pre-transfusion Hb: 9โ10 g/dL\n" "(Suppresses ineffective endogenous erythropoiesis)"], ["C", "Cure โ HSCT", "Bone marrow/stem cell transplant\n" "BEST in pediatric patients with HLA-identical sibling\n" "Adults have worse outcomes due to advanced iron overload"], ["H", "HbF Stimulation / Hydroxyurea", "Increases HbF; helps some thalassemia intermedia patients\n" "Also luspatercept (recombinant fusion protein) โ reduces transfusion burden โฅ33%"), ["G", "Gene Therapy (Emerging)", "CRISPR/Cas9 genome editing โ approved for ฮฒ-thal & sickle cell (2025)\n" "Lentiviral vector gene therapy\n" "Multiple ongoing clinical trials"], ], bg_header=GREEN )) story.append(Spacer(1, 6)) story.append(Paragraph("<b>Iron Overload Monitoring</b>", H3)) story.append(data_table( ["Method", "Use", "Danger Threshold"], [ ["Serum Ferritin", "Routine monitoring", "> 2500 ฮผg/L = high risk mortality"], ["MRI R2* (liver)", "Gold standard for liver iron concentration", "> 15 mg/g dry weight = high risk"], ["MRI T2* (heart)", "MOST IMPORTANT โ cardiac iron", "Abnormal < 20 ms โ cardiomyopathy risk"], ["Liver biopsy", "Definitive but invasive", "> 7 mg/g dry weight (NTDT)"], ], col_widths=[W*0.25, W*0.40, W*0.35], header_bg=DARK_RED )) story.append(Spacer(1, 8)) # โโ PART 8: COMPLICATIONS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 8: COMPLICATIONS IN PEDIATRIC PATIENTS", "๐")) story.append(Spacer(1, 4)) comp_data = [ [Paragraph("<b>FROM ANEMIA</b>", TABLE_HEADER), Paragraph("<b>FROM IRON OVERLOAD</b>", TABLE_HEADER)], [Paragraph("โข Cardiac failure (chronic anemia)\nโข Growth retardation\nโข Skeletal deformities (hair-on-end skull)\nโข Recurrent infections\nโข Extramedullary masses\nโข Gallstones (bilirubin โ)", BODY), Paragraph("โข Cardiomyopathy / arrhythmia โ #1 cause of death\nโข Hepatic fibrosis โ cirrhosis\nโข Diabetes mellitus\nโข Hypogonadism (delayed puberty)\nโข Hypothyroidism / hypoparathyroidism\nโข Osteoporosis", BODY)], ] ct = Table(comp_data, colWidths=[W*0.50, W*0.50]) ct.setStyle(TableStyle([ ("BACKGROUND", (0,0), (0,0), RED), ("BACKGROUND", (1,0), (1,0), PURPLE), ("BOX", (0,0), (-1,-1), 1, colors.HexColor("#888888")), ("INNERGRID", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")), ("TOPPADDING", (0,0), (-1,-1), 6), ("BOTTOMPADDING", (0,0), (-1,-1), 6), ("LEFTPADDING", (0,0), (-1,-1), 8), ("RIGHTPADDING", (0,0), (-1,-1), 8), ("VALIGN", (0,0), (-1,-1), "TOP"), ])) story.append(ct) story.append(Spacer(1, 8)) # โโ PART 9: GENETICS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(section_header("PART 9: GENETICS & INHERITANCE", "๐")) story.append(Spacer(1, 4)) story.append(callout_box( '<b>Inheritance pattern: Autosomal CODOMINANT</b>', bg=LIGHT_GREEN, border=GREEN)) story.append(Spacer(1, 4)) story.append(data_table( ["Parents", "Offspring Risk"], [ ["Both ฮฒ-thal TRAIT (carriers)", "25% normal | 50% trait | 25% MAJOR"], ["One ฮฒ-thal major ร one normal", "50% trait, 50% normal"], ["Both ฮฑ-thal cis (--/ฮฑฮฑ) carriers", "25% Hb Bart's hydrops (4 deleted) โ DANGEROUS"], ["Both ฮฑ-thal trans (-ฮฑ/-ฮฑ) carriers", "25% ฮฑ-thal trait only โ cannot produce Hb Bart's"], ], col_widths=[W*0.45, W*0.55], header_bg=GREEN )) story.append(Spacer(1, 4)) story.append(Paragraph("<b>Prenatal Diagnosis:</b> CVS at 10โ12 weeks | Amniocentesis at 16โ18 weeks | " "Genetic testing to prevent homozygous ฮฒ-thal major and Hb Bart's hydrops", BODY)) story.append(Spacer(1, 8)) # โโ PART 10: HIGH-YIELD EXAM SUMMARY โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ story.append(PageBreak()) story.append(section_header("PART 10: HIGH-YIELD EXAM SUMMARY", "๐ฏ")) story.append(Spacer(1, 4)) story.append(Paragraph('<b>THE THALASSEMIA MNEMONIC (ฮฒ-Thal Major Features)</b>', H2)) story.append(mnemonic_table( ["", "Letter Stands For", "Feature"], [ ["T", "Transfusions needed regularly", "Every 2โ5 weeks; maintain Hb 9โ10 g/dL"], ["H", "Hepato-Splenomegaly", "From extramedullary hematopoiesis"], ["A", "Anemia (severe)", "Hb < 7 g/dL; microcytic hypochromic"], ["L", "Low MCV", "Microcytic; MCV < 70 fL"], ["A", "Abnormal Facies", "Chipmunk face, frontal bossing, hair-on-end skull"], ["S", "Skeletal changes", "Pathological fractures, osteoporosis"], ["S", "Secondary hemochromatosis", "Iron overload from transfusions + gut absorption"], ["E", "Endocrine problems", "DM, hypogonadism, hypothyroidism, short stature"], ["M", "Marrow expansion", "Ineffective erythropoiesis โ 70โ85% RBC precursors die"], ["I", "Iron chelation required", "Deferasirox (oral) or Deferoxamine (SC)"], ["A", "Autosomal codominant", "Both alleles expressed; heterozygotes show trait"], ], bg_header=DARK_RED )) story.append(Spacer(1, 8)) story.append(Paragraph('<b>Quick Comparison Card: ฮฑ vs ฮฒ Thalassemia</b>', H2)) story.append(data_table( ["Feature", "ฮฑ-Thalassemia", "ฮฒ-Thalassemia"], [ ["Chromosome", "16", "11"], ["Mechanism", "Deletion", "Point mutation"], ["No. of alleles", "4", "2"], ["Worst form", "Hb Bart's (hydrops, fatal)", "Thal Major (Cooley anemia)"], ["Abnormal Hb", "HbH (ฮฒ4), Hb Bart (ฮณ4)", "โHbA2 > 3.5%, โHbF"], ["Onset (worst form)", "Fetal / neonatal", "6โ24 months (after HbFโHbA switch)"], ["Common region", "SE Asia, Africa", "Mediterranean, Middle East, India"], ], col_widths=[W*0.25, W*0.375, W*0.375], header_bg=DARK_TEAL )) story.append(Spacer(1, 6)) story.append(callout_box( '<b>Why onset at 6โ24 months?</b><br/>' 'At birth, infants have HbF (ฮฑ2ฮณ2) which works normally. Around 6 months, the ฮณโฮฒ switch occurs. ' 'In ฮฒ-thal major, the child cannot make ฮฒ-chains, so HbA (ฮฑ2ฮฒ2) cannot form โ ' 'severe anemia becomes apparent AFTER the switch is complete (6โ24 months of age).', bg=YELLOW, border=ORANGE)) story.append(Spacer(1, 6)) story.append(Paragraph('<b>Key Numbers to Remember</b>', H2)) story.append(data_table( ["Parameter", "Value"], [ ["HbA2 threshold for ฮฒ-thal trait", "> 3.5%"], ["Hb level to start transfusions", "< 7 g/dL (or symptomatic)"], ["Target pre-transfusion Hb", "9โ10 g/dL"], ["Transfusion frequency", "Every 2โ5 weeks"], ["Start chelation when ferritin", "> 1000 ฮผg/L"], ["Danger ferritin level", "> 2500 ฮผg/L"], ["Danger liver iron (MRI)", "> 15 mg/g dry weight"], ["HSCT best results in", "Pediatric patients with HLA-matched sibling"], ["Chromosome for ฮฒ-globin", "11"], ["Chromosome for ฮฑ-globin", "16"], ["ฮฑ-globin alleles total", "4 (2 per chromosome 16)"], ["ฮฑ-globin alleles for Hb Bart's (hydrops)", "All 4 deleted"], ], col_widths=[W*0.60, W*0.40], header_bg=BLUE )) story.append(Spacer(1, 8)) story.append(hr(color=DARK_GREY, thickness=0.8)) story.append(Paragraph( "<i>Sources: Robbins & Kumar Pathologic Basis of Disease; Goldman-Cecil Medicine; " "Lippincott Illustrated Reviews Biochemistry; Robbins Basic Pathology | " "Compiled by Orris Medical Assistant ยท July 2026</i>", SMALL)) # โโ BUILD โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ doc.build(story) print(f"PDF created: {OUTPUT}") PYEOF echo "Script written"
cd /tmp/workspace/thalassemia-pdf && python build_pdf.py 2>&1
~/thalassemia-pdf/build_pdf.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/thalassemia-pdf/build_pdf.py'
cd /tmp/workspace/thalassemia-pdf && python build_pdf.py 2>&1
ls -lh /tmp/workspace/thalassemia-pdf/Thalassemia_Pediatrics.pdf
Thalassemia Pediatrics
PDF Document ยท PDF
Explain why orris is asking subscription cost in my friends phone whereas I m cble to use it for free