Make me a visual flowchart in which i can quickly review and repeat thae total anterior circulation stroke PACS POCS
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/stroke-flowchart
~/stroke-flowchart/stroke_classification.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Stroke Classification – OCSP (TACS / PACS / POCS / LACS)</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f4f8;
color: #1a202c;
padding: 24px 16px;
}
h1 {
text-align: center;
font-size: 1.5rem;
font-weight: 800;
letter-spacing: 0.5px;
color: #1a202c;
margin-bottom: 4px;
}
.subtitle {
text-align: center;
font-size: 0.85rem;
color: #6b7280;
margin-bottom: 28px;
}
/* ── TOP QUESTION BOX ── */
.question-box {
background: #1e3a5f;
color: #fff;
border-radius: 12px;
padding: 16px 20px;
text-align: center;
max-width: 640px;
margin: 0 auto 8px;
font-size: 1rem;
font-weight: 700;
line-height: 1.4;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
/* ── CONNECTOR ARROWS ── */
.connector {
display: flex;
justify-content: center;
align-items: center;
gap: 0;
margin: 0 auto;
max-width: 700px;
}
.arrow-down {
width: 2px;
height: 20px;
background: #94a3b8;
margin: 0 auto;
}
.arrow-down-center {
display: block;
margin: 0 auto;
width: 2px;
height: 20px;
background: #94a3b8;
}
.arrow-head {
display: block;
margin: 0 auto;
width: 0;
height: 0;
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 10px solid #94a3b8;
}
/* ── DECISION DIAMOND ── */
.diamond-wrap {
display: flex;
justify-content: center;
margin: 0 auto 8px;
}
.diamond {
background: #f59e0b;
color: #1a202c;
font-weight: 700;
font-size: 0.82rem;
padding: 12px 22px;
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
text-align: center;
min-width: 180px;
min-height: 80px;
display: flex;
align-items: center;
justify-content: center;
line-height: 1.3;
}
/* ── 4-COLUMN GRID ── */
.grid-4 {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
max-width: 1100px;
margin: 0 auto;
}
/* ── SYNDROME CARD ── */
.card {
border-radius: 12px;
padding: 14px 14px 16px;
display: flex;
flex-direction: column;
gap: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.10);
}
.card-header {
border-radius: 8px;
padding: 8px 10px;
text-align: center;
}
.card-header .acronym {
font-size: 1.5rem;
font-weight: 900;
letter-spacing: 1px;
display: block;
}
.card-header .full-name {
font-size: 0.7rem;
font-weight: 600;
letter-spacing: 0.3px;
opacity: 0.92;
display: block;
margin-top: 2px;
}
.card-header .territory {
font-size: 0.68rem;
opacity: 0.8;
display: block;
margin-top: 2px;
}
/* colours per syndrome */
.tacs-card { background: #fff5f5; border: 2px solid #fc8181; }
.tacs-header { background: #c53030; color: #fff; }
.pacs-card { background: #fffbeb; border: 2px solid #f6ad55; }
.pacs-header { background: #c05621; color: #fff; }
.pocs-card { background: #f0fff4; border: 2px solid #68d391; }
.pocs-header { background: #276749; color: #fff; }
.lacs-card { background: #ebf8ff; border: 2px solid #63b3ed; }
.lacs-header { background: #2b6cb0; color: #fff; }
/* section labels inside card */
.section-label {
font-size: 0.65rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.8px;
color: #6b7280;
margin-bottom: 4px;
border-bottom: 1px solid #e5e7eb;
padding-bottom: 3px;
}
.criteria-list {
list-style: none;
padding: 0;
}
.criteria-list li {
font-size: 0.75rem;
line-height: 1.5;
padding: 3px 0 3px 14px;
position: relative;
color: #374151;
}
.criteria-list li::before {
content: "✓";
position: absolute;
left: 0;
font-size: 0.65rem;
color: #10b981;
font-weight: 700;
}
.criteria-list li.cross::before {
content: "✗";
color: #ef4444;
}
.criteria-list li.rule::before {
content: "→";
color: #6366f1;
}
.tag {
display: inline-block;
font-size: 0.65rem;
font-weight: 700;
padding: 2px 7px;
border-radius: 20px;
margin: 2px 2px 0 0;
}
.tag-red { background: #fed7d7; color: #c53030; }
.tag-orange { background: #feebc8; color: #c05621; }
.tag-green { background: #c6f6d5; color: #276749; }
.tag-blue { background: #bee3f8; color: #2b6cb0; }
.tag-purple { background: #e9d8fd; color: #553c9a; }
.tag-gray { background: #e5e7eb; color: #4b5563; }
.prognosis-bar {
height: 6px;
border-radius: 4px;
margin-top: 4px;
margin-bottom: 2px;
}
.prog-label {
font-size: 0.65rem;
color: #6b7280;
font-weight: 600;
}
/* ── FOOTNOTE ── */
.footnote {
max-width: 1100px;
margin: 20px auto 0;
background: #fff;
border-radius: 10px;
padding: 12px 16px;
font-size: 0.72rem;
color: #4b5563;
line-height: 1.6;
border-left: 4px solid #6366f1;
box-shadow: 0 1px 4px rgba(0,0,0,0.07);
}
.footnote strong { color: #1a202c; }
/* ── TRIAD BADGE ── */
.triad-badge {
background: #1e3a5f;
color: #fff;
border-radius: 8px;
padding: 8px 12px;
font-size: 0.74rem;
font-weight: 700;
text-align: center;
line-height: 1.5;
}
/* responsive */
@media (max-width: 800px) {
.grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
.grid-4 { grid-template-columns: 1fr; }
}
/* horizontal flow lines above cards */
.branch-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 14px;
max-width: 1100px;
margin: 0 auto;
}
.branch-arrow {
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
}
.branch-top-line {
width: 2px;
height: 16px;
background: #94a3b8;
}
.separator-line {
border: none;
border-top: 2px dashed #e2e8f0;
max-width: 1100px;
margin: 18px auto;
}
</style>
</head>
<body>
<h1>Ischaemic Stroke Syndrome Classification</h1>
<p class="subtitle">Oxfordshire Community Stroke Project (OCSP / Bamford) Classification — Quick Review</p>
<!-- TOP: STROKE DIAGNOSIS -->
<div class="question-box">
ISCHAEMIC STROKE CONFIRMED<br>
<span style="font-size:0.8rem; font-weight:400; opacity:0.85;">↓ Classify by clinical features at onset ↓</span>
</div>
<!-- Arrow down -->
<div style="display:flex; flex-direction:column; align-items:center; margin:4px 0;">
<div style="width:2px; height:18px; background:#94a3b8;"></div>
<div style="width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #94a3b8;"></div>
</div>
<!-- KEY TRIAD QUESTION -->
<div style="max-width:680px; margin:0 auto 10px;">
<div class="triad-badge">
ASK: Does the patient have the <strong>CLASSIC TRIAD?</strong><br>
<span style="font-size:0.7rem; font-weight:400; opacity:0.9;">① Higher cortical dysfunction (dysphasia, neglect, visuospatial deficit)
② Ipsilateral homonymous hemianopia
③ Contralateral motor/sensory deficit (face + arm + leg)</span>
</div>
</div>
<!-- Arrow down -->
<div style="display:flex; flex-direction:column; align-items:center; margin:4px 0 16px;">
<div style="width:2px; height:18px; background:#94a3b8;"></div>
<div style="width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #94a3b8;"></div>
</div>
<!-- 4 CARDS -->
<div class="grid-4">
<!-- ═══════════ TACS ═══════════ -->
<div class="card tacs-card">
<div class="card-header tacs-header">
<span class="acronym">TACS</span>
<span class="full-name">Total Anterior Circulation Stroke</span>
<span class="territory">Internal carotid / proximal MCA</span>
</div>
<div>
<div class="section-label">Diagnostic Criteria — ALL 3 required</div>
<ul class="criteria-list">
<li>Higher cortical dysfunction<br><span style="font-size:0.68rem;color:#6b7280;">(dysphasia, visuospatial deficit, neglect)</span></li>
<li>Homonymous hemianopia</li>
<li>Contralateral motor/sensory deficit<br><span style="font-size:0.68rem;color:#6b7280;">Face + arm + leg involved</span></li>
</ul>
</div>
<div>
<div class="section-label">Key Features</div>
<ul class="criteria-list">
<li>Most severe anterior syndrome</li>
<li>Dysphasia if dominant hemisphere</li>
<li>Neglect / anosognosia if non-dominant</li>
<li class="cross">No brainstem / cerebellar signs</li>
</ul>
</div>
<div>
<div class="section-label">Vessel / Territory</div>
<span class="tag tag-red">ICA occlusion</span>
<span class="tag tag-red">MCA main stem</span>
<span class="tag tag-gray">Cortex + deep MCA territory</span>
</div>
<div>
<div class="section-label">Prognosis (30-day mortality ~39%)</div>
<div class="prognosis-bar" style="background: linear-gradient(to right, #c53030 95%, #f0f0f0 95%);"></div>
<span class="prog-label">Very poor — highest disability & death</span>
</div>
</div>
<!-- ═══════════ PACS ═══════════ -->
<div class="card pacs-card">
<div class="card-header pacs-header">
<span class="acronym">PACS</span>
<span class="full-name">Partial Anterior Circulation Stroke</span>
<span class="territory">MCA branch / ACA territory</span>
</div>
<div>
<div class="section-label">Diagnostic Criteria — 2 of 3 OR higher cortical alone</div>
<ul class="criteria-list">
<li>Any 2 of the TACS triad<br><span style="font-size:0.68rem;color:#6b7280;">(cortical + motor, cortical + visual, motor + visual)</span></li>
<li class="rule">OR: Higher cortical dysfunction alone</li>
<li class="rule">OR: Motor/sensory deficit more restricted than LACS<br><span style="font-size:0.68rem;color:#6b7280;">(e.g. arm only, face + arm, not full hemi)</span></li>
</ul>
</div>
<div>
<div class="section-label">Key Features</div>
<ul class="criteria-list">
<li>Isolated dysphasia or neglect possible</li>
<li>Monoplegia / brachial monoplegia common</li>
<li>ACA: contralateral leg weakness + abulia</li>
<li class="cross">Not all 3 of the TACS triad present</li>
</ul>
</div>
<div>
<div class="section-label">Vessel / Territory</div>
<span class="tag tag-orange">MCA branch</span>
<span class="tag tag-orange">ACA territory</span>
<span class="tag tag-gray">Cortical or subcortical</span>
</div>
<div>
<div class="section-label">Prognosis (30-day mortality ~4%)</div>
<div class="prognosis-bar" style="background: linear-gradient(to right, #c05621 40%, #f0f0f0 40%);"></div>
<span class="prog-label">Good early, HIGH recurrence risk (~17% at 3m)</span>
</div>
</div>
<!-- ═══════════ POCS ═══════════ -->
<div class="card pocs-card">
<div class="card-header pocs-header">
<span class="acronym">POCS</span>
<span class="full-name">Posterior Circulation Stroke</span>
<span class="territory">Vertebrobasilar system</span>
</div>
<div>
<div class="section-label">Diagnostic Criteria — any of:</div>
<ul class="criteria-list">
<li>Ipsilateral cranial nerve palsy + contralateral motor/sensory<br><span style="font-size:0.68rem;color:#6b7280;">(crossed deficits = hallmark)</span></li>
<li>Bilateral motor / bilateral sensory deficit</li>
<li>Conjugate gaze disorder (not CN III/IV/VI alone)</li>
<li>Cerebellar dysfunction<br><span style="font-size:0.68rem;color:#6b7280;">(ataxia, dysmetria, dysdiadochokinesia)</span></li>
<li>Isolated hemianopia / cortical blindness</li>
</ul>
</div>
<div>
<div class="section-label">Key Syndromes</div>
<span class="tag tag-green">Wallenberg (PICA)</span>
<span class="tag tag-green">Weber (midbrain)</span>
<span class="tag tag-green">Lateral pontine</span>
<span class="tag tag-green">Top-of-basilar</span>
<span class="tag tag-green">PCA: hemianopia</span>
</div>
<div>
<div class="section-label">Vessel / Territory</div>
<span class="tag tag-green">Vertebral a.</span>
<span class="tag tag-green">Basilar a.</span>
<span class="tag tag-green">PICA / AICA / SCA</span>
<span class="tag tag-green">PCA</span>
</div>
<div>
<div class="section-label">Prognosis (30-day mortality ~7%)</div>
<div class="prognosis-bar" style="background: linear-gradient(to right, #276749 45%, #f0f0f0 45%);"></div>
<span class="prog-label">Variable — basilar occlusion can be catastrophic</span>
</div>
</div>
<!-- ═══════════ LACS ═══════════ -->
<div class="card lacs-card">
<div class="card-header lacs-header">
<span class="acronym">LACS</span>
<span class="full-name">Lacunar Stroke</span>
<span class="territory">Small perforating arteries</span>
</div>
<div>
<div class="section-label">Diagnostic Criteria — one of the 5 classic syndromes, NO cortical signs</div>
<ul class="criteria-list">
<li><strong>Pure motor hemiparesis</strong><br><span style="font-size:0.68rem;color:#6b7280;">Face + arm + leg, no cortical signs</span></li>
<li><strong>Pure sensory stroke</strong><br><span style="font-size:0.68rem;color:#6b7280;">Hemisensory loss, no motor/cortical</span></li>
<li><strong>Sensorimotor stroke</strong><br><span style="font-size:0.68rem;color:#6b7280;">Pure motor + pure sensory combined</span></li>
<li><strong>Ataxic hemiparesis</strong><br><span style="font-size:0.68rem;color:#6b7280;">Ipsilateral cerebellar ataxia + hemiparesis</span></li>
<li><strong>Dysarthria–clumsy hand</strong><br><span style="font-size:0.68rem;color:#6b7280;">Dysarthria + hand clumsiness</span></li>
</ul>
</div>
<div>
<div class="section-label">Critical Exclusions</div>
<ul class="criteria-list">
<li class="cross">No cortical dysfunction (dysphasia, neglect)</li>
<li class="cross">No hemianopia</li>
<li class="cross">No cerebellar signs unless ataxic hemiparesis pattern</li>
<li class="cross">No brainstem cranial nerve signs</li>
</ul>
</div>
<div>
<div class="section-label">Vessel / Territory</div>
<span class="tag tag-blue">Lenticulostriate a.</span>
<span class="tag tag-blue">Thalamoperforating a.</span>
<span class="tag tag-blue">Paramedian pontine a.</span>
<span class="tag tag-gray">Internal capsule / thalamus / pons</span>
</div>
<div>
<div class="section-label">Prognosis (30-day mortality ~2%)</div>
<div class="prognosis-bar" style="background: linear-gradient(to right, #2b6cb0 15%, #f0f0f0 15%);"></div>
<span class="prog-label">Best outcome — but risk of cognitive decline / dementia</span>
</div>
</div>
</div>
<!-- SEPARATOR -->
<hr class="separator-line">
<!-- MEMORY AIDS ROW -->
<div style="max-width:1100px; margin:0 auto 18px;">
<div style="font-size:0.7rem; font-weight:800; text-transform:uppercase; color:#6b7280; letter-spacing:1px; margin-bottom:8px; text-align:center;">Quick Memory Aids</div>
<div class="grid-4">
<div style="background:#fff5f5; border:1.5px solid #fc8181; border-radius:10px; padding:10px 12px;">
<div style="font-size:0.9rem; font-weight:800; color:#c53030; margin-bottom:4px;">TACS = ALL THREE</div>
<div style="font-size:0.72rem; line-height:1.6; color:#374151;">
<strong>C</strong>ortical + <strong>H</strong>emianopia + <strong>M</strong>otor-sensory (all limbs)<br>
<span style="color:#6b7280;">Think: "Total = Total involvement"</span>
</div>
</div>
<div style="background:#fffbeb; border:1.5px solid #f6ad55; border-radius:10px; padding:10px 12px;">
<div style="font-size:0.9rem; font-weight:800; color:#c05621; margin-bottom:4px;">PACS = PARTIAL</div>
<div style="font-size:0.72rem; line-height:1.6; color:#374151;">
<strong>2 of 3</strong> criteria OR cortical alone OR limited motor<br>
<span style="color:#6b7280;">Think: "Partial = piece of the pie"</span>
</div>
</div>
<div style="background:#f0fff4; border:1.5px solid #68d391; border-radius:10px; padding:10px 12px;">
<div style="font-size:0.9rem; font-weight:800; color:#276749; margin-bottom:4px;">POCS = POSTERIOR</div>
<div style="font-size:0.72rem; line-height:1.6; color:#374151;">
<strong>Crossed signs</strong> / bilateral / cerebellar / gaze / visual field only<br>
<span style="color:#6b7280;">Think: "POsterior = Crossed Problems"</span>
</div>
</div>
<div style="background:#ebf8ff; border:1.5px solid #63b3ed; border-radius:10px; padding:10px 12px;">
<div style="font-size:0.9rem; font-weight:800; color:#2b6cb0; margin-bottom:4px;">LACS = LACUNE</div>
<div style="font-size:0.72rem; line-height:1.6; color:#374151;">
Classic syndrome <strong>without</strong> cortical signs or hemianopia<br>
<span style="color:#6b7280;">Think: "Little hole = no cortex involved"</span>
</div>
</div>
</div>
</div>
<!-- COMPARISON TABLE -->
<div style="max-width:1100px; margin:0 auto 18px; background:#fff; border-radius:12px; padding:14px 18px; box-shadow:0 1px 6px rgba(0,0,0,0.08);">
<div style="font-size:0.7rem; font-weight:800; text-transform:uppercase; color:#6b7280; letter-spacing:1px; margin-bottom:10px;">At-a-Glance Comparison</div>
<table style="width:100%; border-collapse:collapse; font-size:0.73rem;">
<thead>
<tr style="background:#f8fafc;">
<th style="padding:7px 8px; text-align:left; border-bottom:2px solid #e2e8f0; color:#374151;">Feature</th>
<th style="padding:7px 8px; text-align:center; border-bottom:2px solid #e2e8f0; color:#c53030;">TACS</th>
<th style="padding:7px 8px; text-align:center; border-bottom:2px solid #e2e8f0; color:#c05621;">PACS</th>
<th style="padding:7px 8px; text-align:center; border-bottom:2px solid #e2e8f0; color:#276749;">POCS</th>
<th style="padding:7px 8px; text-align:center; border-bottom:2px solid #e2e8f0; color:#2b6cb0;">LACS</th>
</tr>
</thead>
<tbody>
<tr style="border-bottom:1px solid #f0f0f0;">
<td style="padding:6px 8px; font-weight:600;">Cortical signs</td>
<td style="padding:6px 8px; text-align:center;">✓ Yes</td>
<td style="padding:6px 8px; text-align:center;">± Possible</td>
<td style="padding:6px 8px; text-align:center;">✗ No</td>
<td style="padding:6px 8px; text-align:center;">✗ No</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0; background:#fafafa;">
<td style="padding:6px 8px; font-weight:600;">Hemianopia</td>
<td style="padding:6px 8px; text-align:center;">✓ Yes</td>
<td style="padding:6px 8px; text-align:center;">± Possible</td>
<td style="padding:6px 8px; text-align:center;">✓ Can be isolated</td>
<td style="padding:6px 8px; text-align:center;">✗ No</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0;">
<td style="padding:6px 8px; font-weight:600;">Limb weakness</td>
<td style="padding:6px 8px; text-align:center;">Face+arm+leg</td>
<td style="padding:6px 8px; text-align:center;">Partial (arm alone etc.)</td>
<td style="padding:6px 8px; text-align:center;">Bilateral possible</td>
<td style="padding:6px 8px; text-align:center;">Pure hemiparesis</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0; background:#fafafa;">
<td style="padding:6px 8px; font-weight:600;">Crossed signs</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
<td style="padding:6px 8px; text-align:center;">✓ Hallmark</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0;">
<td style="padding:6px 8px; font-weight:600;">Cerebellar signs</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
<td style="padding:6px 8px; text-align:center;">✓ Yes</td>
<td style="padding:6px 8px; text-align:center;">± Ataxic hemiparesis only</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0; background:#fafafa;">
<td style="padding:6px 8px; font-weight:600;">Dysphasia</td>
<td style="padding:6px 8px; text-align:center;">✓ if dominant</td>
<td style="padding:6px 8px; text-align:center;">✓ if dominant</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
<td style="padding:6px 8px; text-align:center;">✗</td>
</tr>
<tr style="border-bottom:1px solid #f0f0f0;">
<td style="padding:6px 8px; font-weight:600;">30-day mortality</td>
<td style="padding:6px 8px; text-align:center; color:#c53030; font-weight:700;">~39%</td>
<td style="padding:6px 8px; text-align:center; color:#c05621; font-weight:700;">~4%</td>
<td style="padding:6px 8px; text-align:center; color:#276749; font-weight:700;">~7%</td>
<td style="padding:6px 8px; text-align:center; color:#2b6cb0; font-weight:700;">~2%</td>
</tr>
<tr style="background:#fafafa;">
<td style="padding:6px 8px; font-weight:600;">Recurrence risk (3m)</td>
<td style="padding:6px 8px; text-align:center;">Low (early death)</td>
<td style="padding:6px 8px; text-align:center; color:#c05621; font-weight:700;">~17% (highest)</td>
<td style="padding:6px 8px; text-align:center;">~10%</td>
<td style="padding:6px 8px; text-align:center;">~9%</td>
</tr>
</tbody>
</table>
</div>
<!-- FOOTNOTE -->
<div class="footnote">
<strong>Source:</strong> Bamford J et al. <em>Lancet</em> 1991 — Oxfordshire Community Stroke Project classification. |
<strong>Note:</strong> OCSP is a <em>clinical</em> classification at onset; it does not require imaging but correlates strongly with infarct size and vessel territory. Imaging may later reclassify. |
<strong>PACS recurrence:</strong> High early recurrence reflects embolic aetiology (cardioembolic or artery-to-artery) — aggressive investigation and secondary prevention essential. |
<strong>TACS mortality:</strong> High due to large hemisphere infarction, malignant oedema, and aspiration.
</div>
</body>
</html>
ls -lh /home/daytona/workspace/stroke-flowchart/
stroke classification
HTML File · HTML
| Section | Content |
|---|---|
| Diagnostic criteria | Exact rules (all 3 / 2 of 3 / posterior features / lacunar syndromes) |
| Key features | Clinical pearls and what's absent |
| Vessel/territory | Which artery is involved |
| Prognosis bar | Visual severity + 30-day mortality |