create a powerpoint presentation from this

Reading File
Reading File
Reading File
Running Command

python3 -c " import pdfplumber with pdfplumber.open('/tmp/workspace/attachments/67456258-618a-40cd-973e-f9d225587857/BICARBONATE ADMINISTRATION.pdf') as pdf: print(f'Pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): print(f'\n=== PAGE {i+1} ===') text = page.extract_text() if text: print(text) "

Running Command

mkdir -p /tmp/workspace/bicarbonate-pptx && python3 << 'EOF' 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 pptx.oxml.ns as nsmap from lxml import etree prs = Presentation() prs.slide_width = Inches(13.333) prs.slide_height = Inches(7.5) # Color palette DARK_BLUE = RGBColor(0x1A, 0x3A, 0x5C) # Deep navy MID_BLUE = RGBColor(0x1E, 0x6E, 0xBD) # Medium blue ACCENT = RGBColor(0x00, 0xA8, 0xD6) # Teal-blue LIGHT_BG = RGBColor(0xF0, 0xF5, 0xFA) # Near white WHITE = RGBColor(0xFF, 0xFF, 0xFF) DARK_TEXT = RGBColor(0x1A, 0x1A, 0x2E) WARNING = RGBColor(0xE8, 0x4A, 0x4A) # Red for warnings GOLD = RGBColor(0xF5, 0xA6, 0x23) # Amber highlights blank = prs.slide_layouts[6] def add_rect(slide, x, y, w, h, fill_color, transparency=0): shape = slide.shapes.add_shape(1, Inches(x), Inches(y), Inches(w), Inches(h)) shape.line.fill.background() shape.fill.solid() shape.fill.fore_color.rgb = fill_color return shape def add_textbox(slide, x, y, w, h, text, font_size, bold=False, color=None, align=PP_ALIGN.LEFT, italic=False, wrap=True): tb = slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)) tf = tb.text_frame tf.word_wrap = wrap tf.margin_left = Pt(0) tf.margin_right = Pt(0) tf.margin_top = Pt(0) tf.margin_bottom = Pt(0) 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 if color: run.font.color.rgb = color return tb def add_bullet_slide(slide, title, bullets, bullet_color=DARK_TEXT, indent_bullets=None): """Add title + bullet list to a slide. indent_bullets = list of (text, level) tuples.""" # Header bar add_rect(slide, 0, 0, 13.333, 1.1, DARK_BLUE) add_textbox(slide, 0.3, 0.15, 12.7, 0.85, title, 30, bold=True, color=WHITE) # Body background add_rect(slide, 0, 1.1, 13.333, 6.4, LIGHT_BG) # Accent stripe add_rect(slide, 0, 1.1, 0.12, 6.4, ACCENT) def header_slide(slide, title, subtitle=None): add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE) add_rect(slide, 0, 2.8, 13.333, 0.06, ACCENT) # Top accent line add_rect(slide, 1.0, 1.5, 11.3, 0.06, ACCENT) add_textbox(slide, 0.8, 1.7, 11.5, 1.8, title, 46, bold=True, color=WHITE, align=PP_ALIGN.CENTER) if subtitle: add_textbox(slide, 1.0, 3.5, 11.2, 0.8, subtitle, 22, color=ACCENT, align=PP_ALIGN.CENTER) add_textbox(slide, 0.8, 5.5, 11.5, 1.0, "Clinical Reference Guide", 18, color=RGBColor(0xAA, 0xCC, 0xEE), align=PP_ALIGN.CENTER) def section_title_slide(slide, section_num, title, subtitle=None): add_rect(slide, 0, 0, 13.333, 7.5, DARK_BLUE) add_rect(slide, 0, 0, 0.5, 7.5, ACCENT) add_rect(slide, 0.5, 2.9, 12.833, 0.05, RGBColor(0x55, 0x99, 0xCC)) num_tb = slide.shapes.add_textbox(Inches(0.8), Inches(1.8), Inches(3), Inches(1.2)) tf = num_tb.text_frame p = tf.paragraphs[0] run = p.add_run() run.text = f"0{section_num}" run.font.size = Pt(60) run.font.bold = True run.font.color.rgb = ACCENT add_textbox(slide, 0.8, 3.1, 11.5, 1.4, title, 38, bold=True, color=WHITE) if subtitle: add_textbox(slide, 0.8, 4.6, 11.5, 0.8, subtitle, 20, color=RGBColor(0x99, 0xCC, 0xEE)) def add_content_slide(slide, title, content_blocks): """ content_blocks: list of dicts with keys: - 'text': str - 'level': 0 (main bullet), 1 (sub bullet), 2 (sub-sub bullet) - 'type': 'bullet', 'warning', 'key' """ # Header add_rect(slide, 0, 0, 13.333, 1.05, DARK_BLUE) add_rect(slide, 0, 1.05, 0.12, 6.45, ACCENT) add_textbox(slide, 0.3, 0.1, 12.7, 0.85, title, 28, bold=True, color=WHITE) # Body bg add_rect(slide, 0.12, 1.05, 13.221, 6.45, LIGHT_BG) tb = slide.shapes.add_textbox(Inches(0.4), Inches(1.15), Inches(12.6), Inches(6.1)) tf = tb.text_frame tf.word_wrap = True tf.margin_left = Pt(4) tf.margin_right = Pt(4) tf.margin_top = Pt(4) tf.margin_bottom = Pt(4) first = True for block in content_blocks: text = block.get('text', '') level = block.get('level', 0) btype = block.get('type', 'bullet') if first: p = tf.paragraphs[0] first = False else: p = tf.add_paragraph() # Indent if level == 0: p.space_before = Pt(5) p.level = 0 elif level == 1: p.level = 1 p.space_before = Pt(2) else: p.level = 2 p.space_before = Pt(1) run = p.add_run() run.text = text # Sizing & color if btype == 'warning': run.font.size = Pt(15) run.font.bold = True run.font.color.rgb = WARNING elif btype == 'key': run.font.size = Pt(15) run.font.bold = True run.font.color.rgb = DARK_BLUE elif level == 0: run.font.size = Pt(15.5) run.font.bold = True run.font.color.rgb = MID_BLUE elif level == 1: run.font.size = Pt(14) run.font.bold = False run.font.color.rgb = DARK_TEXT else: run.font.size = Pt(13) run.font.bold = False run.font.color.rgb = RGBColor(0x44, 0x44, 0x66) return slide # ── SLIDE 1: Title ── slide = prs.slides.add_slide(blank) header_slide(slide, "BICARBONATE ADMINISTRATION", "A Comprehensive Clinical Reference") # ── SLIDE 2: Section – Physiology ── slide = prs.slides.add_slide(blank) section_title_slide(slide, 1, "Physiology of Bicarbonate", "Acid-base regulation and the bicarbonate buffer system") # ── SLIDE 3: Physiology content ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Physiology of Bicarbonate", [ {'text': 'Daily Acid-Base Load', 'level': 0, 'type': 'key'}, {'text': '~15,000 mmol/day of CO₂ produced', 'level': 1}, {'text': '50–100 mmol/day of non-volatile acids', 'level': 1}, {'text': 'Buffering Systems', 'level': 0, 'type': 'key'}, {'text': 'Bicarbonate (primary extracellular buffer)', 'level': 1}, {'text': 'Hemoglobin, phosphate, proteins, bone', 'level': 1}, {'text': 'The Bicarbonate Buffer Equation', 'level': 0, 'type': 'key'}, {'text': 'CO₂ + H₂O ⇌ H₂CO₃ ⇌ H⁺ + HCO₃⁻', 'level': 1}, {'text': 'Functions of Bicarbonate', 'level': 0, 'type': 'key'}, {'text': 'pH regulation — buffering H⁺ ions', 'level': 1}, {'text': 'Transporting carbon dioxide', 'level': 1}, {'text': 'Renal acid excretion', 'level': 1}, ]) # ── SLIDE 4: Renal Handling ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Renal Handling of Bicarbonate", [ {'text': 'The kidney reabsorbs ~99% of filtered bicarbonate', 'level': 0, 'type': 'key'}, {'text': 'Proximal tubule: reabsorbs 80–90% of bicarbonate', 'level': 1}, {'text': 'Thick ascending limb of Loop of Henle: ~10%', 'level': 1}, {'text': 'Collecting duct: generates new bicarbonate via H⁺ secretion', 'level': 1}, {'text': 'Normal Parameters', 'level': 0, 'type': 'key'}, {'text': 'pH: 7.35 – 7.45', 'level': 1}, {'text': 'PaCO₂: 35 – 45 mmHg', 'level': 1}, {'text': 'HCO₃⁻: 22 – 28 mmol/L', 'level': 1}, {'text': 'Base excess: −2 to +2', 'level': 1}, {'text': 'Base excess reflects the metabolic component of acid-base balance', 'level': 2}, {'text': '→ Negative BE = metabolic acidosis | Positive BE = metabolic alkalosis', 'level': 2}, ]) # ── SLIDE 5: Section – Causes & Indications ── slide = prs.slides.add_slide(blank) section_title_slide(slide, 2, "Causes of Deficiency & Indications for Therapy", "When to use — and when NOT to use — bicarbonate") # ── SLIDE 6: Causes of Bicarbonate Deficiency ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Causes of Bicarbonate Deficiency", [ {'text': 'GI Losses', 'level': 0, 'type': 'key'}, {'text': 'Diarrhea, ileostomy, pancreatic fistula, biliary drainage', 'level': 1}, {'text': 'Renal Losses', 'level': 0, 'type': 'key'}, {'text': 'Renal tubular acidosis (RTA)', 'level': 1}, {'text': 'Acetazolamide / carbonic anhydrase inhibitors', 'level': 1}, {'text': 'Acid Accumulation', 'level': 0, 'type': 'key'}, {'text': 'Lactic acidosis', 'level': 1}, {'text': 'Diabetic ketoacidosis (DKA)', 'level': 1}, {'text': 'Alcoholic or starvation ketoacidosis', 'level': 1}, {'text': 'Renal failure', 'level': 1}, {'text': 'Toxin ingestion', 'level': 1}, ]) # ── SLIDE 7: Indications ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Indications for Bicarbonate Therapy", [ {'text': '⚠ NOT EVERY METABOLIC ACIDOSIS REQUIRES BICARBONATE', 'level': 0, 'type': 'warning'}, {'text': 'Always treat the underlying cause first', 'level': 1}, {'text': 'Effective only if the patient can compensate via respiratory system (blow off excess CO₂)', 'level': 1}, {'text': 'ABSOLUTE INDICATIONS', 'level': 0, 'type': 'key'}, {'text': 'Severe metabolic acidosis — pH <7.1 (with hemodynamic instability, arrhythmias, severe hyperkalemia)', 'level': 1}, {'text': 'Hyperkalemia — shifts K⁺ intracellularly (NEVER use alone in life-threatening hyperkalemia)', 'level': 1}, {'text': 'Renal tubular acidosis (Type I, II) — chronic therapy', 'level': 1}, {'text': 'CKD with bicarb <22 mmol/L — to slow CKD progression', 'level': 1}, {'text': 'Toxicology — salicylates, tricyclic antidepressants, sodium channel blocker toxicity', 'level': 1}, {'text': 'RELATIVE INDICATIONS', 'level': 0, 'type': 'key'}, {'text': 'Severe rhabdomyolysis, tumor lysis syndrome, prolonged cardiac arrest, massive transfusion (rare)', 'level': 1}, ]) # ── SLIDE 8: NOT Indicated / Contraindications ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Conditions Where Bicarbonate is NOT Indicated", [ {'text': 'DKA — unless pH <6.9', 'level': 0, 'type': 'warning'}, {'text': 'Reason: no mortality benefit; may worsen hypokalemia, cerebral edema, and paradoxical CNS acidosis', 'level': 1}, {'text': 'Lactic Acidosis — routine therapy not indicated', 'level': 0, 'type': 'warning'}, {'text': 'Treatment: restore perfusion, oxygen, antibiotics (if indicated), vasopressors if needed', 'level': 1}, {'text': 'Respiratory Acidosis', 'level': 0, 'type': 'warning'}, {'text': 'Treatment: improve ventilation', 'level': 1}, {'text': 'CONTRAINDICATIONS', 'level': 0, 'type': 'key'}, {'text': 'Chloride loss by vomiting or continuous GI suction', 'level': 1}, {'text': 'Use with diuretics that produce hydrochloremic alkalosis', 'level': 1}, ]) # ── SLIDE 9: Section – Preparations & Dosing ── slide = prs.slides.add_slide(blank) section_title_slide(slide, 3, "Available Preparations & Dosing", "IV and oral formulations, deficit calculation") # ── SLIDE 10: IV Preparations ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "IV Preparations of Sodium Bicarbonate", [ {'text': '8.4% Sodium Bicarbonate (most common) — HYPERTONIC', 'level': 0, 'type': 'key'}, {'text': '= 1 mmol/mL | 50 mL ampoule = 50 mmol bicarbonate', 'level': 1}, {'text': 'Mol. wt of NaHCO₃: Na(23) + H(1) + C(12) + O₃(48) = 84 g/mol → 84g in 1L = 1 mol/L', 'level': 2}, {'text': '7.5% Sodium Bicarbonate — hypertonic', 'level': 0, 'type': 'key'}, {'text': '= 0.9 mmol/mL', 'level': 1}, {'text': '4.2% Sodium Bicarbonate — less hypertonic', 'level': 0, 'type': 'key'}, {'text': '= 0.5 mmol/mL', 'level': 1}, {'text': 'Oral Preparations', 'level': 0, 'type': 'key'}, {'text': 'Used for CKD, RTA, chronic metabolic acidosis', 'level': 1}, {'text': 'KEY FACT: 1 mL of 8.4% = 1 mmol bicarbonate = 1 mmol sodium', 'level': 0, 'type': 'warning'}, ]) # ── SLIDE 11: Calculating Deficit ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Calculating Bicarbonate Deficit", [ {'text': 'Formula', 'level': 0, 'type': 'key'}, {'text': 'Deficit (mmol) = (24 − Measured HCO₃⁻) × Weight (kg) × 0.5', 'level': 1}, {'text': '24 = desired bicarbonate (mmol/L) | 0.5 = ECF volume fraction', 'level': 2}, {'text': 'Worked Example — 70 kg man, HCO₃⁻ = 10 mmol/L', 'level': 0, 'type': 'key'}, {'text': 'Deficit = (24 − 10) × 70 × 0.5', 'level': 1}, {'text': '= 14 × 35 = 490 mmol total', 'level': 1}, {'text': 'Replace ONLY 50% initially → 245 mmol, then repeat ABG', 'level': 1}, {'text': '⚠ CRITICAL RULES', 'level': 0, 'type': 'warning'}, {'text': 'DO NOT replace the entire deficit immediately', 'level': 1}, {'text': 'Rapid correction → alkalosis, hypocalcemia, hypernatremia, increased CO₂ generation, intracellular acidosis', 'level': 1}, {'text': 'Bicarb MUST be diluted in D5W or sterile water (NOT normal saline routinely)', 'level': 1}, ]) # ── SLIDE 12: Section – Administration ── slide = prs.slides.add_slide(blank) section_title_slide(slide, 4, "Administration of IV Bicarbonate", "Bolus, intermittent & continuous infusion protocols") # ── SLIDE 13: Pre-Administration Checklist ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Pre-Administration Checklist", [ {'text': 'Before administering bicarbonate, ask yourself:', 'level': 0, 'type': 'key'}, {'text': 'Is the pH low?', 'level': 1}, {'text': 'Is the acidosis metabolic (not respiratory)?', 'level': 1}, {'text': 'Is compensation appropriate?', 'level': 1}, {'text': 'What is the anion gap?', 'level': 1}, {'text': 'What caused the acidosis?', 'level': 1}, {'text': 'Will bicarbonate improve the underlying physiology?', 'level': 1}, {'text': 'Always dilute 8.4% NaHCO₃ (except in cardiac arrest) because:', 'level': 0, 'type': 'key'}, {'text': 'Highly hypertonic (~2,000 mOsm/L)', 'level': 1}, {'text': 'Alkaline (pH ~8.0–8.6)', 'level': 1}, {'text': 'Irritating to peripheral veins', 'level': 1}, {'text': 'Rapid concentrated administration → venous irritation, phlebitis, extravasation, sudden alkalosis', 'level': 1}, ]) # ── SLIDE 14: Administration Methods ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Administration Methods", [ {'text': 'IV Bolus — EMERGENCY ONLY', 'level': 0, 'type': 'warning'}, {'text': 'Indications: severe hyperkalemia with ECG changes, cardiac arrest, TCA toxicity', 'level': 1}, {'text': 'Dose: 50 mmol (1 amp 8.4%) over 5–10 min via secure IV (central preferred for repeat doses)', 'level': 1}, {'text': 'Reassess: ECG, BP, ABG, potassium after each dose', 'level': 1}, {'text': 'Intermittent Infusion', 'level': 0, 'type': 'key'}, {'text': 'For severe metabolic acidosis, RTA, chronic renal failure', 'level': 1}, {'text': 'Example 1: 100 mmol (2 amps) added to 1L D5W → infuse over 4–6 hours', 'level': 1}, {'text': 'Example 2: 150 mmol added to 1L D5W → infuse over 6–8 hours', 'level': 1}, {'text': 'Repeat ABG after 4 hours', 'level': 2}, {'text': 'Continuous Infusion (ICU)', 'level': 0, 'type': 'key'}, {'text': 'Typical ICU regimen: 150 mmol in 1L D5W at 100–250 mL/hr', 'level': 1}, {'text': 'Adjust by ABG, urine output, fluid status, serum sodium and clinical response', 'level': 1}, ]) # ── SLIDE 15: Practical Approach / IV Access ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Practical Approach — Concentration & IV Access", [ {'text': 'Concentration Guide', 'level': 0, 'type': 'key'}, {'text': 'Emergency bolus: Undiluted 8.4% (1,000 mmol/L)', 'level': 1}, {'text': 'General ward infusion: 100 mmol/L', 'level': 1}, {'text': 'ICU infusion: 150 mmol/L', 'level': 1}, {'text': 'Peripheral veins: prefer ≤150 mmol/L for prolonged infusions', 'level': 1}, {'text': 'IV Access Selection', 'level': 0, 'type': 'key'}, {'text': 'PERIPHERAL LINE — suitable for:', 'level': 1}, {'text': 'Single bolus, short infusions, smaller doses (watch for pain, swelling, extravasation, phlebitis)', 'level': 2}, {'text': 'CENTRAL LINE — preferred for:', 'level': 1}, {'text': 'Large doses, repeated infusions, ICU patients, prolonged treatment', 'level': 2}, {'text': 'Advantages: less vein irritation, better tolerance, more reliable delivery', 'level': 2}, {'text': 'Stop infusion if pH reaches ~7.30–7.35, or bicarb reaches target (~22 mmol/L)', 'level': 0, 'type': 'key'}, ]) # ── SLIDE 16: Section – Monitoring & Complications ── slide = prs.slides.add_slide(blank) section_title_slide(slide, 5, "Monitoring, Complications & Special Cases", "Surveillance, adverse effects, and disease-specific protocols") # ── SLIDE 17: Monitoring ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Monitoring During Bicarbonate Therapy", [ {'text': 'Clinical Monitoring', 'level': 0, 'type': 'key'}, {'text': 'Blood pressure, heart rate, mental status, urine output, ECG', 'level': 1}, {'text': 'Laboratory Monitoring — every 2–4 hours initially', 'level': 0, 'type': 'key'}, {'text': 'ABG / VBG', 'level': 1}, {'text': 'Electrolytes: sodium, potassium, ionised calcium', 'level': 1}, {'text': 'Lactate, creatinine', 'level': 1}, {'text': 'Expected Changes', 'level': 0, 'type': 'key'}, {'text': '↑ pH and serum bicarbonate', 'level': 1}, {'text': '↓ Serum potassium (shifts intracellularly)', 'level': 1}, {'text': 'Possible ↑ PaCO₂', 'level': 1}, {'text': 'Stop / slow infusion if: hypernatraemia develops, pulmonary oedema, symptomatic hypocalcaemia, metabolic alkalosis, or underlying cause corrected', 'level': 0, 'type': 'warning'}, ]) # ── SLIDE 18: Complications ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Complications of Bicarbonate Therapy", [ {'text': 'Hypernatremia', 'level': 0, 'type': 'key'}, {'text': 'Occurs because each mmol NaHCO₃ contains 1 mmol sodium', 'level': 1}, {'text': 'Volume Overload', 'level': 0, 'type': 'key'}, {'text': 'Especially dangerous in CKD and heart failure', 'level': 1}, {'text': 'Hypokalemia', 'level': 0, 'type': 'key'}, {'text': 'Potassium shifts intracellularly with alkalosis', 'level': 1}, {'text': 'Hypocalcemia', 'level': 0, 'type': 'key'}, {'text': 'Ionised calcium decreases → tetany, arrhythmias', 'level': 1}, {'text': 'Metabolic Alkalosis', 'level': 0, 'type': 'key'}, {'text': 'Common after overcorrection', 'level': 1}, {'text': 'Paradoxical Intracellular Acidosis', 'level': 0, 'type': 'key'}, {'text': 'CO₂ diffuses rapidly into cells → may worsen intracellular acidosis despite improved serum pH', 'level': 1}, {'text': 'Reduced Oxygen Delivery', 'level': 0, 'type': 'key'}, {'text': 'Alkalosis shifts oxyhaemoglobin dissociation curve left → less O₂ released to tissues', 'level': 1}, ]) # ── SLIDE 19: Special Considerations ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Special Considerations by Condition", [ {'text': 'DKA — Only if pH <6.9', 'level': 0, 'type': 'warning'}, {'text': 'Regimen: 100 mmol NaHCO₃ + 20 mmol KCl in 400 mL sterile water over 2 hrs; repeat only if severe acidemia persists', 'level': 1}, {'text': 'Hyperkalemia', 'level': 0, 'type': 'key'}, {'text': 'Works best when significant metabolic acidosis co-exists', 'level': 1}, {'text': 'Combine with: calcium gluconate (ECG changes), insulin + glucose, β₂ agonists, K⁺ elimination', 'level': 1}, {'text': 'Salicylate Poisoning', 'level': 0, 'type': 'key'}, {'text': 'Goal: serum alkalinisation + urinary pH 7.5–8.0', 'level': 1}, {'text': 'TCA / Sodium Channel Blocker Toxicity', 'level': 0, 'type': 'key'}, {'text': 'Indications: QRS widening, ventricular arrhythmias, hypotension', 'level': 1}, {'text': 'Targets: pH 7.45–7.55 and QRS narrowing', 'level': 1}, {'text': 'CKD', 'level': 0, 'type': 'key'}, {'text': 'Treat if HCO₃⁻ <22 mmol/L; use oral bicarbonate to maintain normal range (monitor Na load and fluid retention)', 'level': 1}, ]) # ── SLIDE 20: Common Errors & Clinical Pearls ── slide = prs.slides.add_slide(blank) add_content_slide(slide, "Common Errors to Avoid & Key Clinical Pearls", [ {'text': '⚠ Common Errors', 'level': 0, 'type': 'warning'}, {'text': 'Replacing the entire calculated deficit at once', 'level': 1}, {'text': 'Rapid infusion of concentrated 8.4% without clear indication', 'level': 1}, {'text': 'Failing to monitor serial blood gases and electrolytes', 'level': 1}, {'text': 'Overcorrecting to alkalosis', 'level': 1}, {'text': 'Ignoring the sodium load (especially in HF or CKD)', 'level': 1}, {'text': 'Co-administration with calcium-containing solutions → precipitate! (Use separate IV line)', 'level': 1}, {'text': 'Key Clinical Pearls', 'level': 0, 'type': 'key'}, {'text': '1 mL of 8.4% = 1 mmol bicarb = 1 mmol sodium', 'level': 1}, {'text': 'Replace only 50% of calculated deficit initially, then reassess with ABG', 'level': 1}, {'text': 'For non-emergency correction: dilute and infuse slowly over several hours', 'level': 1}, {'text': 'Slow IV push (5–10 min) only for selected toxicology/severe hyperkalemia cases', 'level': 1}, {'text': 'Frequent reassessment with ABGs, electrolytes, and clinical exam is essential', 'level': 1}, ]) # ── Save ── out_path = "/tmp/workspace/bicarbonate-pptx/Bicarbonate_Administration.pptx" prs.save(out_path) print(f"Saved: {out_path}") EOF

Your presentation is ready!

Bicarbonate Administration

Presentation · PPTX

Here's what's included across the 20 slides:
SectionSlidesContent
Title1Cover slide
Physiology2–4Buffer systems, renal handling, normal parameters
Causes & Indications5–8Deficiency causes, absolute/relative indications, contraindications
Preparations & Dosing9–11IV formulations, deficit formula with worked example
Administration12–15Pre-admin checklist, bolus/intermittent/continuous protocols, IV access guide
Monitoring & Complications16–20Monitoring parameters, complications, special cases (DKA, hyperK, TCA, CKD), common errors & clinical pearls
Design features:
  • Deep navy header bars with teal accent stripe on every content slide
  • Color-coded text: blue for key headings, red/bold for warnings and contraindications
  • Hierarchical bullet levels for main points and sub-details
  • Section divider slides with numbered section markers
  • 16:9 widescreen format (13.33 × 7.5 inches)
This is a shared conversation. Sign in to Orris to start your own chat.