72 year old male , a known diabetic and hypertension, came with chief complaint of recurrent vomitings , drooling of saliva, hiccups since 4 days. He has history of stroke 2 months back affecting his pons and lentiform nucleus. Sodium is 116 and correction is started. Total counts are 24,000 and neutrophil dominant.
hyponatremia correction osmotic demyelination stroke risk
| Symptom | Pontine Localization |
|---|---|
| Vomiting | Vomiting center / nucleus tractus solitarius (NTS) involvement |
| Drooling of saliva | Corticobulbar tract disruption → impaired swallowing, facial lower motor neuron or upper motor neuron pattern - reduced oral motor control |
| Hiccups (persistent/intractable) | Hiccup arc involves the pons, medulla, C3-C5 phrenic nerve - pontine lesions are a classic cause |
"ODS is a life-threatening complication of overly rapid correction of severe chronic hyponatremia (< 120 mEq/L for 2 or more days). The pons is most commonly affected... Develops 2-6 days after correction."
- Symptom to Diagnosis, 4th Ed.
"50% of rapidly corrected patients develop osmotic demyelination if their serum sodium levels at baseline were lower than 105 mmol/L."
- Bradley and Daroff's Neurology in Clinical Practice
| Parameter | Target |
|---|---|
| Rate for chronic hyponatremia | 4-6 mEq/L/day (target); maximum ≤ 6-8 mEq/L/day |
| First 24 hours maximum | Do NOT exceed 10-12 mEq/L |
| First 48 hours maximum | Do NOT exceed 18 mEq/L total |
| High-risk ODS patient (this patient!) | ≤ 8 mEq/L/24h absolute maximum |
| Priority | Problem | Action |
|---|---|---|
| 1 (Immediate) | Severe hyponatremia (Na 116) with neurological symptoms | Slow, controlled correction - 3% NaCl at 0.5-1 mL/kg/h; monitor Na every 2h; Do NOT exceed 8 mEq/L/24h given ODS risk from pre-existing pontine lesion |
| 2 (Urgent) | Aspiration risk - bulbar/pseudobulbar palsy from pontine stroke | NPO, NG tube feeding, aspiration precautions, dysphagia assessment by speech therapy |
| 3 (Urgent) | Leukocytosis - presumed aspiration pneumonia | CXR/CT chest, sputum culture, blood cultures, empiric antibiotics |
| 4 (Monitor) | Intractable hiccups from pontine stroke | Chlorpromazine 25-50 mg PO/IV (first line), baclofen 5-10 mg TID, or metoclopramide |
| 5 (Monitor) | Vomiting (neurogenic + possibly aspiration) | Anti-emetics (ondansetron), proton pump inhibitor, assess for raised ICP |
| 6 (Ongoing) | Diabetes + hypertension management | Careful glucose control (hypoglycemia worsens ODS), BP management |
Patient sodium improved to 126. Wbc counts reduced to 19,000. Patient is having intermittent AF . Amiodarone infusion followed by 100bd are added. Bisoprolol 5mg , ivabrad 5mg tid , ranolazine 500 bd are added. Chest x ray showed consolidation in right lung. Inj azithro and inj clindamycin are added. Patient sensorium didn't improve . Abg showed no hypercaonea. Urea and creatinine are normal. But he is still disorientated. Modafinil 100 od is added . Meropenem , baclofen are continued.
amiodarone ranolazine QT prolongation interaction
amiodarone ranolazine azithromycin QT prolongation drug interaction risk 2024
| Drug | Effect on Heart Rate | Effect on Conduction |
|---|---|---|
| Amiodarone | ↓ HR (beta-blocking + K-channel block) | Prolongs PR, QRS, QT |
| Bisoprolol 5 mg | ↓ HR significantly | AV node slowing |
| Ivabradine 5 mg TID | ↓ HR (HCN channel - sinus node) | SA node suppression |
| Cause | Evidence in This Patient | Action |
|---|---|---|
| Post-stroke cognitive impairment / pontine encephalopathy | Pons + lentiform nucleus stroke 2 months ago | Most likely baseline - may not fully recover |
| Ongoing infection/sepsis encephalopathy | WBC 19,000, consolidation, AF | Treat infection aggressively; reassess when WBC normalizes |
| ODS (Osmotic Demyelination Syndrome) | Na corrected +10 mEq/L - at the limit; pre-existing pontine lesion | MRI brain urgently (DWI + FLAIR) - ODS appears as pontine hyperintensity on FLAIR 48-72h post correction |
| Non-convulsive status epilepticus (NCSE) | Stroke, metabolic disturbance, no overt seizures | EEG urgently - NCSE is frequently missed in post-stroke patients |
| Drug-induced encephalopathy | Multiple CNS-active drugs: baclofen, modafinil, amiodarone | Baclofen accumulates in elderly; amiodarone can cause neurotoxicity |
| Medication side effect: baclofen | Age 72, normal creatinine but elderly reduced clearance | Baclofen encephalopathy even with normal creatinine in elderly |
| Priority | Action | Reason |
|---|---|---|
| 1 - Immediate | ECG now - measure QTc | Azithromycin + Amiodarone = TdP risk |
| 2 - Immediate | Check serum K+ and Mg2+ | Electrolyte depletion amplifies QT risk |
| 3 - Urgent | Stop ivabradine | Not effective in AF; pharmacologically incorrect |
| 4 - Urgent | EEG | Rule out NCSE as cause of persistent disorientation |
| 5 - Urgent | MRI brain (DWI + FLAIR) | Rule out ODS (Na was corrected 10 mEq/L in pre-damaged pons) |
| 6 - Same day | Consider replacing azithromycin with doxycycline | Remove QT-prolonging risk while maintaining atypical coverage |
| 7 - Ongoing | Review baclofen dose | Can cause encephalopathy in elderly |
| 8 - Ongoing | Sodium monitoring q6h | Ensure Na does not overshoot beyond 130 in next 24h |
| 9 - Ongoing | Continue meropenem | Appropriate broad-spectrum cover; can stop clindamycin if no abscess |
Ivabrad is added as hevis having sinus tachycardia as well. Modafinil as he is drowsy. Clindamycin for anaerobic plus staphylococcus coverage.
| Pathogen | Meropenem Coverage | Clindamycin Coverage |
|---|---|---|
| Anaerobes (Bacteroides, Peptostreptococcus) | Excellent | Good |
| MSSA | Good | Good |
| MRSA | None | None (clindamycin is unreliable for MRSA pneumonia) |
| Gram-negative rods (Klebsiella, Pseudomonas) | Excellent | None |
Ill stop clindamycin and azithromycin. Ill add doxycycline and vancomycin. Start low molecular weight heparin 0.6mg sc od. Since hiccups are controlled shall I withhold baclofen 5mg bd
| Indication | Standard Enoxaparin Dose |
|---|---|
| VTE prophylaxis | 0.4 mL (40 mg) SC OD |
| Treatment dose (DVT/PE) | 1 mg/kg SC BD or 1.5 mg/kg OD |
| Decision | Verdict | Action |
|---|---|---|
| Stop clindamycin + azithromycin | ✓ Correct | Done |
| Add doxycycline | ✓ Appropriate | Continue |
| Add vancomycin | Conditional | Confirm MRSA risk; monitor renal function + levels daily |
| LMWH 0.6 mg | Clarify dose/intent | 40 mg for prophylaxis; plan long-term DOAC for AF |
| Stop baclofen | Do not stop abruptly | Taper over 1-2 weeks |
Enoxaparin is to prevent stroke as he is having atrial fibrillation. He is 73 years , weight 65kgs.
| Agent | Preferred in This Patient? | Comment |
|---|---|---|
| Apixaban (DOAC) | Yes - first choice | Best safety profile in elderly, lowest bleeding risk, no renal dose adjustment needed unless CrCl <25 |
| Rivaroxaban | Alternative | Once daily, but higher GI bleed risk than apixaban |
| Dabigatran | Caution | Renal clearance 80% - avoid if CrCl declining in elderly |
| Warfarin | Second line | Requires INR monitoring, multiple drug interactions (amiodarone significantly raises INR - major interaction) |
| Infarct Size | Recommended Delay Before Full Anticoagulation |
|---|---|
| TIA / small infarct | 1-3 days |
| Moderate infarct | 6-8 days |
| Large infarct / haemorrhagic transformation | 2-4 weeks |
| Factor | Points |
|---|---|
| Age 73 (65-74) | 1 |
| Hypertension | 1 |
| Diabetes | 1 |
| Prior stroke | 2 |
| Total | 5 |
Shall I start apixaban 5mg bd straight away via ryles tube
| Criterion (need ≥2 to dose-reduce) | This Patient |
|---|---|
| Age ≥ 80 | No (age 73) |
| Weight ≤ 60 kg | No (65 kg) |
| Creatinine ≥ 133 µmol/L | No (currently normal) |
| Parameter | Frequency | Reason |
|---|---|---|
| Renal function (creatinine) | Every 48-72h initially | Vancomycin co-administration; DOAC clearance |
| GI symptoms, blood in aspirate | Daily NG tube checks | GI bleed risk with anticoagulation |
| Haematuria, bleeding signs | Daily clinical check | Routine anticoagulation monitoring |
| Platelet count | Every 48-72h | Vancomycin + enoxaparin (even brief) - HIT risk with heparin |
Repeat MRI shows only chronic infarcts in pons and lentiform nucleus
| Implication | Relevance |
|---|---|
| No new ischaemic stroke | The current disorientation and vomiting are not from a new stroke event |
| No ODS changes visible yet | FLAIR changes of ODS typically appear 24-72h after sodium overcorrection - repeat MRI in 48-72h if sensorium doesn't improve |
| No haemorrhagic transformation | Safe to anticoagulate fully |
| Chronic pontine infarct | The hiccups, drooling, dysphagia are from the established pontine damage - may be slow to recover or partially permanent |
| Problem | Status | Plan |
|---|---|---|
| AF + stroke prevention | ✓ Addressed | Apixaban 5 mg BD via NG - start now |
| Aspiration pneumonia | Partially treated | Meropenem + doxycycline + vancomycin; monitor WBC |
| Hyponatremia | Improved (116→126) | Continue monitoring q6-8h; target 130-135 slowly |
| Persistent disorientation | Unresolved | ODS not yet excluded on MRI (too early); EEG for NCSE still pending |
| Sinus tachycardia / AF | Rate controlled | Amiodarone + bisoprolol + ivabradine; monitor QTc daily |
| Baclofen | Hiccups controlled | Begin taper: 5 mg OD × 7 days → 2.5 mg OD × 5 days → stop |
| QTc monitoring | Ongoing | Daily ECG mandatory with doxycycline + amiodarone on board |
Qt is prolonged. Heart rate is between 50 to 60. AF settled. There are frequent PVC
| Drug | QT Effect | Action |
|---|---|---|
| Amiodarone | Major prolonger | Stop infusion now - amiodarone has a half-life of 40-55 days so it will persist, but stopping prevents further loading |
| Doxycycline | Mild | Stop - switch to another agent |
| Ranolazine | Moderate | Stop |
| Vancomycin | Minimal direct QT effect | Can continue with monitoring |
| Electrolyte | Target | Why |
|---|---|---|
| Potassium | ≥ 4.5 mEq/L (higher than normal) | Hypokalaemia is the strongest modifiable trigger for TdP; keep K at upper normal |
| Magnesium | ≥ 0.9 mmol/L | Cofactor for K repletion; independent TdP protection |
| Calcium | Normal | Hypocalcaemia prolongs QT |
| Drug | Action |
|---|---|
| Amiodarone | Stop (as above) |
| Bisoprolol | Withhold or reduce dose - beta-blocker is slowing the rate further; in QT prolongation with bradycardia, beta-blockers worsen the situation (exception: congenital LQTS where they are protective) |
| Ivabradine | Stop - further SA node slowing is dangerous here |
| Situation | Action |
|---|---|
| Sustained TdP with haemodynamic compromise | DC cardioversion 200J unsynchronized |
| Recurrent TdP despite magnesium | Temporary pacing at 90-100 bpm (overdrive pacing shortens QT and suppresses TdP) |
| TdP degenerating to VF | Immediate defibrillation |
| Time | Action |
|---|---|
| Immediately | Stop amiodarone infusion, stop ivabradine, withhold bisoprolol |
| Immediately | Stop ranolazine, stop doxycycline |
| Within 10 min | IV MgSO₄ 2g over 5-10 minutes |
| Within 30 min | Check K, Mg, Ca - replace to K ≥ 4.5, Mg ≥ 0.9 |
| Ongoing | Continuous cardiac monitoring, 12-lead ECG every 2-4h |
| Have ready | Defibrillator at bedside, temporary pacing on standby |
Started noradrenaline for hypotension
| Cause | Evidence | Urgency |
|---|---|---|
| Septic shock (aspiration pneumonia) | WBC 19,000, consolidation, fever likely | High - most probable |
| Amiodarone-induced hypotension | Amiodarone infusion causes vasodilation and negative inotropy - well-recognised cause of hypotension, especially IV loading | High - stop/slow infusion immediately |
| Bradycardia-induced low output | HR 50-60 with frequent PVCs = poor cardiac output | High - heart is not pumping effectively |
| Hypovolaemia | Vomiting for days, poor oral intake, NG feeds may be insufficient | Moderate |
| Drug-induced vasodilation | Multiple vasodilatory drugs on board | Moderate |
| Shock Component | Treatment |
|---|---|
| Septic/distributive | Noradrenaline ✓ + fluids + antibiotics (already on) |
| Cardiogenic/low output from bradycardia | Atropine → temporary pacing |
| Amiodarone-induced vasodilation | Stop infusion |
Patient had VT. Rhythm achieved with shock.
| Electrolyte | Target | Route |
|---|---|---|
| Potassium | ≥ 4.5 mEq/L | IV - 20-40 mEq/h via central line if severely low |
| Magnesium | ≥ 1.0 mmol/L | IV infusion as above |
| Calcium | Normal range | IV calcium gluconate if low |
| Option | Dose | Comment |
|---|---|---|
| Atropine | 0.5-1 mg IV | Immediate, short-acting - buys time |
| Isoprenaline infusion | 1-4 mcg/min IV | Increases HR, shortens QT - drug of choice for recurrent TdP with bradycardia |
| Temporary pacing | 80-100 bpm | Definitive - overdrive pacing both fixes HR and suppresses TdP triggers |
| Drug | Decision | Reason |
|---|---|---|
| Amiodarone | Do not restart | Caused this event; half-life means it is still active for weeks |
| Bisoprolol | Hold indefinitely | Worsens bradycardia; contraindicated in acquired LQT with bradycardia |
| Ivabradine | Stop permanently | Further HR slowing - dangerous |
| Ranolazine | Stop permanently | QT prolongation - contributed to this event |
| Doxycycline | Stop | Mild QT effect; switch to meropenem monotherapy for now |
| Noradrenaline | Continue if needed for BP | Vasopressor for septic component |
| Apixaban | Hold temporarily | Post-VT/cardioversion - reassess bleeding risk in 12-24h, then restart |
| Meropenem + Vancomycin | Continue | Treating the underlying sepsis which is driving the tachycardia/instability |
| MgSO₄ | Start immediately | Anti-TdP |
| Parameter | Frequency |
|---|---|
| Continuous ECG telemetry | Continuous - watch for QTc, PVC morphology, runs of TdP |
| 12-lead ECG | Every 1-2 hours until QTc trending down |
| Serum K, Mg | Every 4-6 hours |
| BP, HR, SpO₂ | Continuous |
| Lactate | Every 4-6 hours until < 2 mmol/L |
| Problem | Status |
|---|---|
| Electrical instability (acquired LQT + recurrent TdP risk) | Active - treat with Mg, pace, remove QT drugs |
| Septic shock (aspiration pneumonia) | Active - noradrenaline + broad spectrum antibiotics |
| Post-stroke neurological compromise | Ongoing - disorientation, dysphagia, aspiration risk perpetuating the pneumonia |
Create a post-VT management protocol document for this case
ls -la /home/daytona/workspace/ && ls /home/daytona/skills/docx/
mkdir -p /home/daytona/workspace/post-vt-protocol && ls /home/daytona/skills/docx/scripts/
~/post-vt-protocol/generate.js
const {
Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
HeadingLevel, AlignmentType, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, Header, Footer, TableOfContents,
PageBreak, UnderlineType
} = require('docx');
const fs = require('fs');
// ─── Colour palette ───────────────────────────────────────────────────────────
const RED = "C0392B";
const DARK_RED = "7B241C";
const ORANGE = "D35400";
const NAVY = "1A3A5C";
const TEAL = "1A6B72";
const LIGHT_BG = "EBF5FB";
const RED_BG = "FADBD8";
const ORANGE_BG = "FDEBD0";
const GREEN_BG = "D5F5E3";
const GREY_BG = "F2F3F4";
const WHITE = "FFFFFF";
const BLACK = "000000";
// ─── Helpers ──────────────────────────────────────────────────────────────────
const bold = (t, sz=22, col=BLACK) => new TextRun({ text: t, bold: true, size: sz, color: col });
const reg = (t, sz=20, col=BLACK) => new TextRun({ text: t, bold: false, size: sz, color: col });
const ital = (t, sz=20, col=BLACK) => new TextRun({ text: t, italics: true, size: sz, color: col });
function h1(text) {
return new Paragraph({
heading: HeadingLevel.HEADING_1,
spacing: { before: 320, after: 120 },
children: [new TextRun({ text, bold: true, size: 32, color: WHITE })],
shading: { type: ShadingType.SOLID, color: NAVY },
indent: { left: 200, right: 200 },
});
}
function h2(text, color=NAVY) {
return new Paragraph({
heading: HeadingLevel.HEADING_2,
spacing: { before: 260, after: 80 },
children: [new TextRun({ text, bold: true, size: 26, color: WHITE })],
shading: { type: ShadingType.SOLID, color: color },
indent: { left: 120 },
});
}
function h3(text, color=TEAL) {
return new Paragraph({
heading: HeadingLevel.HEADING_3,
spacing: { before: 200, after: 60 },
children: [new TextRun({ text, bold: true, size: 23, color: WHITE })],
shading: { type: ShadingType.SOLID, color: color },
indent: { left: 80 },
});
}
function para(runs, spacing={before:60, after:60}) {
const children = typeof runs === 'string'
? [reg(runs)]
: runs;
return new Paragraph({ children, spacing });
}
function bullet(text, level=0, bold_prefix=null) {
const children = bold_prefix
? [bold(bold_prefix + ": ", 20), reg(text)]
: [reg(text)];
return new Paragraph({
bullet: { level },
children,
spacing: { before: 40, after: 40 },
});
}
function alertBox(text, bgColor=RED_BG, textColor=DARK_RED) {
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [
new TableRow({
children: [
new TableCell({
shading: { type: ShadingType.SOLID, color: bgColor },
margins: { top: 120, bottom: 120, left: 200, right: 200 },
children: [new Paragraph({
children: [new TextRun({ text, bold: true, size: 21, color: textColor })],
spacing: { before: 0, after: 0 },
})],
}),
],
}),
],
});
}
function spacer() {
return new Paragraph({ children: [reg("")], spacing: { before: 80, after: 80 } });
}
function makeTable(headers, rows, headerBg=NAVY, altBg=LIGHT_BG) {
const headerRow = new TableRow({
tableHeader: true,
children: headers.map(h =>
new TableCell({
shading: { type: ShadingType.SOLID, color: headerBg },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 80, bottom: 80, left: 120, right: 120 },
children: [new Paragraph({
children: [new TextRun({ text: h, bold: true, size: 19, color: WHITE })],
alignment: AlignmentType.CENTER,
})],
})
),
});
const dataRows = rows.map((row, ri) =>
new TableRow({
children: row.map((cell, ci) => {
const isBold = ci === 0;
const bg = ri % 2 === 0 ? WHITE : altBg;
return new TableCell({
shading: { type: ShadingType.SOLID, color: bg },
verticalAlign: VerticalAlign.CENTER,
margins: { top: 70, bottom: 70, left: 120, right: 120 },
children: [new Paragraph({
children: [new TextRun({ text: cell, bold: isBold, size: 18, color: BLACK })],
})],
});
}),
})
);
return new Table({
width: { size: 100, type: WidthType.PERCENTAGE },
rows: [headerRow, ...dataRows],
});
}
// ─── Document content ─────────────────────────────────────────────────────────
const doc = new Document({
styles: {
default: {
document: { run: { font: "Calibri", size: 20 } },
},
},
sections: [{
headers: {
default: new Header({
children: [new Paragraph({
children: [
bold("POST-VT MANAGEMENT PROTOCOL | ICU CLINICAL DOCUMENT", 18, NAVY),
reg(" Confidential – Clinical Use Only", 16, "888888"),
],
border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: NAVY } },
})],
}),
},
footers: {
default: new Footer({
children: [new Paragraph({
alignment: AlignmentType.CENTER,
children: [
reg("Page ", 16, "888888"),
new TextRun({ children: [PageNumber.CURRENT], size: 16, color: "888888" }),
reg(" | Generated: June 2026 | For Clinical Use Only", 16, "888888"),
],
})],
}),
},
children: [
// ── TITLE BLOCK ──────────────────────────────────────────────────────────
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 200, after: 60 },
children: [new TextRun({ text: "POST-VT MANAGEMENT PROTOCOL", bold: true, size: 52, color: DARK_RED })],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 40 },
children: [new TextRun({ text: "Torsades de Pointes → Sustained VT → Cardioversion", bold: false, size: 26, color: NAVY, italics: true })],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 0, after: 300 },
children: [new TextRun({ text: "ICU Level Care · Continuous Telemetry Mandatory", bold: true, size: 22, color: ORANGE })],
}),
// ── PATIENT SUMMARY ───────────────────────────────────────────────────────
h1("PATIENT SUMMARY"),
spacer(),
makeTable(
["Parameter", "Detail"],
[
["Age / Sex", "73 years, Male"],
["Weight", "65 kg"],
["Known Comorbidities", "Type 2 Diabetes Mellitus, Hypertension"],
["Neurological History", "Ischaemic stroke 2 months ago – Pons + Lentiform Nucleus (chronic infarcts on MRI)"],
["Admission Complaint", "Recurrent vomiting, drooling of saliva, hiccups – 4 days"],
["Admission Sodium", "116 mEq/L (severe hyponatremia – corrected to 126 mEq/L)"],
["Pulmonary Finding", "Right lung consolidation – aspiration pneumonia"],
["Cardiac Event", "Prolonged QTc + Bradycardia 50-60 bpm + Frequent PVCs → TdP → Sustained VT → DC Cardioversion"],
["Precipitating Drugs", "Amiodarone IV + Azithromycin (now stopped) + Ranolazine (now stopped)"],
["Current Vasopressor", "Noradrenaline infusion (septic + cardiogenic mixed shock)"],
]
),
spacer(),
// ── SECTION 1: IMMEDIATE POST-CARDIOVERSION ───────────────────────────────
h1("SECTION 1 – IMMEDIATE POST-CARDIOVERSION (0–30 Minutes)"),
spacer(),
alertBox("⚠ HIGH RECURRENCE RISK: Prolonged QT persists post-cardioversion. QT-prolonging drugs still pharmacologically active (amiodarone t½ 40–55 days). Act on all steps below immediately.", RED_BG, DARK_RED),
spacer(),
h2("1.1 Pharmacological – Give Now", DARK_RED),
spacer(),
makeTable(
["Drug", "Dose", "Route", "Purpose"],
[
["MgSO₄ (Magnesium Sulphate)", "2 g over 10 minutes", "IV bolus", "First-line TdP suppression – give regardless of serum Mg level"],
["MgSO₄ maintenance", "4–8 g over 24 hours", "IV infusion", "Sustained anti-TdP protection"],
["Potassium Chloride", "20–40 mEq/h via central line", "IV (central)", "Target K⁺ ≥ 4.5 mEq/L urgently"],
["Calcium Gluconate", "10 mL of 10% over 10 min", "IV (if Ca²⁺ low)", "Membrane stabilisation"],
],
DARK_RED
),
spacer(),
h2("1.2 Heart Rate – Target 80–100 bpm", ORANGE),
spacer(),
para([bold("WHY: ", 20, ORANGE), reg("Bradycardia (HR 50–60) prolongs QTc and creates R-on-T window for TdP. Faster heart rate shortens QT and suppresses triggered activity.")]),
spacer(),
makeTable(
["Intervention", "Dose/Setting", "Notes"],
[
["Atropine", "0.5–1 mg IV bolus", "Immediate first step – short-acting, buys time"],
["Isoprenaline infusion", "1–4 mcg/min IV, titrate to HR 80–100 bpm", "Drug of choice for acquired LQT + bradycardia-triggered TdP"],
["Temporary transcutaneous pacing", "Rate 80–100 bpm", "Emergency bridge if above fail – use immediately"],
["Temporary transvenous pacing", "Rate 80–100 bpm, overdrive", "Definitive – overdrive pacing suppresses TdP; arrange urgently"],
],
ORANGE
),
spacer(),
h2("1.3 Stop All QT-Prolonging Agents – Immediately", DARK_RED),
spacer(),
makeTable(
["Drug", "Status", "Rationale"],
[
["Amiodarone IV infusion", "STOPPED – do not restart", "Major QT prolonger; t½ 40–55 days – effect persists weeks"],
["Amiodarone oral/NG", "STOPPED", "Same drug, residual tissue levels persist"],
["Ranolazine", "STOPPED PERMANENTLY", "QT prolongation; contributed to this event"],
["Azithromycin", "Already stopped", "hERG channel blockade – was additive with amiodarone"],
["Doxycycline", "STOP", "Mild QT effect; switch to meropenem monotherapy"],
["Bisoprolol", "HOLD – do not give", "Worsens bradycardia; contraindicated in acquired LQT + bradycardia"],
["Ivabradine", "STOPPED PERMANENTLY", "Further SA node slowing – dangerous in this context"],
],
DARK_RED
),
spacer(),
// ── SECTION 2: ELECTROLYTE TARGETS ───────────────────────────────────────
h1("SECTION 2 – ELECTROLYTE MANAGEMENT"),
spacer(),
alertBox("Electrolyte abnormalities are the strongest modifiable trigger for recurrent TdP. These targets are non-negotiable.", ORANGE_BG, ORANGE),
spacer(),
makeTable(
["Electrolyte", "Target", "Route if Low", "Frequency of Monitoring"],
[
["Potassium (K⁺)", "≥ 4.5 mEq/L (upper normal)", "20–40 mEq/h IV via central line", "Every 4 hours until stable"],
["Magnesium (Mg²⁺)", "≥ 1.0 mmol/L", "IV infusion as per Section 1.1", "Every 6 hours"],
["Calcium (Ca²⁺)", "Normal range (2.1–2.6 mmol/L)", "IV calcium gluconate 10 mL 10%", "Every 6 hours if replacing"],
["Sodium (Na⁺)", "Target 130–135 mEq/L (slow)", "Continue guided correction", "Every 6–8 hours"],
]
),
spacer(),
para([bold("Important: ", 20, NAVY), reg("Potassium and magnesium replacement are synergistic. Low Mg²⁺ causes refractory hypokalaemia. Always replace Mg²⁺ first or simultaneously with K⁺.")]),
spacer(),
// ── SECTION 3: MONITORING ─────────────────────────────────────────────────
h1("SECTION 3 – MONITORING PROTOCOL"),
spacer(),
makeTable(
["Parameter", "Frequency", "Action Threshold"],
[
["Continuous ECG telemetry", "Continuous", "Any run of TdP, VT, VF → immediate defibrillation"],
["12-lead ECG (QTc measurement)", "Every 1–2 hours until QTc < 480 ms, then every 4h", "QTc > 500 ms → escalate (see Section 5)"],
["Serum K⁺, Mg²⁺, Ca²⁺", "Every 4–6 hours", "K⁺ < 4.0 or Mg²⁺ < 0.8 → replace immediately"],
["Serum Sodium", "Every 6–8 hours", "Rise > 8 mEq/L in 24h → slow correction (D5W, DDAVP)"],
["Blood pressure, HR, SpO₂", "Continuous invasive monitoring", "MAP < 65 mmHg → titrate vasopressor"],
["Serum Lactate", "Every 4–6 hours", "Lactate > 4 mmol/L → urgent escalation of sepsis care"],
["Renal function (Cr, BUN)", "Every 24–48 hours", "Rising Cr → reduce vancomycin dose; review nephrotoxins"],
["Vancomycin levels (AUC/MIC)", "Per pharmacy protocol", "Target AUC 400–600 mg·h/L"],
["Blood cultures", "If fever spikes or clinical deterioration", "Guide antibiotic de-escalation"],
["Neurological GCS", "Every 4 hours", "Worsening GCS → repeat CT/MRI; check for NCSE (EEG)"],
]
),
spacer(),
// ── SECTION 4: ANTICOAGULATION ────────────────────────────────────────────
h1("SECTION 4 – ANTICOAGULATION PLAN"),
spacer(),
para([bold("CHA₂DS₂-VASc Score: ", 20, NAVY), reg("Age 73 (1) + Hypertension (1) + Diabetes (1) + Prior Stroke (2) = "), bold("Score 5", 20, DARK_RED), reg(" → Annual stroke risk ~6.7% → Anticoagulation strongly indicated")]),
spacer(),
h2("4.1 Immediate Plan (Next 24–48 Hours)", TEAL),
spacer(),
makeTable(
["Step", "Action", "Rationale"],
[
["1", "Hold apixaban temporarily (12–24h post-VT/cardioversion)", "Assess haemodynamic stability and bleeding risk first"],
["2", "Hold enoxaparin while haemodynamically unstable", "Active shock state increases bleeding risk with therapeutic anticoagulation"],
["3", "Restart apixaban 5 mg BD via NG tube once haemodynamically stable", "Crushed tablet in 60 mL water; confirmed bioavailability preserved"],
["4", "Discontinue enoxaparin when apixaban established", "No bridging overlap needed with DOACs"],
],
TEAL
),
spacer(),
h2("4.2 Long-Term Anticoagulation", TEAL),
spacer(),
makeTable(
["Drug", "Dose", "Preferred?", "Notes"],
[
["Apixaban", "5 mg BD (crushed via NG)", "YES – First choice", "Lowest bleeding risk; no renal dose adjustment needed unless CrCl < 25"],
["Rivaroxaban", "20 mg OD with feeds", "Alternative", "Once daily; higher GI bleed risk than apixaban"],
["Dabigatran", "150 mg BD", "Avoid", "80% renal clearance – risk with age 73 + vancomycin nephrotoxicity"],
["Warfarin", "Avoid in this patient", "NO", "Amiodarone is a potent CYP2C9 inhibitor – unpredictable INR elevation"],
],
TEAL
),
spacer(),
// ── SECTION 5: RECURRENT VT/TdP ALGORITHM ────────────────────────────────
h1("SECTION 5 – RECURRENT VT / TdP ALGORITHM"),
spacer(),
alertBox("Have defibrillator CHARGED and at bedside at all times. Temporary pacing equipment to be set up and ready.", RED_BG, DARK_RED),
spacer(),
h3("If PVCs Increase or Short Runs of TdP Appear"),
bullet("Recheck K⁺ and Mg²⁺ immediately – replace if below targets"),
bullet("Bolus MgSO₄ 1–2 g IV over 5 minutes"),
bullet("Increase isoprenaline infusion rate to achieve HR 90–100 bpm"),
bullet("Confirm all QT-prolonging drugs are stopped"),
spacer(),
h3("If Sustained TdP or Polymorphic VT With Pulse"),
bullet("Immediate synchronised DC cardioversion 200J (biphasic)"),
bullet("If haemodynamically unstable: unsynchronised 200J"),
bullet("MgSO₄ 2g IV bolus after cardioversion"),
bullet("Overdrive pacing (transvenous) at 90–100 bpm if recurrent"),
spacer(),
h3("If VF or Pulseless VT"),
bullet("Immediate CPR – commence ACLS protocol"),
bullet("Defibrillation 200J (biphasic) unsynchronised – no delay"),
bullet("Adrenaline 1 mg IV every 3–5 minutes"),
bullet("DO NOT give amiodarone – it is the causative agent in this case"),
bullet("Consider lidocaine 100 mg IV as alternative antiarrhythmic during ACLS"),
spacer(),
h3("If Refractory – Escalation"),
bullet("Urgent electrophysiology (EP) consultation"),
bullet("Transvenous overdrive pacing – definitive management"),
bullet("Consider stellate ganglion block for refractory electrical storm (specialist intervention)"),
spacer(),
// ── SECTION 6: ANTIBIOTIC PLAN ────────────────────────────────────────────
h1("SECTION 6 – ANTIBIOTIC MANAGEMENT (ASPIRATION PNEUMONIA)"),
spacer(),
makeTable(
["Drug", "Status", "Dose", "Duration"],
[
["Meropenem", "CONTINUE", "1 g IV TDS (8-hourly)", "Until WBC normal + clinical improvement"],
["Vancomycin", "CONTINUE with monitoring", "Per AUC-guided dosing; target AUC 400–600", "If MRSA confirmed/suspected; stop if cultures negative"],
["Azithromycin", "STOPPED", "—", "Replaced due to QT interaction with amiodarone"],
["Clindamycin", "STOPPED", "—", "Redundant with meropenem anaerobic coverage"],
["Doxycycline", "STOP NOW", "—", "Mild QT effect; not needed with meropenem + vancomycin"],
]
),
spacer(),
para([bold("De-escalation: ", 20, NAVY), reg("When cultures available and WBC normalising, narrow antibiotics to targeted therapy. Stop vancomycin if MRSA not confirmed.")]),
spacer(),
// ── SECTION 7: NEUROLOGICAL ───────────────────────────────────────────────
h1("SECTION 7 – NEUROLOGICAL STATUS AND PENDING WORKUP"),
spacer(),
makeTable(
["Issue", "Status", "Action"],
[
["Persistent disorientation", "Unresolved", "EEG urgently to exclude non-convulsive status epilepticus (NCSE)"],
["ODS risk (Na corrected +10 mEq/L in pre-damaged pons)", "Not yet excluded", "Repeat MRI FLAIR in 48–72h if sensorium does not improve"],
["Post-stroke cognitive impairment", "Likely contributing", "Baseline neuropsychological assessment when stable"],
["Dysphagia / aspiration", "Ongoing", "Maintain NG tube; nil orally; speech therapy review when WBC normalised"],
["Hiccups (pontine stroke)", "Controlled on baclofen", "Taper baclofen: 5 mg OD × 7 days → 2.5 mg OD × 5 days → stop"],
["Modafinil (drowsiness)", "Prescribed", "Hold until infection controlled and Na stable ≥ 130 for 48h; re-evaluate cause"],
]
),
spacer(),
// ── SECTION 8: DRUG SAFETY SUMMARY ───────────────────────────────────────
h1("SECTION 8 – CURRENT DRUG SAFETY MATRIX"),
spacer(),
makeTable(
["Drug", "Decision", "Risk Mitigated"],
[
["Amiodarone IV", "STOPPED", "QT prolongation, hypotension, VT/TdP"],
["Amiodarone oral", "STOPPED", "Residual tissue levels persist 40–55 days"],
["Azithromycin", "STOPPED", "hERG blockade + additive QT with amiodarone"],
["Clindamycin", "STOPPED", "Redundant anaerobic cover; C. diff risk"],
["Doxycycline", "STOP NOW", "Mild QT contribution; unnecessary with meropenem"],
["Ranolazine", "STOPPED PERMANENTLY", "QT prolongation; contributed to VT event"],
["Bisoprolol", "HOLD until HR stable > 70", "Worsens bradycardia in acquired LQT"],
["Ivabradine", "STOPPED PERMANENTLY", "SA node suppression; not effective in AF; worsens bradycardia"],
["Meropenem", "CONTINUE", "Broad-spectrum cover for aspiration pneumonia"],
["Vancomycin", "CONTINUE with monitoring", "MRSA / Staphylococcal cover – monitor renal function + levels"],
["Apixaban", "RESTART when haemodynamically stable", "AF stroke prevention (CHA₂DS₂-VASc = 5)"],
["Noradrenaline", "CONTINUE – titrate to MAP ≥ 65", "Mixed septic + cardiogenic shock"],
["MgSO₄", "ACTIVE – continue infusion 24h", "TdP prevention"],
["Baclofen", "TAPER – do not stop abruptly", "Withdrawal seizures if abruptly discontinued"],
["Modafinil", "HOLD temporarily", "Cause of drowsiness not yet established"],
["Isoprenaline", "START – titrate to HR 80–100", "Increase HR to shorten QT and suppress TdP"],
]
),
spacer(),
// ── SECTION 9: GOALS OF CARE ─────────────────────────────────────────────
h1("SECTION 9 – 24-HOUR GOALS OF CARE"),
spacer(),
makeTable(
["Parameter", "Target at 24 Hours"],
[
["Heart rate", "70–90 bpm (sinus rhythm preferred)"],
["QTc", "< 480 ms (trending down from current prolonged state)"],
["MAP", "≥ 65 mmHg on weaning noradrenaline"],
["Serum Potassium", "≥ 4.5 mEq/L"],
["Serum Magnesium", "≥ 1.0 mmol/L"],
["Serum Sodium", "126–130 mEq/L (no further rapid rise)"],
["Lactate", "< 2 mmol/L"],
["WBC (TLC)", "Downward trend from 19,000"],
["Neurological status", "EEG completed; ODS excluded or MRI planned at 48–72h"],
["Anticoagulation", "Apixaban restarted via NG tube"],
]
),
spacer(),
// ── SECTION 10: ESCALATION ────────────────────────────────────────────────
h1("SECTION 10 – ESCALATION CRITERIA"),
spacer(),
alertBox("Any of the following → Immediate senior/specialist review and potential escalation of care level", RED_BG, DARK_RED),
spacer(),
makeTable(
["Trigger", "Action"],
[
["QTc > 550 ms despite drug withdrawal and electrolyte correction", "EP consult; temporary transvenous pacing; stellate ganglion block consideration"],
["Recurrent TdP / VT despite pacing + Mg", "ACLS activation; EP emergency consult"],
["MAP < 55 mmHg not responding to noradrenaline ≥ 0.3 mcg/kg/min", "Add vasopressin 0.03 units/min; consider dobutamine if cardiogenic component"],
["Lactate > 4 mmol/L or rising", "Intensify sepsis treatment; reassess antibiotic cover; source control"],
["Worsening GCS or new focal neurology", "Urgent CT brain; neurology consult; EEG if not done"],
["Rising creatinine > 2× baseline", "Nephrology review; reduce vancomycin; review all nephrotoxins"],
["Na⁺ rise > 8 mEq/L within 24h", "Give D5W 3 mL/kg/h + desmopressin 2–4 mcg IV q8h; recheck Na hourly"],
],
DARK_RED
),
spacer(),
// ── DISCLAIMER ────────────────────────────────────────────────────────────
spacer(),
new Paragraph({
border: { top: { style: BorderStyle.SINGLE, size: 4, color: NAVY } },
spacing: { before: 200, after: 60 },
children: [bold("Disclaimer: ", 17, NAVY), reg("This document is generated as a clinical decision-support tool based on the presented case details and standard medical guidelines. It does not replace clinical judgement or institutional protocols. All management decisions should be reviewed by the responsible clinician and relevant specialists.", 17, "555555")],
}),
new Paragraph({
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 80 },
children: [ital("Generated: June 2026 · Post-VT Protocol · ICU Clinical Document", 16, "888888")],
}),
],
}],
});
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync('/home/daytona/workspace/post-vt-protocol/PostVT_Management_Protocol.docx', buffer);
console.log('Document created successfully.');
});
cd /home/daytona/workspace/post-vt-protocol && node generate.js
python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/workspace/post-vt-protocol/PostVT_Management_Protocol.docx
python3 -c " import zipfile, os path = '/home/daytona/workspace/post-vt-protocol/PostVT_Management_Protocol.docx' size = os.path.getsize(path) print(f'File size: {size} bytes') with zipfile.ZipFile(path, 'r') as z: names = z.namelist() print('Contents:', names[:10]) # Quick check document.xml is valid XML import xml.etree.ElementTree as ET ET.fromstring(z.read('word/document.xml')) print('XML valid: OK') "
PostVT Management Protocol
Word Document · DOCX
| Section | Content |
|---|---|
| Patient Summary | Full case demographics, comorbidities, event timeline |
| Section 1 | Immediate post-cardioversion actions - MgSO₄ dosing, drug stops, HR targets |
| Section 2 | Electrolyte management - K⁺ ≥ 4.5, Mg²⁺ targets, correction routes |
| Section 3 | Monitoring protocol - QTc frequency, electrolyte check intervals, escalation triggers |
| Section 4 | Anticoagulation plan - apixaban via NG, timing, CHA₂DS₂-VASc rationale |
| Section 5 | Recurrent TdP/VT algorithm - step-by-step from PVCs through to ACLS |
| Section 6 | Antibiotic plan - what stays, what stopped, de-escalation criteria |
| Section 7 | Neurology - EEG for NCSE, ODS MRI timing, baclofen taper, modafinil hold |
| Section 8 | Full drug safety matrix - every drug, decision, and risk mitigated |
| Section 9 | 24-hour goals of care - specific targets for each parameter |
| Section 10 | Escalation criteria - 7 specific triggers with defined responses |
Qt interval normalised. Vpc reduced. But patient is having frequent AFIB OR atrial flutter with ventricular rate of 140. He is on digoxin 0.125 and bisoprolol 5mg .
| Feature | AF | Atrial Flutter |
|---|---|---|
| Ventricular rate | Irregularly irregular | Often regular (typically 150 bpm = 2:1 block) |
| P waves on ECG | Absent, fibrillatory baseline | Sawtooth flutter waves (best seen in II, III, aVF, V1) |
| Response to AV nodal agents | Gradual rate reduction | May convert 4:1 → 3:1 → 2:1 in jumps |
| Cardioversion threshold | Higher energy needed | Responds well to low-energy cardioversion (50-100J) |
| Step | Action | Condition |
|---|---|---|
| 1 | 12-lead ECG now | Confirm AF vs flutter; look for sawtooth waves in II, III, aVF |
| 2 | Check digoxin level | If subtherapeutic, give 0.125 mg extra; if therapeutic, do not push |
| 3 | Bedside echo | Assess LV function before adding diltiazem |
| 4a - If flutter confirmed | Synchronised cardioversion 50-100J | Most effective intervention; patient anticoagulated |
| 4b - If AF and LV preserved | Add IV diltiazem 0.25 mg/kg bolus → infusion | Cautiously with bisoprolol; watch BP and AV block |
| 4c - If AF and LV impaired | Increase digoxin cautiously OR accept lenient rate < 110 | Avoid diltiazem with LV dysfunction |
| 5 | Treat the sepsis aggressively | High sympathetic drive is the real reason rate control is failing |
This is the ecg.
| Parameter | Value | Comment |
|---|---|---|
| Rate | 136 bpm | Ventricular rate - consistent with your clinical finding |
| PR | 81 ms | Short-normal |
| QRS | 81 ms | Narrow - supraventricular origin confirmed |
| QT | 325 ms | |
| QTc | 489 ms | Still borderline prolonged - watch this |
| P axis | -26 | Abnormal P axis |
| T axis | -14 | Inferior T inversion pattern |
| Step | Action |
|---|---|
| Confirm | Apixaban given today via NG tube |
| Sedate | IV midazolam 1-2 mg slow push (or propofol 0.5 mg/kg if anaesthesia available) |
| Mode | Synchronised - confirm R-wave sync marker on monitor before discharge |
| Energy | Start at 50-100J biphasic - flutter cardioverts easily at low energy |
| Pads | Anterior-posterior positioning preferred for atrial arrhythmias |
| Post-shock | 12-lead ECG immediately - confirm sinus rhythm |
| If flutter recurs | Repeat at 100J; if recurs again - consider escalation to EP for CTI ablation |
| Agent | Suitable? | Reason |
|---|---|---|
| Amiodarone | No - not yet | QTc still 489; tissue levels present; only restart when QTc < 450 consistently |
| Flecainide | No | Old inferior MI is a contraindication to flecainide (structural heart disease) |
| Sotalol | No | QT prolongation - absolutely contraindicated given recent TdP and QTc 489 |
| Dronedarone | Caution | Contraindicated in recent decompensated heart failure; can consider later if LVEF preserved and stable |
| Rate control only (bisoprolol + digoxin) | Yes - for now | Accept rate control without rhythm control until the acute illness resolves and QTc normalises |
| CTI catheter ablation | Definitive | After recovery - >95% cure rate for typical atrial flutter; refer to EP when stable |
| Finding | Implication |
|---|---|
| Atrial flutter 2:1, rate 136 | Cardiovert - low energy, high success rate |
| VPC couplets | QTc 489 - monitor continuously; correct K⁺/Mg²⁺ |
| Old inferior MI (new finding) | Avoid diltiazem, flecainide; echo to assess LVEF urgently |
| QTc 489 | Not safe to restart amiodarone or add class III agents yet |
| Patient anticoagulated | No delay to cardioversion needed |
Total Counts reduced to 12,000. Atrial fibrillation is continuing. Patient has spontaneous eye opening but still disorientated
| Parameter | Before | Now | Interpretation |
|---|---|---|---|
| TLC | 19,000 | 12,000 | Responding to meropenem + vancomycin - infection treating well |
| Eye opening | None documented | Spontaneous | GCS improving - E4 now confirmed |
| VPCs | Frequent couplets | Reduced (implied) | QTc correction working |
| Priority | Action | Reason |
|---|---|---|
| 1 - Urgent | EEG - if not done, do today | Exclude NCSE - most dangerous missed diagnosis |
| 2 - Urgent | MRI brain FLAIR - repeat now (day 4-5 post Na correction) | ODS window - this is the right timing to detect it |
| 3 - Today | Collateral history from family | Was patient cognitively normal pre-stroke? Establishes baseline |
| 4 - Today | Digoxin level | Toxicity can cause confusion; check therapeutic range (0.8-2.0 ng/mL) |
| 5 - Today | Confirm baclofen taper is underway | Drug-induced encephalopathy if still at full dose |
| 6 - Today | Stop modafinil | Premature use before cause established; can worsen delirium |
| 7 - Ongoing | Attempt cardioversion if not yet done | Flutter/AF → rate 136 → cerebral hypoperfusion contributing |
| 8 - Ongoing | Continue meropenem + vancomycin | WBC falling, on right track - don't change antibiotics now |
| 9 - Ongoing | Continue apixaban | AF persisting, CHA₂DS₂-VASc = 5 |
Patient was conscious and coherent before admission
| Factor | This Patient |
|---|---|
| Na corrected from 116 → 126 (+10 mEq/L) | At the maximum safe limit |
| Pre-existing pontine infarct | Pons is the primary ODS target site |
| Chronic hyponatremia (> 48h duration implied) | Brain had time to adapt - rapid correction = ODS risk |
| Diabetes | Independent ODS risk factor |
| Age 73, elderly | Reduced brain reserve |
| Was cognitively normal before | Disorientation is new and acquired |
| Timing | Day 4-5 post correction = exact ODS window |
| Aspect | Action |
|---|---|
| Prevention of further damage | Ensure sodium does not rise further; if still rising, use D5W + desmopressin to slow it |
| Supportive care | NG feeding, aspiration precautions, DVT prophylaxis |
| Neuroprotection | Avoid further metabolic insults - maintain normoglycaemia, normoxia, normotension |
| Rehabilitation | Early physiotherapy, speech therapy input |
| Prognosis | Variable - mild ODS (confusion only) can recover over weeks to months; severe ODS (locked-in) has poor prognosis |
| Investigation | Urgency | Reason |
|---|---|---|
| MRI brain FLAIR/DWI | Today - urgent | ODS is the leading diagnosis; timing is now optimal for detection |
| EEG | Today - urgent | NCSE still not excluded; coherent → disoriented = classic presentation |
| Serum Na | Now | Check if overcorrection has occurred beyond safe limits |
| Digoxin level | Today | Confusion in elderly on digoxin must exclude toxicity |
| Cardioversion / rate control | Today | Rate 136 contributing to cerebral hypoperfusion |
Patient is recurrently developing hypokalemia and hypomagnisemia inspite of correction
| Test | What It Tells You |
|---|---|
| Urine potassium (spot or 24h) | If > 20 mEq/L in context of hypokalemia = renal wasting |
| Urine potassium/creatinine ratio | > 13 mEq/mmol = inappropriate renal K loss |
| Urine magnesium | If > 1 mmol/L in hypomagnesemia = renal Mg wasting |
| Urine sodium | Helps assess volume status and renal tubular function |
| Fractional excretion of Mg (FEMg) | > 2% = renal magnesium wasting |
| Serum K⁺ | IV Replacement (via central line) | Rate |
|---|---|---|
| 3.0 - 3.5 mEq/L | 40 mEq KCl | Over 4 hours |
| 2.5 - 3.0 mEq/L | 60-80 mEq KCl | Over 6-8 hours |
| < 2.5 mEq/L | 80-100 mEq KCl | Over 8 hours with cardiac monitoring |
| Maintenance (ongoing losses) | 40-60 mEq/day in IV fluids | Continuous |
| Serum Mg²⁺ | IV Replacement | Rate |
|---|---|---|
| 0.6 - 0.8 mmol/L | MgSO₄ 4-8g (16-32 mmol) | Over 12-24 hours |
| < 0.6 mmol/L | MgSO₄ 8-12g | Over 24 hours |
| Maintenance | MgSO₄ 4g/day | Continuous infusion |
Hypomagnesemia
↓
Na-K-ATPase pump fails → K⁺ leaks out of cells
↓
Hypokalemia (refractory to K replacement alone)
↓
QTc prolongation + VPC/TdP risk
↓
Replace K but not Mg → K keeps falling
↓
Cycle repeats
| Step | Action |
|---|---|
| 1 | Send urine K⁺, urine Mg²⁺, urine creatinine - identify renal vs GI wasting |
| 2 | Check ABG for metabolic alkalosis (pH, HCO₃⁻, Cl⁻) |
| 3 | Check blood glucose and recent CBG chart |
| 4 | Switch vancomycin to linezolid if creatinine rising or renal tubular injury suspected |
| 5 | Start continuous MgSO₄ infusion 4-6g/24h - not just bolus doses |
| 6 | Replace K⁺ to target ≥ 4.5 mEq/L after Mg²⁺ is ≥ 0.8 mmol/L |
| 7 | Add KCl 40 mEq BD to NG feeds as routine supplementation |
| 8 | Check electrolyte content of enteral feed formula - consider switching to high-K/Mg formula |
| 9 | Monitor K⁺ and Mg²⁺ every 4-6 hours until stable for 24h |
| 10 | As noradrenaline weaned - watch for K⁺ rebound; reduce replacement accordingly |
Patient cardiac rhythm settled. He is conscious and coherent. But he is unable to swallow. Oral feeds are coming out. He also developed multiple mouth blisters/ulcers
oral ulcers blisters ICU patient prolonged antibiotics meropenem causes differential diagnosis
post stroke neurogenic dysphagia pontine bulbar management feeding 2024
| Cause | Why Likely in This Patient | Key Features |
|---|---|---|
| Oral Candidiasis (Thrush) | Most likely - diabetes, prolonged broad-spectrum antibiotics (meropenem), immunosuppressed state from sepsis | White pseudomembranous plaques, erythematous base, wipe off leaving raw surface; tongue + buccal mucosa |
| Herpes Simplex Virus (HSV) Reactivation | Stress, immunosuppression from critical illness - HSV-1 reactivates commonly in ICU patients | Clustered vesicles/blisters that ulcerate; painful; lips, hard palate, gingiva |
| Drug-Induced Mucositis / SJS/TEN | Multiple drugs - meropenem, vancomycin, linezolid all implicated | Diffuse erythema, blistering, mucosal sloughing; look for skin involvement elsewhere |
| Aphthous Ulcers (stress-related) | ICU stress, nutritional deficiency | Punched-out ulcers with grey-white base and erythematous halo; buccal mucosa, floor of mouth |
| Nutritional Deficiency | Prolonged NG feeds without adequate supplementation - B12, folate, iron, zinc | Multiple aphthous-like ulcers; check FBC for macrocytosis |
| Linezolid Mucositis | If linezolid was started for MRSA coverage | Can cause oral mucosal changes with prolonged use |
| Feature | Candidiasis | HSV | Drug reaction (SJS) | Aphthous |
|---|---|---|---|---|
| Appearance | White plaques | Vesicles/crusted ulcers | Diffuse erosions, blistering | Punched-out, grey base |
| Location | Tongue, buccal mucosa, palate | Lips, hard palate, gingiva | Any mucosal surface | Buccal, labial mucosa |
| Wipe off | Yes - leaves raw red base | No | No | No |
| Skin involved | No | No (oral HSV) | Yes - critical sign | No |
| Fever | Low grade | Moderate | High + systemic | None |
| Eyes involved | No | No | Yes - conjunctivitis | No |
| Approach | Action |
|---|---|
| Maintain NG tube | Do not remove - oral feeds are coming out, aspiration risk is high |
| Speech and Language Therapy (SLT) | Urgent formal dysphagia assessment; videofluoroscopic swallow study (VFSS) or FEES (Fibreoptic Endoscopic Evaluation of Swallowing) to characterise the defect |
| Swallowing rehabilitation | Exercises: Mendelsohn manoeuvre, Shaker exercises, Masako manoeuvre - can be started once mouth ulcers are less painful |
| Texture modification | When oral trials restart: begin with thickened liquids (IDDSI Level 4), not normal consistency |
| Treat the mouth ulcers first | Pain from ulcers is a reversible barrier - once treated, reassess swallowing |
| Treat AF/rate control | Rate 136 → low cardiac output → reduced pharyngeal perfusion. Better rate control may marginally improve neurological function |
| Priority | Action | Reason |
|---|---|---|
| 1 - Today | Examine oral lesions carefully - look for skin/eye involvement | Exclude SJS/TEN |
| 2 - Today | If white plaques: start fluconazole 200 mg OD via NG | Oral candidiasis most likely |
| 3 - Today | If vesicular/clustered: start acyclovir 400 mg TDS | HSV reactivation |
| 4 - Today | Check FBC for eosinophilia, LFTs | Screen for drug reaction/DRESS |
| 5 - Today | Check nutritional indices: B12, folate, zinc, albumin | Nutritional deficiency contributing |
| 6 - This week | Urgent SLT referral for formal swallow assessment (VFSS/FEES) | Characterise dysphagia before oral trials |
| 7 - Monitor | Watch apixaban bleeding signs if fluconazole started | CYP3A4 interaction raises apixaban levels |
| 8 - Ongoing | Continue NG feeds - do NOT attempt oral feeds until SLT clears | Aspiration risk |
| 9 - Plan | PEG tube discussion if dysphagia persists > 3-4 weeks | Long-term nutrition planning |
Patient had denosumab two weeks prior to the presentation
denosumab hypocalcemia hypomagnesemia hypokalemia electrolyte
denosumab oral ulcers mucositis adverse effects
denosumab hypocalcemia hypomagnesemia hypokalemia mechanism electrolyte depletion 2024
denosumab osteonecrosis jaw oral ulcers mucosal adverse effects mechanism
| Problem | How Denosumab Causes It |
|---|---|
| Recurrent hypokalemia + hypomagnesemia | Mechanism via calcium-PTH-Vitamin D axis disruption |
| Mouth blisters/ulcers | Medication-Related Osteonecrosis of the Jaw (MRONJ) / mucosal healing impairment |
| Hypocalcemia (check if present) | Primary and most well-known adverse effect |
Denosumab → Osteoclasts suppressed → Calcium stays in bone
↓
Serum calcium falls → PTH surges (secondary hyperparathyroidism)
↓
PTH increases renal phosphate excretion → Hypophosphatemia
PTH increases renal magnesium excretion → Hypomagnesemia
↓
Hypomagnesemia → Refractory hypokalemia (Na-K-ATPase failure)
↓
All three electrolytes fall and resist replacement
| Stage | Features |
|---|---|
| Stage 0 | No exposed bone; non-specific symptoms - pain, swelling, loose teeth |
| Stage 1 | Exposed/necrotic bone, asymptomatic, no infection |
| Stage 2 | Exposed/necrotic bone + pain + infection (erythema, pus) |
| Stage 3 | Exposed bone + pain + infection + pathological fracture / osteolysis / fistula |
| Test | Action |
|---|---|
| Serum corrected calcium | If low: IV calcium gluconate urgently |
| Serum phosphate | If low: IV or oral phosphate replacement |
| PTH | If elevated: confirms denosumab mechanism |
| 25-OH Vitamin D | If low: Cholecalciferol 60,000 IU oral/NG weekly × 8 weeks - critical for calcium absorption and to counteract the denosumab-induced hypocalcaemia |
| Serum K, Mg | Continue aggressive replacement - but now supplement calcium and Vitamin D simultaneously |
| Action | Detail |
|---|---|
| Stop denosumab permanently | It has been given - cannot reverse, but no further doses |
| Urgent dental/maxillofacial surgery referral | MRONJ requires specialist assessment - staging, debridement if needed |
| Oral hygiene | Chlorhexidine 0.12% mouthwash BD - reduces bacterial load over necrotic bone |
| Antibiotics | If Stage 2 (infection present): amoxicillin-clavulanate or metronidazole for anaerobic flora; already on meropenem which covers this |
| No dental procedures | Avoid tooth extractions or any invasive dental work - will worsen MRONJ |
| Pain management | Oral analgesics via NG; paracetamol + opioid if needed for jaw pain |
| Swallowing | MRONJ pain is a direct, treatable cause of dysphagia - as jaw pain improves with treatment, swallowing may improve |
| Problem | Denosumab Contribution |
|---|---|
| Severe hyponatremia at admission | Indirect - metabolic vulnerability |
| Recurrent, refractory hypokalemia | Direct - PTH-driven renal K wasting |
| Recurrent hypomagnesemia | Direct - PTH-driven renal Mg wasting |
| Prolonged QTc throughout | Hypocalcaemia + hypomagnesemia prolonging QT |
| VT/TdP event | Hypocalcaemia + Mg deficiency as cofactors alongside drug-induced QT |
| Mouth ulcers + dysphagia | MRONJ - direct denosumab effect |
| Difficulty swallowing | MRONJ jaw pain + pontine dysphagia combined |
| Priority | Action |
|---|---|
| 1 - Immediately | Corrected serum calcium, phosphate, PTH, Vitamin D level |
| 2 - Immediately | If hypocalcaemia confirmed: IV calcium gluconate + ECG monitoring |
| 3 - Today | Start calcium carbonate 1g TDS via NG + cholecalciferol 60,000 IU weekly |
| 4 - Today | Examine oral lesions for exposed bone - confirm MRONJ stage |
| 5 - Today | Maxillofacial / dental surgery referral |
| 6 - Today | Start chlorhexidine mouthwash 0.12% BD |
| 7 - Ongoing | Continue electrolyte replacement but now with calcium/Vit D as the foundation |
| 8 - Document | No further denosumab doses ever - document as adverse drug reaction |