ECG criteria in proximal LAD occlusion
"proximal LAD" AND "ECG" AND "occlusion"



| ECG Change | Significance |
|---|---|
| STE >1 mm concordant with QRS (positive QRS leads) | Highly specific for AMI |
| STE >5 mm discordant with QRS (negative QRS leads) | Moderately specific for AMI |
| ST depression >1 mm in V1-V3 | Specific for AMI |
| Occlusion Site | Expected ECG Findings |
|---|---|
| Very proximal LAD (before S1 + D1) | STE V1-V6 + I + aVL; ST dep II, III, aVF; STE aVR; may have RBBB/LBBB |
| Proximal LAD (before D1, after S1) | STE V1-V5; ST dep II, III, aVF; +/- STE I, aVL |
| Proximal (Wellens, pain-free) | Biphasic or deep inverted T waves V2-V3; minimal STE; no Q waves |
| Proximal (de Winter pattern) | STD with hyperacute T waves V1-V6; STE aVR |
| Mid LAD (after D1) | STE V2-V4; less aVL involvement |
| Distal LAD | STE V3-V5 only; no reciprocal changes |
Carey comb’s Murmur
Carey Coombs murmur rheumatic carditis mechanism characteristics
| Feature | Detail |
|---|---|
| Timing | Mid-diastolic (after S2, before S1) |
| Quality | Low-pitched, rumbling, soft |
| Location | Cardiac apex |
| Radiation | Limited / localised to apex |
| Best heard with | Bell of stethoscope (low-frequency sound) |
| Position | Left lateral decubitus position enhances it |
| Duration | Short |
| Associated murmurs | Almost always accompanied by holosystolic, high-pitched apical murmur of MR |
| Feature | Carey Coombs | Mitral Stenosis |
|---|---|---|
| Cause | Acute valvular edema / inflammation | Chronic leaflet fusion, fibrosis, calcification |
| Opening snap | Absent | Present (precedes the murmur) |
| Pre-systolic accentuation | Absent | Present (in sinus rhythm) |
| Duration | Short | Longer; duration reflects severity |
| Course | Transient - disappears with resolution of ARF | Permanent, progressive |
| Clinical context | Active ARF, fever, elevated inflammatory markers | Chronic RHD, often years later |
"It can be distinguished from the diastolic murmur of mitral stenosis by the absence of an opening snap before the murmur." - Fuster and Hurst's The Heart, 15th Ed.
"A short, mid-diastolic murmur is rarely heard during an episode of acute rheumatic fever (Carey-Coombs murmur) and probably is due to flow through an edematous mitral valve. An opening snap is not present in the acute phase, and the murmur dissipates with resolution of the acute attack." - Harrison's Principles of Internal Medicine, 22nd Ed.
Spleenic infarct with multiple episodes of syncope
splenic infarct syncope cardioembolic causes differential diagnosis
"Systemic emboli most commonly lodge in the kidneys, spleen, large peripheral blood vessels, or especially the CNS." - Goldman-Cecil Medicine
"In atrial myxoma, syncope frequently is positional and occurs when the tumor falls into the AV valve opening during a change in position of the patient, thereby causing obstruction of the ventricular inflow." - Bradley and Daroff's Neurology in Clinical Practice
| Priority | Test | Targets |
|---|---|---|
| 1st | Blood cultures x3 | Infective endocarditis |
| 1st | 12-lead ECG | AF, heart block, ischemia, QT prolongation |
| 1st | Echocardiography (TTE) | Myxoma, vegetations, valvular disease, wall motion |
| 2nd | Contrast-enhanced CT abdomen | Confirm splenic infarct, assess extent, identify abscess |
| 2nd | Holter monitor / telemetry | Paroxysmal AF, arrhythmia-related syncope |
| 2nd | CBC, CRP, ESR, LDH | Hematologic cause, inflammatory markers |
| 2nd | Coagulation / thrombophilia screen | APS (antiphospholipid antibodies), lupus anticoagulant |
| 3rd | TEE | If TTE non-diagnostic; prosthetic valves; LA thrombus |
| 3rd | MRI brain | Silent cerebral emboli (confirms multifocal embolism) |
Create a diagnostic flowchart for splenic infarct + syncope cases
mkdir -p /home/daytona/workspace/splenic-flowchart && ls /home/daytona/workspace/splenic-flowchart
~/splenic-flowchart/flowchart.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.patches import FancyBboxPatch, FancyArrowPatch
import matplotlib.patheffects as pe
fig, ax = plt.subplots(figsize=(22, 30))
ax.set_xlim(0, 22)
ax.set_ylim(0, 30)
ax.axis('off')
fig.patch.set_facecolor('#F7F9FC')
ax.set_facecolor('#F7F9FC')
# ─── Color Palette ───────────────────────────────────────────────────────────
C_ENTRY = '#1A237E' # deep navy - entry box
C_ACUTE = '#B71C1C' # deep red - urgent / red flag
C_INVEST = '#1565C0' # blue - investigations
C_DX = '#2E7D32' # green - diagnoses
C_WORKUP = '#4527A0' # purple - workup step
C_TX = '#E65100' # orange - treatment / action
C_ARROW = '#37474F' # dark grey - arrows
C_HEADER = '#ECEFF1' # light grey - section header bg
C_POSITIVE = '#880E4F' # dark pink - positive result
C_NEGATIVE = '#1B5E20' # dark green - negative result
WHITE = '#FFFFFF'
LIGHT_BLUE = '#E3F2FD'
LIGHT_GREEN= '#E8F5E9'
LIGHT_RED = '#FFEBEE'
LIGHT_PURP = '#EDE7F6'
LIGHT_ORG = '#FFF3E0'
def box(ax, x, y, w, h, text, facecolor, textcolor=WHITE, fontsize=9.5,
bold=False, radius=0.3, edgecolor=None, linewidth=1.5, alpha=1.0,
wrap=True):
if edgecolor is None:
edgecolor = facecolor
fancy = FancyBboxPatch((x - w/2, y - h/2), w, h,
boxstyle=f"round,pad=0.05,rounding_size={radius}",
facecolor=facecolor, edgecolor=edgecolor,
linewidth=linewidth, alpha=alpha, zorder=3)
ax.add_patch(fancy)
weight = 'bold' if bold else 'normal'
ax.text(x, y, text, ha='center', va='center', fontsize=fontsize,
color=textcolor, fontweight=weight, zorder=4,
wrap=True, multialignment='center',
bbox=dict(boxstyle='square,pad=0', facecolor='none', edgecolor='none'))
def diamond(ax, x, y, w, h, text, facecolor, textcolor=WHITE, fontsize=9):
xs = [x, x+w/2, x, x-w/2, x]
ys = [y+h/2, y, y-h/2, y, y+h/2]
ax.fill(xs, ys, color=facecolor, zorder=3)
ax.plot(xs, ys, color='white', linewidth=1.5, zorder=4)
ax.text(x, y, text, ha='center', va='center', fontsize=fontsize,
color=textcolor, fontweight='bold', zorder=5, multialignment='center')
def arrow(ax, x1, y1, x2, y2, label='', color=C_ARROW, lw=1.8):
ax.annotate('', xy=(x2, y2), xytext=(x1, y1),
arrowprops=dict(arrowstyle='->', color=color,
lw=lw, connectionstyle='arc3,rad=0.0'),
zorder=2)
if label:
mx, my = (x1+x2)/2, (y1+y2)/2
ax.text(mx+0.15, my, label, fontsize=8, color=color, fontstyle='italic',
va='center', zorder=5)
def harrow(ax, x1, y1, x2, y2, label='', color=C_ARROW, lw=1.8, 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)
if label:
mx, my = (x1+x2)/2, (y1+y2)/2
ax.text(mx, my+0.18, label, fontsize=7.5, color=color, fontstyle='italic',
ha='center', va='bottom', zorder=5)
# ═══════════════════════════════════════════════════════════════════════════════
# TITLE
# ═══════════════════════════════════════════════════════════════════════════════
ax.text(11, 29.3, 'Diagnostic Flowchart', ha='center', va='center',
fontsize=18, fontweight='bold', color=C_ENTRY)
ax.text(11, 28.85, 'Splenic Infarct + Recurrent Syncope', ha='center', va='center',
fontsize=13, color='#455A64')
# Thin title underline
ax.plot([1.5, 20.5], [28.55, 28.55], color='#B0BEC5', lw=1.2)
# ═══════════════════════════════════════════════════════════════════════════════
# BLOCK 1 — ENTRY
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 11, 27.9, 9.5, 0.9,
'PATIENT: Splenic Infarct (CT-confirmed) + ≥2 Episodes of Syncope',
C_ENTRY, fontsize=10.5, bold=True)
arrow(ax, 11, 27.45, 11, 26.85)
# ═══════════════════════════════════════════════════════════════════════════════
# BLOCK 2 — IMMEDIATE ASSESSMENT
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 11, 26.45, 9.5, 0.75,
'IMMEDIATE ASSESSMENT — Vitals · Pulse regularity · Cardiac auscultation · Temperature',
'#37474F', fontsize=9.5, bold=False)
arrow(ax, 11, 26.07, 11, 25.5)
# ═══════════════════════════════════════════════════════════════════════════════
# BLOCK 3 — RED FLAG CHECK
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 11, 25.1, 9.5, 0.75,
'⚠ RED FLAG CHECK — Fever / Rigors? Positional syncope? New murmur?',
C_ACUTE, fontsize=9.5, bold=True, radius=0.2)
# Branch YES left, NO right
ax.text(7.5, 24.68, 'YES ▶', fontsize=8.5, color=C_ACUTE, fontweight='bold', va='center')
ax.text(13.8, 24.68, '◀ NO', fontsize=8.5, color=C_NEGATIVE, fontweight='bold', va='center')
# Left arrow - urgent
ax.annotate('', xy=(4.8, 24.5), xytext=(8.2, 24.73),
arrowprops=dict(arrowstyle='->', color=C_ACUTE, lw=2.0), zorder=2)
# Right arrow - routine
ax.annotate('', xy=(17.2, 24.5), xytext=(13.8, 24.73),
arrowprops=dict(arrowstyle='->', color=C_NEGATIVE, lw=2.0), zorder=2)
# ═══════════════════════════════════════════════════════════════════════════════
# LEFT BRANCH — URGENT PATHWAY
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 3.8, 24.1, 5.5, 0.65,
'URGENT PATHWAY — Admit · Telemetry · IV access',
C_ACUTE, fontsize=8.5, bold=True, radius=0.2)
arrow(ax, 3.8, 23.77, 3.8, 23.2)
# IE workup box
box(ax, 3.8, 22.85, 5.5, 0.65,
'Blood cultures ×3 (before ABx) + CBC, CRP, ESR, Procalcitonin',
LIGHT_RED, textcolor='#B71C1C', fontsize=8.5, edgecolor=C_ACUTE, linewidth=1.5)
arrow(ax, 3.8, 22.52, 3.8, 21.9)
# Echo box
box(ax, 3.8, 21.55, 5.5, 0.65,
'Echocardiography (TTE → TEE if TTE non-diagnostic)',
LIGHT_RED, textcolor='#B71C1C', fontsize=8.5, edgecolor=C_ACUTE, linewidth=1.5)
arrow(ax, 3.8, 21.22, 3.8, 20.6)
# Vegetation diamond
diamond(ax, 3.8, 20.1, 4.2, 0.85,
'Vegetation\nSeen?', C_ACUTE, fontsize=8.5)
# YES → IE diagnosis
ax.annotate('', xy=(1.3, 19.5), xytext=(1.8, 20.1),
arrowprops=dict(arrowstyle='->', color=C_ACUTE, lw=1.8), zorder=2)
ax.text(0.55, 20.1, 'YES', fontsize=8, color=C_ACUTE, fontweight='bold', va='center')
box(ax, 1.3, 19.1, 2.3, 0.65,
'INFECTIVE\nENDOCARDITIS\n→ IV Antibiotics\n+ Surgery review',
C_ACUTE, fontsize=7.5, bold=True)
# NO → myxoma check
ax.annotate('', xy=(6.3, 19.5), xytext=(5.8, 20.1),
arrowprops=dict(arrowstyle='->', color='#5C6BC0', lw=1.8), zorder=2)
ax.text(6.35, 20.1, 'NO', fontsize=8, color='#5C6BC0', fontweight='bold', va='center')
box(ax, 6.3, 19.1, 2.2, 0.65,
'Myxoma /\nThrombus?',
'#5C6BC0', fontsize=8, bold=True)
ax.annotate('', xy=(6.3, 18.5), xytext=(6.3, 18.77),
arrowprops=dict(arrowstyle='->', color='#5C6BC0', lw=1.8), zorder=2)
box(ax, 6.3, 18.15, 2.4, 0.6,
'ATRIAL MYXOMA\n→ Surgical excision',
'#4527A0', fontsize=7.5, bold=True)
# ═══════════════════════════════════════════════════════════════════════════════
# RIGHT BRANCH — ROUTINE PATHWAY
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 17.5, 24.1, 4.8, 0.65,
'ROUTINE PATHWAY\n12-lead ECG + Holter / Telemetry',
C_INVEST, fontsize=8.5, bold=True, radius=0.2)
arrow(ax, 17.5, 23.77, 17.5, 23.2)
# ECG diamond
diamond(ax, 17.5, 22.75, 4.2, 0.85,
'AF / Flutter\non ECG?', C_INVEST, fontsize=8.5)
# YES → AF pathway
ax.annotate('', xy=(20.5, 22.2), xytext=(19.6, 22.75),
arrowprops=dict(arrowstyle='->', color=C_INVEST, lw=1.8), zorder=2)
ax.text(20.55, 22.75, 'YES', fontsize=8, color=C_INVEST, fontweight='bold', va='center')
box(ax, 20.8, 21.8, 2.3, 0.65,
'ATRIAL\nFIBRILLATION\n→ Anticoag\n+ Rate control',
C_INVEST, fontsize=7.5, bold=True)
# NO → further workup
ax.annotate('', xy=(17.5, 22.1), xytext=(17.5, 22.32),
arrowprops=dict(arrowstyle='->', color='#37474F', lw=1.8), zorder=2)
ax.text(17.7, 22.2, 'NO', fontsize=8, color=C_NEGATIVE, fontweight='bold', va='center')
box(ax, 17.5, 21.7, 4.8, 0.65,
'TTE + Holter ×48h + Thrombophilia screen',
LIGHT_BLUE, textcolor=C_INVEST, fontsize=8.5, edgecolor=C_INVEST, linewidth=1.5)
arrow(ax, 17.5, 21.37, 17.5, 20.75)
# Structural disease diamond
diamond(ax, 17.5, 20.3, 4.5, 0.85,
'Structural\nHeart Disease?', C_WORKUP, fontsize=8.5)
# YES → structural
ax.annotate('', xy=(20.5, 19.7), xytext=(19.75, 20.3),
arrowprops=dict(arrowstyle='->', color=C_WORKUP, lw=1.8), zorder=2)
ax.text(20.55, 20.3, 'YES', fontsize=8, color=C_WORKUP, fontweight='bold', va='center')
box(ax, 20.8, 19.3, 2.3, 0.65,
'AS / HCM /\nCardiomyopathy\n→ Cardiology\nreferral',
C_WORKUP, fontsize=7.5, bold=True)
# NO → hypercoag
ax.annotate('', xy=(17.5, 19.6), xytext=(17.5, 19.87),
arrowprops=dict(arrowstyle='->', color='#37474F', lw=1.8), zorder=2)
box(ax, 17.5, 19.25, 4.8, 0.6,
'Hypercoagulable Screen\n(APS · Factor V Leiden · JAK2 · APLA)',
LIGHT_PURP, textcolor='#4527A0', fontsize=8.5, edgecolor=C_WORKUP, linewidth=1.5)
arrow(ax, 17.5, 18.95, 17.5, 18.4)
diamond(ax, 17.5, 17.95, 4.5, 0.85,
'Thrombophilia\nIdentified?', '#6A1B9A', fontsize=8.5)
ax.annotate('', xy=(20.5, 17.35), xytext=(19.75, 17.95),
arrowprops=dict(arrowstyle='->', color='#6A1B9A', lw=1.8), zorder=2)
ax.text(20.55, 17.95, 'YES', fontsize=8, color='#6A1B9A', fontweight='bold', va='center')
box(ax, 20.8, 16.95, 2.3, 0.65,
'APS / MPN\n→ Anticoag +\nHaematology',
'#6A1B9A', fontsize=7.5, bold=True)
ax.annotate('', xy=(17.5, 17.3), xytext=(17.5, 17.52),
arrowprops=dict(arrowstyle='->', color='#37474F', lw=1.8), zorder=2)
box(ax, 17.5, 16.97, 4.8, 0.58,
'Consider: Paroxysmal AF · Occult malignancy\nRepeat Holter · Haematology referral',
'#607D8B', fontsize=8, edgecolor='#455A64', linewidth=1.5)
# ═══════════════════════════════════════════════════════════════════════════════
# CENTRAL CONVERGENCE — COMMON WORKUP
# ═══════════════════════════════════════════════════════════════════════════════
# Draw convergence arrow from left branch bottom and right branch to centre
ax.annotate('', xy=(11, 16.3), xytext=(3.8, 17.8),
arrowprops=dict(arrowstyle='->', color='#546E7A', lw=1.5,
connectionstyle='arc3,rad=-0.25'), zorder=2)
ax.annotate('', xy=(11, 16.3), xytext=(17.5, 16.68),
arrowprops=dict(arrowstyle='->', color='#546E7A', lw=1.5,
connectionstyle='arc3,rad=0.2'), zorder=2)
# ═══════════════════════════════════════════════════════════════════════════════
# CENTRAL BLOCK — ALL PATIENTS WORKUP
# ═══════════════════════════════════════════════════════════════════════════════
box(ax, 11, 15.85, 10.5, 0.75,
'ALL PATIENTS — Abdominal CT with contrast · MRI Brain (silent cerebral emboli) · Urinalysis',
'#263238', fontsize=9.5, bold=True)
arrow(ax, 11, 15.47, 11, 14.9)
# ═══════════════════════════════════════════════════════════════════════════════
# MULTI-TERRITORY EMBOLISM CHECK
# ═══════════════════════════════════════════════════════════════════════════════
diamond(ax, 11, 14.4, 7.0, 0.95,
'Multi-territory emboli?\n(Brain + Spleen + Kidney)', '#AD1457', fontsize=9)
# YES → High embolic burden
ax.annotate('', xy=(5.5, 13.75), xytext=(7.5, 14.4),
arrowprops=dict(arrowstyle='->', color='#AD1457', lw=2.0), zorder=2)
ax.text(4.8, 14.4, 'YES', fontsize=9, color='#AD1457', fontweight='bold', va='center')
box(ax, 4.5, 13.35, 4.8, 0.65,
'⚠ HIGH EMBOLIC BURDEN\nStrongly suspect IE / Myxoma\n→ Escalate to TEE immediately',
'#AD1457', fontsize=8.5, bold=True)
# NO → single territory
ax.annotate('', xy=(16.5, 13.75), xytext=(14.5, 14.4),
arrowprops=dict(arrowstyle='->', color=C_NEGATIVE, lw=2.0), zorder=2)
ax.text(15.55, 14.4, 'NO', fontsize=9, color=C_NEGATIVE, fontweight='bold', va='center')
box(ax, 17.5, 13.35, 4.5, 0.65,
'Single territory\n→ Consider AF, APS,\nhematologic cause',
C_NEGATIVE, fontsize=8.5, bold=True)
# Arrows downward to treatment summary
arrow(ax, 4.5, 13.02, 4.5, 12.4)
arrow(ax, 17.5, 13.02, 17.5, 12.4)
# ═══════════════════════════════════════════════════════════════════════════════
# FINAL DIAGNOSIS + TREATMENT BOXES (4 columns)
# ═══════════════════════════════════════════════════════════════════════════════
ax.text(11, 12.2, '─── DIAGNOSIS & MANAGEMENT ───', ha='center', va='center',
fontsize=10.5, fontweight='bold', color='#37474F')
# 4 diagnosis boxes
DIAG = [
(2.8, 11.2, 'INFECTIVE\nENDOCARDITIS',
'• IV antibiotics (4-6 wks)\n• Vegetation >10 mm → Surgery\n• Avoid anticoag if CNS emboli\n• Monitor: TTE serial',
'#B71C1C', LIGHT_RED),
(7.5, 11.2, 'ATRIAL MYXOMA',
'• Urgent surgical excision\n• Pre-op echo mapping\n• Positional syncope hallmark\n• Familial screening if recurrent',
'#4527A0', LIGHT_PURP),
(13.0, 11.2, 'ATRIAL FIBRILLATION',
'• Anticoagulation (DOAC/warfarin)\n• Rate/rhythm control\n• CHA₂DS₂-VASc scoring\n• Cardioversion if indicated',
'#1565C0', LIGHT_BLUE),
(18.5, 11.2, 'HYPERCOAG /\nHAEMATOLOGIC',
'• Anticoagulation (LMWH/warfarin)\n• Haematology referral\n• Bone marrow biopsy (MPN)\n• APS: lifelong anticoag',
'#2E7D32', LIGHT_GREEN),
]
for (xd, yd, title, detail, fgc, bgc) in DIAG:
# Title bar
box(ax, xd, yd + 0.28, 4.2, 0.5, title, fgc, fontsize=9, bold=True)
# Detail box
fancy2 = FancyBboxPatch((xd - 2.1, yd - 1.3), 4.2, 1.25,
boxstyle="round,pad=0.05,rounding_size=0.2",
facecolor=bgc, edgecolor=fgc,
linewidth=1.5, zorder=3)
ax.add_patch(fancy2)
ax.text(xd, yd - 0.68, detail, ha='center', va='center', fontsize=7.8,
color='#212121', zorder=4, multialignment='left',
fontfamily='monospace')
# ═══════════════════════════════════════════════════════════════════════════════
# BOTTOM KEY INVESTIGATIONS TABLE
# ═══════════════════════════════════════════════════════════════════════════════
ax.add_patch(FancyBboxPatch((0.8, 7.7), 20.4, 1.55,
boxstyle="round,pad=0.1,rounding_size=0.25",
facecolor='#ECEFF1', edgecolor='#90A4AE', linewidth=1.5, zorder=2))
ax.text(11, 9.1, 'KEY INVESTIGATIONS AT A GLANCE', ha='center', va='center',
fontsize=9.5, fontweight='bold', color='#263238')
cols = [
('PRIORITY 1 (Immediate)', '#B71C1C',
'Blood cultures ×3\n12-lead ECG\nTTE echocardiogram\nCBC, CRP, ESR, LFTs'),
('PRIORITY 2 (Within 24h)', '#1565C0',
'Contrast CT abdomen\n48h Holter monitor\nThrombophilia screen\nUrinalysis + urine MCS'),
('PRIORITY 3 (Specialist)', '#2E7D32',
'TEE (if TTE non-dx)\nMRI brain\nBone marrow biopsy\nHaematology / Cardiology referral'),
('SYNCOPE WORK-UP', '#4527A0',
'Tilt table test (vasovagal?)\nExercise stress test (HCM?)\nEPS if arrhythmia suspected\nLoop recorder (paroxysmal AF)'),
]
xstarts = [1.3, 6.3, 11.3, 16.3]
for (title, tc, items), xs in zip(cols, xstarts):
ax.text(xs + 1.9, 8.85, title, ha='center', va='center',
fontsize=8.5, fontweight='bold', color=tc)
ax.text(xs + 1.9, 8.22, items, ha='center', va='center',
fontsize=7.7, color='#37474F', multialignment='center')
# ═══════════════════════════════════════════════════════════════════════════════
# LEGEND
# ═══════════════════════════════════════════════════════════════════════════════
ax.add_patch(FancyBboxPatch((0.8, 6.5), 20.4, 0.95,
boxstyle="round,pad=0.1,rounding_size=0.25",
facecolor='#FAFAFA', edgecolor='#CFD8DC', linewidth=1.2, zorder=2))
legend_items = [
(C_ACUTE, 'Urgent / Red-flag pathway'),
(C_INVEST, 'Investigations / Routine pathway'),
(C_WORKUP, 'Structural / Hypercoag workup'),
(C_DX, 'Diagnosis confirmed'),
('#AD1457', 'Multi-territory embolism'),
]
for i, (lc, lt) in enumerate(legend_items):
lx = 1.5 + i * 4.1
ax.add_patch(mpatches.Rectangle((lx, 6.82), 0.45, 0.3, color=lc, zorder=3))
ax.text(lx + 0.6, 6.97, lt, va='center', fontsize=7.8, color='#37474F', zorder=4)
# ═══════════════════════════════════════════════════════════════════════════════
# FOOTER NOTE
# ═══════════════════════════════════════════════════════════════════════════════
ax.text(11, 6.15, 'Sources: Goldman-Cecil Medicine · Tintinalli\'s EM · Braunwald\'s Heart Disease · Harrison\'s 22nd Ed.',
ha='center', va='center', fontsize=7.5, color='#78909C', fontstyle='italic')
ax.text(11, 5.85, 'This flowchart is a clinical decision-support aid and does not replace physician judgement.',
ha='center', va='center', fontsize=7.5, color='#90A4AE', fontstyle='italic')
plt.tight_layout(pad=0.5)
plt.savefig('/home/daytona/workspace/splenic-flowchart/splenic_syncope_flowchart.png',
dpi=180, bbox_inches='tight', facecolor=fig.get_facecolor())
print("Saved successfully.")
cd /home/daytona/workspace/splenic-flowchart && python flowchart.py 2>&1
ls -lh /home/daytona/workspace/splenic-flowchart/splenic_syncope_flowchart.png

splenic syncope flowchart
Image · PNG
| Section | Content |
|---|---|
| Entry | CT-confirmed splenic infarct + ≥2 syncope episodes |
| Red flag triage | Fever/rigors, positional syncope, new murmur → splits into urgent vs. routine |
| Urgent pathway | Blood cultures → Echo → Vegetation? → IE or Myxoma |
| Routine pathway | ECG → AF? → Structural disease? → Thrombophilia screen |
| Central convergence | CT abdomen + MRI brain for all patients |
| Multi-territory check | Brain + spleen + kidney emboli → escalate to TEE immediately |
| 4 diagnosis boxes | IE, Atrial Myxoma, AF, Hypercoag/Haematologic - each with management steps |
| Priority investigation table | Priority 1 / 2 / 3 labs and imaging at a glance |
| Legend + Sources | Color-coded pathway guide + textbook citations |
Pericarditis stage 3 ECG
| Stage | Timing | PR Segment | ST Segment | T Wave |
|---|---|---|---|---|
| 1 (Acute) | Hours to days | Depressed (II, aVF, V4-V6) | Elevated - diffuse, concave up (especially I, V5, V6); ST/T ratio >0.25 | Upright, tall |
| 2 | Days | Isoelectric or depressed | Returns to isoelectric | Amplitude decreases; flat |
| 3 | Days to weeks | Isoelectric or slightly depressed | Isoelectric (normal) | Diffuse T-wave inversions (especially I, V5, V6) |
| 4 (Resolution) | Weeks to months | Isoelectric | Isoelectric | Normal |
"After several days, the ST segments return to normal (stage 2), and only then, or even later, do the T waves become inverted (stage 3)." - Harrison's Principles of Internal Medicine, 22nd Ed.
"During the third phase, although the ST segments are now back to isoelectric baseline, the T waves are inverted." - Rosen's Emergency Medicine


| Feature | Stage 3 Pericarditis | Myocardial Infarction (post-MI) | Wellens Syndrome | PE (RV strain) |
|---|---|---|---|---|
| Distribution | Diffuse (most leads) | Localised (one territory) | V2-V3 only | S1Q3T3; V1-V4 |
| Q waves | Absent | Present | Absent | Absent |
| ST segment | Isoelectric | Isoelectric (evolving) | Isoelectric/minimal | Varies |
| Prior ST elevation | Diffuse, concave | Regional, convex | None / minimal | None |
| Clinical context | Preceded by chest pain + rub | Preceded by STE/STEMI | Chest pain-free, LAD stenosis | Hypoxia, tachycardia |