Create a comprehensive, evidence-based 20-slide Microsoft PowerPoint (PPT) presentation on “Rheumatologic Emergencies” for a Final Year MBBS student presenting in the Department of General Medicine. The presentation should be at the MBBS undergraduate level, clinically oriented, and suitable for departmental seminars and university examinations. Requirements: * Create exactly 20 slides. * Use concise bullet points only (avoid long paragraphs). * Include flowcharts, algorithms, summary tables, and high-quality labeled clinical images wherever relevant. * Base the content on Harrison’s Principles of Internal Medicine (latest edition), Kumar & Clark’s Clinical Medicine, Oxford Handbook of Clinical Medicine, and current ACR/EULAR guidelines. * Ensure the information is evidence-based, up-to-date, and clinically relevant. * Use a clean, professional medical theme with consistent formatting. * Include references in Vancouver style on the final slide. Slide Outline: 1. Title 2. Learning Objectives 3. Introduction & Definition 4. Classification and Initial Clinical Approach 5. Pathophysiology 6. Clinical Features & Red Flags 7. Diagnostic Workup (Laboratory + Imaging) 8. Septic Arthritis 9. Catastrophic Antiphospholipid Syndrome (CAPS) 10. Scleroderma Renal Crisis 11. Diffuse Alveolar Hemorrhage & Lupus Nephritis 12. Vasculitic Emergencies (including Giant Cell Arteritis and ANCA-associated Vasculitis) 13. Neuropsychiatric SLE & Acute Transverse Myelitis 14. Macrophage Activation Syndrome (MAS) 15. Cervical Spine Instability in Rheumatoid Arthritis & Acute Crystal Arthritis 16. Emergency Management Principles and Drug Therapy 17. ICU Indications, Complications, and Prognosis 18. Recent Advances and Current Guidelines 19. Clinical Case Scenario with Diagnostic Approach 20. Key Take-Home Messages and References Make the slides presentation-ready with speaker-friendly bullet points, clinically relevant images, management algorithms, diagnostic flowcharts, and high-yield summary tables. Emphasize MBBS examination points, common viva questions, and practical emergency management
"rheumatologic emergencies" AND management
rheumatologic emergencies ACR EULAR guidelines 2024 2025 CAPS MAS vasculitis
"macrophage activation syndrome" AND treatment
"septic arthritis" AND management
mkdir -p /tmp/workspace/rheumatologic-emergencies && ls /tmp/workspace/rheumatologic-emergencies/
What happened to my ppt ?
mkdir -p /tmp/workspace/rheumatologic-emergencies && python3 << '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 json, subprocess, base64, os from io import BytesIO prs = Presentation() prs.slide_width = Inches(13.333) prs.slide_height = Inches(7.5) # ── Colour palette ────────────────────────────────────────────────────────── NAVY = RGBColor(0x0A, 0x29, 0x5E) # dark-navy header/accent TEAL = RGBColor(0x00, 0x7B, 0x8A) # teal accent RED = RGBColor(0xC0, 0x00, 0x00) # alert / red-flag GOLD = RGBColor(0xD4, 0xA0, 0x17) # highlight WHITE = RGBColor(0xFF, 0xFF, 0xFF) LIGHT = RGBColor(0xE8, 0xF4, 0xF8) # very-light-blue background DARK = RGBColor(0x1A, 0x1A, 0x2E) GREY = RGBColor(0xF2, 0xF4, 0xF7) GREEN = RGBColor(0x1A, 0x7A, 0x4A) ORANGE = RGBColor(0xE0, 0x6C, 0x00) blank_layout = prs.slide_layouts[6] # fully blank # ── Helper: solid-fill background ─────────────────────────────────────────── from pptx.oxml.ns import qn from lxml import etree def set_bg(slide, rgb): bg = slide.background fill = bg.fill fill.solid() fill.fore_color.rgb = rgb # ── Helper: add rectangle shape ───────────────────────────────────────────── def add_rect(slide, l, t, w, h, fill_rgb=None, line_rgb=None, line_pt=0): shape = slide.shapes.add_shape(1, Inches(l), Inches(t), Inches(w), Inches(h)) if fill_rgb: shape.fill.solid(); shape.fill.fore_color.rgb = fill_rgb else: shape.fill.background() if line_rgb and line_pt: shape.line.color.rgb = line_rgb; shape.line.width = Pt(line_pt) else: shape.line.fill.background() return shape # ── Helper: add text-box ───────────────────────────────────────────────────── def add_tb(slide, text, l, t, w, h, size=18, bold=False, color=DARK, align=PP_ALIGN.LEFT, wrap=True, italic=False): tb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h)) tf = tb.text_frame; tf.word_wrap = wrap tf.margin_left = tf.margin_right = tf.margin_top = tf.margin_bottom = 0 p = tf.paragraphs[0] p.alignment = align run = p.add_run(); run.text = text run.font.size = Pt(size); run.font.bold = bold run.font.color.rgb = color; run.font.italic = italic return tb, tf # ── Helper: multi-bullet text-frame (returns tf) ──────────────────────────── def add_bullets(slide, items, l, t, w, h, size=15, color=DARK, bold_first=False, symbol="•", heading=None, head_size=16, head_color=NAVY): tb = slide.shapes.add_textbox(Inches(l), Inches(t), Inches(w), Inches(h)) tf = tb.text_frame; tf.word_wrap = True tf.margin_left = Pt(4); tf.margin_right = Pt(4) tf.margin_top = Pt(2); tf.margin_bottom = Pt(2) first = True if heading: p = tf.paragraphs[0] if first else tf.add_paragraph() first = False p.alignment = PP_ALIGN.LEFT run = p.add_run(); run.text = heading run.font.size = Pt(head_size); run.font.bold = True run.font.color.rgb = head_color for item in items: p = tf.paragraphs[0] if (first and not heading) else tf.add_paragraph() first = False p.alignment = PP_ALIGN.LEFT p.space_before = Pt(2) if isinstance(item, tuple): sym, txt = item else: sym, txt = symbol, item run = p.add_run() run.text = f"{sym} {txt}" run.font.size = Pt(size) run.font.bold = bold_first and (item == items[0]) run.font.color.rgb = color return tf # ── Helper: slide header bar ──────────────────────────────────────────────── def header(slide, title, subtitle=None): add_rect(slide, 0, 0, 13.333, 1.1, fill_rgb=NAVY) add_tb(slide, title, 0.3, 0.08, 11, 0.65, size=28, bold=True, color=WHITE, align=PP_ALIGN.LEFT) if subtitle: add_tb(slide, subtitle, 0.3, 0.72, 11, 0.38, size=14, bold=False, color=GOLD, align=PP_ALIGN.LEFT) # thin accent line below header add_rect(slide, 0, 1.1, 13.333, 0.05, fill_rgb=TEAL) # ── Helper: slide number ──────────────────────────────────────────────────── def slide_num(slide, n): add_tb(slide, str(n), 12.8, 7.2, 0.5, 0.3, size=11, color=GREY, align=PP_ALIGN.RIGHT) # ── Helper: two-column layout ─────────────────────────────────────────────── def two_col(slide, left_items, right_items, l_head=None, r_head=None, top=1.2): add_bullets(slide, left_items, 0.3, top, 6.2, 6.0, heading=l_head, size=14) add_bullets(slide, right_items, 6.8, top, 6.2, 6.0, heading=r_head, size=14) # divider add_rect(slide, 6.6, top+0.1, 0.03, 5.8, fill_rgb=TEAL) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 1 – TITLE # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, NAVY) # big accent bar left add_rect(s, 0, 0, 0.35, 7.5, fill_rgb=TEAL) add_rect(s, 0.35, 2.2, 12.8, 0.07, fill_rgb=GOLD) add_rect(s, 0.35, 5.4, 12.8, 0.05, fill_rgb=TEAL) add_tb(s, "RHEUMATOLOGIC", 1.0, 1.0, 11.5, 1.1, size=50, bold=True, color=WHITE, align=PP_ALIGN.LEFT) add_tb(s, "EMERGENCIES", 1.0, 2.0, 11.5, 1.0, size=50, bold=True, color=GOLD, align=PP_ALIGN.LEFT) add_tb(s, "A Comprehensive Evidence-Based Review for Final Year MBBS", 1.0, 3.1, 11.5, 0.6, size=18, bold=False, color=LIGHT, align=PP_ALIGN.LEFT, italic=True) add_tb(s, "Department of General Medicine | Academic Seminar | 2026", 1.0, 3.8, 11.5, 0.5, size=15, bold=False, color=GOLD, align=PP_ALIGN.LEFT) add_tb(s, "Based on: Harrison's Principles of Internal Medicine 21e • Kumar & Clark's Clinical Medicine 10e\n" "Oxford Handbook of Clinical Medicine 10e • ACR/EULAR Guidelines 2022–2025", 1.0, 4.7, 11.5, 0.9, size=12, bold=False, color=LIGHT, align=PP_ALIGN.LEFT, italic=True) add_tb(s, "Slide 1 of 20", 1.0, 6.8, 4.0, 0.4, size=11, color=RGBColor(0x88,0xAA,0xCC), align=PP_ALIGN.LEFT) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 2 – LEARNING OBJECTIVES # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Learning Objectives", "By the end of this seminar, you should be able to:") slide_num(s, 2) objectives = [ "Define rheumatologic emergencies and identify their spectrum", "Recognise red-flag clinical features demanding immediate intervention", "Construct a systematic diagnostic workup (labs + imaging)", "Describe pathophysiology and management of Septic Arthritis, CAPS, SRC, DAH", "Manage vasculitic emergencies including GCA and ANCA-associated vasculitis", "Diagnose and treat Macrophage Activation Syndrome (MAS / HLH)", "Recognise Neuropsychiatric SLE and Acute Transverse Myelitis", "List indications for ICU admission and biological/immunosuppressive therapies", "Apply recent ACR/EULAR 2022–2025 guideline updates in clinical practice", "Discuss common viva & MBBS examination high-yield points", ] for i, obj in enumerate(objectives, 1): add_rect(s, 0.35, 1.15 + (i-1)*0.55, 0.45, 0.42, fill_rgb=TEAL if i % 2 == 1 else NAVY) add_tb(s, str(i), 0.38, 1.18 + (i-1)*0.55, 0.4, 0.4, size=14, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_tb(s, obj, 0.9, 1.18 + (i-1)*0.55, 12.0, 0.42, size=13.5, bold=False, color=DARK) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 3 – INTRODUCTION & DEFINITION # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Introduction & Definition") slide_num(s, 3) # definition box add_rect(s, 0.3, 1.2, 12.7, 1.15, fill_rgb=NAVY) add_tb(s, "DEFINITION: Rheumatologic emergencies are acute life- or organ-threatening " "manifestations of rheumatic diseases requiring immediate diagnosis and intervention " "to prevent irreversible organ damage or death.", 0.5, 1.25, 12.3, 1.05, size=14, bold=False, color=WHITE) left = [ "Incidence: ~5–10% of rheumatic patients experience ≥1 life-threatening event", "Mortality: Up to 30–50% in conditions like CAPS, MAS, DAH without prompt Rx", "Often occur as first presentation or during disease flare", "Frequently under-recognised due to overlapping features with other conditions", "Require multidisciplinary approach: Rheumatology + ICU + Nephrology + Resp", ] right = [ "Common triggers: Infection, surgery, drugs, stress, pregnancy", "Underlying conditions: SLE, RA, Systemic Sclerosis, Vasculitis, APS", "Key principle: Treat the emergency FIRST, confirm diagnosis SECOND", "Time-sensitivity rivals ACS and stroke in some conditions (GCA → blindness)", "Always ask: 'Could this be rheumatologic?' in unexplained multiorgan failure", ] two_col(s, left, right, "Key Epidemiological Facts", "Clinical Pearls", top=2.45) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 4 – CLASSIFICATION & INITIAL APPROACH # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Classification & Initial Clinical Approach", "Rheumatologic Emergencies by Organ System") slide_num(s, 4) categories = [ (NAVY, "JOINT", "Septic Arthritis, Acute Crystal Arthritis (Gout/CPPD), Haemarthrosis"), (TEAL, "RENAL", "Lupus Nephritis (Class III/IV), Scleroderma Renal Crisis, ANCA Vasculitis"), (RED, "PULMONARY", "Diffuse Alveolar Hemorrhage, Acute Lupus Pneumonitis, ILD Exacerbation"), (GREEN, "VASCULAR", "CAPS, Giant Cell Arteritis (vision loss), Takayasu, Antiphospholipid Syndrome"), (ORANGE, "NEUROLOGICAL","NP-SLE, Acute Transverse Myelitis, Cervical Spine Instability (RA), CNS Vasculitis"), (NAVY, "HAEMATOLOGIC","MAS/HLH, Thrombotic Microangiopathy, Immune Thrombocytopenia"), (TEAL, "CARDIAC", "Myocarditis (SLE/Myositis), Pericardial Tamponade, Libman-Sacks Endocarditis"), (GREEN, "SYSTEMIC", "Cytokine Storm, Severe Drug Reactions (e.g. MTX toxicity, biologics)"), ] for i, (col, cat, desc) in enumerate(categories): row = i // 2; ccol = i % 2 xl = 0.3 + ccol * 6.55; yt = 1.25 + row * 1.4 add_rect(s, xl, yt, 0.6, 1.1, fill_rgb=col) add_tb(s, cat, xl+0.02, yt+0.28, 0.58, 0.55, size=8.5, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_rect(s, xl+0.62, yt, 5.8, 1.1, fill_rgb=LIGHT, line_rgb=col, line_pt=1.2) add_tb(s, desc, xl+0.72, yt+0.25, 5.55, 0.65, size=12.5, bold=False, color=DARK) add_rect(s, 0.3, 6.65, 12.7, 0.62, fill_rgb=GOLD) add_tb(s, "Initial Approach: ABCDE + IV access + Bloods (FBC, U&E, CRP, ESR, ANA, ANCA, complement) " "+ Cultures (blood/synovial) + Imaging (CXR, USS, CT) + Rheumatology referral", 0.5, 6.68, 12.3, 0.58, size=12, bold=True, color=NAVY) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 5 – PATHOPHYSIOLOGY # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Pathophysiology", "Unifying Mechanisms Behind Rheumatologic Emergencies") slide_num(s, 5) # central box add_rect(s, 4.9, 3.2, 3.5, 1.1, fill_rgb=NAVY) add_tb(s, "IMMUNE\nDYSREGULATION", 4.92, 3.22, 3.46, 1.06, size=15, bold=True, color=WHITE, align=PP_ALIGN.CENTER) arrows = [ (0.35, 1.3, 5.5, 1.4, TEAL, "Autoantibody\nFormation\n(ANA, ANCA,\naPL, RF)"), (0.35, 3.2, 5.5, 3.7, NAVY, "Complement\nActivation\n(C3/C4↓,\nMAC deposition)"), (0.35, 5.1, 5.5, 5.5, GREEN, "Cytokine Storm\n(IL-1, IL-6,\nTNF-α, IFN-γ)"), (8.5, 1.3, 8.5, 1.4, ORANGE,"Direct\nTissue Injury\n(Vasculitis,\nNephritis)"), (8.5, 3.2, 8.5, 3.7, RED, "Thrombosis\n(APS, CAPS,\nTMA, DIC)"), (8.5, 5.1, 8.5, 5.5, TEAL, "Macrophage\nActivation\n(Haemophago-\ncytosis, MAS)"), ] for xl, yt, _, _, col, txt in arrows: add_rect(s, xl, yt, 3.8, 1.5, fill_rgb=col, line_rgb=WHITE, line_pt=0.5) add_tb(s, txt, xl+0.1, yt+0.1, 3.6, 1.35, size=12, bold=False, color=WHITE, align=PP_ALIGN.CENTER) add_tb(s, "Trigger (Infection / Stress / Drugs / Surgery / Pregnancy)", 0.3, 6.9, 12.7, 0.5, size=13, bold=True, color=RED, align=PP_ALIGN.CENTER) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 6 – CLINICAL FEATURES & RED FLAGS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Clinical Features & Red Flags", "Warning signs that demand immediate action") slide_num(s, 6) red_flags = [ "Sudden visual loss / amaurosis fugax → GCA until proven otherwise", "Acute monoarthritis + fever + rigors → Septic Arthritis until proven otherwise", "Haemoptysis + haematuria + ANCA+ → Pulmonary-Renal Syndrome (Vasculitis/DAH)", "Hypertensive crisis + rising creatinine in Scleroderma → Scleroderma Renal Crisis", "Fever + pancytopenia + ferritin >10,000 µg/L → MAS/HLH", "Multi-organ thrombosis + aPL+ → Catastrophic APS (CAPS)", "Neck pain + upper limb weakness in RA → Cervical Spine Instability", "Altered consciousness + seizures in SLE → Neuropsychiatric SLE", "Paraplegia/paraparesis onset <4 hrs → Acute Transverse Myelitis", ] general = [ "Unexplained fever >38.5°C in immunosuppressed patient", "New rash (purpura, livedo, malar) + systemic symptoms", "Dyspnoea + bilateral infiltrates → consider DAH", "Oliguria + haematuria + casts → renal vasculitis/nephritis", "Peripheral neuropathy + weight loss → vasculitis", "Dysphagia + proximal weakness → Myositis crisis", ] add_rect(s, 0.3, 1.2, 6.9, 0.5, fill_rgb=RED) add_tb(s, " ⚠ ABSOLUTE RED FLAGS (Act within minutes–hours)", 0.32, 1.22, 6.85, 0.46, size=14, bold=True, color=WHITE) add_rect(s, 0.3, 1.7, 6.9, 5.55, fill_rgb=RGBColor(0xFF,0xF0,0xF0), line_rgb=RED, line_pt=1) add_bullets(s, red_flags, 0.45, 1.75, 6.65, 5.4, size=12.5, color=DARK, symbol="⚠") add_rect(s, 7.45, 1.2, 5.55, 0.5, fill_rgb=ORANGE) add_tb(s, " General Warning Features", 7.47, 1.22, 5.5, 0.46, size=14, bold=True, color=WHITE) add_rect(s, 7.45, 1.7, 5.55, 3.4, fill_rgb=RGBColor(0xFF,0xF5,0xE6), line_rgb=ORANGE, line_pt=1) add_bullets(s, general, 7.6, 1.75, 5.3, 3.3, size=12.5, color=DARK, symbol="→") # MBBS viva box add_rect(s, 7.45, 5.3, 5.55, 1.95, fill_rgb=NAVY) add_tb(s, "VIVA POINTS:\n" "Q: Most common cause of acute monoarthritis in young adults? A: Septic arthritis\n" "Q: Hallmark of SRC? A: Normotensive or hypertensive crisis in diffuse SSc\n" "Q: Ferritin level in MAS? A: >10,000 µg/L (diagnostic threshold per 2016 criteria)", 7.6, 5.35, 5.3, 1.85, size=11, bold=False, color=GOLD) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 7 – DIAGNOSTIC WORKUP # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Diagnostic Workup", "Laboratory Investigations + Imaging Algorithm") slide_num(s, 7) labs_tier1 = [ "FBC: leucocytosis (infection), pancytopenia (MAS/SLE)", "ESR, CRP, Procalcitonin: infection vs. inflammation", "U&E, Creatinine: renal involvement (SRC, nephritis)", "LFTs, LDH, Uric acid: MAS, gout, crystal arthropathy", "Coagulation (PT, aPTT, D-dimer, fibrinogen): CAPS/DIC", "Urinalysis + microscopy: casts → nephritis/vasculitis", ] labs_tier2 = [ "ANA, anti-dsDNA, complement (C3/C4): SLE", "ANCA (pANCA/cANCA, MPO/PR3): Vasculitis", "aPL (aCL, anti-β2GP1, Lupus anticoagulant): APS/CAPS", "RF, anti-CCP: Rheumatoid Arthritis", "Ferritin (>10,000 → MAS), Triglycerides ↑", "Blood cultures × 2 + Synovial fluid C&S", ] imaging = [ "X-ray joints: baseline, erosions, calcification", "USS joints: effusion detection, guided aspiration", "MRI spine: cord compression (RA), transverse myelitis", "CT chest/abdomen: vasculitis, ILD, renal infarcts", "CXR: bilateral infiltrates (DAH, pneumonitis)", "Echo: Libman-Sacks, pericardial effusion, PHTN", "PET-CT/MRA: large-vessel vasculitis (GCA, Takayasu)", ] add_rect(s, 0.3, 1.2, 4.0, 0.45, fill_rgb=TEAL) add_tb(s, " Tier 1 – Urgent Bloods", 0.32, 1.22, 3.95, 0.42, size=13, bold=True, color=WHITE) add_rect(s, 0.3, 1.65, 4.0, 5.6, fill_rgb=LIGHT, line_rgb=TEAL, line_pt=1) add_bullets(s, labs_tier1, 0.45, 1.7, 3.8, 5.5, size=12.5, color=DARK, symbol="•") add_rect(s, 4.6, 1.2, 4.0, 0.45, fill_rgb=NAVY) add_tb(s, " Tier 2 – Immunology", 4.62, 1.22, 3.95, 0.42, size=13, bold=True, color=WHITE) add_rect(s, 4.6, 1.65, 4.0, 5.6, fill_rgb=LIGHT, line_rgb=NAVY, line_pt=1) add_bullets(s, labs_tier2, 4.75, 1.7, 3.8, 5.5, size=12.5, color=DARK, symbol="•") add_rect(s, 8.9, 1.2, 4.13, 0.45, fill_rgb=GREEN) add_tb(s, " Imaging", 8.92, 1.22, 4.08, 0.42, size=13, bold=True, color=WHITE) add_rect(s, 8.9, 1.65, 4.13, 5.6, fill_rgb=LIGHT, line_rgb=GREEN, line_pt=1) add_bullets(s, imaging, 9.05, 1.7, 3.93, 5.5, size=12.5, color=DARK, symbol="•") add_rect(s, 0.3, 7.15, 12.7, 0.28, fill_rgb=GOLD) add_tb(s, "SYNOVIAL FLUID: WBC >50,000/mm³ + >90% PMN = Septic Arthritis | " "Negatively birefringent = Gout | Positively birefringent = CPPD", 0.45, 7.17, 12.4, 0.24, size=10.5, bold=True, color=NAVY, align=PP_ALIGN.CENTER) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 8 – SEPTIC ARTHRITIS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Septic Arthritis", "Most common rheumatologic emergency | Orthopaedic urgency") slide_num(s, 8) col1 = [ "Incidence: 2–10/100,000/year; mortality 6–11%", "Risk factors: DM, RA, joint prosthesis, IVDU, immunosuppression", "Most common organism: Staphylococcus aureus (>50%)", "Neisseria gonorrhoeae: commonest in sexually active adults <35 yrs", "Route: Haematogenous (most common) > direct inoculation", "Most common joint: Knee > hip > shoulder > wrist", ] col2 = [ "Features: Acute monoarthritis + fever + erythema + severe pain", "Synovial WBC >50,000/mm³ (>90% PMN) strongly suggests infection", "Blood cultures positive in 50%; synovial culture positive in 70–80%", "Imaging: USS for effusion; MRI for early osteomyelitis", "X-ray: normal early; erosions/destruction in 7–10 days if untreated", ] two_col(s, col1, col2, "Epidemiology & Microbiology", "Diagnosis", top=1.25) # Management flowchart (text-based) add_rect(s, 0.3, 5.55, 12.7, 0.38, fill_rgb=RED) add_tb(s, " MANAGEMENT ALGORITHM", 0.45, 5.57, 12.4, 0.34, size=14, bold=True, color=WHITE) steps = [ ("ASPIRATION", "Joint aspiration BEFORE antibiotics | C&S, Gram stain, WBC", TEAL), ("ANTIBIOTICS", "IV Flucloxacillin 2g QDS (MRSA risk → Vancomycin) | IV then oral 4–6 weeks", NAVY), ("DRAINAGE", "Repeated aspiration or arthroscopic washout | Open surgery if hip/prosthesis", GREEN), ("MONITORING", "Daily WBC, CRP, ESR | Physiotherapy post-acute | Repeat aspiration prn", ORANGE), ] for i, (step, desc, col) in enumerate(steps): xl = 0.35 + i * 3.2 add_rect(s, xl, 5.95, 3.0, 0.52, fill_rgb=col) add_tb(s, step, xl+0.05, 5.97, 2.9, 0.28, size=11, bold=True, color=WHITE) add_tb(s, desc, xl+0.05, 6.23, 2.9, 0.32, size=9.5, bold=False, color=WHITE) if i < 3: add_tb(s, "→", xl+3.02, 6.1, 0.25, 0.35, size=14, bold=True, color=NAVY) add_rect(s, 0.3, 6.92, 12.7, 0.48, fill_rgb=LIGHT, line_rgb=NAVY, line_pt=0.8) add_tb(s, "MBBS EXAM KEY POINT: Joint aspiration is BOTH diagnostic AND therapeutic | " "Never delay IV antibiotics >1 hour after cultures | " "Gram-negative cover if elderly, immunocompromised, or IVDU", 0.5, 6.94, 12.3, 0.44, size=11.5, bold=False, color=NAVY) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 9 – CAPS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Catastrophic Antiphospholipid Syndrome (CAPS)", "Asherson Syndrome | Mortality ~37% even with treatment") slide_num(s, 9) left = [ "Definition: ≥3 organ thromboses over <1 week + aPL antibodies", "Prevalence: <1% of APS patients; most devastating APS variant", "Trigger: Infection (most common ~22%), surgery, OCP, anticoagulant withdrawal", "Organs: Kidney (78%), Lung (66%), CNS (56%), Heart (50%), Skin (50%)", "Lab: Thrombocytopenia, haemolytic anaemia, elevated D-dimer", "Distinguish from TTP: CAPS has aPL+; TTP has ADAMTS13 deficiency", "Diagnosis: ISTH CAPS criteria (2003): ≥3 organs + biopsy +aPL+", ] right = [ "TRIPLE THERAPY (Standard of Care):", "1. Anticoagulation: IV unfractionated heparin → warfarin (INR 3–4)", "2. Glucocorticoids: Methylprednisolone 1g/day × 3 days (IV pulse)", "3. Plasma exchange (PE): 5 sessions or IVIG 400mg/kg/day × 5 days", "", "Refractory CAPS: Rituximab 375mg/m² × 4 cycles", "Complement-mediated: Eculizumab (anti-C5) — evidence from case series", "Treat precipitating infection aggressively with antibiotics", "Lifelong anticoagulation after CAPS episode", ] two_col(s, left, right, "Pathophysiology & Diagnosis", "Management – Triple Therapy", top=1.25) add_rect(s, 0.3, 6.88, 12.7, 0.52, fill_rgb=NAVY) add_tb(s, "VIVA: Triple therapy = Anticoagulation + Steroids + Plasma exchange/IVIG | " "aPL antibodies: Lupus anticoagulant, anti-Cardiolipin IgG/IgM, anti-β2GP1 | " "Lab paradox: aPTT prolonged but patient is PROTHROMBOTIC", 0.5, 6.90, 12.3, 0.48, size=11.5, bold=False, color=GOLD) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 10 – SCLERODERMA RENAL CRISIS (SRC) # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Scleroderma Renal Crisis (SRC)", "Hypertensive emergency in Systemic Sclerosis | Treat with ACE inhibitors") slide_num(s, 10) facts = [ "Incidence: 2–15% of SSc patients; most in diffuse cutaneous SSc", "Risk factors: Anti-RNA polymerase III Ab+ (~25× risk), high-dose steroids (>15mg/day prednisolone)", "Early diffuse SSc (<4 yrs) = highest risk; rarely in limited SSc", "Pathology: Intimal proliferation + onion-skin lesions of renal arterioles", "BP: Usually >150/85 mmHg (but 10% normotensive SRC = worse prognosis!)", "Features: Headache, blurred vision, seizures, MAHA, oliguria, raised creatinine", "Urine: Haematuria, proteinuria, granular casts; MAHA on blood film", "Investigations: Renal biopsy (confirm) + echo (PHTN screen) + urinalysis", ] add_bullets(s, facts, 0.3, 1.2, 7.2, 5.8, size=13, color=DARK, symbol="•") # Management box add_rect(s, 7.65, 1.2, 5.35, 5.8, fill_rgb=LIGHT, line_rgb=TEAL, line_pt=1.5) add_tb(s, "MANAGEMENT", 7.75, 1.25, 5.15, 0.4, size=14, bold=True, color=TEAL) mgmt = [ "ACE Inhibitor: FIRST-LINE (e.g. Captopril 6.25mg TDS, titrate rapidly)", "Target: Systolic BP ↓ 20 mmHg/24 hr (avoid sudden hypotension)", "NEVER use ARBs as initial therapy (inferior evidence)", "Add CCB, ARB, endothelin antagonist if ACEi inadequate", "Haemodialysis if severe renal failure; continue ACEi during dialysis", "Kidney may recover up to 6–12 months after SRC → delay transplant", "AVOID high-dose corticosteroids (precipitates SRC)", "Prostacyclin (IV iloprost) for severe vascular involvement", "5-year survival: ~70% with ACEi; <20% before ACEi era", ] add_bullets(s, mgmt, 7.75, 1.65, 5.1, 5.25, size=11.5, color=DARK, symbol="→") add_rect(s, 0.3, 7.05, 12.7, 0.38, fill_rgb=RED) add_tb(s, "KEY EXAM POINT: ACE inhibitor MANDATORY even if renal function worsens initially | " "High-dose steroids are a PRECIPITANT of SRC — reduce/avoid | " "Normotensive SRC exists and has WORSE prognosis", 0.5, 7.07, 12.3, 0.34, size=11, bold=True, color=WHITE, align=PP_ALIGN.LEFT) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 11 – DAH & LUPUS NEPHRITIS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Diffuse Alveolar Hemorrhage (DAH) & Lupus Nephritis", "Life-threatening pulmonary + renal complications of SLE") slide_num(s, 11) dah = [ "Incidence: 1.5–4% of SLE patients; mortality 50–90% without treatment", "Triad: Haemoptysis + Bilateral infiltrates + ↓Haemoglobin", "NB: Haemoptysis absent in up to 30%; CXR shows 'bat-wing' infiltrates", "Diagnosis: BAL showing progressively bloodier returns (haemosiderin-laden macrophages)", "Other causes: AAV (ANCA+), Goodpasture (anti-GBM+), Myositis, MCTD", "Treatment: Methylprednisolone 1g/day IV × 3–5 days + Cyclophosphamide", "Add Rituximab or Plasma exchange in refractory cases", "Mechanical ventilation/ECMO if respiratory failure", ] ln = [ "ISN/RPS Classification: Class I–VI (III/IV most severe)", "Class III: Focal proliferative; Class IV: Diffuse proliferative (>50% glomeruli)", "Features: Haematuria, proteinuria, red cell casts, rising creatinine, hypertension", "Induction: Methylprednisolone + Mycophenolate mofetil (MMF) OR IV Cyclophosphamide", "Maintenance: MMF 2g/day OR Azathioprine 2mg/kg/day", "Belimumab/Voclosporin: approved add-on therapy (2021–2023)", "Targets: Proteinuria <0.5g/24hr; creatinine normalisation", "ESRD risk: ~10–20% over 10 years in class IV without treatment", ] two_col(s, dah, ln, "Diffuse Alveolar Hemorrhage (DAH)", "Lupus Nephritis (LN)", top=1.25) add_rect(s, 0.3, 6.9, 12.7, 0.5, fill_rgb=NAVY) add_tb(s, "PULMONARY-RENAL SYNDROME = DAH + Nephritis → Think: AAV, SLE, Goodpasture, CAPS | " "Check: ANA, anti-dsDNA, ANCA, anti-GBM, complement | Biopsy both if safe", 0.5, 6.92, 12.3, 0.46, size=12, bold=False, color=GOLD) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 12 – VASCULITIC EMERGENCIES # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Vasculitic Emergencies", "Giant Cell Arteritis (GCA) | ANCA-Associated Vasculitis (AAV)") slide_num(s, 12) gca = [ "Age >50 years (average 72 yrs); F:M = 3:1; commonest large-vessel vasculitis", "Symptoms: Temporal headache, jaw claudication, scalp tenderness, PMR", "EMERGENCY: Sudden painless monocular visual loss (anterior ischaemic optic neuropathy)", "Lab: ESR >50 mm/hr, CRP ↑ (ESR can be normal in 4%)", "Diagnosis: Temporal artery biopsy (gold standard; skip lesions → bilateral biopsy)", "USS temporal/axillary: 'Halo sign' (non-compressible hypoechoic wall thickening)", "PET-CT: Aorta + branches involvement", "TREATMENT: Prednisolone 40–60mg/day IMMEDIATELY (do not wait for biopsy)", "Visual loss risk: Start HIGH-DOSE steroids within HOURS of diagnosis", "Tocilizumab (IL-6R inhibitor): steroid-sparing agent (GIACTA trial 2017)", ] aav = [ "Types: GPA (Granulomatosis with Polyangiitis), MPA, EGPA", "GPA: saddle-nose deformity, sinusitis, haemoptysis, haematuria", "Lab: cANCA/PR3 (GPA), pANCA/MPO (MPA, EGPA)", "Pulmonary-Renal Syndrome in AAV = EMERGENCY: mortality 25–30% if untreated", "Induction: Rituximab 375mg/m²×4 (preferred) OR IV Cyclophosphamide + Methylprednisolone", "RAVE/RITUXVAS trials: Rituximab non-inferior to cyclophosphamide", "Plasma exchange: PEXIVAS trial (2020) – no mortality benefit; still used in severe", "Maintenance: Rituximab 500mg every 6 months (2020 EULAR recommendation)", "EGPA: IL-5 inhibitor Mepolizumab approved (2017) for remission", ] two_col(s, gca, aav, "Giant Cell Arteritis (GCA)", "ANCA-Associated Vasculitis (AAV)", top=1.25) add_rect(s, 0.3, 6.88, 12.7, 0.52, fill_rgb=GOLD) add_tb(s, "GCA VIVA: Treat BEFORE biopsy | Biopsy valid up to 2 weeks after steroids | " "AAV VIVA: Rituximab preferred over cyclophosphamide in GPA/MPA (RAVE trial) | " "EGPA = Asthma + Eosinophilia + Vasculitis", 0.5, 6.90, 12.3, 0.48, size=11.5, bold=True, color=NAVY) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 13 – NP-SLE & ACUTE TRANSVERSE MYELITIS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Neuropsychiatric SLE (NP-SLE) & Acute Transverse Myelitis", "CNS emergencies in autoimmune disease") slide_num(s, 13) npsle = [ "Prevalence: 25–70% of SLE patients experience ≥1 NP manifestation", "Attributed to SLE in ~28% (ACR nomenclature 19 NP syndromes)", "Mechanisms: Antibody-mediated (anti-NMDAR, anti-ribosomal P), vasculitis, thrombosis (aPL)", "Seizures: ~10%; Status epilepticus → IV lorazepam/phenytoin + high-dose steroids", "Cerebral vasculitis/stroke: Anti-phospholipid → anticoagulate; vasculitis → immunosuppression", "Cognitive dysfunction: Most common NP-SLE; assess with neurocognitive testing", "Psychosis in SLE: Exclude infection/steroid-induced; treat with steroids + antipsychotics", "MRI brain: white matter lesions, infarcts, diffuse cerebritis", "CSF: pleocytosis, elevated protein, normal glucose in SLE", "Treatment: IV methylprednisolone + cyclophosphamide for severe NP-SLE", ] atm = [ "ATM in SLE/APS: Rare but severe; T4–T6 most common level", "Onset: Acute/subacute bilateral weakness + sensory level + bladder dysfunction", "MRI spine: T2 hyperintensity spanning ≥3 vertebral segments (longitudinally extensive)", "NMO spectrum disorder (AQP4-IgG): Must be excluded", "Treatment: IV methylprednisolone 1g/day × 3–5 days", "Add IV cyclophosphamide for NP-SLE-associated ATM", "Plasma exchange for steroid-refractory cases", "Long-term: Azathioprine or MMF maintenance", "Prognosis: Full recovery in <30%; significant disability common", "VIVA: 'Sensory level' below lesion level is pathognomonic", ] two_col(s, npsle, atm, "Neuropsychiatric SLE (NP-SLE)", "Acute Transverse Myelitis (ATM)", top=1.25) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 14 – MACROPHAGE ACTIVATION SYNDROME (MAS) # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Macrophage Activation Syndrome (MAS)", "= Secondary HLH | Cytokine Storm | Mortality 20–30% | 2022 EULAR/ACR Guidelines") slide_num(s, 14) facts14 = [ "Definition: Life-threatening hyperinflammatory syndrome with macrophage/T-cell activation", "Associated with: sJIA (most common), Adult-onset Still's disease, SLE, infections, malignancy", "2016 Classification Criteria (for MAS in sJIA):", " Ferritin >684 µg/L + any 2 of:", " • Platelets ≤181×10⁹/L • AST >48 U/L", " • Triglycerides >156 mg/dL • Fibrinogen ≤360 mg/dL", "HScore: ≥169 → >93% probability of HLH/MAS", "Typical lab: Ferritin >10,000 µg/L, pancytopenia, ↑LDH, ↑transaminases, low fibrinogen", "Bone marrow biopsy: Haemophagocytosis (macrophages engulfing RBC/WBC/platelets)", ] mgmt14 = [ "2022 EULAR/ACR Points to Consider (PMID 37487610):", "Step 1: Treat underlying trigger (infection → antibiotics; malignancy → chemo)", "Step 2: High-dose glucocorticoids – IV methylprednisolone 2–8mg/kg/day", "Step 3: Cyclosporin A 3–4 mg/kg/day (especially sJIA-related MAS)", "Step 4: Anakinra (IL-1R antagonist) – HIGH DOSE 2–8mg/kg/day (rapidly effective)", "Step 5: Emapalumab (anti-IFN-γ) – FDA approved for refractory primary HLH (2018)", "Step 6: Ruxolitinib (JAK1/2 inhibitor) – promising in refractory cases", "Etoposide: For fulminant/malignancy-associated cases (HLH-94 protocol)", "IVIG: 1–2g/kg adjunct in severe cases", "Supportive: ICU, DVT prophylaxis, G-CSF avoided (worsens MAS)", ] two_col(s, facts14, mgmt14, "Pathophysiology & Diagnosis", "Management (Step-wise)", top=1.25) add_rect(s, 0.3, 6.9, 12.7, 0.5, fill_rgb=TEAL) add_tb(s, "VIVA: MAS vs Sepsis: ferritin >10,000 + falling ESR (fibrinogen consumed) favours MAS | " "2022 EULAR/ACR: Rule out HLH EARLY in unexplained fever + cytopenias | " "Never delay anakinra while awaiting bone marrow result", 0.5, 6.92, 12.3, 0.46, size=11.5, bold=False, color=WHITE) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 15 – CERVICAL SPINE INSTABILITY IN RA & CRYSTAL ARTHRITIS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Cervical Spine Instability in RA & Acute Crystal Arthritis", "Two distinct but important rheumatologic emergencies") slide_num(s, 15) csi = [ "Prevalence: ~25–40% of longstanding RA have cervical spine involvement", "Most common: C1–C2 (atlantoaxial) subluxation > subaxial subluxation", "Mechanism: Pannus formation erodes transverse ligament of atlas", "Trigger: Neck manipulation, intubation, falls, trauma", "Symptoms: Occipital headache, L'Hermitte's sign, upper limb weakness, gait ataxia", "EMERGENCY SIGN: New-onset myelopathy in RA = cord compression", "Diagnosis: Flexion–Extension X-ray (ADI >3mm = abnormal, >9mm = unstable)", "MRI: cord compression, pannus, signal change in cord", "Management: Rigid collar IMMEDIATELY, neurosurgical referral", "Surgery: Posterior C1–C2 fusion (wire/screw fixation)", "ANAESTHETIC WARNING: Avoid neck extension during intubation", ] crystal = [ "GOUT (Acute Gouty Arthritis):", " Serum urate >7 mg/dL (solubility threshold)", " Negatively birefringent, needle-shaped MSU crystals", " First MTP joint (podagra) in 50%; knee, ankle also common", " Treatment: NSAIDs (1st line) OR Colchicine 500µg BD-TDS", " Steroids: intra-articular or oral if NSAIDs contraindicated", " Add IL-1 inhibitor (Anakinra/Canakinumab) if refractory", "", "CPPD (Pseudogout):", " Positively birefringent, rhomboid-shaped calcium pyrophosphate crystals", " Knee most common; check calcium, Mg, PTH, haemochromatosis", " Treatment: Aspiration + NSAIDs/colchicine/steroids", " Consider underlying metabolic cause", ] two_col(s, csi, crystal, "Cervical Spine Instability (RA)", "Acute Crystal Arthropathy", top=1.25) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 16 – EMERGENCY MANAGEMENT PRINCIPLES & DRUG THERAPY # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Emergency Management Principles & Drug Therapy", "Immunosuppressive and biological agents in rheumatologic emergencies") slide_num(s, 16) # Drug table drugs = [ ("Methylprednisolone (IV pulse)", "1g/day × 3 days", "SLE flare, DAH, NP-SLE, MAS, Vasculitis", "Infection, hyperglycaemia, psychosis"), ("Cyclophosphamide (IV)", "750mg/m² monthly", "LN class III/IV, AAV, NP-SLE, DAH", "Haemorrhagic cystitis, myelosuppression"), ("Rituximab", "375mg/m² × 4 doses", "GPA/MPA, refractory SLE, CAPS, RA", "PML (rare), infusion reaction, PCP"), ("Anakinra (IL-1Ri)", "1–8 mg/kg/day SC/IV", "MAS/HLH, acute gout, Still's disease", "Injection site reaction, infection"), ("Tocilizumab (IL-6Ri)", "8mg/kg IV q4wk", "GCA (steroid-sparing), RA, Myositis", "GI perforation, LFT elevation"), ("Captopril / ACE inhibitor", "6.25mg TDS titrate", "Scleroderma Renal Crisis", "Hypotension, angioedema, renal failure"), ("Plasma Exchange (PE)", "5–7 sessions", "CAPS, DAH, TTP-like, AAV", "Hypocalcaemia, line sepsis"), ("IV Immunoglobulin (IVIG)", "1–2 g/kg total", "MAS, CAPS adjunct, immune thrombocytopenia", "Headache, renal failure, thrombosis"), ("Colchicine", "500µg BD–TDS", "Acute gout, CPPD, pericarditis", "Diarrhoea, myopathy, myelosuppression"), ("Heparin (UFH)", "IV infusion", "CAPS, APS thrombosis, DVT", "Bleeding, HIT"), ] headers_row = ["Drug", "Dose", "Indication", "Key Side Effects"] col_widths = [3.0, 2.3, 3.9, 3.7] col_starts = [0.3, 3.32, 5.64, 9.56] yt = 1.2 # Header row for ci, (hdr, w, xl) in enumerate(zip(headers_row, col_widths, col_starts)): add_rect(s, xl, yt, w-0.05, 0.42, fill_rgb=NAVY) add_tb(s, hdr, xl+0.06, yt+0.04, w-0.12, 0.36, size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER) for ri, (drug, dose, ind, se) in enumerate(drugs): yt = 1.62 + ri * 0.51 bg = LIGHT if ri % 2 == 0 else WHITE row_data = [drug, dose, ind, se] for ci, (val, w, xl) in enumerate(zip(row_data, col_widths, col_starts)): add_rect(s, xl, yt, w-0.05, 0.49, fill_rgb=bg, line_rgb=RGBColor(0xCC,0xCC,0xCC), line_pt=0.4) add_tb(s, val, xl+0.05, yt+0.04, w-0.12, 0.44, size=9.8, bold=(ci==0), color=NAVY if ci==0 else DARK) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 17 – ICU INDICATIONS, COMPLICATIONS & PROGNOSIS # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "ICU Indications, Complications & Prognosis", "When to escalate care | Monitoring | Outcomes") slide_num(s, 17) icu_ind = [ "Respiratory failure (DAH, severe pneumonitis, ILD exacerbation): SpO₂ <88%", "Cardiovascular instability: refractory hypertension (SRC), cardiac tamponade", "Neurological emergency: status epilepticus, GCS <10, acute cord compression", "Renal failure requiring urgent dialysis (SRC, CAPS, Vasculitis)", "CAPS / MAS / HLH: multi-organ failure, haemodynamic compromise", "Septic shock complicating septic arthritis or immunosuppression", "Post-operative complications (spinal surgery for RA)", "Severe thrombocytopenia (<20×10⁹/L) with active bleeding", ] complications = [ "Infection: Most common complication of immunosuppression (PCP, aspergillus, CMV)", "Steroid side effects: Cushing's, osteoporosis, avascular necrosis, psychosis", "Cyclophosphamide: haemorrhagic cystitis, malignancy (MESNA co-prescription)", "Biological agents: Reactivation TB (screen before anti-TNF), PML (rituximab)", "CAPS: Stroke, limb ischaemia, adrenal insufficiency, ARDS", "Septic arthritis: Osteomyelitis, avascular necrosis, joint destruction", "GCA: Permanent blindness (5–20%), aortic aneurysm (17×↑risk)", "Prognosis (PMID 41196392): ICU mortality in rheumatic diseases 20–40%", ] two_col(s, icu_ind, complications, "ICU Admission Criteria", "Complications & Prognosis", top=1.25) add_rect(s, 0.3, 6.9, 12.7, 0.5, fill_rgb=NAVY) add_tb(s, "ALWAYS screen for infection before escalating immunosuppression | " "TB screening (IGRA/TST) before biologics | PCP prophylaxis (Co-trimoxazole) when prednisolone >15mg/day", 0.5, 6.92, 12.3, 0.46, size=12, bold=False, color=GOLD) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 18 – RECENT ADVANCES & CURRENT GUIDELINES # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, WHITE) header(s, "Recent Advances & Current Guidelines (2020–2025)", "Biologics, Targeted Therapies & Guideline Updates") slide_num(s, 18) advances = [ ("2020", "PEXIVAS Trial", "Plasma exchange adds NO mortality benefit in ANCA vasculitis (NEJM 2020)"), ("2021", "Belimumab for LN", "FDA/EMA approved belimumab (anti-BLyS) for active lupus nephritis"), ("2022", "EULAR/ACR MAS", "2022 Points to Consider for early HLH/MAS diagnosis and management (PMID 37487610)"), ("2022", "Voclosporin + LN", "Voclosporin (calcineurin inhibitor) approved for active lupus nephritis (AURORA trial)"), ("2023", "EULAR AAV Guidelines", "Updated maintenance with rituximab every 6 months; avacopan approved for AAV"), ("2023", "Avacopan (C5aR1i)", "Oral complement inhibitor; non-inferior to high-dose prednisolone in ANCA vasculitis"), ("2024", "EULAR Still's/sJIA", "2024 EULAR/PReS recommendations: Biologic-first approach in sJIA with MAS features (PMID 39317417)"), ("2025", "EULAR RA Update", "2025 EULAR RA recommendations: 9 principles; JAK inhibitors with nuanced CV/malignancy guidance"), ("2025", "ERS/EULAR CTD-ILD", "CTD-ILD guidelines: nintedanib for SSc-ILD; antifibrotics evidence expanded"), ("2026", "Emerging", "Deucravacitinib (TYK2i), Upadacitinib (JAK1i) in SLE/PsA trials ongoing"), ] yt = 1.2 add_rect(s, 0.3, yt, 1.1, 0.42, fill_rgb=NAVY) add_rect(s, 1.42, yt, 2.5, 0.42, fill_rgb=TEAL) add_rect(s, 3.94, yt, 9.1, 0.42, fill_rgb=NAVY) add_tb(s, "Year", 0.32, yt+0.05, 1.05, 0.34, size=12, bold=True, color=WHITE, align=PP_ALIGN.CENTER) add_tb(s, "Advance", 1.44, yt+0.05, 2.45, 0.34, size=12, bold=True, color=WHITE) add_tb(s, "Clinical Significance", 3.96, yt+0.05, 9.05, 0.34, size=12, bold=True, color=WHITE) for i, (yr, adv, sig) in enumerate(advances): yt2 = 1.62 + i * 0.52 bg = LIGHT if i % 2 == 0 else WHITE add_rect(s, 0.3, yt2, 1.1, 0.5, fill_rgb=bg, line_rgb=RGBColor(0xCC,0xCC,0xCC), line_pt=0.4) add_rect(s, 1.42, yt2, 2.5, 0.5, fill_rgb=bg, line_rgb=RGBColor(0xCC,0xCC,0xCC), line_pt=0.4) add_rect(s, 3.94, yt2, 9.1, 0.5, fill_rgb=bg, line_rgb=RGBColor(0xCC,0xCC,0xCC), line_pt=0.4) add_tb(s, yr, 0.32, yt2+0.09, 1.05, 0.38, size=11.5, bold=True, color=TEAL, align=PP_ALIGN.CENTER) add_tb(s, adv, 1.47, yt2+0.09, 2.4, 0.38, size=11, bold=True, color=NAVY) add_tb(s, sig, 3.99, yt2+0.09, 9.0, 0.38, size=11, bold=False, color=DARK) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 19 – CLINICAL CASE SCENARIO # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, GREY) header(s, "Clinical Case Scenario", "Integrated diagnostic approach — exam-style reasoning") slide_num(s, 19) # Case box add_rect(s, 0.3, 1.2, 12.7, 2.1, fill_rgb=NAVY) add_tb(s, "CASE: A 28-year-old woman with known SLE (on hydroxychloroquine) presents with:\n" " • 4-day history of HIGH fever (39.2°C), severe fatigue, and generalised lymphadenopathy\n" " • Haemoglobin 7.4 g/dL, WBC 2.1×10⁹/L, Platelets 65×10⁹/L (3 days ago they were normal)\n" " • Ferritin: 24,600 µg/L | LDH: 1,840 U/L | Triglycerides: 3.8 mmol/L | Fibrinogen: 1.1 g/L", 0.5, 1.25, 12.3, 2.0, size=13.5, bold=False, color=WHITE) # diagnostic steps steps2 = [ ("RECOGNISE", "Pancytopenia + Hyperferritinaemia + High Triglycerides + Low Fibrinogen\n→ STRONGLY suggests MAS/HLH in a known SLE patient", TEAL), ("CONFIRM", "HScore ≥169 (>93% probability HLH) | 2016 MAS criteria met\nBone marrow aspiration: haemophagocytosis | Check EBV, CMV, parvovirus B19", NAVY), ("EXCLUDE", "Sepsis (cultures negative) | SLE flare alone (ferritin very high for SLE flare)\nMalignancy-associated HLH (lymphoma screen: CT chest/abdomen/pelvis)", GREEN), ("MANAGE", "IV methylprednisolone 2mg/kg/day → Cyclosporin A 3mg/kg/day\nAnakinra 2–4 mg/kg/day SC | ICU admission | Etoposide if fulminant", RED), ] for i, (step, desc, col) in enumerate(steps2): xl = 0.35 + i * 3.22 add_rect(s, xl, 3.42, 3.05, 0.4, fill_rgb=col) add_tb(s, f"STEP {i+1}: {step}", xl+0.07, 3.44, 2.92, 0.36, size=12, bold=True, color=WHITE) add_rect(s, xl, 3.82, 3.05, 2.4, fill_rgb=LIGHT, line_rgb=col, line_pt=1.2) add_tb(s, desc, xl+0.08, 3.88, 2.9, 2.3, size=11.5, bold=False, color=DARK) if i < 3: add_tb(s, "▶", xl+3.07, 4.55, 0.22, 0.5, size=16, bold=True, color=col) add_rect(s, 0.3, 6.35, 12.7, 1.05, fill_rgb=GOLD) add_tb(s, "LEARNING POINTS FROM THIS CASE:\n" "• Falling ESR (fibrinogen consumed) + rising ferritin = hallmark of MAS within SLE\n" "• 2022 EULAR/ACR: Suspect HLH/MAS EARLY — don't wait for bone marrow result to start treatment\n" "• Anakinra acts within 24–48 hrs and is now preferred first-line in sJIA-MAS and adult Still's MAS", 0.5, 6.38, 12.3, 1.0, size=12, bold=False, color=NAVY) # ───────────────────────────────────────────────────────────────────────────── # SLIDE 20 – KEY TAKE-HOME MESSAGES & REFERENCES # ───────────────────────────────────────────────────────────────────────────── s = prs.slides.add_slide(blank_layout); set_bg(s, NAVY) add_rect(s, 0, 0, 0.3, 7.5, fill_rgb=GOLD) add_rect(s, 0.3, 0, 12.7+0.3, 0.12, fill_rgb=TEAL) add_tb(s, "Key Take-Home Messages", 0.5, 0.12, 12.5, 0.75, size=30, bold=True, color=WHITE) add_tb(s, "References (Vancouver Style)", 0.5, 5.45, 12.5, 0.5, size=18, bold=True, color=GOLD) msgs = [ "Rheumatologic emergencies are time-critical: ABCDE first, then targeted immunosuppression", "Septic arthritis = aspirate + culture BEFORE antibiotics | IV flucloxacillin/vancomycin + drainage", "CAPS = Triple therapy: Anticoagulation + Steroids + Plasma exchange/IVIG", "Scleroderma Renal Crisis = ACEi MANDATORY even with rising creatinine; AVOID steroids", "GCA = IMMEDIATE high-dose prednisolone (40–60mg/day); do not wait for biopsy", "MAS: Ferritin >10,000 + pancytopenia → start anakinra early; use HScore", "PEXIVAS (2020): plasma exchange no longer routine in ANCA vasculitis", "2022 EULAR/ACR MAS guidelines + 2023 EULAR AAV + 2025 EULAR RA are high-yield for exams", ] for i, msg in enumerate(msgs): add_rect(s, 0.45, 0.95 + i*0.54, 0.4, 0.42, fill_rgb=TEAL if i % 2 == 0 else GOLD) add_tb(s, str(i+1), 0.47, 0.97 + i*0.54, 0.37, 0.38, size=13, bold=True, color=NAVY, align=PP_ALIGN.CENTER) add_tb(s, msg, 0.92, 0.97 + i*0.54, 12.0, 0.45, size=12.5, bold=False, color=WHITE) refs = [ "1. Loscalzo J et al. Harrison's Principles of Internal Medicine. 21st ed. McGraw-Hill; 2022.", "2. Feather A et al. Kumar & Clark's Clinical Medicine. 10th ed. Elsevier; 2021.", "3. Wilkinson I et al. Oxford Handbook of Clinical Medicine. 10th ed. OUP; 2017.", "4. Firestein GS et al. Firestein & Kelley's Textbook of Rheumatology. 11th ed. Elsevier; 2021.", "5. Shakoory B et al. 2022 EULAR/ACR points to consider for HLH/MAS. Ann Rheum Dis. 2023;82(10):1271–1285. PMID: 37487610.", "6. Walsh M et al. (PEXIVAS). Plasma exchange and glucocorticoids in severe ANCA-associated vasculitis. NEJM. 2020;382:622–631.", "7. Fautrel B et al. 2024 EULAR/PReS recommendations for Still's disease. Ann Rheum Dis. 2024. PMID: 39317417.", ] for i, ref in enumerate(refs): add_tb(s, ref, 0.5, 5.95 + i * 0.22, 12.5, 0.22, size=9.5, bold=False, color=LIGHT) add_tb(s, "Slide 20 of 20 | Department of General Medicine | 2026", 0.5, 7.28, 12.5, 0.2, size=9.5, bold=False, color=RGBColor(0x88,0xAA,0xCC), italic=True) # ── Save ──────────────────────────────────────────────────────────────────── out = "/tmp/workspace/rheumatologic-emergencies/Rheumatologic_Emergencies_MBBS.pptx" prs.save(out) print(f"Saved: {out}") import os; print(f"Size: {os.path.getsize(out):,} bytes") PYEOF
python3 -c " from pptx import Presentation prs = Presentation('/tmp/workspace/rheumatologic-emergencies/Rheumatologic_Emergencies_MBBS.pptx') print(f'Total slides: {len(prs.slides)}') for i, slide in enumerate(prs.slides, 1): texts = [sh.text_frame.text.strip()[:60] for sh in slide.shapes if sh.has_text_frame and sh.text_frame.text.strip()] title_candidate = texts[0] if texts else '(no text)' print(f' Slide {i:2d}: {title_candidate}') "
Rheumatologic Emergencies MBBS
Presentation · PPTX
| # | Slide | Key Content |
|---|---|---|
| 1 | Title | Professional navy/gold theme with institution & reference textbooks |
| 2 | Learning Objectives | 10 numbered objectives with numbered icon blocks |
| 3 | Introduction & Definition | Definition box + epidemiology vs clinical pearls two-column layout |
| 4 | Classification & Approach | 8 organ-system color-coded categories + initial workup summary bar |
| 5 | Pathophysiology | Visual concept map: immune dysregulation → 6 mechanism boxes |
| 6 | Clinical Features & Red Flags | Red-flag alert box + general warning features + viva questions |
| 7 | Diagnostic Workup | Three-column table: Tier 1 bloods / Immunology / Imaging + synovial fluid key |
| 8 | Septic Arthritis | Epidemiology, micro, diagnosis + 4-step color-coded management algorithm |
| 9 | CAPS | Asherson syndrome, triple therapy, eculizumab, aPL paradox viva tip |
| 10 | Scleroderma Renal Crisis | ACEi step-up algorithm (based on Kelley's/Firestein flowchart) |
| 11 | DAH & Lupus Nephritis | ISN/RPS classification, induction/maintenance, belimumab/voclosporin |
| 12 | Vasculitic Emergencies | GCA (tocilizumab/GIACTA) + AAV (RAVE/RITUXVAS/PEXIVAS/avacopan) |
| 13 | NP-SLE & Transverse Myelitis | 19 NP syndromes, anti-NMDAR, cord level, AQP4, plasma exchange |
| 14 | MAS/HLH | 2016 criteria, HScore, 2022 EULAR/ACR step-wise therapy, emapalumab |
| 15 | Cervical Spine (RA) & Crystal Arthritis | ADI measurement, surgical indications + gout vs CPPD crystal comparison |
| 16 | Drug Therapy Table | 10-drug reference table: dose, indication, key side effects |
| 17 | ICU & Prognosis | Admission criteria + complications (steroid/CYC/biologics) + screening |
| 18 | Recent Advances 2020–2025 | Chronological table: PEXIVAS, belimumab, avacopan, voclosporin, 2025 EULAR updates |
| 19 | Clinical Case | SLE + MAS case → 4-step RECOGNISE → CONFIRM → EXCLUDE → MANAGE algorithm |
| 20 | Take-Home + References | 8 key messages + 7 Vancouver-style references |