Posterior mi indications
Note: Cardiac MRI evidence suggests these so-called "posterior" infarctions actually involve the lateral left ventricular wall. A consensus document now recommends reclassifying them as inferobasal MI.
| ECG Finding | Leads | Significance |
|---|---|---|
| Horizontal ST depression | V1-V3 | Most important sign; mirror of posterior ST elevation |
| Upright (tall) T wave | V1-V3 | Posterior T-wave inversion seen as upright anteriorly |
| Tall, broad R wave (≥0.04 sec in V1-V2) | V1-V2 | Mirror image of posterior Q wave; may be delayed |
| R/S ratio ≥1 with positive T wave | V1-V2 | Suggests prior posterior MI (absent RVH or RBBB) |
Create a quick reference guide for posterior MI ECG patterns
ls /home/daytona/skills/docx/
mkdir -p /home/daytona/workspace/posterior-mi-guide && ls /home/daytona/workspace/posterior-mi-guide/
~/posterior-mi-guide/create_guide.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
AlignmentType, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageOrientation, Header, Footer, PageNumber, NumberFormat,
UnderlineType
} = require('docx');
const fs = require('fs');
// ─── Color Palette ─────────────────────────────────────────────
const RED = "C0392B"; // danger / alert
const DARK_RED = "922B21";
const ORANGE = "E67E22";
const BLUE = "1A5276"; // header bg
const LIGHT_BLUE= "D6EAF8"; // alt row / highlight
const MID_BLUE = "2980B9";
const DARK_GREY = "2C3E50";
const MED_GREY = "5D6D7E";
const LIGHT_GREY= "F2F3F4";
const WHITE = "FFFFFF";
const YELLOW_HL = "FDFEFE";
const ORANGE_HL = "FEF9E7";
const RED_HL = "FDEDEC";
// ─── Helper: thick border set ────────────────────────────────────
function solidBorder(color = "000000", sz = 6) {
return { style: BorderStyle.SINGLE, size: sz, color };
}
function noBorder() {
return { style: BorderStyle.NONE, size: 0, color: "FFFFFF" };
}
// ─── Helper: shaded table cell ──────────────────────────────────
function cell(paragraphs, { bg = WHITE, bold = false, color = DARK_GREY, width, vAlign = VerticalAlign.CENTER, borders } = {}) {
return new TableCell({
children: Array.isArray(paragraphs) ? paragraphs : [paragraphs],
shading: { type: ShadingType.SOLID, color: bg, fill: bg },
verticalAlign: vAlign,
width: width ? { size: width, type: WidthType.PERCENTAGE } : undefined,
borders: borders || {
top: solidBorder("CCCCCC", 4),
bottom: solidBorder("CCCCCC", 4),
left: solidBorder("CCCCCC", 4),
right: solidBorder("CCCCCC", 4),
},
});
}
// ─── Helper: simple paragraph ───────────────────────────────────
function para(text, { bold = false, color = DARK_GREY, size = 20, align = AlignmentType.LEFT, italic = false, spacing = {} } = {}) {
return new Paragraph({
alignment: align,
spacing: { before: 60, after: 60, ...spacing },
children: [new TextRun({ text, bold, color, size, italics: italic, font: "Calibri" })],
});
}
function bulletPara(text, { bold = false, color = DARK_GREY, size = 20 } = {}) {
return new Paragraph({
bullet: { level: 0 },
spacing: { before: 30, after: 30 },
children: [new TextRun({ text, bold, color, size, font: "Calibri" })],
});
}
// ─── Helper: header row ─────────────────────────────────────────
function headerRow(texts, widths = []) {
return new TableRow({
tableHeader: true,
children: texts.map((t, i) =>
cell(
para(t, { bold: true, color: WHITE, size: 19, align: AlignmentType.CENTER }),
{ bg: BLUE, width: widths[i] || undefined, borders: { top: solidBorder(BLUE, 6), bottom: solidBorder(BLUE, 6), left: solidBorder(BLUE, 6), right: solidBorder(BLUE, 6) } }
)
),
});
}
// ─── SECTION HEADING ────────────────────────────────────────────
function sectionHeading(text, color = BLUE) {
return new Paragraph({
spacing: { before: 200, after: 80 },
border: { bottom: { style: BorderStyle.SINGLE, size: 8, color } },
children: [
new TextRun({ text: text.toUpperCase(), bold: true, color, size: 26, font: "Calibri", allCaps: true }),
],
});
}
// ─── ALERT BOX (shaded paragraph) ──────────────────────────────
function alertBox(label, text, bgColor = RED_HL, labelColor = RED) {
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
cell(
[
new Paragraph({
spacing: { before: 40, after: 40 },
children: [
new TextRun({ text: label + " ", bold: true, color: labelColor, size: 20, font: "Calibri" }),
new TextRun({ text, color: DARK_GREY, size: 20, font: "Calibri" }),
],
}),
],
{ bg: bgColor, borders: { top: solidBorder(labelColor, 10), bottom: solidBorder(labelColor, 10), left: solidBorder(labelColor, 20), right: solidBorder(labelColor, 10) } }
),
],
}),
],
});
}
// ═══════════════════════════════════════════════════════════════
// DOCUMENT BUILD
// ═══════════════════════════════════════════════════════════════
const doc = new Document({
creator: "Orris Medical AI",
title: "Posterior MI – ECG Quick Reference Guide",
description: "Clinical quick reference for ECG diagnosis and management of Posterior Myocardial Infarction",
styles: {
default: {
document: {
run: { font: "Calibri", size: 20, color: DARK_GREY },
},
},
},
sections: [
{
properties: {
page: {
margin: { top: 720, bottom: 720, left: 900, right: 900 },
},
},
headers: {
default: new Header({
children: [
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
cell(
para("POSTERIOR MI — ECG QUICK REFERENCE GUIDE", { bold: true, color: WHITE, size: 22, align: AlignmentType.LEFT }),
{ bg: BLUE, borders: { top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() } }
),
cell(
para("Emergency Cardiology", { color: LIGHT_BLUE, size: 18, align: AlignmentType.RIGHT }),
{ bg: BLUE, borders: { top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() } }
),
],
}),
],
}),
],
}),
},
footers: {
default: new Footer({
children: [
new Paragraph({
alignment: AlignmentType.CENTER,
children: [
new TextRun({ text: "Sources: Rosen's Emergency Medicine | Goldman-Cecil Medicine | Washington Manual | Page ", color: MED_GREY, size: 16, font: "Calibri" }),
new TextRun({ children: [PageNumber.CURRENT], color: MED_GREY, size: 16, font: "Calibri" }),
],
}),
],
}),
},
children: [
// ── TITLE BLOCK ──────────────────────────────────────────
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
cell(
[
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 20 },
children: [new TextRun({ text: "POSTERIOR MI", bold: true, color: WHITE, size: 48, font: "Calibri" })],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 80 },
children: [new TextRun({ text: "ECG Pattern Recognition & Management", color: LIGHT_BLUE, size: 24, font: "Calibri", italics: true })],
}),
],
{
bg: BLUE,
borders: { top: noBorder(), bottom: noBorder(), left: noBorder(), right: noBorder() },
}
),
],
}),
],
}),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ── EPIDEMIOLOGY CALLOUT ──────────────────────────────────
alertBox(
"Key Facts:",
"Posterior MI = 15–20% of all AMIs. Isolated posterior MI ~5%. Usually accompanies inferior or inferolateral MI. Reclassified as \"Inferobasal MI\" by consensus. Culprits: RCA, posterior descending branch, or left circumflex (LCx).",
LIGHT_BLUE,
MID_BLUE
),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 1 — 12-LEAD ECG FINDINGS
// ══════════════════════════════════════════════════════════
sectionHeading("1. 12-Lead ECG Findings (Reciprocal Changes in V1–V3)"),
para(
"No standard leads face the posterior wall — diagnosis relies on mirror-image (reciprocal) changes in right precordial leads V1–V3:",
{ size: 20, color: MED_GREY, spacing: { before: 60, after: 100 } }
),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["ECG Finding", "Leads", "Mechanism / Notes"], [40, 20, 40]),
new TableRow({
children: [
cell(para("Horizontal ST-segment depression", { bold: true, color: RED, size: 20 }), { bg: RED_HL, width: 40 }),
cell(para("V1–V3", { align: AlignmentType.CENTER, size: 20 }), { bg: RED_HL, width: 20 }),
cell(para("Most important sign. Mirror image of posterior ST elevation. Fibrinolytics INDICATED here (exception to ST-depression rule).", { size: 19 }), { bg: RED_HL, width: 40 }),
],
}),
new TableRow({
children: [
cell(para("Tall, broad R wave (≥0.04 sec)", { bold: true, color: DARK_RED, size: 20 }), { bg: LIGHT_GREY, width: 40 }),
cell(para("V1–V2", { align: AlignmentType.CENTER, size: 20 }), { bg: LIGHT_GREY, width: 20 }),
cell(para("Mirror image of posterior Q wave. Emergence may be delayed. R/S ratio ≥1 with positive T suggests prior posterior MI.", { size: 19 }), { bg: LIGHT_GREY, width: 40 }),
],
}),
new TableRow({
children: [
cell(para("Upright (tall) T wave", { bold: true, color: ORANGE, size: 20 }), { bg: ORANGE_HL, width: 40 }),
cell(para("V1–V3", { align: AlignmentType.CENTER, size: 20 }), { bg: ORANGE_HL, width: 20 }),
cell(para("Mirror of posterior T-wave inversion. Combined with horizontal ST depression = high diagnostic accuracy.", { size: 19 }), { bg: ORANGE_HL, width: 40 }),
],
}),
new TableRow({
children: [
cell(para("R/S ratio ≥ 1 + positive T", { bold: true, color: MID_BLUE, size: 20 }), { bg: LIGHT_GREY, width: 40 }),
cell(para("V1–V2", { align: AlignmentType.CENTER, size: 20 }), { bg: LIGHT_GREY, width: 20 }),
cell(para("Suggests prior posterior MI — only if RVH and RBBB are absent. Must correlate clinically.", { size: 19 }), { bg: LIGHT_GREY, width: 40 }),
],
}),
],
}),
new Paragraph({ spacing: { before: 40, after: 0 }, children: [] }),
alertBox(
"Diagnostic Tip:",
"Horizontal ST depression + upright T wave in V1–V3 together = highest diagnostic accuracy for acute posterior MI on 12-lead ECG.",
"#EAF4FB",
MID_BLUE
),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 2 — POSTERIOR LEADS V7–V9
// ══════════════════════════════════════════════════════════
sectionHeading("2. Posterior Leads V7–V9 (Confirmatory)"),
para("Place posterior leads whenever posterior MI is suspected on the standard 12-lead:", { size: 20, color: MED_GREY, spacing: { before: 60, after: 100 } }),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["Lead", "Placement", "Finding", "Interpretation"], [12, 35, 28, 25]),
new TableRow({
children: [
cell(para("V7", { bold: true, align: AlignmentType.CENTER, size: 20 }), { bg: LIGHT_GREY }),
cell(para("Left posterior axillary line, same horizontal level as V6", { size: 19 }), { bg: LIGHT_GREY }),
cell(para("ST elevation ≥ 0.5 mm", { bold: true, color: RED, size: 19 }), { bg: LIGHT_GREY }),
cell(para("Direct posterior injury", { size: 19 }), { bg: LIGHT_GREY }),
],
}),
new TableRow({
children: [
cell(para("V8", { bold: true, align: AlignmentType.CENTER, size: 20 }), { bg: WHITE }),
cell(para("Tip of the left scapula, same horizontal level", { size: 19 }), { bg: WHITE }),
cell(para("ST elevation ≥ 0.5 mm", { bold: true, color: RED, size: 19 }), { bg: WHITE }),
cell(para("Confirms LCx occlusion territory", { size: 19 }), { bg: WHITE }),
],
}),
new TableRow({
children: [
cell(para("V9", { bold: true, align: AlignmentType.CENTER, size: 20 }), { bg: LIGHT_GREY }),
cell(para("Left paraspinal region, same horizontal level", { size: 19 }), { bg: LIGHT_GREY }),
cell(para("ST elevation ≥ 0.5 mm", { bold: true, color: RED, size: 19 }), { bg: LIGHT_GREY }),
cell(para("Highest specificity for posterior MI", { size: 19 }), { bg: LIGHT_GREY }),
],
}),
],
}),
new Paragraph({ spacing: { before: 40, after: 0 }, children: [] }),
alertBox(
"Clinical Indication:",
"Obtain V7–V9 in ANY patient with inferior STEMI or unexplained ST depression in V1–V3. ST elevation ≥0.5 mm in ≥1 posterior lead = STEMI equivalent → activate cath lab.",
RED_HL,
RED
),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 3 — CULPRIT VESSEL & ASSOCIATED INFARCTS
// ══════════════════════════════════════════════════════════
sectionHeading("3. Culprit Vessel Patterns"),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["Vessel", "Territory", "Associated Infarcts", "ECG Clue"], [20, 22, 30, 28]),
new TableRow({
children: [
cell(para("RCA (proximal)", { bold: true, color: MID_BLUE, size: 20 }), { bg: LIGHT_BLUE }),
cell(para("Inferior + posterior + RV", { size: 19 }), { bg: LIGHT_BLUE }),
cell(para("Inferior MI ± RV infarction (most common)", { size: 19 }), { bg: LIGHT_BLUE }),
cell(para("STE II > III or III > II; V1 STE = RV involvement", { size: 19, italic: true }), { bg: LIGHT_BLUE }),
],
}),
new TableRow({
children: [
cell(para("RCA (posterior descending)", { bold: true, color: MID_BLUE, size: 20 }), { bg: WHITE }),
cell(para("Inferior + posterior", { size: 19 }), { bg: WHITE }),
cell(para("Inferior MI with posterior extension", { size: 19 }), { bg: WHITE }),
cell(para("STE in II, III, aVF + STD in V1–V3", { size: 19, italic: true }), { bg: WHITE }),
],
}),
new TableRow({
children: [
cell(para("LCx (nondominant)", { bold: true, color: ORANGE, size: 20 }), { bg: ORANGE_HL }),
cell(para("Isolated posterior / lateral", { size: 19 }), { bg: ORANGE_HL }),
cell(para("Isolated posterior MI (~5%); \"ECG silent\" on standard leads", { bold: true, size: 19 }), { bg: ORANGE_HL }),
cell(para("STD V1–V3 only; posterior leads essential for diagnosis", { size: 19, italic: true }), { bg: ORANGE_HL }),
],
}),
],
}),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 4 — CLINICAL SCENARIOS
// ══════════════════════════════════════════════════════════
sectionHeading("4. When to Suspect Posterior MI — Clinical Triggers"),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["Clinical Scenario", "Action"], [50, 50]),
new TableRow({
children: [
cell([
para("ST depression in V1–V3 with ischaemic symptoms", { bold: true, size: 20 }),
para("No other explanation (no RVH, no RBBB, no digoxin effect)", { size: 19, color: MED_GREY }),
], { bg: RED_HL }),
cell([
para("Apply posterior leads V7–V9 immediately", { bold: true, color: RED, size: 20 }),
para("Consider STEMI equivalent if V7–V9 show ≥0.5 mm STE", { size: 19 }),
], { bg: RED_HL }),
],
}),
new TableRow({
children: [
cell([
para("Inferior STEMI (II, III, aVF elevation)", { bold: true, size: 20 }),
para("V1–V3 showing ST depression", { size: 19, color: MED_GREY }),
], { bg: LIGHT_GREY }),
cell([
para("Posterior extension — larger infarct zone", { bold: true, color: DARK_RED, size: 20 }),
para("Also apply right-sided leads (V4R) to exclude RV infarction", { size: 19 }),
], { bg: LIGHT_GREY }),
],
}),
new TableRow({
children: [
cell([
para("Tall dominant R wave in V1 (new or unexplained)", { bold: true, size: 20 }),
para("With R ≥ S in V1, positive T; no RVH, no WPW, no RBBB", { size: 19, color: MED_GREY }),
], { bg: ORANGE_HL }),
cell([
para("Suggests prior (old) posterior MI", { bold: true, color: ORANGE, size: 20 }),
para("Correlate with history, biomarkers, echo", { size: 19 }),
], { bg: ORANGE_HL }),
],
}),
new TableRow({
children: [
cell([
para("LCx territory ischaemia suspected", { bold: true, size: 20 }),
para("Standard 12-lead may be normal or minimally abnormal", { size: 19, color: MED_GREY }),
], { bg: LIGHT_BLUE }),
cell([
para("LCx is 'ECG silent' — posterior leads are essential", { bold: true, color: MID_BLUE, size: 20 }),
para("V7–V9 STE will unmask circumflex occlusion", { size: 19 }),
], { bg: LIGHT_BLUE }),
],
}),
],
}),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 5 — MANAGEMENT PEARLS
// ══════════════════════════════════════════════════════════
sectionHeading("5. Management Pearls"),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["Clinical Point", "Detail"]),
new TableRow({
children: [
cell(para("Reperfusion strategy", { bold: true, size: 20 }), { bg: RED_HL, width: 35 }),
cell(para("Posterior MI = STEMI equivalent. Primary PCI is preferred. Do NOT delay based on 'only ST depression' on standard leads.", { size: 19 }), { bg: RED_HL, width: 65 }),
],
}),
new TableRow({
children: [
cell(para("Fibrinolytics & ST depression", { bold: true, size: 20 }), { bg: LIGHT_GREY, width: 35 }),
cell(para("Fibrinolytics are normally CONTRAINDICATED for ST-segment depression — EXCEPT when posterior MI is suspected. This is a critical exception.", { bold: false, color: DARK_GREY, size: 19 }), { bg: LIGHT_GREY, width: 65 }),
],
}),
new TableRow({
children: [
cell(para("Nitrates — caution!", { bold: true, color: RED, size: 20 }), { bg: RED_HL, width: 35 }),
cell(para("If RV infarction coexists (inferior + posterior + RV): AVOID nitrates and diuretics. Patient is preload-dependent. Volume loading is the treatment.", { size: 19 }), { bg: RED_HL, width: 65 }),
],
}),
new TableRow({
children: [
cell(para("Infarct size & prognosis", { bold: true, size: 20 }), { bg: ORANGE_HL, width: 35 }),
cell(para("Inferior MI + posterior extension = larger infarct zone, lower EF, higher cardiovascular morbidity and mortality vs isolated inferior MI.", { size: 19 }), { bg: ORANGE_HL, width: 65 }),
],
}),
new TableRow({
children: [
cell(para("RV infarction screening", { bold: true, size: 20 }), { bg: LIGHT_GREY, width: 35 }),
cell(para("Apply right-sided leads (V4R) for ALL inferior STEMIs. ST elevation ≥1 mm in V4R is >90% sensitive and specific for RV injury.", { size: 19 }), { bg: LIGHT_GREY, width: 65 }),
],
}),
],
}),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 6 — DIFFERENTIAL DIAGNOSIS
// ══════════════════════════════════════════════════════════
sectionHeading("6. Differential Diagnosis — Tall R Wave in V1"),
para("Before diagnosing posterior MI based on tall R wave in V1, exclude:", { size: 20, color: MED_GREY, spacing: { before: 60, after: 80 } }),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
headerRow(["Condition", "Distinguishing Feature"]),
new TableRow({ children: [cell(para("Right Ventricular Hypertrophy (RVH)", { size: 20 }), { bg: LIGHT_GREY }), cell(para("Right axis deviation, P pulmonale, clinical context (COPD, pulmonary HTN)", { size: 19 }), { bg: LIGHT_GREY })] }),
new TableRow({ children: [cell(para("Right Bundle Branch Block (RBBB)", { size: 20 }), { bg: WHITE }), cell(para("Wide QRS (≥0.12 sec), rSR' in V1, wide S waves in I and V6", { size: 19 }), { bg: WHITE })] }),
new TableRow({ children: [cell(para("WPW Syndrome (Type A)", { size: 20 }), { bg: LIGHT_GREY }), cell(para("Short PR interval, delta wave, slurred QRS onset", { size: 19 }), { bg: LIGHT_GREY })] }),
new TableRow({ children: [cell(para("Hypertrophic Cardiomyopathy", { size: 20 }), { bg: WHITE }), cell(para("Septal hypertrophy on echo, voltage criteria for LVH, clinical features", { size: 19 }), { bg: WHITE })] }),
new TableRow({ children: [cell(para("Normal early R wave progression", { size: 20 }), { bg: LIGHT_GREY }), cell(para("No ischaemic symptoms, no ST changes, stable over time", { size: 19 }), { bg: LIGHT_GREY })] }),
new TableRow({ children: [cell(para("Duchenne muscular dystrophy", { size: 20 }), { bg: WHITE }), cell(para("Clinical context, CK elevation, skeletal muscle involvement", { size: 19 }), { bg: WHITE })] }),
],
}),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 7 — QUICK MEMORY AID
// ══════════════════════════════════════════════════════════
sectionHeading("7. Quick Memory Aid — The Posterior MI Triad in V1–V3"),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
cell(
[
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 120, after: 40 },
children: [new TextRun({ text: "↓ ST", bold: true, color: RED, size: 52, font: "Calibri" })],
}),
para("Horizontal ST depression", { align: AlignmentType.CENTER, bold: true, color: RED, size: 20 }),
para("in V1–V3", { align: AlignmentType.CENTER, color: MED_GREY, size: 18, spacing: { before: 0, after: 120 } }),
],
{ bg: RED_HL, borders: { top: solidBorder(RED, 12), bottom: solidBorder(RED, 12), left: solidBorder(RED, 12), right: solidBorder(RED, 12) } }
),
cell(
[
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 120, after: 40 },
children: [new TextRun({ text: "↑ T", bold: true, color: ORANGE, size: 52, font: "Calibri" })],
}),
para("Tall upright T wave", { align: AlignmentType.CENTER, bold: true, color: ORANGE, size: 20 }),
para("in V1–V3", { align: AlignmentType.CENTER, color: MED_GREY, size: 18, spacing: { before: 0, after: 120 } }),
],
{ bg: ORANGE_HL, borders: { top: solidBorder(ORANGE, 12), bottom: solidBorder(ORANGE, 12), left: solidBorder(ORANGE, 12), right: solidBorder(ORANGE, 12) } }
),
cell(
[
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 120, after: 40 },
children: [new TextRun({ text: "↑ R", bold: true, color: MID_BLUE, size: 52, font: "Calibri" })],
}),
para("Tall broad R wave", { align: AlignmentType.CENTER, bold: true, color: MID_BLUE, size: 20 }),
para("(≥ 0.04 sec) in V1–V2", { align: AlignmentType.CENTER, color: MED_GREY, size: 18, spacing: { before: 0, after: 120 } }),
],
{ bg: LIGHT_BLUE, borders: { top: solidBorder(MID_BLUE, 12), bottom: solidBorder(MID_BLUE, 12), left: solidBorder(MID_BLUE, 12), right: solidBorder(MID_BLUE, 12) } }
),
],
}),
],
}),
new Paragraph({ spacing: { before: 80, after: 0 }, children: [] }),
alertBox(
"Remember:",
"These are RECIPROCAL (mirror-image) changes. The posterior wall is infarcting but standard leads show the opposite — flip the ECG mentally. Apply V7–V9 to see the true ST elevation directly.",
LIGHT_BLUE,
MID_BLUE
),
new Paragraph({ spacing: { before: 180, after: 0 }, children: [] }),
// ══════════════════════════════════════════════════════════
// SECTION 8 — STEP-BY-STEP DIAGNOSTIC ALGORITHM
// ══════════════════════════════════════════════════════════
sectionHeading("8. Step-by-Step Diagnostic Approach"),
new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
cell(
para("STEP 1", { bold: true, color: WHITE, size: 22, align: AlignmentType.CENTER }),
{ bg: BLUE, width: 12 }
),
cell(
[
para("Obtain standard 12-lead ECG", { bold: true, size: 20 }),
para("Look for: ST depression in V1–V3, tall R in V1, upright T in V1–V3, concurrent inferior ST elevation", { size: 19, color: MED_GREY }),
],
{ bg: LIGHT_GREY, width: 88 }
),
],
}),
new TableRow({
children: [
cell(para("STEP 2", { bold: true, color: WHITE, size: 22, align: AlignmentType.CENTER }), { bg: MID_BLUE }),
cell([
para("Apply posterior leads V7, V8, V9", { bold: true, size: 20 }),
para("Place at same horizontal level as V6 on the left posterior chest wall", { size: 19, color: MED_GREY }),
], { bg: WHITE }),
],
}),
new TableRow({
children: [
cell(para("STEP 3", { bold: true, color: WHITE, size: 22, align: AlignmentType.CENTER }), { bg: BLUE }),
cell([
para("Apply right-sided leads V3R–V6R (especially V4R)", { bold: true, size: 20 }),
para("Exclude / confirm concurrent RV infarction — critical for management", { size: 19, color: MED_GREY }),
], { bg: LIGHT_GREY }),
],
}),
new TableRow({
children: [
cell(para("STEP 4", { bold: true, color: WHITE, size: 22, align: AlignmentType.CENTER }), { bg: RED }),
cell([
para("ST elevation ≥ 0.5 mm in V7–V9 = STEMI equivalent", { bold: true, color: RED, size: 20 }),
para("Activate cath lab. Primary PCI preferred. If no PCI available, fibrinolytics are indicated (exception to ST-depression rule).", { size: 19 }),
], { bg: RED_HL }),
],
}),
new TableRow({
children: [
cell(para("STEP 5", { bold: true, color: WHITE, size: 22, align: AlignmentType.CENTER }), { bg: MID_BLUE }),
cell([
para("If RV infarction confirmed (V4R STE ≥ 1 mm)", { bold: true, size: 20 }),
para("Avoid nitrates and diuretics. Give IV fluids. Maintain preload. Avoid vasodilators.", { size: 19, color: MED_GREY }),
], { bg: WHITE }),
],
}),
],
}),
new Paragraph({ spacing: { before: 100, after: 0 }, children: [] }),
],
},
],
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync("/home/daytona/workspace/posterior-mi-guide/Posterior_MI_ECG_Quick_Reference.docx", buffer);
console.log("Document created successfully.");
}).catch(err => {
console.error("Error:", err);
process.exit(1);
});
cd /home/daytona/workspace/posterior-mi-guide && node create_guide.js
python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/posterior-mi-guide/Posterior_MI_ECG_Quick_Reference.docx
python3 -c " import zipfile, os path = '/home/daytona/workspace/posterior-mi-guide/Posterior_MI_ECG_Quick_Reference.docx' print('File size:', os.path.getsize(path), 'bytes') with zipfile.ZipFile(path, 'r') as z: print('Files in docx:') for name in z.namelist(): print(' ', name) "
Posterior MI ECG Quick Reference
Word Document · DOCX