Define massive blood transfusion .describe various indication,risk of blood transfusion of different blood products md anaesthesia 30 marks answer
| Clinical Situation | Transfusion Threshold |
|---|---|
| Symptomatic anemia (tachycardia, hypotension, angina) | Hb < 7-8 g/dL generally |
| Active hemorrhage with hemodynamic instability | Clinical + Hb |
| Pre-operative optimization | Hb < 8 g/dL in cardiac/elderly patients |
| Perioperative ongoing blood loss | As guided by clinical assessment |
| Massive hemorrhage/trauma | Part of damage control resuscitation |
| Indication | Platelet Threshold |
|---|---|
| Prophylactic (spontaneous hemorrhage risk) | < 10,000-20,000 × 10⁹/L |
| Before surgery or invasive procedures | < 50,000 × 10⁹/L |
| Active bleeding with thrombocytopenia | Clinical + count guided |
| Dysfunctional platelets (aspirin, uremia) | Regardless of count |
| Massive transfusion (dilutional) | Part of 1:1:1 protocol |

| Virus | Risk per Transfusion | Notes |
|---|---|---|
| Hepatitis B | ~1:200,000 | Most cases anicteric |
| Hepatitis C | ~1:1,900,000 | Most progress to chronic hepatitis; 20% develop cirrhosis |
| HIV-1 / HIV-2 | ~1:1,900,000 | All blood tested for anti-HIV antibodies |
| CMV | Rare | Severe in immunocompromised; leukoreduced blood equivalent to CMV-negative |
| HTLV-1/2 | Very rare | Leukemia/lymphoma viruses; HTLV-1 associated with myelopathy |
| West Nile Virus | Very rare | Can cause encephalitis; 10% fatality |
| Parameter | Target |
|---|---|
| Hemoglobin/Hematocrit | Hb > 7-8 g/dL (individualized) |
| Platelet count | > 50,000-100,000 × 10⁹/L |
| INR/PT | < 1.5 |
| Fibrinogen | > 100 mg/dL |
| Ionized calcium | ≥ 0.9 mmol/L |
| Serum potassium | 3.5-5.0 mEq/L |
| Core temperature | > 36°C |
| Urine output | > 0.5 mL/kg/hr |
| Arterial blood gas | Correct acidosis |
| TEG/ROTEM | Interpret clot strength and fibrinolysis |
| Product | Contents | Volume | Indication | Key Risk |
|---|---|---|---|---|
| PRBCs | RBCs, Hct ~70% | 250-350 mL | Anemia, hemorrhage | Hemolytic reaction, infection |
| FFP | All clotting factors | 200-250 mL | Coagulopathy, warfarin reversal | TRALI, infection, TACO |
| Platelets | Platelets, plasma | 50-70 mL per unit | Thrombocytopenia, dysfunctional Plts | Bacterial contamination (highest), TRALI |
| Cryoprecipitate | FVIII, vWF, fibrinogen, FXIII | ~15-20 mL | Hemophilia A, hypofibrinogenemia, vWD | TRALI, infection |
| Granulocytes | WBCs | ~200 mL | Neutropenic sepsis unresponsive to Abx | GVHD, pulmonary damage |
Make a flashcard presentation on massive transfusion complications and management
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "created"
mkdir -p /tmp/workspace/mbt-flashcards && cat > /tmp/workspace/mbt-flashcards/build.py << 'PYEOF' from pptx import Presentation from pptx.util import Inches, Pt, Emu from pptx.dml.color import RGBColor from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.util import Inches, Pt import copy prs = Presentation() prs.slide_width = Inches(13.333) prs.slide_height = Inches(7.5) blank_layout = prs.slide_layouts[6] # Color palette COL_DARK_BLUE = RGBColor(0x0D, 0x2B, 0x55) # deep navy - card back header COL_MED_BLUE = RGBColor(0x17, 0x5F, 0xA6) # medium blue COL_ACCENT = RGBColor(0xE8, 0x4E, 0x10) # orange accent COL_GREEN = RGBColor(0x1A, 0x7A, 0x4A) # management green COL_YELLOW_BG = RGBColor(0xFF, 0xF3, 0xCD) # soft yellow bg COL_WHITE = RGBColor(0xFF, 0xFF, 0xFF) COL_LIGHT_GRAY = RGBColor(0xF2, 0xF4, 0xF8) COL_TEXT_DARK = RGBColor(0x1A, 0x1A, 0x2E) COL_RED = RGBColor(0xC0, 0x19, 0x19) COL_TEAL = RGBColor(0x00, 0x7A, 0x87) def add_rect(slide, x, y, w, h, fill_color, line_color=None, line_width=None): shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h)) shape.fill.solid() shape.fill.fore_color.rgb = fill_color if line_color: shape.line.color.rgb = line_color if line_width: shape.line.width = Pt(line_width) else: shape.line.fill.background() return shape def add_text(slide, text, x, y, w, h, font_size=18, bold=False, color=COL_TEXT_DARK, align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.TOP, wrap=True, italic=False): tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf = tb.text_frame tf.word_wrap = wrap tf.vertical_anchor = v_anchor tf.margin_left = Pt(4) tf.margin_right = Pt(4) tf.margin_top = Pt(2) tf.margin_bottom = Pt(2) p = tf.paragraphs[0] p.alignment = align run = p.add_run() run.text = text run.font.size = Pt(font_size) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color run.font.name = "Calibri" return tb def add_multiline_text(slide, lines, x, y, w, h, font_size=16, bold=False, color=COL_TEXT_DARK, align=PP_ALIGN.LEFT, v_anchor=MSO_ANCHOR.TOP, line_spacing=1.2, italic=False): from pptx.oxml.ns import qn from lxml import etree tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf = tb.text_frame tf.word_wrap = True tf.vertical_anchor = v_anchor tf.margin_left = Pt(6) tf.margin_right = Pt(6) tf.margin_top = Pt(4) tf.margin_bottom = Pt(4) for i, line in enumerate(lines): if i == 0: p = tf.paragraphs[0] else: p = tf.add_paragraph() p.alignment = align run = p.add_run() run.text = line run.font.size = Pt(font_size) run.font.bold = bold run.font.italic = italic run.font.color.rgb = color run.font.name = "Calibri" return tb # ───────────────────────────────────────────────────────────────────── # SLIDE 1: Title / Cover # ───────────────────────────────────────────────────────────────────── slide = prs.slides.add_slide(blank_layout) # Background add_rect(slide, 0, 0, 13.333, 7.5, COL_DARK_BLUE) # Accent stripe add_rect(slide, 0, 5.8, 13.333, 0.18, COL_ACCENT) # Card icon strip add_rect(slide, 1.2, 1.2, 10.9, 4.8, RGBColor(0x1A, 0x3F, 0x70)) add_text(slide, "🩸 MASSIVE BLOOD TRANSFUSION", 1.7, 1.7, 10, 1.2, font_size=38, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER) add_text(slide, "COMPLICATIONS & MANAGEMENT", 1.7, 2.85, 10, 0.9, font_size=28, bold=True, color=COL_ACCENT, align=PP_ALIGN.CENTER) add_text(slide, "Flashcard Study Deck · MD Anaesthesia", 1.7, 3.85, 10, 0.6, font_size=17, bold=False, color=RGBColor(0xAA, 0xCC, 0xFF), align=PP_ALIGN.CENTER, italic=True) add_text(slide, "14 High-Yield Cards", 1.7, 4.5, 10, 0.5, font_size=15, color=RGBColor(0x88, 0xBB, 0xFF), align=PP_ALIGN.CENTER) add_text(slide, "Morgan & Mikhail · Tintinalli · Miller's Anesthesia", 0, 6.15, 13.333, 0.5, font_size=12, color=RGBColor(0x88, 0x99, 0xAA), align=PP_ALIGN.CENTER, italic=True) # ───────────────────────────────────────────────────────────────────── # Helper: build a standard flashcard (Q front + A back on two slides) # ───────────────────────────────────────────────────────────────────── def make_card(num, q_label, question_lines, answer_heading, answer_lines, q_bg=COL_MED_BLUE, a_bg=COL_GREEN, tag_color=COL_ACCENT, tag="COMPLICATION"): # ── FRONT (Question) ───────────────────────────────────────────── slide_q = prs.slides.add_slide(blank_layout) add_rect(slide_q, 0, 0, 13.333, 7.5, q_bg) add_rect(slide_q, 0, 0, 13.333, 1.1, COL_DARK_BLUE) # Card number badge add_rect(slide_q, 0.25, 0.18, 0.7, 0.7, COL_ACCENT) add_text(slide_q, str(num), 0.25, 0.18, 0.7, 0.72, font_size=22, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) # Tag label add_rect(slide_q, 1.1, 0.22, 2.5, 0.6, tag_color) add_text(slide_q, tag, 1.1, 0.22, 2.5, 0.62, font_size=13, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) add_text(slide_q, "Q:", 0.35, 1.3, 0.6, 0.5, font_size=22, bold=True, color=COL_WHITE) add_text(slide_q, q_label, 0.95, 1.3, 12.1, 0.6, font_size=19, bold=True, color=COL_WHITE, italic=True) # White question card add_rect(slide_q, 0.5, 2.05, 12.3, 4.85, COL_WHITE, line_color=RGBColor(0xCC,0xCC,0xCC), line_width=0.5) add_multiline_text(slide_q, question_lines, 0.7, 2.2, 11.9, 4.5, font_size=20, color=COL_TEXT_DARK, v_anchor=MSO_ANCHOR.MIDDLE, align=PP_ALIGN.LEFT) add_text(slide_q, "▶ Flip for Answer", 9.5, 6.98, 3.5, 0.4, font_size=11, color=RGBColor(0xCC,0xCC,0xFF), italic=True, align=PP_ALIGN.RIGHT) # ── BACK (Answer) ───────────────────────────────────────────── slide_a = prs.slides.add_slide(blank_layout) add_rect(slide_a, 0, 0, 13.333, 7.5, COL_LIGHT_GRAY) add_rect(slide_a, 0, 0, 13.333, 1.1, a_bg) add_rect(slide_a, 0.25, 0.18, 0.7, 0.7, COL_ACCENT) add_text(slide_a, str(num), 0.25, 0.18, 0.7, 0.72, font_size=22, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) add_rect(slide_a, 1.1, 0.22, 1.2, 0.6, a_bg) add_text(slide_a, "ANS", 1.1, 0.22, 1.2, 0.62, font_size=13, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) add_text(slide_a, answer_heading, 0.5, 1.25, 12.5, 0.7, font_size=20, bold=True, color=a_bg) # Answer box add_rect(slide_a, 0.4, 2.05, 12.5, 4.95, COL_WHITE, line_color=a_bg, line_width=1.5) add_multiline_text(slide_a, answer_lines, 0.6, 2.15, 12.1, 4.7, font_size=16, color=COL_TEXT_DARK, v_anchor=MSO_ANCHOR.TOP, align=PP_ALIGN.LEFT) # ───────────────────────────────────────────────────────────────────── # CARD DATA # ───────────────────────────────────────────────────────────────────── cards = [ # 1 dict(num=1, q_label="Definition of Massive Blood Transfusion", question_lines=[ "Define Massive Blood Transfusion (MBT).", "", "• Which is the most widely accepted definition?", "• What are the alternative time-based definitions?", ], answer_heading="Definition of Massive Blood Transfusion", answer_lines=[ "✦ Classic (most accepted): > 10 units PRBCs within 24 hours", " (= replacement of entire circulating blood volume ~70 mL/kg)", "", "✦ Alternative definitions:", " • Replace entire EBV within 24 h (EBV = 10–20 units in adults)", " • > 50% of EBV in 4 hours", " • ≥ 4 units PRBCs in 1 hour with ongoing uncontrolled hemorrhage", " • One-half of patient's EBV in 1 hour (Morgan & Mikhail)", "", "✦ Epidemiology: ~10% military trauma; 3–5% civilian trauma patients", ], tag="DEFINITION", q_bg=COL_DARK_BLUE, a_bg=COL_MED_BLUE), # 2 dict(num=2, q_label="The Lethal Triad of Massive Hemorrhage", question_lines=[ "Name the 'Lethal Triad' in massive hemorrhage.", "", "• Why is each component dangerous?", "• How do they interact with each other?", ], answer_heading="Lethal Triad (Triad of Death)", answer_lines=[ "1. HYPOTHERMIA (<35°C)", " → Impairs enzymatic coagulation cascade; reduces platelet function", "", "2. ACIDOSIS (pH <7.2, base deficit >6)", " → Inhibits coagulation factors; impairs cardiac contractility", "", "3. COAGULOPATHY", " → Dilutional + consumptive; worsens bleeding", "", "⚠ These three interact SYNERGISTICALLY — each worsens the others.", " Goal of damage control resuscitation (DCR): break this cycle EARLY.", ], tag="KEY CONCEPT", q_bg=RGBColor(0x5C,0x10,0x10), a_bg=COL_RED), # 3 dict(num=3, q_label="Coagulopathy in Massive Transfusion", question_lines=[ "What are the causes of coagulopathy in massive blood transfusion?", "", "• Most common cause of non-surgical bleeding?", "• How is it monitored and managed?", ], answer_heading="Coagulopathy", answer_lines=[ "CAUSES:", " 1. Dilutional thrombocytopenia ← MOST COMMON cause of non-surgical bleeding", " 2. Dilution of clotting factors (especially V & VIII)", " 3. Consumptive coagulopathy (DIC)", " 4. Hypofibrinogenemia", " 5. Hypothermia + Acidosis → further impair coagulation", "", "MONITORING: TEG / ROTEM / Sonoclot (preferred over routine PT/aPTT)", " Targets: Platelets >50,000–100,000; INR <1.5; Fibrinogen >100 mg/dL", "", "MANAGEMENT:", " • 1:1:1 ratio — FFP : Platelets : PRBCs (Damage Control Resuscitation)", " • Cryoprecipitate when fibrinogen <100 mg/dL (2 × 5-pack)", " • rFVIIa (90 mcg/kg) for persistent refractory coagulopathy", ], tag="COMPLICATION", q_bg=COL_MED_BLUE, a_bg=COL_MED_BLUE), # 4 dict(num=4, q_label="Citrate Toxicity & Hypocalcemia", question_lines=[ "Explain citrate toxicity in massive blood transfusion.", "", "• Which patients are at highest risk?", "• What is the management?", ], answer_heading="Citrate Toxicity / Hypocalcemia", answer_lines=[ "MECHANISM: Citrate preservative (in PRBCs + FFP) chelates ionized Ca²⁺", "", "RISK THRESHOLD (normal patients): transfusion rate >1 unit/5 minutes", "", "HIGH-RISK GROUPS:", " • Liver disease / dysfunction (impaired citrate metabolism)", " • Hypothermia (slows hepatic metabolism)", " • Neonates / small children", " • Hypoparathyroidism / Vitamin D dysfunction", "", "CLINICAL EFFECTS: Cardiac depression ↓ contractility, arrhythmias, tetany", "", "MANAGEMENT:", " • Monitor ionized Ca²⁺ — TARGET ≥ 0.9 mmol/L", " • CaCl₂ preferred (works without hepatic metabolism)", " vs. Ca-gluconate (requires functioning liver)", ], tag="COMPLICATION", q_bg=COL_MED_BLUE, a_bg=COL_MED_BLUE), # 5 dict(num=5, q_label="Hypothermia in Massive Transfusion", question_lines=[ "Describe hypothermia as a complication of massive blood transfusion.", "", "• Why is it dangerous?", "• What is the prevention and management?", ], answer_heading="Hypothermia", answer_lines=[ "CAUSE: Stored blood (PRBCs) kept at 1–6°C; room-temp crystalloids", "", "DANGERS:", " • Ventricular arrhythmias → VF at temperatures ~30°C", " • Worsens coagulopathy (impairs enzymatic coagulation cascade)", " • Impairs platelet aggregation", " • Shifts oxyhemoglobin curve LEFT (↑ affinity, ↓ O₂ release)", " • Cardiac resuscitation hampered by hypothermia", "", "KEY PRINCIPLE:", " 'Massive blood transfusion is an ABSOLUTE indication", " for warming ALL blood products to 37°C' — Morgan & Mikhail", "", "PREVENTION/MANAGEMENT:", " • Rapid infusion device with heat exchanger (Level 1, Belmont)", " • Active warming blankets, warm IV fluids", " • Target core temperature >36°C", ], tag="COMPLICATION", q_bg=COL_MED_BLUE, a_bg=COL_MED_BLUE), # 6 dict(num=6, q_label="Acid–Base Disturbance", question_lines=[ "Describe the acid–base changes in massive blood transfusion.", "", "• Is stored blood acidic or alkaline?", "• What is the usual clinical outcome?", ], answer_heading="Acid–Base Disturbance", answer_lines=[ "STORED BLOOD IS ACIDIC:", " • Citric acid anticoagulant", " • Accumulated CO₂ & lactic acid from red cell metabolism", "", "CLINICAL OUTCOME (normal liver):", " • Metabolic acidosis from transfusion is UNCOMMON", " • Citric acid + lactic acid are rapidly metabolized → HCO₃⁻", "", "IN MASSIVE TRANSFUSION, acid-base depends on:", " 1. Tissue perfusion (most important factor)", " 2. Rate of blood transfusion", " 3. Citrate metabolism capacity", "", "COMMON SEQUENCE:", " Early: metabolic ACIDOSIS (tissue hypoperfusion + citrate)", " After resuscitation: metabolic ALKALOSIS", " (citrate + lactate converted to HCO₃⁻ by liver)", ], tag="COMPLICATION", q_bg=COL_MED_BLUE, a_bg=COL_MED_BLUE), # 7 dict(num=7, q_label="Hyperkalemia in Massive Transfusion", question_lines=[ "Explain the risk of hyperkalemia in massive blood transfusion.", "", "• What is the mechanism?", "• Who is most at risk?", ], answer_heading="Hyperkalemia", answer_lines=[ "MECHANISM:", " • K⁺ leaks out of RBCs during storage (rises over shelf life)", " • Each unit contributes typically <4 mEq K⁺ extracellularly", " • In RAPID massive transfusion → cumulative hyperkalemia", "", "ADDITIONAL FACTORS:", " • Acidosis shifts K⁺ out of cells (each 0.1 ↓ pH → ~0.6 mEq/L ↑ K⁺)", " • Tissue injury releases intracellular K⁺", " • Use of older stored blood (higher K⁺ concentration)", "", "HIGHEST RISK:", " • Neonates and small children", " • Pre-existing renal failure", " • Rapid transfusion rate", "", "MANAGEMENT:", " • Monitor serum K⁺ regularly", " • Use fresh blood (<5 days old) in neonates", " • Washed PRBCs to reduce extracellular K⁺", " • Treat hyperkalemia: insulin/dextrose, calcium, furosemide", ], tag="COMPLICATION", q_bg=COL_MED_BLUE, a_bg=COL_MED_BLUE), # 8 dict(num=8, q_label="Acute Hemolytic Transfusion Reaction", question_lines=[ "Describe acute hemolytic transfusion reaction (AHTR).", "", "• Cause, frequency, clinical features under anaesthesia?", "• How is it managed?", ], answer_heading="Acute Hemolytic Reaction", answer_lines=[ "CAUSE: ABO incompatibility — most often a CLERICAL/ID ERROR", "FREQUENCY: 1:38,000 transfusions; Fatal: 1:100,000", "Triggered by as little as 10–15 mL of incompatible blood", "", "IN ANAESTHESIA (signs may be masked!):", " ↑ Temperature | Unexplained tachycardia | Hypotension", " Hemoglobinuria (pink/red urine) | Diffuse surgical field oozing", " DIC → Shock → Acute kidney failure", "", "MANAGEMENT:", " 1. STOP transfusion immediately; notify blood bank", " 2. Recheck unit vs. patient ID bracelet", " 3. Blood: plasma Hb, repeat compatibility, coag screen, platelet count", " 4. Insert urinary catheter; test urine for haemoglobin", " 5. Forced diuresis: mannitol + IV fluids + loop diuretic", " 6. Treat DIC, support BP and renal perfusion", ], tag="IMMUNE RISK", q_bg=RGBColor(0x5C,0x10,0x10), a_bg=COL_RED), # 9 dict(num=9, q_label="TRALI vs TACO", question_lines=[ "Compare TRALI and TACO as complications of blood transfusion.", "", "• Definition, mechanism, timing, treatment?", "• Which is now the LEADING cause of transfusion-related death?", ], answer_heading="TRALI vs TACO", answer_lines=[ "TRALI (Transfusion-Related Acute Lung Injury):", " Mechanism: HLA antibodies in donor plasma → neutrophil activation → ARDS", " Risk: FFP & platelets most implicated; ~1:5000 units", " Timing: Within 6 hours of transfusion", " Features: Acute hypoxia + non-cardiogenic pulmonary oedema", " Rx: Supportive (like ARDS); resolves in days", " Prevention: Male-only or antibody-screened female plasma donors", "", "TACO (Transfusion-Associated Circulatory Overload):", " Mechanism: Excessive transfusion rate after bleeding controlled", " Features: Pulmonary oedema (cardiogenic), hypertension, tachycardia", " Rx: Diuresis, slow/stop transfusion, oxygen", "", "⚠ TACO has REPLACED TRALI as leading transfusion-related risk in trauma", " Key: Communication between resuscitation team & surgical team", ], tag="IMMUNE RISK", q_bg=RGBColor(0x5C,0x10,0x10), a_bg=COL_RED), # 10 dict(num=10, q_label="Infectious Complications of Blood Transfusion", question_lines=[ "List the infectious risks of blood transfusion.", "", "• State the approximate risk per unit for major pathogens.", "• What is the leading infectious cause of transfusion mortality?", ], answer_heading="Infectious Complications", answer_lines=[ "VIRAL INFECTIONS:", " Hepatitis B ~1:200,000 transfusions", " Hepatitis C ~1:1,900,000 (20% → cirrhosis; 5% → hepatocellular Ca)", " HIV-1 / HIV-2 ~1:1,900,000", " CMV Common in immunocompromised; leukoreduced = CMV-safe", " West Nile Virus Rare; can cause encephalitis (10% fatality)", " HTLV-1/2 Very rare; myelopathy / T-cell leukaemia", "", "BACTERIAL CONTAMINATION: (2nd leading cause of transfusion mortality)", " Platelets: 1:2000 positive cultures; 1:25,000 sepsis", " PRBCs: 1:7000 positive cultures; 1:250,000 sepsis", " Organisms: Staphylococcus (gram+), Yersinia / Citrobacter (gram–)", " ⚠ Blood products must be given within 4 hours of issue", "", "PARASITES: Malaria, Toxoplasmosis, Chagas disease (rare in developed countries)", ], tag="INFECT. RISK", q_bg=RGBColor(0x2B,0x00,0x50), a_bg=RGBColor(0x4A,0x00,0x7A)), # 11 dict(num=11, q_label="Damage Control Resuscitation (DCR)", question_lines=[ "What is Damage Control Resuscitation (DCR)?", "", "• What is the 1:1:1 ratio?", "• What evidence supports it?", ], answer_heading="Damage Control Resuscitation", answer_lines=[ "DCR = Strategy to prevent/correct the Lethal Triad EARLY", "", "CORE PRINCIPLE: Balanced blood product resuscitation", " 1 unit FFP : 1 unit Platelets : 1 unit PRBCs (1:1:1)", "", "RATIONALE:", " • PRBCs alone → dilutional coagulopathy", " • Early FFP provides coagulation factors + plasma oncotic support", " • Early platelets prevent platelet count crash", " • High plasma:PRBC ratio (1:1.4) → significantly improved survival", " (vs 1:1.8–1:2.5 ratio in military data)", "", "RESTRICT CRYSTALLOIDS: Stop 0.9% NaCl / Hartmann's early", " → Avoids dilutional coagulopathy + hyperchloremic acidosis", "", "PERMISSIVE HYPOTENSION: SBP 80–90 mmHg until surgical haemostasis", " (except TBI where CPP must be maintained)", ], tag="MANAGEMENT", q_bg=RGBColor(0x05,0x45,0x20), a_bg=COL_GREEN), # 12 dict(num=12, q_label="Adjuncts in Massive Transfusion Protocol (MTP)", question_lines=[ "Name the pharmacological adjuncts used in MTP.", "", "• Tranexamic acid — dose and mechanism?", "• Calcium — which form is preferred and why?", ], answer_heading="Pharmacological Adjuncts in MTP", answer_lines=[ "1. TRANEXAMIC ACID (TXA)", " Mechanism: Antifibrinolytic — inhibits plasminogen activation", " Dose: 10 mg/kg IV (also: 1g IV over 10 min, then 1g over 8 h)", " Timing: Most benefit if given WITHIN 3 hours of injury", " Evidence: CRASH-2 trial — reduced mortality in bleeding trauma patients", "", "2. CALCIUM", " CaCl₂ preferred over Ca-gluconate", " → Ca-gluconate needs hepatic metabolism to release free Ca²⁺", " Target: ionized Ca²⁺ ≥ 0.9 mmol/L", "", "3. PROTHROMBIN COMPLEX CONCENTRATE (PCC)", " Contains factors II, VII, IX, X; reverses warfarin; used in coagulopathy", "", "4. RECOMBINANT FACTOR VIIa (rFVIIa)", " Dose: 90 mcg/kg; for PERSISTENT refractory coagulopathy", " ⚠ Risk of thrombosis; use only after standard measures fail", "", "5. DESMOPRESSIN (DDAVP): 0.3 mcg/kg IV for vWD or platelet dysfunction", ], tag="MANAGEMENT", q_bg=RGBColor(0x05,0x45,0x20), a_bg=COL_GREEN), # 13 dict(num=13, q_label="Monitoring Targets During Massive Transfusion", question_lines=[ "List the monitoring parameters and their targets during massive transfusion.", "", "• Laboratory targets?", "• What point-of-care test is preferred for coagulation?", ], answer_heading="Monitoring Targets", answer_lines=[ "PARAMETER TARGET", "─────────────────────────────────────────────────────", "Hemoglobin > 7–8 g/dL (individualised)", "Platelet count > 50,000–100,000 × 10⁹/L", "INR / PT < 1.5", "Fibrinogen > 100 mg/dL", "Ionized Calcium ≥ 0.9 mmol/L", "Serum Potassium 3.5–5.0 mEq/L", "Core Temperature > 36°C", "Urine Output > 0.5 mL/kg/hr", "Arterial Blood Gas Correct acidosis (pH >7.35)", "TEG / ROTEM Interpret clot kinetics & fibrinolysis", "─────────────────────────────────────────────────────", "⭐ TEG/ROTEM/Sonoclot preferred over conventional PT/aPTT", " → Assesses WHOLE blood clotting in real time", ], tag="MANAGEMENT", q_bg=RGBColor(0x05,0x45,0x20), a_bg=COL_GREEN), # 14 dict(num=14, q_label="ABC Score — Predicting Need for MTP", question_lines=[ "What is the ABC Score for predicting massive transfusion?", "", "• List the 4 criteria.", "• What score triggers massive transfusion protocol?", ], answer_heading="Assessment of Blood Consumption (ABC) Score", answer_lines=[ "FOUR VARIABLES (each scores 1 point):", "", " 1. Penetrating mechanism of injury", " 2. Positive FAST examination", " 3. Systolic BP < 90 mmHg on arrival", " 4. Heart rate > 120 bpm on arrival", "", "TRIGGER: Score ≥ 2 → activate Massive Transfusion Protocol", "", "PERFORMANCE:", " Sensitivity: 76–90%", " Specificity: 67–87%", "", "OTHER SCORING SYSTEMS:", " • TASH (Trauma Associated Severe Haemorrhage) score", " • McLaughlin score", " • Shock Index (HR / SBP) > 1.0 = likely significant haemorrhage", "", " → Activate MTP early; transition from crystalloid to plasma-based", " resuscitation immediately on positive score", ], tag="MANAGEMENT", q_bg=RGBColor(0x05,0x45,0x20), a_bg=COL_GREEN), ] # Build all cards for c in cards: make_card(**c) # ───────────────────────────────────────────────────────────────────── # FINAL SLIDE: Quick Reference Summary # ───────────────────────────────────────────────────────────────────── slide = prs.slides.add_slide(blank_layout) add_rect(slide, 0, 0, 13.333, 7.5, COL_LIGHT_GRAY) add_rect(slide, 0, 0, 13.333, 1.0, COL_DARK_BLUE) add_text(slide, "QUICK REFERENCE SUMMARY", 0, 0.1, 13.333, 0.8, font_size=26, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) # 3 columns cols = [ ("COMPLICATIONS", COL_RED, [ "1. Coagulopathy (dilutional)", "2. Citrate toxicity / Hypocalcemia", "3. Hypothermia", "4. Acid–base disturbance", "5. Hyperkalemia", "6. Hemolytic reactions", "7. TRALI / TACO", "8. Bacterial contamination", "9. Lethal Triad", ]), ("MANAGEMENT", COL_GREEN, [ "• 1:1:1 ratio (DCR)", "• Warm all blood products 37°C", "• TXA early (<3 h)", "• CaCl₂ if iCa²⁺ < 0.9 mmol/L", "• TEG/ROTEM guided", "• Cryoprecipitate if fibrinogen <100", "• Stop crystalloids", "• Permissive hypotension", "• rFVIIa for refractory coag", ]), ("TARGETS", COL_MED_BLUE, [ "Hb > 7–8 g/dL", "Plts > 50,000–100,000", "INR < 1.5", "Fibrinogen > 100 mg/dL", "Ionised Ca²⁺ ≥ 0.9 mmol/L", "K⁺ 3.5–5.0 mEq/L", "Temp > 36°C", "UO > 0.5 mL/kg/hr", "pH > 7.35", ]), ] for i, (heading, color, items) in enumerate(cols): x = 0.3 + i * 4.35 add_rect(slide, x, 1.1, 4.1, 0.55, color) add_text(slide, heading, x, 1.1, 4.1, 0.57, font_size=15, bold=True, color=COL_WHITE, align=PP_ALIGN.CENTER, v_anchor=MSO_ANCHOR.MIDDLE) add_rect(slide, x, 1.65, 4.1, 5.55, COL_WHITE, line_color=color, line_width=1) add_multiline_text(slide, items, x+0.1, 1.7, 3.9, 5.4, font_size=13, color=COL_TEXT_DARK, v_anchor=MSO_ANCHOR.TOP) add_text(slide, "Source: Morgan & Mikhail's Clinical Anesthesiology 7e · Tintinalli's EM", 0, 7.2, 13.333, 0.3, font_size=10, color=RGBColor(0x77,0x77,0x88), align=PP_ALIGN.CENTER, italic=True) # ───────────────────────────────────────────────────────────────────── out = "/tmp/workspace/mbt-flashcards/Massive_Transfusion_Flashcards.pptx" prs.save(out) print(f"Saved: {out}") print(f"Slides: {len(prs.slides)}") PYEOF echo "Script written"
cd /tmp/workspace/mbt-flashcards && python build.py
Massive Transfusion Flashcards
Presentation · PPTX
| Card | Topic | Category |
|---|---|---|
| 1 | Definition of Massive Blood Transfusion | Definition |
| 2 | The Lethal Triad | Key Concept |
| 3 | Coagulopathy | Complication |
| 4 | Citrate Toxicity & Hypocalcemia | Complication |
| 5 | Hypothermia | Complication |
| 6 | Acid-Base Disturbance | Complication |
| 7 | Hyperkalemia | Complication |
| 8 | Acute Hemolytic Reaction | Immune Risk |
| 9 | TRALI vs TACO | Immune Risk |
| 10 | Infectious Complications | Infective Risk |
| 11 | Damage Control Resuscitation (1:1:1) | Management |
| 12 | Pharmacological Adjuncts (TXA, Calcium, rFVIIa) | Management |
| 13 | Monitoring Targets (TEG/ROTEM) | Management |
| 14 | ABC Score & MTP Activation | Management |