Give a flowchart of how to approach and manage a case of AIS as per ACA/aha
"acute ischemic stroke" AND "guidelines"
AHA ACS 2024 acute ischemic stroke management guidelines flowchart algorithm
https://www.stroke.org/-/media/Stroke-Files/Ischemic-Stroke-…
A detailed clinical flowchart titled "AHA/ASA Acute Ischemic Stroke (AIS) Management Algorithm" with the following sequential steps and decision points: START: STROKE SYMPTOMS ONSET Step 1 - OUT OF HOSPITAL: - Bystander recognition using FAST (Face drooping, Arm weakness, Speech difficulty, Time to call 911) - EMS activation - EMS assessment: CPSS / LAPSS / BE-FAST Step 2 - FIRST MEDICAL CONTACT (EMS): - Assess ABCs (Airway, Breathing, Circulation) - Monitor BP (do NOT treat unless extreme) - Cardiac monitoring, IV access - Supplemental O2 to maintain SpO2 >94% - Check blood glucose, treat if <60 mg/dL - Record Time Last Known Well (LKW) - Pre-notify receiving hospital - Transport to nearest Stroke Center Step 3 - IN EMERGENCY DEPARTMENT: - Neurological exam + NIHSS score - Door-to-CT ≤25 min Step 4 - IMMEDIATE DIAGNOSTICS (ALL PATIENTS): - Non-contrast CT head (rule out hemorrhage) - Blood glucose, CBC, Platelet count - PT/INR, aPTT, Electrolytes, Renal function - Troponin, ECG - For thrombectomy candidates: CT Angiography (CTA) Decision diamond: CT SHOWS HEMORRHAGE? → YES: Hemorrhagic stroke pathway (Neurosurgery consult, manage ICH/SAH) → NO: Acute Ischemic Stroke confirmed → Continue Step 5 - SIMULTANEOUS EVALUATION (in parallel): Branch A: EVALUATE FOR IV THROMBOLYSIS (tPA) Branch B: EVALUATE FOR MECHANICAL THROMBECTOMY (<24h) BRANCH A - IV ALTEPLASE ELIGIBILITY: Within 3 hours of LKW: - Age ≥18, measurable neurological deficit - No hemorrhage on CT - No major exclusions (recent surgery, anticoagulation, etc.) Within 3-4.5 hours: Additional exclusions apply (age >80, severe diabetes, prior stroke+DM, NIHSS>25, anticoagulants, imaging >1/3 MCA) → QUALIFIES: Administer IV Alteplase 0.9 mg/kg (max 90 mg) over 60 min (10% as bolus) OR Tenecteplase 0.25 mg/kg IV bolus (max 25 mg) if thrombectomy candidate → Door-to-needle goal: ≤60 min BRANCH B - MECHANICAL THROMBECTOMY ELIGIBILITY: Within 0-6 hours: Prestroke mRS 0-1, ICA or M1 occlusion, Age ≥18, NIHSS ≥6, ASPECTS ≥6 Within 6-24 hours: Meets DAWN or DEFUSE-3 criteria → QUALIFIES: Perform Mechanical Thrombectomy (stent retriever preferred) → Door-to-puncture goal: ≤90 min Step 6 - POST-REPERFUSION / GENERAL AIS CARE (All patients): - Admit to Stroke Unit or ICU - BP control: Keep <180/105 if tPA given; allow permissive hypertension if no tPA (up to 220/120) - Glucose: Treat hyperglycemia (target 140-180 mg/dL); treat hypoglycemia (<60 mg/dL) - Temperature: Treat fever (antipyretics if >38°C) - O2: Maintain SpO2 >94% - NPO + dysphagia screen before oral intake - Antiplatelet: Aspirin 325 mg within 24-48h (if no tPA, give immediately; if tPA, wait 24h) - Statin therapy - DVT prophylaxis - Monitor neuro status; urgent CT if deterioration Step 7 - SECONDARY PREVENTION WORKUP: - Identify stroke etiology (cardioembolic, large vessel, small vessel, cryptogenic) - Echocardiogram, Holter/telemetry for AF - Lipid panel, HbA1c, vascular risk factors - Anticoagulation if AF identified (start 4-14 days) - Antiplatelet therapy for non-cardioembolic stroke Step 8 - REHABILITATION & DISCHARGE PLANNING: - Formal ADL/functional assessment - Speech, physical, occupational therapy - Patient/family education - Risk factor modification Color coding: blue header, green for treatment boxes, yellow for decision diamonds, red for hemorrhage branch, orange for time-sensitive goals
404 Not Found. {'message': '{\n "error": {\n "code": 404,\n "message": "Publisher model `projects/engaged-beaker-474810-u2/locations/global/publishers/google/models/gemini-3-pro-image-preview` was not found or your project does not have access to it. Ensure you are using a valid model name and that the model is available in the specified region. For more information, see: https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations.",\n "status": "NOT_FOUND"\n }\n}\n', 'status': 'Not Found'}
We encountered an error while processing your request. Please try again or reach out to us for help.
Give a flowchart of how to approach and manage a case of AIS as per ACA/aha
https://www.stroke.org/-/media/Stroke-Files/Ischemic-Stroke-…
mkdir -p /tmp/workspace/ais-flowchart && python3 << 'PYEOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch, FancyArrowPatch import textwrap fig, ax = plt.subplots(figsize=(22, 60)) ax.set_xlim(0, 22) ax.set_ylim(0, 60) ax.axis('off') fig.patch.set_facecolor('#F8F9FA') # ── Helper functions ────────────────────────────────────────────────────────── def box(ax, x, y, w, h, text, bg, fg='black', fontsize=9, bold=False, style='round,pad=0.1', border='#555555', lw=1.2): fancy = FancyBboxPatch((x - w/2, y - h/2), w, h, boxstyle=style, facecolor=bg, edgecolor=border, linewidth=lw, zorder=3) ax.add_patch(fancy) weight = 'bold' if bold else 'normal' ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=fg, weight=weight, wrap=True, zorder=4, multialignment='center', linespacing=1.4) def diamond(ax, x, y, w, h, text, bg='#FFF3CD', border='#FFA500', fontsize=8.5): dx, dy = w/2, h/2 pts = [(x, y+dy), (x+dx, y), (x, y-dy), (x-dx, y)] diamond_patch = plt.Polygon(pts, closed=True, facecolor=bg, edgecolor=border, linewidth=1.5, zorder=3) ax.add_patch(diamond_patch) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, weight='bold', color='#333333', zorder=4, multialignment='center') def arrow(ax, x1, y1, x2, y2, color='#444444', lw=1.5): ax.annotate('', xy=(x2, y2), xytext=(x1, y1), arrowprops=dict(arrowstyle='->', color=color, lw=lw, connectionstyle='arc3,rad=0.0'), zorder=2) def label_arrow(ax, x, y, text, color='#555555', fontsize=8): ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=color, style='italic', zorder=5) # ── TITLE ───────────────────────────────────────────────────────────────────── ax.text(11, 59.2, 'AHA/ASA ACUTE ISCHEMIC STROKE (AIS)', ha='center', va='center', fontsize=16, weight='bold', color='white', zorder=4) ax.text(11, 58.65, 'APPROACH & MANAGEMENT FLOWCHART', ha='center', va='center', fontsize=13, weight='bold', color='#FFE082', zorder=4) ax.add_patch(FancyBboxPatch((0.3, 58.1), 21.4, 1.7, boxstyle='round,pad=0.1', facecolor='#1A237E', edgecolor='#0D47A1', linewidth=2, zorder=3)) ax.text(11, 57.75, '2018/2019 AHA/ASA Guidelines — Early Management of AIS', ha='center', va='center', fontsize=9, color='#B0BEC5', zorder=4) # ── PHASE 1: OUT OF HOSPITAL ────────────────────────────────────────────────── ax.text(11, 57.1, '① OUT OF HOSPITAL', ha='center', va='center', fontsize=10, weight='bold', color='#1565C0', zorder=4) box(ax, 11, 56.3, 13, 1.1, 'BYSTANDER RECOGNITION\nF.A.S.T. / BE-FAST\n(Face drooping · Arm weakness · Speech difficulty · Time to call EMS)', bg='#E3F2FD', border='#1565C0', fontsize=9) arrow(ax, 11, 55.75, 11, 55.15) box(ax, 11, 54.7, 13, 0.85, 'EMS ACTIVATION → Dispatch to nearest certified Stroke Center', bg='#E3F2FD', border='#1565C0', fontsize=9) # ── PHASE 2: FIRST MEDICAL CONTACT ─────────────────────────────────────────── arrow(ax, 11, 54.27, 11, 53.65) ax.text(11, 53.35, '② FIRST MEDICAL CONTACT (EMS)', ha='center', va='center', fontsize=10, weight='bold', color='#1565C0', zorder=4) box(ax, 11, 52.35, 14.5, 1.7, '• Assess & stabilize ABCs • Stroke screen: CPSS / LAPSS\n' '• Monitor BP — do NOT treat unless SBP >220 (no tPA candidate)\n' '• Cardiac monitoring • IV access • Supplemental O₂ if SpO₂ <94%\n' '• Check blood glucose — treat if <60 mg/dL\n' '• Record Time Last Known Well (LKW) • Pre-notify hospital', bg='#E8EAF6', border='#3949AB', fontsize=8.8) # ── PHASE 3: EMERGENCY DEPARTMENT ──────────────────────────────────────────── arrow(ax, 11, 51.5, 11, 50.9) ax.text(11, 50.6, '③ EMERGENCY DEPARTMENT', ha='center', va='center', fontsize=10, weight='bold', color='#1565C0', zorder=4) box(ax, 11, 49.85, 14.5, 1.3, 'Neurological Exam + NIHSS Score\n' 'GOAL: Door-to-CT ≤ 25 min | Door-to-Needle (IV tPA) ≤ 60 min\n' 'Door-to-Puncture (Thrombectomy) ≤ 90 min', bg='#E8EAF6', border='#3949AB', fontsize=9, bold=False) # ── PHASE 4: IMMEDIATE DIAGNOSTICS ──────────────────────────────────────────── arrow(ax, 11, 49.2, 11, 48.6) ax.text(11, 48.3, '④ IMMEDIATE DIAGNOSTICS — ALL PATIENTS', ha='center', va='center', fontsize=10, weight='bold', color='#1565C0', zorder=4) box(ax, 11, 47.25, 14.5, 1.7, 'Non-contrast CT Head • Blood glucose • CBC + Platelets\n' 'PT/INR • aPTT • Electrolytes • Renal function • Troponin • ECG\n' '──────────────────────────────────────────────────\n' 'SELECT PATIENTS: CT Angiography (CTA) if thrombectomy candidate\n' '(do NOT delay IV tPA for CTA if tPA indicated)', bg='#F3E5F5', border='#7B1FA2', fontsize=8.8) # ── DECISION: HEMORRHAGE? ───────────────────────────────────────────────────── arrow(ax, 11, 46.4, 11, 45.75) diamond(ax, 11, 45.1, 7, 1.15, 'CT: Hemorrhage\nPresent?', bg='#FFF9C4', border='#F57F17') # YES → Hemorrhagic branch arrow(ax, 14.5, 45.1, 18.5, 45.1, color='#C62828') label_arrow(ax, 16.3, 45.35, 'YES', color='#C62828', fontsize=9) box(ax, 19.5, 45.1, 4.5, 1.0, 'HEMORRHAGIC STROKE\nNeurosurgery / Neurology\nconsult → Manage ICH/SAH', bg='#FFEBEE', border='#C62828', fontsize=8.2, fg='#B71C1C') # NO → continue arrow(ax, 11, 44.52, 11, 43.9, color='#2E7D32') label_arrow(ax, 10.0, 44.2, 'NO →\nAIS', color='#2E7D32', fontsize=9) # ── CONFIRMED AIS ───────────────────────────────────────────────────────────── box(ax, 11, 43.45, 9, 0.75, '✔ CONFIRMED ACUTE ISCHEMIC STROKE', bg='#E8F5E9', border='#2E7D32', fontsize=10, bold=True, fg='#1B5E20') # ── SIMULTANEOUS EVALUATION ─────────────────────────────────────────────────── arrow(ax, 11, 43.07, 11, 42.5) ax.text(11, 42.2, '⑤ + ⑥ SIMULTANEOUS EVALUATION (Both assessed in parallel)', ha='center', va='center', fontsize=10, weight='bold', color='#4A148C', zorder=4) # Left branch label ax.text(5.5, 41.85, '⑤ IV THROMBOLYSIS', ha='center', va='center', fontsize=9.5, weight='bold', color='#0277BD', zorder=4) # Right branch label ax.text(16.5, 41.85, '⑥ MECHANICAL THROMBECTOMY', ha='center', va='center', fontsize=9.5, weight='bold', color='#E65100', zorder=4) # horizontal split line ax.annotate('', xy=(3.5, 41.6), xytext=(11, 41.6), arrowprops=dict(arrowstyle='->', color='#0277BD', lw=1.5), zorder=2) ax.annotate('', xy=(18.5, 41.6), xytext=(11, 41.6), arrowprops=dict(arrowstyle='->', color='#E65100', lw=1.5), zorder=2) # ── LEFT: IV ALTEPLASE BOX ──────────────────────────────────────────────────── box(ax, 5.0, 39.5, 9.5, 3.7, 'ELIGIBILITY — IV ALTEPLASE\n' '─────────────────────────────────\n' 'Within 3 h of LKW:\n' ' • Age ≥18 • Measurable neuro deficit\n' ' • No hemorrhage on CT\n' ' • No major exclusions (recent surgery,\n' ' active bleeding, BP >185/110 untreated)\n' '─────────────────────────────────\n' 'Within 3–4.5 h (additional exclusions):\n' ' • Age >80 • NIHSS >25\n' ' • Prior stroke + DM • Anticoagulant use\n' ' • Imaging: infarct >1/3 MCA territory', bg='#E1F5FE', border='#0277BD', fontsize=8.5) # ── RIGHT: THROMBECTOMY BOX ─────────────────────────────────────────────────── box(ax, 17.0, 39.5, 9.5, 3.7, 'ELIGIBILITY — MECH. THROMBECTOMY\n' '─────────────────────────────────\n' 'Within 0–6 h of LKW:\n' ' • Prestroke mRS 0–1\n' ' • Occlusion: ICA or M1 (proximal MCA)\n' ' • Age ≥18 • NIHSS ≥6 • ASPECTS ≥6\n' '─────────────────────────────────\n' 'Within 6–24 h (extended window):\n' ' • ICA or M1 occlusion +\n' ' • Meets DAWN trial criteria, OR\n' ' • Meets DEFUSE-3 trial criteria', bg='#FFF3E0', border='#E65100', fontsize=8.5) # Arrows down from eligibility boxes arrow(ax, 5.0, 37.6, 5.0, 36.95, color='#0277BD') arrow(ax, 17.0, 37.6, 17.0, 36.95, color='#E65100') # ── TREATMENT BOXES ────────────────────────────────────────────────────────── box(ax, 5.0, 35.9, 9.5, 1.8, '⑦ ADMINISTER IV ALTEPLASE\n' '─────────────────────────────────\n' 'Alteplase: 0.9 mg/kg IV (max 90 mg)\n' ' 10% bolus over 1 min → rest over 60 min\n' 'OR Tenecteplase: 0.25 mg/kg IV bolus (max 25 mg)\n' ' [preferred if also going to thrombectomy]', bg='#B3E5FC', border='#0277BD', fontsize=8.5, bold=False) box(ax, 17.0, 35.9, 9.5, 1.8, '⑧ PERFORM MECHANICAL THROMBECTOMY\n' '─────────────────────────────────\n' 'Stent retriever (preferred) or aspiration\n' 'Goal: Door-to-puncture ≤ 90 min\n' 'Can combine with IV tPA (bridging therapy)\n' 'Target: mTICI ≥2b reperfusion', bg='#FFE0B2', border='#E65100', fontsize=8.5, bold=False) # Rejoin arrows arrow(ax, 5.0, 35.0, 5.0, 34.35, color='#0277BD') arrow(ax, 17.0, 35.0, 17.0, 34.35, color='#E65100') # converge to center ax.annotate('', xy=(11, 33.8), xytext=(5.0, 34.15), arrowprops=dict(arrowstyle='->', color='#444', lw=1.5, connectionstyle='arc3,rad=-0.2'), zorder=2) ax.annotate('', xy=(11, 33.8), xytext=(17.0, 34.15), arrowprops=dict(arrowstyle='->', color='#444', lw=1.5, connectionstyle='arc3,rad=0.2'), zorder=2) # ── PHASE 7: POST-REPERFUSION / GENERAL AIS CARE ────────────────────────────── ax.text(11, 33.45, '⑨ POST-REPERFUSION / GENERAL AIS IN-HOSPITAL CARE', ha='center', va='center', fontsize=10, weight='bold', color='#1B5E20', zorder=4) box(ax, 11, 31.5, 16, 3.5, 'ADMIT to Stroke Unit / ICU — monitor ≥ 24 h\n' '──────────────────────────────────────────────────────────\n' 'AIRWAY: Supplemental O₂ if SpO₂ <94% • Intubate if GCS ≤8 or airway unprotected\n' 'BLOOD PRESSURE:\n' ' • If tPA given: Keep <180/105 mmHg for ≥24 h\n' ' • If NO tPA: Permissive HTN — treat only if >220/120 mmHg\n' ' • If thrombectomy done: Keep BP <180/105 post-procedure\n' 'GLUCOSE: Target 140–180 mg/dL • Treat hypoglycemia (<60 mg/dL) immediately\n' 'TEMPERATURE: Treat fever >38°C with antipyretics (acetaminophen)\n' 'DYSPHAGIA SCREEN before any oral intake (NPO if fails)\n' 'ANTIPLATELET: Aspirin 325 mg — if NO tPA: within 24–48 h of onset\n' ' if tPA given: start at 24 h post-tPA\n' 'STATIN therapy • DVT prophylaxis (compression stockings, then LMWH when safe)\n' 'MONITOR neuro status — urgent CT if deterioration or severe headache', bg='#E8F5E9', border='#2E7D32', fontsize=8.5) arrow(ax, 11, 29.75, 11, 29.1) # ── PHASE 8: SECONDARY PREVENTION WORKUP ───────────────────────────────────── ax.text(11, 28.8, '⑩ SECONDARY PREVENTION WORKUP', ha='center', va='center', fontsize=10, weight='bold', color='#4A148C', zorder=4) box(ax, 11, 27.3, 16, 2.75, 'IDENTIFY STROKE ETIOLOGY (TOAST Classification):\n' ' Large artery atherosclerosis • Cardioembolic • Small vessel (lacunar)\n' ' Other determined • Cryptogenic\n' '──────────────────────────────────────────────────────────\n' 'Investigations: Echocardiogram • 24–48 h cardiac telemetry (→ prolonged Holter if cryptogenic)\n' 'Lipid panel • HbA1c • Carotid duplex / MRA / CTA\n' '──────────────────────────────────────────────────────────\n' 'ANTICOAGULATION: Start 4–14 days post-stroke if AF identified (warfarin / NOAC)\n' 'ANTIPLATELET: Dual antiplatelet (ASA + clopidogrel) for 21 days if minor stroke / TIA\n' 'CAROTID ENDARTERECTOMY / STENTING: If symptomatic stenosis 50–99%\n' 'BP TARGET: <130/80 mmHg long-term • Statin: target LDL <70 mg/dL', bg='#EDE7F6', border='#4A148C', fontsize=8.5) arrow(ax, 11, 25.92, 11, 25.25) # ── PHASE 9: REHAB & DISCHARGE ──────────────────────────────────────────────── ax.text(11, 24.95, '⑪ REHABILITATION & DISCHARGE PLANNING', ha='center', va='center', fontsize=10, weight='bold', color='#BF360C', zorder=4) box(ax, 11, 23.6, 16, 2.4, 'Formal assessment: ADLs · Communication · Functional mobility (before discharge)\n' 'Speech therapy (dysphagia, aphasia) • Physical therapy • Occupational therapy\n' 'Rehabilitation intensity commensurate with anticipated benefit & tolerance\n' '──────────────────────────────────────────────────────────\n' 'Patient & family education on stroke recognition, risk factors, medications\n' 'Smoking cessation • Diabetes control • Hypertension management\n' 'Care transition plan + outpatient neurology follow-up', bg='#FBE9E7', border='#BF360C', fontsize=8.5) arrow(ax, 11, 22.4, 11, 21.8) # ── OUTCOME BOX ────────────────────────────────────────────────────────────── box(ax, 11, 21.35, 10, 0.8, '🎯 GOAL: Minimize disability · Prevent recurrence · Optimize long-term function', bg='#F9A825', border='#E65100', fontsize=9.5, bold=True, fg='#212121') # ── TIME TARGETS SIDEBAR ───────────────────────────────────────────────────── box(ax, 1.3, 37.5, 2.2, 6.5, '⏱ TIME\nTARGETS\n' '──────\n' 'Door→CT\n≤25 min\n' '──────\n' 'Door→\nNeedle\n≤60 min\n' '──────\n' 'Door→\nPuncture\n≤90 min\n' '──────\n' 'LKW→tPA\n≤4.5 h\n' '──────\n' 'LKW→MT\n≤24 h\n(select)', bg='#FFF8E1', border='#F57F17', fontsize=8, bold=False) # ── LEGEND ─────────────────────────────────────────────────────────────────── legend_items = [ (mpatches.Patch(color='#E3F2FD', ec='#1565C0'), 'Prehospital / EMS phase'), (mpatches.Patch(color='#F3E5F5', ec='#7B1FA2'), 'Diagnostics'), (mpatches.Patch(color='#B3E5FC', ec='#0277BD'), 'IV Thrombolysis'), (mpatches.Patch(color='#FFE0B2', ec='#E65100'), 'Mechanical Thrombectomy'), (mpatches.Patch(color='#E8F5E9', ec='#2E7D32'), 'General AIS Care'), (mpatches.Patch(color='#EDE7F6', ec='#4A148C'), 'Secondary Prevention'), (mpatches.Patch(color='#FFEBEE', ec='#C62828'), 'Hemorrhagic Stroke Pathway'), ] handles, labels = zip(*legend_items) legend = ax.legend(handles, labels, loc='lower right', bbox_to_anchor=(0.99, 0.01), fontsize=8.5, title='Legend', title_fontsize=9, framealpha=0.95, edgecolor='#777') ax.text(11, 20.6, 'Source: AHA/ASA 2018 Guidelines for the Early Management of AIS + 2019 Update | ' 'Rosen\'s Emergency Medicine | Bradley & Daroff\'s Neurology', ha='center', va='center', fontsize=7.5, color='#888888', style='italic', zorder=4) plt.tight_layout(pad=0.5) plt.savefig('/tmp/workspace/ais-flowchart/AIS_Management_Flowchart_AHA_ASA.png', dpi=180, bbox_inches='tight', facecolor='#F8F9FA') plt.close() print("Saved successfully.") PYEOF
python3 << 'PYEOF' import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.patches as mpatches from matplotlib.patches import FancyBboxPatch import matplotlib.patheffects as pe fig, ax = plt.subplots(figsize=(22, 62)) ax.set_xlim(0, 22) ax.set_ylim(0, 62) ax.axis('off') fig.patch.set_facecolor('#F0F4F8') # ── helpers ──────────────────────────────────────────────────────────────────── def box(ax, x, y, w, h, text, bg, fg='#111111', fontsize=9, bold=False, border='#555555', lw=1.4, radius=0.15): b = FancyBboxPatch((x-w/2, y-h/2), w, h, boxstyle=f'round,pad={radius}', facecolor=bg, edgecolor=border, linewidth=lw, zorder=3) ax.add_patch(b) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, color=fg, fontweight='bold' if bold else 'normal', multialignment='center', linespacing=1.45, zorder=4) def diamond(ax, x, y, w, h, text, bg='#FFF9C4', border='#F9A825', fontsize=9): dx, dy = w/2, h/2 poly = plt.Polygon([(x,y+dy),(x+dx,y),(x,y-dy),(x-dx,y)], closed=True, facecolor=bg, edgecolor=border, lw=1.8, zorder=3) ax.add_patch(poly) ax.text(x, y, text, ha='center', va='center', fontsize=fontsize, fontweight='bold', color='#333', zorder=4, multialignment='center') def arr(ax, x1,y1,x2,y2, color='#333333', lw=1.6, rad=0.0): ax.annotate('', xy=(x2,y2), xytext=(x1,y1), arrowprops=dict(arrowstyle='->', color=color, lw=lw, connectionstyle=f'arc3,rad={rad}'), zorder=2) def lbl(ax, x, y, text, color='#555', fs=8.2): ax.text(x, y, text, ha='center', va='center', fontsize=fs, color=color, fontstyle='italic', zorder=5) # ═══ TITLE BANNER ════════════════════════════════════════════════════════════ ax.add_patch(FancyBboxPatch((0.3,60.0),21.4,1.8, boxstyle='round,pad=0.15', facecolor='#0D1B6E', edgecolor='#1A237E', lw=2, zorder=3)) ax.text(11, 61.1, 'AHA / ASA ACUTE ISCHEMIC STROKE (AIS)', ha='center', va='center', fontsize=15, fontweight='bold', color='white', zorder=4) ax.text(11, 60.45,'APPROACH & MANAGEMENT FLOWCHART | 2018/2019 Guidelines', ha='center', va='center', fontsize=9.5, color='#90CAF9', zorder=4) # ═══ PHASE 1 — OUT OF HOSPITAL ═══════════════════════════════════════════════ ax.text(11, 59.55, '[1] OUT OF HOSPITAL', ha='center', va='center', fontsize=10, fontweight='bold', color='#0D47A1') box(ax, 11,58.85, 13,0.95, 'BYSTANDER RECOGNITION — B.E. F.A.S.T.\n' 'Balance loss | Eye vision change | Face drooping | Arm weakness | Speech difficulty | Time = Call EMS', bg='#DCEDC8', border='#558B2F', fontsize=8.8) arr(ax, 11,58.37, 11,57.8) box(ax, 11,57.45, 13,0.75, 'EMS ACTIVATION -> Dispatch to nearest certified Stroke Center (PSC / CSC / TSC)', bg='#DCEDC8', border='#558B2F', fontsize=8.8) # ═══ PHASE 2 — FIRST MEDICAL CONTACT ══════════════════════════════════════════ arr(ax, 11,57.07, 11,56.45) ax.text(11,56.15,'[2] FIRST MEDICAL CONTACT (EMS on scene)', ha='center', va='center', fontsize=10, fontweight='bold', color='#0D47A1') box(ax, 11,54.9, 15,2.2, 'Assess & stabilize ABCs (Airway, Breathing, Circulation)\n' 'Stroke screen: Cincinnati PSS (CPSS) / LA PSS (LAPSS)\n' 'Monitor BP — do NOT treat unless BP >220/120 and no tPA plan\n' 'Cardiac monitoring | IV access | Supplemental O2 if SpO2 <94%\n' 'Check Blood Glucose — treat if <60 mg/dL\n' 'Record Time Last Known Well (LKW) | Pre-notify hospital', bg='#E8EAF6', border='#3949AB', fontsize=8.8) # ═══ PHASE 3 — EMERGENCY DEPARTMENT ═══════════════════════════════════════════ arr(ax, 11,53.8, 11,53.2) ax.text(11,52.9,'[3] IN THE EMERGENCY DEPARTMENT', ha='center', va='center', fontsize=10, fontweight='bold', color='#0D47A1') box(ax, 11,52.0, 14.5,1.3, 'Neurological Exam + NIHSS Scoring\n' 'KEY GOALS: Door-to-CT <=25 min | Door-to-Needle (IV tPA) <=60 min | Door-to-Puncture (MT) <=90 min', bg='#E8EAF6', border='#3949AB', fontsize=9) # ═══ PHASE 4 — DIAGNOSTICS ════════════════════════════════════════════════════ arr(ax, 11,51.35, 11,50.75) ax.text(11,50.45,'[4] IMMEDIATE DIAGNOSTICS (ALL patients)', ha='center', va='center', fontsize=10, fontweight='bold', color='#0D47A1') box(ax, 11,49.1, 15,2.3, 'Non-contrast CT Head | Blood Glucose | CBC + Platelets\n' 'PT / INR | aPTT | Electrolytes + Renal function | Troponin | 12-lead ECG\n' '----------------------------------------------------------------------------------------------\n' 'SELECT PATIENTS (if thrombectomy candidate):\n' 'CT Angiography (CTA Head + Neck) — do NOT delay IV tPA administration for CTA', bg='#F3E5F5', border='#7B1FA2', fontsize=8.8) # ═══ DECISION: HEMORRHAGE ═════════════════════════════════════════════════════ arr(ax, 11,47.95, 11,47.3) diamond(ax, 11,46.6, 7,1.25, 'CT Head:\nHemorrhage?', bg='#FFF9C4', border='#F9A825', fontsize=9.5) # YES branch — right arr(ax, 14.5,46.6, 17.8,46.6, color='#B71C1C') lbl(ax, 16.0,46.88,'YES', color='#B71C1C', fs=9.5) box(ax, 19.5,46.6, 4.3,1.2, 'HEMORRHAGIC STROKE\n' 'Neurosurgery / Neurology consult\n' 'Manage ICH / SAH per protocol', bg='#FFEBEE', border='#C62828', fontsize=8.5, fg='#B71C1C') # NO — down arr(ax, 11,45.97, 11,45.35, color='#2E7D32') lbl(ax, 9.8,45.65,'NO', color='#2E7D32', fs=9.5) box(ax, 11,45.0, 9.5,0.65, 'CONFIRMED ACUTE ISCHEMIC STROKE', bg='#C8E6C9', border='#2E7D32', fontsize=10, bold=True, fg='#1B5E20') # ═══ SIMULTANEOUS BRANCHES ════════════════════════════════════════════════════ arr(ax, 11,44.67, 11,44.1) ax.text(11,43.78,'[5] + [6] SIMULTANEOUS EVALUATION', ha='center', va='center', fontsize=10, fontweight='bold', color='#4A148C') ax.text(11,43.38,'(IV Thrombolysis eligibility and Mechanical Thrombectomy eligibility assessed at the SAME time)', ha='center', va='center', fontsize=8.5, color='#6A1B9A') # split arrows ax.annotate('',xy=(5.0,43.0),xytext=(11,43.0), arrowprops=dict(arrowstyle='->',color='#0277BD',lw=1.6), zorder=2) ax.annotate('',xy=(17.0,43.0),xytext=(11,43.0), arrowprops=dict(arrowstyle='->',color='#E65100',lw=1.6), zorder=2) ax.text(5.0,42.72,'[5] IV THROMBOLYSIS',ha='center',fontsize=9.5,fontweight='bold',color='#0277BD') ax.text(17.0,42.72,'[6] MECHANICAL THROMBECTOMY',ha='center',fontsize=9.5,fontweight='bold',color='#E65100') # ── LEFT ELIGIBILITY BOX ───────────────────────────────────────────────────── box(ax, 5.0,40.3, 9.5,4.3, 'ELIGIBILITY FOR IV tPA\n' '------------------------------------------\n' 'Within 3 h of LKW:\n' ' Age >=18 | Measurable neuro deficit\n' ' No hemorrhage on CT\n' ' BP <=185/110 (or reducible to this)\n' ' No active bleeding / recent major surgery\n' '------------------------------------------\n' 'Within 3 - 4.5 h (extra exclusions):\n' ' Age >80\n' ' NIHSS >25\n' ' Prior stroke + diabetes combined\n' ' Anticoagulant use (any dose)\n' ' Infarct >1/3 of MCA territory on imaging', bg='#E1F5FE', border='#0277BD', fontsize=8.6) # ── RIGHT ELIGIBILITY BOX ──────────────────────────────────────────────────── box(ax, 17.0,40.3, 9.5,4.3, 'ELIGIBILITY FOR MECH. THROMBECTOMY\n' '------------------------------------------\n' 'Within 0 - 6 h of LKW:\n' ' Prestroke mRS 0-1 (functionally independent)\n' ' Occlusion: ICA or proximal MCA (M1)\n' ' Age >=18\n' ' NIHSS >=6\n' ' ASPECTS >=6 on CT / CTA\n' '------------------------------------------\n' 'Extended window 6 - 24 h:\n' ' ICA or M1 occlusion AND\n' ' Meets DAWN trial criteria\n' ' OR Meets DEFUSE-3 trial criteria\n' ' (advanced perfusion imaging required)', bg='#FFF3E0', border='#E65100', fontsize=8.6) arr(ax, 5.0,38.15, 5.0,37.5, color='#0277BD') arr(ax, 17.0,38.15, 17.0,37.5, color='#E65100') # ── TREATMENT BOXES ────────────────────────────────────────────────────────── box(ax, 5.0,36.2, 9.5,2.4, '[7] ADMINISTER IV tPA\n' '------------------------------------------\n' 'Alteplase 0.9 mg/kg IV (max 90 mg)\n' ' -> 10% as IV bolus over 1 min\n' ' -> Remaining 90% infused over 60 min\n' 'OR Tenecteplase 0.25 mg/kg IV bolus (max 25 mg)\n' ' [preferred if thrombectomy also planned]', bg='#B3E5FC', border='#0288D1', fontsize=8.6, bold=False) box(ax, 17.0,36.2, 9.5,2.4, '[8] MECHANICAL THROMBECTOMY\n' '------------------------------------------\n' 'Stent retriever (preferred) or aspiration\n' 'Door-to-groin puncture target: <=90 min\n' 'Bridging IV tPA before MT if eligible\n' 'Target reperfusion: mTICI >=2b\n' 'Post-MT BP: keep <180/105 mmHg', bg='#FFE0B2', border='#E65100', fontsize=8.6, bold=False) # converge back to center arr(ax, 5.0,35.0, 5.0,34.4, color='#0288D1') arr(ax, 17.0,35.0, 17.0,34.4, color='#E65100') ax.annotate('',xy=(11,33.85),xytext=(5.0,34.25), arrowprops=dict(arrowstyle='->',color='#444',lw=1.5, connectionstyle='arc3,rad=-0.25'),zorder=2) ax.annotate('',xy=(11,33.85),xytext=(17.0,34.25), arrowprops=dict(arrowstyle='->',color='#444',lw=1.5, connectionstyle='arc3,rad=0.25'),zorder=2) # ═══ PHASE 9 — GENERAL IN-HOSPITAL CARE ══════════════════════════════════════ ax.text(11,33.5,'[9] POST-REPERFUSION / GENERAL AIS IN-HOSPITAL CARE (all patients)', ha='center',va='center',fontsize=10,fontweight='bold',color='#1B5E20') box(ax, 11,31.2, 17.5,4.3, 'ADMIT to Stroke Unit or ICU | Continuous monitoring >=24 h\n' '=================================================================\n' 'AIRWAY: O2 to maintain SpO2 >=94% | Intubate if GCS <=8 or unprotected airway\n' '\n' 'BLOOD PRESSURE:\n' ' - After IV tPA: target BP <180/105 mmHg for >=24 h post-infusion\n' ' - No tPA / no reperfusion: permissive HTN — treat only if BP >220/120 mmHg\n' ' - Post-mechanical thrombectomy: BP <180/105 mmHg\n' '\n' 'GLUCOSE: Target 140-180 mg/dL | Treat hypoglycemia (<60 mg/dL) immediately with IV dextrose\n' 'TEMPERATURE: Treat fever >38 deg C with acetaminophen (hypothermia NOT routinely recommended)\n' 'DYSPHAGIA SCREEN: Before ANY oral intake — NPO + NG tube if swallow screen fails\n' 'ANTIPLATELET: Aspirin 325 mg — if no tPA: within 24-48 h; if tPA given: start at 24 h\n' 'STATIN therapy | DVT prophylaxis (compression devices -> LMWH when safe)\n' 'Frequent neuro-checks — urgent CT if headache, vomiting, or neuro deterioration', bg='#E8F5E9', border='#2E7D32', fontsize=8.7) arr(ax, 11,29.05, 11,28.4) # ═══ PHASE 10 — SECONDARY PREVENTION ═════════════════════════════════════════ ax.text(11,28.1,'[10] SECONDARY PREVENTION WORKUP (Stroke Etiology)', ha='center',va='center',fontsize=10,fontweight='bold',color='#4A148C') box(ax, 11,26.2, 17.5,3.7, 'TOAST CLASSIFICATION: Large artery | Cardioembolic | Small vessel (lacunar) | Other | Cryptogenic\n' '=================================================================\n' 'INVESTIGATIONS:\n' ' Echocardiogram (TTE / TEE) | Cardiac telemetry 24-48 h | Prolonged Holter if cryptogenic\n' ' Fasting lipids | HbA1c | Carotid duplex / CTA / MRA | Hypercoagulable workup (if indicated)\n' '=================================================================\n' 'TREATMENT BASED ON ETIOLOGY:\n' ' Cardioembolic / AF identified: Anticoagulation (NOAC preferred) — start 4-14 days post-stroke\n' ' Non-cardioembolic (large / small vessel): Dual antiplatelet (ASA + Clopidogrel) x 21 days (minor stroke/TIA)\n' ' Symptomatic carotid stenosis 50-99%: CEA (within 2 weeks) or CAS\n' ' BP target long-term: <130/80 mmHg | LDL target: <70 mg/dL | High-intensity statin', bg='#EDE7F6', border='#4A148C', fontsize=8.7) arr(ax, 11,24.35, 11,23.7) # ═══ PHASE 11 — REHAB ════════════════════════════════════════════════════════ ax.text(11,23.4,'[11] REHABILITATION & DISCHARGE PLANNING', ha='center',va='center',fontsize=10,fontweight='bold',color='#BF360C') box(ax, 11,21.8, 17.5,3.1, 'Formal assessment of ADLs, communication, functional mobility (before discharge)\n' 'Speech therapy (dysphagia / aphasia) | Physical therapy | Occupational therapy\n' 'Rehabilitation intensity commensurate with benefit and patient tolerance\n' '=================================================================\n' 'Patient & family education: Stroke recognition (FAST) | Risk factor control | Medication adherence\n' 'Smoking cessation | Tight glycaemic & BP control | Exercise & diet counselling\n' 'Care transition plan | Outpatient neurology / stroke clinic follow-up within 30 days', bg='#FBE9E7', border='#BF360C', fontsize=8.7) arr(ax, 11,20.25, 11,19.65) # ═══ GOAL BOX ════════════════════════════════════════════════════════════════ box(ax, 11,19.2, 12,0.8, 'GOAL: Minimise disability | Prevent recurrence | Optimise long-term function', bg='#FDD835', border='#F9A825', fontsize=10, bold=True, fg='#212121') # ═══ TIME TARGETS SIDEBAR ════════════════════════════════════════════════════ box(ax, 1.2,38.5, 2.1,8.5, 'TIME\nTARGETS\n' '--------\n' 'Door to CT\n<=25 min\n' '--------\n' 'Door to\nNeedle\n<=60 min\n' '--------\n' 'Door to\nPuncture\n<=90 min\n' '--------\n' 'LKW to\nIV tPA\n<=4.5 h\n' '--------\n' 'LKW to\nMT\n<=24 h\n(selected)', bg='#FFF8E1', border='#F57F17', fontsize=8.4) # ═══ LEGEND ══════════════════════════════════════════════════════════════════ legend_items = [ mpatches.Patch(color='#DCEDC8', ec='#558B2F', label='Prehospital / EMS'), mpatches.Patch(color='#E8EAF6', ec='#3949AB', label='Emergency Department'), mpatches.Patch(color='#F3E5F5', ec='#7B1FA2', label='Diagnostics'), mpatches.Patch(color='#B3E5FC', ec='#0288D1', label='IV Thrombolysis'), mpatches.Patch(color='#FFE0B2', ec='#E65100', label='Mechanical Thrombectomy'), mpatches.Patch(color='#E8F5E9', ec='#2E7D32', label='General AIS Care'), mpatches.Patch(color='#EDE7F6', ec='#4A148C', label='Secondary Prevention'), mpatches.Patch(color='#FFEBEE', ec='#C62828', label='Hemorrhagic Stroke Path'), mpatches.Patch(color='#FBE9E7', ec='#BF360C', label='Rehabilitation'), ] ax.legend(handles=legend_items, loc='lower right', bbox_to_anchor=(1.0, 0.01), fontsize=8.5, title='Colour Legend', title_fontsize=9, framealpha=0.95, edgecolor='#AAAAAA') ax.text(11,18.55, 'Source: AHA/ASA 2018 Guidelines for Early Management of AIS (2019 Update) | ' "Rosen's Emergency Medicine | Bradley & Daroff's Neurology in Clinical Practice", ha='center', va='center', fontsize=7.2, color='#888', fontstyle='italic') plt.tight_layout(pad=0.4) plt.savefig('/tmp/workspace/ais-flowchart/AIS_Management_Flowchart_AHA_ASA.png', dpi=180, bbox_inches='tight', facecolor='#F0F4F8') plt.close() print("Done.") PYEOF
AIS Management Flowchart AHA ASA
Image · PNG
| IV Thrombolysis | Mechanical Thrombectomy |
|---|---|
| Within 3 h: age ≥18, neuro deficit, no hemorrhage, BP ≤185/110, no major exclusions | 0-6 h: prestroke mRS 0-1, ICA/M1 occlusion, age ≥18, NIHSS ≥6, ASPECTS ≥6 |
| Within 3-4.5 h: additional exclusions (age >80, NIHSS >25, prior stroke + DM, anticoagulants, infarct >1/3 MCA) | 6-24 h (extended): ICA/M1 occlusion + meets DAWN or DEFUSE-3 criteria |
Sources: AHA/ASA 2018 AIS Guidelines (2019 Update) | Rosen's Emergency Medicine (9780323757898) | Bradley & Daroff's Neurology in Clinical Practice (9780323642613)