ECG criteria in proximal LAD occlusion

Reading File
Finding Sources
Finding Sources
Searching PubMed

"proximal LAD" AND "ECG" AND "occlusion"

Finding Sources
Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Loading Image
Finding Sources
Finding Sources
Reading File
Reading File
I now have comprehensive content from multiple authoritative textbooks. Let me compile the full answer.

ECG Criteria in Proximal LAD Occlusion

Proximal LAD occlusion is one of the most hemodynamically consequential infarcts, threatening the anterior wall, septum, and frequently the right ventricle. The ECG picture is diverse because it depends on the exact site of occlusion relative to the first septal perforator, first diagonal, and whether there is left main involvement.

1. Classic Anterior STEMI Pattern

The standard presentation:
  • ST elevation ≥1 mm in two or more contiguous anterior leads (V1-V4, sometimes extending to V5-V6)
  • Reciprocal ST depression in inferior leads (II, III, aVF) - seen as a horizontal STD and has 80% specificity for AMI
  • ST elevation in aVR - a key marker of very proximal or left main involvement (see below)
  • Q waves in anterior leads (may develop within minutes to hours)
When STE extends into leads I, aVL, V5, V6 (anterolateral pattern), this strongly suggests a proximal lesion with thrombus - as directly confirmed at catheterization in textbook cases.
Anterolateral STEMI from a proximal LAD lesion (STE in V1-V4, I, aVL, V5-V6):
Anterolateral STEMI - proximal LAD

2. Wellens Syndrome (Pre-Infarction / Reperfusion Pattern)

This is a STEMI-equivalent representing critical proximal LAD stenosis - the patient is at imminent risk of massive anterior MI. Crucially, it is usually seen when the patient is pain free.
Type A (25%): Biphasic T waves in V2-V3 (positive then negative deflection)
Type B (75%): Deep, symmetrical T wave inversions in V2-V3 (may extend to V1, V4-V5)
Additional features:
  • Isoelectric or minimally elevated ST segment (<1 mm) - notably no significant STE
  • No precordial Q waves
  • T-wave abnormalities may normalize when pain recurs (dynamic changes)
  • Up to ~50% have elevated cardiac markers
The natural history without revascularization is progression to full anterior wall STEMI.
Wellens Syndrome - Type B (deep symmetric inversions) and Type A (biphasic T waves), plus progression to anterolateral STEMI with proximal LAD occlusion confirmed at PCI
Fig. 64.5 from Rosen's Emergency Medicine: (A) Deep T-wave inversions - 75% of Wellens cases; (B) Biphasic T waves - 25% of Wellens cases; (C-D) Pain-free ECG with biphasic T waves in V2-V3 progressing 6 hours later to full anterolateral STEMI, with proximal LAD occlusion confirmed at PCI.

3. de Winter ECG Pattern (STEMI-Equivalent)

This is another presentation that is specifically associated with proximal LAD occlusion and is considered a STEMI-equivalent requiring emergent reperfusion.
Criteria:
  • ST segment depression at the J-point in precordial leads V1-V6 (1-3 mm), upsloping into
  • Tall, prominent, symmetric T waves (hyperacute T waves) in anterior leads
  • ST elevation in aVR (1-2 mm)
  • The pattern may persist without ever evolving to classic STE, yet represents a large LAD occlusion
Patients are typically ill-appearing with active chest pain, unlike Wellens (which appears during a pain-free window).
de Winter ECG pattern - J-point depression with hyperacute T waves in V2-V4 and ST elevation in aVR, associated with proximal LAD obstruction
Fig. 64.9 from Rosen's Emergency Medicine: de Winter pattern - anterior leads show J-point depression with tall hyperacute T waves; aVR shows ST elevation.

4. aVR ST Elevation - Very Proximal LAD or Left Main

ST elevation in aVR ≥1 mm (particularly aVR > V1) with diffuse ST depression in multiple leads suggests:
  • Very proximal LAD occlusion (before the first septal perforator)
  • Left main coronary artery occlusion
  • Severe multivessel disease / global subendocardial ischemia
This finding is part of the de Winter pattern and carries extreme prognostic significance.

5. New LBBB

New (or presumably new) LBBB in the context of ACS:
  • Suggests proximal LAD occlusion placing a large LV territory at risk
  • Associated with worse prognosis and higher Killip class
  • No longer considered an automatic STEMI-equivalent, but in an ill patient with a classic ACS presentation, it warrants urgent cardiology consultation and is an indication for emergent PCI consideration
Sgarbossa criteria (modified) apply when LBBB is present:
ECG ChangeSignificance
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-V3Specific for AMI

6. Lead-by-Lead Localization Summary

Occlusion SiteExpected 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 LADSTE V3-V5 only; no reciprocal changes

Key Clinical Points

  1. Wellens and de Winter patterns are STEMI-equivalents - they mandate the same urgency as classic STEMI for catheterization, even though they do not meet traditional STE criteria.
  2. Wellens is typically seen in a pain-free state; the T waves may paradoxically normalize when pain returns.
  3. de Winter patients are usually in pain with an ongoing occlusion.
  4. New LBBB is a marker of serious risk but is no longer automatically STEMI-equivalent - Sgarbossa criteria are needed to diagnose superimposed MI.
  5. Reciprocal inferior ST depression in anterior STEMI increases diagnostic specificity.

Sources:
  • Rosen's Emergency Medicine, 9th Ed., pp. 1001-1005 (Wellens syndrome, de Winter pattern, anterolateral STEMI)
  • Tintinalli's Emergency Medicine, pp. 381-383 (Wellens' sign criteria, proximal LAD ECG findings)
  • The Washington Manual of Medical Therapeutics, p. 5098-5120 (STEMI criteria, new LBBB, Sgarbossa criteria)

Carey comb’s Murmur

Finding Sources
Searching the Web

Carey Coombs murmur rheumatic carditis mechanism characteristics

Reading File
Reading File
Reading File
Excellent content from four major textbooks. Here is the full answer:

Carey Coombs Murmur

Definition

The Carey Coombs murmur is a short, low-pitched, mid-diastolic rumble heard at the cardiac apex, occurring during active acute rheumatic fever (ARF) as a manifestation of mitral valvulitis.

Mechanism

In ARF, the mitral valve leaflets undergo acute inflammatory edema and thickening due to rheumatic valvulitis. This causes increased turbulence as blood flows across the thickened, partially obstructed mitral valve during ventricular filling in mid-diastole. The murmur is therefore a flow murmur across an inflamed (not yet stenotic) mitral valve, not the result of established anatomical stenosis.
The sequence:
  1. Group A Streptococcal pharyngitis triggers ARF
  2. Immune-mediated inflammation attacks the mitral valve leaflets (valvulitis)
  3. Leaflet edema and thickening create transient functional obstruction to LV inflow
  4. Turbulent mid-diastolic flow produces the murmur
  5. As valvulitis resolves with treatment, the murmur disappears

Characteristics

FeatureDetail
TimingMid-diastolic (after S2, before S1)
QualityLow-pitched, rumbling, soft
LocationCardiac apex
RadiationLimited / localised to apex
Best heard withBell of stethoscope (low-frequency sound)
PositionLeft lateral decubitus position enhances it
DurationShort
Associated murmursAlmost always accompanied by holosystolic, high-pitched apical murmur of MR

Key Distinguishing Features from Mitral Stenosis (MS) Murmur

This distinction is clinically critical:
FeatureCarey CoombsMitral Stenosis
CauseAcute valvular edema / inflammationChronic leaflet fusion, fibrosis, calcification
Opening snapAbsentPresent (precedes the murmur)
Pre-systolic accentuationAbsentPresent (in sinus rhythm)
DurationShortLonger; duration reflects severity
CourseTransient - disappears with resolution of ARFPermanent, progressive
Clinical contextActive ARF, fever, elevated inflammatory markersChronic 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.

Clinical Context - Murmurs of Acute Rheumatic Carditis

The three characteristic murmurs of active rheumatic carditis are:
  1. High-pitched, blowing, holosystolic apical murmur - mitral regurgitation (most common, almost universal in carditis)
  2. Low-pitched, apical, mid-diastolic flow murmur - Carey Coombs murmur
  3. High-pitched, decrescendo diastolic murmur at the aortic area - aortic regurgitation (in ~20-30% of cases)
The mitral valve is involved in virtually all cases of rheumatic carditis, owing to preferential migration of inflammatory cells through the papillary muscles. The tricuspid valve is frequently affected but rarely in a clinically significant manner.

Epidemiology and Importance

  • Stenotic lesions (true MS) are rare in the early stages of ARF
  • The Carey Coombs murmur is itself rare - seen in only a minority of ARF patients with carditis
  • Its presence indicates active, significant mitral valvulitis - a major criterion of Jones criteria (as clinical carditis)
  • Carditis is the most important prognostic determinant in ARF, occurring in >50% of patients
  • Note: The updated 2015 Jones criteria also recognise subclinical carditis detected by Doppler echocardiography (even without auscultatory findings) as fulfilling the major criterion

Eponym

The murmur is named after Carey Franklin Coombs (1879-1932), a British cardiologist who described it in the context of early rheumatic mitral valvulitis. Interestingly, there is a historical debate as to whether it should rightfully be called the Richard Caton murmur, as Caton may have described it earlier (referenced in Fuster and Hurst's The Heart, 15th Ed.).

Sources:
  • Firestein & Kelley's Textbook of Rheumatology, pp. 2573 (acute carditis murmurs)
  • Fuster and Hurst's The Heart, 15th Ed. (Carey Coombs description and distinction from MS)
  • Harrison's Principles of Internal Medicine, 22nd Ed. (mid-diastolic murmurs; absent opening snap)
  • Rheumatology (Elsevier, 2022) (rare occurrence, mechanism as rapid mitral valve overflow)

Spleenic infarct with multiple episodes of syncope

Finding Sources
Finding Sources
Searching the Web

splenic infarct syncope cardioembolic causes differential diagnosis

Reading File
Reading File
Finding Sources
Finding Sources
Reading File
Reading File
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
I now have rich content from multiple textbooks. Here is the integrated clinical analysis:

Splenic Infarct + Multiple Episodes of Syncope

This symptom combination is a high-yield clinical scenario. The co-occurrence of splenic infarction (a systemic embolic event) with recurrent syncope (impaired cerebral perfusion or arrhythmia) points strongly toward a unifying underlying diagnosis - most often a cardiac source of embolism or obstruction.

Framework: Why These Two Features Occur Together

Splenic infarction results from occlusion of the splenic artery or its branches - most commonly by an embolus from the heart or great vessels. When the same source generates emboli to the cerebral or systemic circulation, or when the underlying cardiac pathology independently impairs cardiac output, syncope can occur simultaneously.
The key insight: both events share a common cardiac source.

Top Differential Diagnoses

1. Infective Endocarditis (IE) - Most Important to Consider

This is a classic and often-missed unifying diagnosis.
  • Splenic infarct: Occurs in up to 44% of autopsy-confirmed IE cases. Vegetations fragment and embolize to the spleen, kidneys, CNS, and peripheral vessels. Emboli may be entirely asymptomatic or cause LUQ pain radiating to the left shoulder.
  • Syncope mechanism: Multiple pathways:
    • Direct CNS embolism (20-40% of IE patients develop neurologic symptoms)
    • Conduction abnormalities / heart block (extension through the interventricular septum)
    • Hemodynamically significant valvular destruction causing reduced cardiac output
    • Cardiac arrhythmias
  • Clue: Multiple embolic events in different territories (brain, spleen, kidney simultaneously) is a hallmark of IE - termed multifocal embolization
  • Vegetations >10 mm, especially on the anterior mitral leaflet, carry the highest embolic risk
"Systemic emboli most commonly lodge in the kidneys, spleen, large peripheral blood vessels, or especially the CNS." - Goldman-Cecil Medicine
Workup: Blood cultures x3 (before antibiotics), TTE/TEE, CBC, CRP/ESR, urinalysis (for hematuria from renal emboli), abdominal CT

2. Atrial Fibrillation (AF) - Most Common Cause of Embolic Splenic Infarction

  • Thromboembolic disease accounts for 29-67% of all splenic infarctions, predominantly in patients over 40 years old, and the majority are in patients with AF not on therapeutic anticoagulation
  • Syncope: AF can cause syncope via:
    • Rapid ventricular response → reduced cardiac output
    • Bradycardia during conversion (tachy-brady syndrome / sick sinus syndrome)
    • Associated structural heart disease (e.g., cardiomyopathy reducing baseline EF)
  • Clue: Known AF, palpitations, irregular pulse; syncope that is unpredictable, without prodrome

3. Atrial Myxoma - Must Not Miss

This is the most elegant unifying diagnosis and a classic exam scenario.
  • Splenic infarct: Myxoma fragments embolize systemically - the tumor itself sheds emboli to the spleen, kidneys, CNS, and extremities
  • Syncope: Specifically positional - occurs when the tumor prolapses into the mitral or tricuspid valve orifice during positional change, acutely obstructing ventricular inflow and reducing cardiac output
  • Classic triad: Constitutional symptoms (fever, weight loss, fatigue) + embolic events + obstructive cardiac symptoms (dyspnea, syncope)
  • Clue: Syncope that is position-dependent (changes with posture), "tumor plop" on auscultation, elevated ESR/CRP without clear infectious cause
"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
Workup: Echocardiography (TTE then TEE) is diagnostic

4. Prosthetic Valve Thrombosis / Malfunction

  • Thrombus on a prosthetic mitral or aortic valve can embolize to the spleen
  • Valve malfunction can cause acute hemodynamic compromise and syncope
  • Clue: History of valve replacement, change in valve sounds on auscultation, sub-therapeutic INR

5. Hypercoagulable States / Hematologic Disorders

  • Antiphospholipid syndrome (APS): Arterial and venous thrombosis; splenic artery thrombosis causing infarction; concurrent cerebral ischemia (TIA/syncope-like episodes)
  • Polycythemia vera / essential thrombocythemia: Splenic infarction from thrombosis; cerebral hypoperfusion
  • Sickle cell disease: Repeated vaso-occlusive episodes → progressive splenic infarction and eventual autosplenectomy; CNS vasoocclusion causing transient cerebral ischemia/syncope
  • Leukemia/lymphoma: Massive splenomegaly with spontaneous infarction; hyperviscosity causing syncope

6. Aortic Stenosis (AS)

  • Not typically embolic, but:
  • Splenic infarction: Rare but documented via calcific emboli from stenotic aortic valve
  • Syncope: Classic - effort syncope is one of the three cardinal symptoms of AS (along with chest pain and dyspnea on exertion)
  • Clue: Elderly patient, harsh systolic murmur at RUSB with radiation to carotids, reduced A2

Diagnostic Approach Summary

PriorityTestTargets
1stBlood cultures x3Infective endocarditis
1st12-lead ECGAF, heart block, ischemia, QT prolongation
1stEchocardiography (TTE)Myxoma, vegetations, valvular disease, wall motion
2ndContrast-enhanced CT abdomenConfirm splenic infarct, assess extent, identify abscess
2ndHolter monitor / telemetryParoxysmal AF, arrhythmia-related syncope
2ndCBC, CRP, ESR, LDHHematologic cause, inflammatory markers
2ndCoagulation / thrombophilia screenAPS (antiphospholipid antibodies), lupus anticoagulant
3rdTEEIf TTE non-diagnostic; prosthetic valves; LA thrombus
3rdMRI brainSilent cerebral emboli (confirms multifocal embolism)

Red Flags That Demand Urgent Action

  • Fever + splenic infarct + syncope = infective endocarditis until proven otherwise - do not delay blood cultures or antibiotics if hemodynamically unstable
  • Positional syncope + splenic infarct = atrial myxoma - immediate echo
  • Multiple infarcts in different territories (brain + spleen + kidney) = high embolic burden - likely IE, myxoma, or AF with large thrombus

Sources:
  • Goldman-Cecil Medicine, pp. 708 (IE embolic complications, splenic infarction in 44% of IE at autopsy)
  • Tintinalli's Emergency Medicine (arterial embolization in IE; cardiac causes of syncope table)
  • Bradley and Daroff's Neurology in Clinical Practice (atrial myxoma and positional syncope mechanism)
  • Braunwald's Heart Disease (cardiac causes of syncope)
  • emDocs / StatPearls (thromboembolic disease accounts for 29-67% of splenic infarctions)

Create a diagnostic flowchart for splenic infarct + syncope cases

Running Command

mkdir -p /home/daytona/workspace/splenic-flowchart && ls /home/daytona/workspace/splenic-flowchart

Writing File

~/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.")
Running Command

cd /home/daytona/workspace/splenic-flowchart && python flowchart.py 2>&1

Running Command

ls -lh /home/daytona/workspace/splenic-flowchart/splenic_syncope_flowchart.png

The flowchart has been generated successfully (814 KB, 180 DPI). Here it is:
Diagnostic Flowchart - Splenic Infarct + Syncope

Download the full-resolution PNG:

splenic syncope flowchart

Image · PNG


What the flowchart covers:

SectionContent
EntryCT-confirmed splenic infarct + ≥2 syncope episodes
Red flag triageFever/rigors, positional syncope, new murmur → splits into urgent vs. routine
Urgent pathwayBlood cultures → Echo → Vegetation? → IE or Myxoma
Routine pathwayECG → AF? → Structural disease? → Thrombophilia screen
Central convergenceCT abdomen + MRI brain for all patients
Multi-territory checkBrain + spleen + kidney emboli → escalate to TEE immediately
4 diagnosis boxesIE, Atrial Myxoma, AF, Hypercoag/Haematologic - each with management steps
Priority investigation tablePriority 1 / 2 / 3 labs and imaging at a glance
Legend + SourcesColor-coded pathway guide + textbook citations

Pericarditis stage 3 ECG

Finding Sources
Finding Sources
Reading File
Reading File
Reading File
Reading File
Reading File
Loading Image
Loading Image
Excellent - both images retrieved beautifully. Here is the complete answer:

Pericarditis Stage 3 ECG

The Four-Stage ECG Evolution of Acute Pericarditis

Before focusing on Stage 3, the full progression provides essential context. The pericardium itself is non-conducting, so all ECG changes arise from subepicardial inflammation of the underlying myocardium.
Serial ECG Progression (from Tintinalli's EM):
StageTimingPR SegmentST SegmentT Wave
1 (Acute)Hours to daysDepressed (II, aVF, V4-V6)Elevated - diffuse, concave up (especially I, V5, V6); ST/T ratio >0.25Upright, tall
2DaysIsoelectric or depressedReturns to isoelectricAmplitude decreases; flat
3Days to weeksIsoelectric or slightly depressedIsoelectric (normal)Diffuse T-wave inversions (especially I, V5, V6)
4 (Resolution)Weeks to monthsIsoelectricIsoelectricNormal

Stage 3 - Specific ECG Criteria

Stage 3 is the T-wave inversion stage, occurring after the ST segments have fully returned to baseline:
Hallmark finding: Diffuse T-wave inversions
  • T waves become inverted in the leads that previously showed ST elevation: I, II, III, aVF, V3-V6 (all leads except aVR and V1)
  • Inversions are typically symmetrical and diffuse - not restricted to one coronary territory
  • The ST segment is now fully isoelectric - this is the key feature distinguishing Stage 3 from Stage 1
  • The PR segment is isoelectric (PR depression has resolved)
  • No Q waves develop (unlike MI)
  • No reciprocal changes in opposite leads
Mechanism: Delayed repolarization of the subepicardium as inflammation resolves - the same cells that depolarized abnormally early in Stage 1 now repolarize last, inverting the T-wave vector.
"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

Serial ECG Progression - Real Patient Example

ECG Progression of Pericarditis through all four stages - leads I, II, aVF, V2, V4, V6 shown over time (7/11, 7/18, 7/23, 12/19)
Fig. 165.14 from Rosen's Emergency Medicine - Serial ECG changes in a patient with pericarditis:
  • Column 1 (7/11) - Stage 1: Diffuse ST elevation visible in leads I, II, aVF, V4, V6; note the early PR depression
  • Column 2 (7/18) - Stage 2: ST segments returning toward baseline; T-wave amplitude decreasing/flattening in V2, V6
  • Column 3 (7/23) - Stage 3: ST fully isoelectric; diffuse T-wave inversions now visible in II, aVF, V4, V6
  • Column 4 (12/19) - Stage 4: Complete resolution of all ECG abnormalities (5 months later)

Stage 1 ECG (for Reference Comparison)

Stage 1 pericarditis - diffuse concave ST elevation with PR depression; aVR shows reciprocal ST depression and PR elevation
Fig. 53-3 from Fuster & Hurst's The Heart - Stage 1: Diffuse concave ST elevation with PR depression in multiple leads. aVR shows the characteristic ST depression + PR elevation ("knuckle sign").

Important Caveats About Stage 3

  1. Not all patients progress through all 4 stages - less than 60% demonstrate the full progression. A normal ECG does not exclude pericarditis.
  2. T-wave inversions in Stage 3 may persist in some patients, particularly those who develop chronic or recurrent pericarditis - they do not always normalize with Stage 4.
  3. Uremic pericarditis is an exception - it characteristically does NOT show the classic 4-stage ECG evolution because the epicardium is not involved in the inflammatory process (it is a fibrinous pericarditis of the visceral pericardium without subepicardial inflammation).
  4. Stage 3 vs. Myocarditis - when T-wave inversions are present, concomitant myocarditis should be considered, especially if ventricular arrhythmias are present (ventricular dysrhythmias are rare in pure pericarditis and suggest myocardial involvement).
  5. Large pericardial effusion (if it develops at any stage) superimposes: low-voltage QRS complexes and electrical alternans on whatever stage changes are present.

Distinguishing Stage 3 Pericarditis T-wave Inversions from Other Causes

FeatureStage 3 PericarditisMyocardial Infarction (post-MI)Wellens SyndromePE (RV strain)
DistributionDiffuse (most leads)Localised (one territory)V2-V3 onlyS1Q3T3; V1-V4
Q wavesAbsentPresentAbsentAbsent
ST segmentIsoelectricIsoelectric (evolving)Isoelectric/minimalVaries
Prior ST elevationDiffuse, concaveRegional, convexNone / minimalNone
Clinical contextPreceded by chest pain + rubPreceded by STE/STEMIChest pain-free, LAD stenosisHypoxia, tachycardia

Sources:
  • Harrison's Principles of Internal Medicine, 22nd Ed., p. 2554 (four-stage ECG evolution)
  • Tintinalli's Emergency Medicine (serial ECG changes table; stages 1-4 criteria)
  • Rosen's Emergency Medicine (Fig. 165.14 serial ECG; Stage 3 T-wave inversion description)
  • Fuster and Hurst's The Heart, 15th Ed. (subepicardial mechanism; <60% show all 4 stages)
This is a shared conversation. Sign in to Orris to start your own chat.