New updates on allergy and anaphylaxis
allergy anaphylaxis management guidelines
allergy anaphylaxis new updates 2025 2026 guidelines treatment
PMID: 41701644
PMID: 41802785
PMID: 39473345
PMID: 41408837
https://www.uptodate.com/contents/whats-new-in-allergy-and-i…
epinephrine nasal spray neffy anaphylaxis
omalizumab food allergy immunotherapy anaphylaxis
| Allergen Trigger | Primary Organ Failure |
|---|---|
| Food | Respiratory (95% - mainly bronchospasm) |
| Drug | Respiratory in 65% of cases |
| Venom (insect sting) | Cardiovascular in 65% of cases |
| Change | Old Practice | New Evidence/Recommendation |
|---|---|---|
| Corticosteroids in acute anaphylaxis | Routinely given | No longer recommended |
| Severity grading | Used to guide treatment | Replaced by NIAID/FAAN criteria |
| Antihistamines | Given acutely | Post-stabilization only |
| Epinephrine delivery | Auto-injector only | Intranasal spray (neffy) now available |
| Food allergy immunotherapy | Mainly avoidance | Omalizumab + OIT now guideline-recommended |
| Fatal trigger organ failure | Generic approach | Tailored to trigger (respiratory vs. cardiovascular) |
Create a clinical protocol poster on the new anaphylaxis management steps
A professional clinical protocol poster titled "ANAPHYLAXIS MANAGEMENT PROTOCOL" for hospital/emergency department use. Clean, medical, high-contrast design with a dark navy blue header and white/light background sections. Layout from top to bottom: HEADER: Bold white text on dark navy: "ANAPHYLAXIS MANAGEMENT PROTOCOL" with subtitle "Based on Updated SFFA/NIAID-FAAN Guidelines 2024-2026" SECTION 1 - Red background box: "STEP 1: RECOGNIZE — NIAID/FAAN CRITERIA" "Anaphylaxis is highly likely when ANY ONE of the following:" • Acute onset skin/mucosal symptoms + respiratory compromise OR hypotension • Two or more of: skin symptoms, respiratory, hypotension/syncope, GI symptoms — after likely allergen exposure • Hypotension alone after known allergen exposure SECTION 2 - Bold red urgent box: "STEP 2: EPINEPHRINE — IMMEDIATELY (NO DELAY)" Large bold text: "EPINEPHRINE IS THE ONLY EVIDENCE-BASED ACUTE TREATMENT" • Adults: Adrenaline 0.5 mg IM (1:1000) into outer mid-thigh • Children: 0.01 mg/kg IM, max 0.5 mg • NEW: Intranasal epinephrine (neffy) — needle-free option, 2nd dose in SAME nostril • Repeat every 5-15 min if no improvement • DO NOT delay for severity grading SECTION 3 - Orange box: "STEP 3: POSITION & CALL FOR HELP" • Lay patient flat, legs elevated (unless dyspnoeic — sit up) • Call emergency services / activate code • 100% O2 via non-rebreather mask • IV/IO access SECTION 4 - Yellow box: "STEP 4: SUPPORTIVE CARE" • IV fluids: 1-2L normal saline rapidly if hypotensive • Bronchospasm: Salbutamol nebulisation • Refractory hypotension: Vasopressors (noradrenaline, vasopressin) • Refractory anaphylaxis: IV adrenaline infusion SECTION 5 - Green box: "STEP 5: ADJUNCTS (POST-STABILIZATION ONLY)" • Antihistamines — after stabilization, NOT acute phase • ❌ Corticosteroids — NO LONGER ROUTINELY RECOMMENDED • Serum tryptase: draw at 1-2h and 24h after reaction SECTION 6 - Blue box: "STEP 6: OBSERVATION & DISCHARGE" • Minimum 4-6h observation (12-24h if severe/biphasic risk) • Prescribe epinephrine auto-injector or intranasal epinephrine on discharge • Written anaphylaxis action plan • Refer to allergist • Fatal risk factors: asthma, cardiovascular disease, age ≥65, delayed epinephrine FOOTER: Small text "Sources: SFFA 2024, NIAID/FAAN Criteria, EAACI 2025, UpToDate 2026" with a red warning bar at bottom: "REMEMBER: Epinephrine first — Antihistamines and steroids do NOT replace epinephrine"

Make a presentation on fatal anaphylaxis predictors and high-risk patient management
mkdir -p /home/daytona/workspace/fatal-anaphylaxis-ppt
~/fatal-anaphylaxis-ppt/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Fatal Anaphylaxis: Predictors and High-Risk Patient Management";
pres.author = "Orris Clinical Education";
// ─── PALETTE ────────────────────────────────────────────────────────────────
const C = {
navy: "0B1F4B", // dominant dark
crimson: "B91C1C", // danger/alert accent
amber: "D97706", // warning accent
teal: "0F766E", // safe/management
slate: "334155", // body text
light: "F1F5F9", // light bg
white: "FFFFFF",
muted: "94A3B8",
gold: "F59E0B",
orange: "EA580C",
};
// ─── HELPER: background rect ────────────────────────────────────────────────
function bg(slide, color) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color }, line: { color, width: 0 } });
}
function accentBar(slide, color, y = 0, h = 0.08) {
slide.addShape(pres.shapes.RECTANGLE, { x: 0, y, w: 13.3, h, fill: { color }, line: { color, width: 0 } });
}
function card(slide, x, y, w, h, fillColor, lineColor) {
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x, y, w, h,
fill: { color: fillColor },
line: { color: lineColor || fillColor, width: lineColor ? 2 : 0 },
rectRadius: 0.12,
shadow: { type: "outer", color: "000000", blur: 8, offset: 3, angle: 135, opacity: 0.13 }
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.navy);
// Red top accent
accentBar(s, C.crimson, 0, 0.12);
// Large background text watermark
s.addShape(pres.shapes.RECTANGLE, { x: 6.5, y: 0, w: 6.8, h: 7.5, fill: { color: "0D2A6B" }, line: { color: "0D2A6B", width: 0 } });
// Decorative cross / medical icon area
s.addShape(pres.shapes.RECTANGLE, { x: 8.2, y: 1.6, w: 0.25, h: 1.8, fill: { color: C.crimson }, line: { color: C.crimson, width: 0 } });
s.addShape(pres.shapes.RECTANGLE, { x: 7.55, y: 2.2, w: 1.55, h: 0.25, fill: { color: C.crimson }, line: { color: C.crimson, width: 0 } });
// Warning triangle shape approximation (three dots)
[8.05, 8.2, 8.35, 8.5, 8.65].forEach((x, i) => {
s.addShape(pres.shapes.OVAL, { x, y: 4.0, w: 0.12, h: 0.12, fill: { color: C.gold }, line: { color: C.gold, width: 0 } });
});
// Epidemiology stat boxes on right
const statData = [
{ val: "~2%", lbl: "Global anaphylaxis incidence" },
{ val: "<1%", lbl: "of cases are fatal" },
{ val: "65+", lbl: "highest mortality age group" },
];
statData.forEach((d, i) => {
card(s, 9.3, 1.1 + i * 1.9, 3.6, 1.6, "142255");
s.addText(d.val, { x: 9.3, y: 1.1 + i * 1.9, w: 3.6, h: 0.85, align: "center", fontSize: 34, bold: true, color: C.gold });
s.addText(d.lbl, { x: 9.3, y: 1.9 + i * 1.9, w: 3.6, h: 0.65, align: "center", fontSize: 12, color: "A8C4E8" });
});
// Title block
s.addText("FATAL ANAPHYLAXIS", {
x: 0.5, y: 1.0, w: 8.5, h: 1.2,
fontSize: 46, bold: true, color: C.white, charSpacing: 3
});
s.addText("Predictors, Risk Stratification &\nHigh-Risk Patient Management", {
x: 0.5, y: 2.25, w: 8.0, h: 1.3,
fontSize: 22, color: "A8C4E8", lineSpacingMultiple: 1.4
});
// Divider
s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 3.7, w: 5.0, h: 0.04, fill: { color: C.crimson }, line: { color: C.crimson, width: 0 } });
// Subtitle / source line
s.addText("Based on: 2026 Systematic Review (Chowdhury et al., Int Arch Allergy Immunol)\nBMJ Open 2026 | EAACI Guidelines 2025 | SFFA Guidelines 2024", {
x: 0.5, y: 3.9, w: 8.0, h: 1.0,
fontSize: 12, color: "7A9CC8", lineSpacingMultiple: 1.5
});
// Bottom bar
accentBar(s, C.crimson, 7.35, 0.15);
s.addText("Clinical Education Series • Allergy & Immunology • 2026", {
x: 0, y: 7.35, w: 13.3, h: 0.15,
align: "center", fontSize: 9, color: C.white, bold: false
});
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 — EPIDEMIOLOGY & BACKGROUND
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.light);
accentBar(s, C.navy, 0, 0.6);
s.addText("EPIDEMIOLOGY & BACKGROUND", {
x: 0.4, y: 0.1, w: 9, h: 0.45,
fontSize: 20, bold: true, color: C.white, charSpacing: 2
});
s.addText("Slide 2", { x: 12.0, y: 0.1, w: 1.1, h: 0.4, fontSize: 10, color: "7A9CC8", align: "right" });
// 4 stat cards top row
const stats = [
{ val: "1 in 50", sub: "US lifetime risk of anaphylaxis", col: C.navy },
{ val: "Increasing", sub: "Hospital admissions over 2 decades", col: C.crimson },
{ val: "Food + Drugs", sub: "Top causes of fatal anaphylaxis", col: C.amber },
{ val: "28 Studies", sub: "20 countries — 2026 systematic review", col: C.teal },
];
stats.forEach((st, i) => {
card(s, 0.3 + i * 3.2, 0.85, 2.9, 1.65, st.col);
s.addText(st.val, { x: 0.3 + i * 3.2, y: 0.9, w: 2.9, h: 0.85, align: "center", fontSize: 22, bold: true, color: C.white });
s.addText(st.sub, { x: 0.3 + i * 3.2, y: 1.7, w: 2.9, h: 0.7, align: "center", fontSize: 11, color: "DCE8F8" });
});
// Two column layout below
// Left: key facts
card(s, 0.3, 2.75, 6.0, 4.3, C.white, "CBD5E1");
s.addText("KEY EPIDEMIOLOGICAL FACTS", {
x: 0.5, y: 2.85, w: 5.6, h: 0.4,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.5, y: 3.22, w: 5.6, h: 0.03, fill: { color: C.navy }, line: { color: C.navy, width: 0 } });
const facts = [
"Anaphylaxis estimated to affect ~2% of global population, up to 5% in the US",
"Fatal anaphylaxis is rare — <1% of cases — but incidence of medication fatalities is rising in North America",
"Food-induced fatalities are increasing in Australia",
"Reaction severity does NOT predict future reaction severity",
"More rapid onset after exposure = higher likelihood of severe/fatal outcome",
"Parenteral route carries higher anaphylaxis risk than oral route",
];
s.addText(facts.map((f, i) => ({
text: f,
options: { bullet: { code: "25B8", color: C.crimson }, breakLine: i < facts.length - 1, fontSize: 12, color: C.slate, paraSpaceAfter: 4 }
})), { x: 0.5, y: 3.35, w: 5.7, h: 3.5, valign: "top" });
// Right: trigger donut chart
card(s, 6.6, 2.75, 6.3, 4.3, C.white, "CBD5E1");
s.addText("COMMON TRIGGERS OF FATAL ANAPHYLAXIS", {
x: 6.8, y: 2.85, w: 5.8, h: 0.4,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1
});
s.addShape(pres.shapes.RECTANGLE, { x: 6.8, y: 3.22, w: 5.8, h: 0.03, fill: { color: C.navy }, line: { color: C.navy, width: 0 } });
s.addChart(pres.charts.DOUGHNUT, [{
name: "Triggers",
labels: ["Foods (peanut/milk)", "Medications", "Venom (insect)", "Latex/Other"],
values: [38, 35, 22, 5]
}], {
x: 6.8, y: 3.3, w: 6.0, h: 3.6,
chartColors: [C.crimson, C.amber, C.teal, C.muted],
showLegend: true, legendPos: "r",
showPercent: true,
dataLabelFontSize: 13,
chartArea: { fill: { color: C.white } },
holeSize: 55
});
accentBar(s, C.navy, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 — PREDICTORS OF FATAL ANAPHYLAXIS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.navy);
accentBar(s, C.crimson, 0, 0.08);
s.addText("PREDICTORS OF FATAL ANAPHYLAXIS", {
x: 0.4, y: 0.15, w: 10, h: 0.55,
fontSize: 22, bold: true, color: C.white, charSpacing: 2
});
s.addText("Systematic Review: 28 studies, 20 countries | Chowdhury et al., Int Arch Allergy Immunol, 2026 | PMID: 41701644", {
x: 0.4, y: 0.65, w: 12.5, h: 0.3,
fontSize: 10, color: "7A9CC8"
});
// 3 category boxes
const catW = 3.9, catH = 5.9, catY = 1.15;
// Box 1 — Triggers
card(s, 0.3, catY, catW, catH, "1A0A0A");
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: catY, w: catW, h: 0.5, fill: { color: C.crimson }, line: { color: C.crimson, width: 0 } });
s.addText("ALLERGEN TRIGGERS", { x: 0.3, y: catY, w: catW, h: 0.5, align: "center", fontSize: 13, bold: true, color: C.white });
const trigItems = [
{ label: "CHILDREN (<18)", items: ["Peanuts", "Cow's milk"] },
{ label: "ADULTS / PERIOP", items: ["Antibiotics", "Contrast media", "Neuromuscular blockers"] },
{ label: "ALL AGES", items: ["Insect venom (stings)"] },
];
let ty = catY + 0.65;
trigItems.forEach(g => {
s.addText(g.label, { x: 0.5, y: ty, w: catW - 0.4, h: 0.32, fontSize: 10, bold: true, color: C.gold });
ty += 0.33;
g.items.forEach(item => {
s.addText("• " + item, { x: 0.6, y: ty, w: catW - 0.5, h: 0.3, fontSize: 12, color: "F8D7DA" });
ty += 0.31;
});
ty += 0.15;
});
// Box 2 — Comorbidities
card(s, 4.4, catY, catW, catH, "1A1000");
s.addShape(pres.shapes.RECTANGLE, { x: 4.4, y: catY, w: catW, h: 0.5, fill: { color: C.amber }, line: { color: C.amber, width: 0 } });
s.addText("HIGH-RISK COMORBIDITIES", { x: 4.4, y: catY, w: catW, h: 0.5, align: "center", fontSize: 13, bold: true, color: C.white });
const comorbs = [
{ icon: "◆", label: "Asthma", detail: "Most consistent predictor\nacross all studies" },
{ icon: "◆", label: "Cardiovascular Disease", detail: "Heart failure, IHD,\nhypertension" },
{ icon: "◆", label: "Age ≥65 Years", detail: "Decreased physiologic\nreserve, polypharmacy" },
{ icon: "◆", label: "Mastocytosis", detail: "Greatly amplifies mediator\nrelease" },
{ icon: "◆", label: "Multiple Comorbidities", detail: "Synergistic risk — each\nadditional condition multiplies risk" },
];
let cy = catY + 0.65;
comorbs.forEach(c => {
s.addText(c.icon + " " + c.label, { x: 4.6, y: cy, w: catW - 0.4, h: 0.3, fontSize: 12, bold: true, color: C.gold });
s.addText(c.detail, { x: 4.8, y: cy + 0.3, w: catW - 0.6, h: 0.45, fontSize: 10, color: "FEF3C7", lineSpacingMultiple: 1.2 });
cy += 0.88;
});
// Box 3 — Modifiable factors
card(s, 8.5, catY, catW, catH, "001A14");
s.addShape(pres.shapes.RECTANGLE, { x: 8.5, y: catY, w: catW, h: 0.5, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });
s.addText("MODIFIABLE RISK FACTORS", { x: 8.5, y: catY, w: catW, h: 0.5, align: "center", fontSize: 13, bold: true, color: C.white });
const modItems = [
{ label: "MOST CRITICAL:", item: "Delayed epinephrine\n(>30 min after onset)", highlight: true },
{ label: "MEDICATION USE:", item: "Beta-blockers\nACE inhibitors\nNSAIDs", highlight: false },
{ label: "POSITION:", item: "Upright position at\nonset worsens shock", highlight: false },
{ label: "SETTING:", item: "Prehospital failure to\nadminister epinephrine", highlight: false },
];
let my = catY + 0.65;
modItems.forEach(m => {
s.addText(m.label, { x: 8.7, y: my, w: catW - 0.4, h: 0.28, fontSize: 10, bold: true, color: m.highlight ? C.crimson : C.gold });
my += 0.28;
s.addText(m.item, { x: 8.9, y: my, w: catW - 0.6, h: m.highlight ? 0.55 : 0.65, fontSize: 12, color: m.highlight ? "FCA5A5" : "A7F3D0", lineSpacingMultiple: 1.25 });
my += m.highlight ? 0.7 : 0.8;
});
accentBar(s, C.crimson, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 — ORGAN FAILURE PATTERNS
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.light);
accentBar(s, C.navy, 0, 0.6);
s.addText("ORGAN FAILURE PATTERNS IN FATAL ANAPHYLAXIS", {
x: 0.4, y: 0.1, w: 11, h: 0.45,
fontSize: 20, bold: true, color: C.white, charSpacing: 2
});
s.addText("Slide 4", { x: 12.0, y: 0.1, w: 1.1, h: 0.4, fontSize: 10, color: "7A9CC8", align: "right" });
// Source note
s.addText("Source: McKenzie et al., BMJ Open 2026 — Systematic review of 896 deaths & 28 disabilities | PMID: 41802785", {
x: 0.4, y: 0.62, w: 12.5, h: 0.26,
fontSize: 10, color: C.slate
});
// Bar chart — primary organ failure by trigger
s.addChart(pres.charts.BAR, [
{ name: "Respiratory Failure", labels: ["Food Allergen", "Drug Allergen", "Venom"], values: [95, 65, 35] },
{ name: "Cardiovascular Failure", labels: ["Food Allergen", "Drug Allergen", "Venom"], values: [5, 35, 65] },
], {
x: 0.4, y: 1.0, w: 7.5, h: 5.8,
barDir: "col", barGrouping: "stacked",
chartColors: [C.crimson, C.navy],
chartArea: { fill: { color: C.white }, roundedCorners: true },
catAxisLabelColor: C.slate, valAxisLabelColor: C.slate,
valGridLine: { color: "E2E8F0", size: 0.5 },
catGridLine: { style: "none" },
showValue: true, dataLabelColor: C.white, dataLabelFontBold: true, dataLabelFontSize: 13,
showLegend: true, legendPos: "b",
valAxisMinVal: 0, valAxisMaxVal: 100,
title: "Primary Organ Failure by Allergen Type (%)",
titleColor: C.navy, titleFontSize: 13
});
// Key insight boxes on right
const insights = [
{ trigger: "FOOD", icon: "🍜", val: "95%", type: "RESPIRATORY", detail: "Primarily bronchospasm\nEmphasis on airway mgmt essential", col: C.crimson },
{ trigger: "DRUG", icon: "💊", val: "65%", type: "RESPIRATORY", detail: "Respiratory predominance\n35% cardiovascular", col: C.amber },
{ trigger: "VENOM", icon: "🐝", val: "65%", type: "CARDIOVASCULAR", detail: "Cardiovascular collapse\npredominates in stings", col: C.navy },
];
insights.forEach((ins, i) => {
card(s, 8.2, 0.95 + i * 2.05, 4.8, 1.85, ins.col);
s.addText(ins.trigger, { x: 8.3, y: 0.98 + i * 2.05, w: 1.2, h: 0.5, fontSize: 11, bold: true, color: C.gold, charSpacing: 2 });
s.addText(ins.val, { x: 9.4, y: 0.95 + i * 2.05, w: 1.5, h: 0.65, fontSize: 30, bold: true, color: C.white, align: "right" });
s.addText(ins.type + " FAILURE", { x: 8.3, y: 1.58 + i * 2.05, w: 4.5, h: 0.32, fontSize: 11, bold: true, color: C.gold });
s.addText(ins.detail, { x: 8.3, y: 1.88 + i * 2.05, w: 4.5, h: 0.7, fontSize: 11, color: "F0F4FF", lineSpacingMultiple: 1.25 });
});
// Bottom take-home
card(s, 8.2, 7.0, 4.8, 0.38, "FEF3C7", C.amber);
s.addText("⚠ Tailor resuscitation to the trigger allergen", {
x: 8.3, y: 7.0, w: 4.7, h: 0.38, fontSize: 11, bold: true, color: C.slate, valign: "middle"
});
accentBar(s, C.navy, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 — HIGH-RISK PATIENT IDENTIFICATION
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, "0A0A1A");
accentBar(s, C.gold, 0, 0.08);
s.addText("HIGH-RISK PATIENT IDENTIFICATION", {
x: 0.4, y: 0.18, w: 10, h: 0.55,
fontSize: 22, bold: true, color: C.white, charSpacing: 2
});
s.addText("Who needs the most aggressive management and longest observation?", {
x: 0.4, y: 0.68, w: 10, h: 0.35,
fontSize: 13, color: C.muted, italic: true
});
// Risk matrix — 3x2 grid of cards
const riskCards = [
{ title: "ASTHMATIC PATIENT", risk: "VERY HIGH", detail: "Bronchospasm-driven death. Poor response to epi if asthma uncontrolled. Always give salbutamol.", icon: "!", col: C.crimson, textCol: "FCA5A5" },
{ title: "CARDIOVASCULAR DISEASE", risk: "VERY HIGH", detail: "Decreased physiological reserve. Reduced catecholamine responsiveness. Venom-triggered CV collapse.", icon: "!", col: C.crimson, textCol: "FCA5A5" },
{ title: "AGE ≥65 YEARS", risk: "HIGH", detail: "Polypharmacy (beta-blockers, ACEi). Reduced physiologic reserve. Perioperative drug reactions.", icon: "▲", col: C.amber, textCol: "FEF3C7" },
{ title: "MASTOCYTOSIS / HIGH TRYPTASE", risk: "HIGH", detail: "Amplified mediator release. Baseline tryptase elevation. More frequent and severe episodes.", icon: "▲", col: C.amber, textCol: "FEF3C7" },
{ title: "ON BETA-BLOCKERS / ACEi", risk: "MODERATE-HIGH", detail: "Epinephrine may be less effective. May need glucagon for beta-blocker reversal. Higher doses may be required.", icon: "◆", col: "15534A", textCol: "A7F3D0" },
{ title: "PREVIOUS SEVERE REACTION", risk: "MODERATE-HIGH", detail: "Prior severe episode predicts severity. Ensure auto-injector prescribed and patient trained.", icon: "◆", col: "15534A", textCol: "A7F3D0" },
];
riskCards.forEach((rc, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const x = 0.3 + col * 4.3;
const y = 1.25 + row * 2.9;
card(s, x, y, 4.0, 2.6, rc.col);
// Top accent
s.addShape(pres.shapes.RECTANGLE, { x, y, w: 4.0, h: 0.08, fill: { color: rc.col === C.crimson ? "FF4444" : rc.col === C.amber ? C.gold : "2DD4BF" }, line: { color: "00000000", width: 0 } });
s.addText(rc.risk, { x: x + 0.15, y: y + 0.12, w: 3.7, h: 0.3, fontSize: 10, bold: true, color: rc.textCol, charSpacing: 2 });
s.addText(rc.title, { x: x + 0.15, y: y + 0.42, w: 3.7, h: 0.5, fontSize: 13, bold: true, color: C.white, lineSpacingMultiple: 1.2 });
s.addShape(pres.shapes.RECTANGLE, { x: x + 0.15, y: y + 0.93, w: 3.5, h: 0.025, fill: { color: rc.textCol }, line: { color: rc.textCol, width: 0 } });
s.addText(rc.detail, { x: x + 0.15, y: y + 1.05, w: 3.7, h: 1.4, fontSize: 11, color: C.white, lineSpacingMultiple: 1.3 });
});
accentBar(s, C.gold, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 — MANAGEMENT: IMMEDIATE PHASE
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.light);
accentBar(s, C.crimson, 0, 0.6);
s.addText("IMMEDIATE MANAGEMENT — ALL PATIENTS", {
x: 0.4, y: 0.1, w: 10, h: 0.45,
fontSize: 20, bold: true, color: C.white, charSpacing: 2
});
s.addText("Slide 6", { x: 12.0, y: 0.1, w: 1.1, h: 0.4, fontSize: 10, color: "A8C4E8", align: "right" });
// Timeline-style steps
const steps = [
{ num: "1", title: "RECOGNIZE — Use NIAID/FAAN Criteria", detail: "Skin/mucosal + respiratory or hypotension\nTwo or more organ systems after allergen exposure\nNO severity grading required — just recognize and act", col: C.crimson },
{ num: "2", title: "EPINEPHRINE — IMMEDIATELY, NO DELAY", detail: "IM Adrenaline 0.5 mg (1:1000) outer mid-thigh in adults\nOR intranasal epinephrine (neffy) — 2nd dose same nostril\nRepeat every 5-15 min if no response | DO NOT delay for any reason", col: C.crimson },
{ num: "3", title: "POSITION + CALL FOR HELP", detail: "Lay flat, legs elevated (sit up if dyspnoeic)\nActivate emergency response, 100% O2, IV/IO access", col: C.amber },
{ num: "4", title: "SUPPORTIVE CARE", detail: "IV fluids 1-2L normal saline if hypotensive\nNebulised salbutamol for bronchospasm\nVasopressors (noradrenaline) if refractory hypotension", col: C.amber },
{ num: "5", title: "POST-STABILIZATION ADJUNCTS", detail: "Antihistamines (after stabilization ONLY) — NOT for acute phase\nCorticosteroids NO LONGER routinely recommended\nSerum tryptase at 1-2h and 24h after reaction", col: C.teal },
];
steps.forEach((st, i) => {
const y = 0.85 + i * 1.28;
// Number circle
s.addShape(pres.shapes.OVAL, { x: 0.3, y: y + 0.05, w: 0.55, h: 0.55, fill: { color: st.col }, line: { color: st.col, width: 0 } });
s.addText(st.num, { x: 0.3, y: y + 0.05, w: 0.55, h: 0.55, align: "center", valign: "middle", fontSize: 16, bold: true, color: C.white });
// Connector line (not last)
if (i < steps.length - 1) {
s.addShape(pres.shapes.RECTANGLE, { x: 0.54, y: y + 0.62, w: 0.06, h: 0.66, fill: { color: "CBD5E1" }, line: { color: "CBD5E1", width: 0 } });
}
// Content card
card(s, 1.1, y, 11.8, 1.15, C.white, "CBD5E1");
s.addShape(pres.shapes.RECTANGLE, { x: 1.1, y, w: 0.12, h: 1.15, fill: { color: st.col }, line: { color: st.col, width: 0 } });
s.addText(st.title, { x: 1.35, y: y + 0.07, w: 11.3, h: 0.35, fontSize: 13, bold: true, color: C.navy });
s.addText(st.detail, { x: 1.35, y: y + 0.44, w: 11.3, h: 0.62, fontSize: 11, color: C.slate, lineSpacingMultiple: 1.3 });
});
accentBar(s, C.crimson, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 7 — HIGH-RISK SPECIFIC MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.navy);
accentBar(s, C.gold, 0, 0.08);
s.addText("HIGH-RISK PATIENT: SPECIFIC MANAGEMENT ADJUSTMENTS", {
x: 0.4, y: 0.18, w: 12, h: 0.52,
fontSize: 21, bold: true, color: C.white, charSpacing: 1
});
// 3-column management table
const mgmtCols = [
{
header: "ASTHMA / RESPIRATORY",
headerCol: C.crimson,
items: [
"Aggressive early salbutamol nebulisation",
"Early intubation threshold low",
"Ensure PEFR or SpO2 monitoring",
"IV magnesium if bronchospasm refractory",
"Double-check epinephrine dose given",
"Observe minimum 12h if severe bronchospasm",
]
},
{
header: "CARDIOVASCULAR / ELDERLY",
headerCol: C.amber,
items: [
"Cautious fluid resuscitation — avoid overload",
"On beta-blockers: add glucagon IV bolus 1-2mg",
"On ACEi: vasopressin may be more effective than noradrenaline",
"Consider early vasopressors",
"ECG monitoring — risk of Kounis syndrome (allergic MI)",
"Lower threshold for ICU admission",
]
},
{
header: "MASTOCYTOSIS / HIGH TRYPTASE",
headerCol: C.teal,
items: [
"Higher doses of epinephrine may be required",
"Earlier IV epinephrine infusion consideration",
"Prolonged observation (24h minimum)",
"Baseline tryptase comparison essential",
"Refer to specialist — trigger avoidance planning",
"Consider prophylactic premedication for procedures",
]
},
];
mgmtCols.forEach((col, i) => {
const x = 0.3 + i * 4.3;
card(s, x, 0.9, 4.05, 6.3, "0F1D3A");
s.addShape(pres.shapes.RECTANGLE, { x, y: 0.9, w: 4.05, h: 0.52, fill: { color: col.headerCol }, line: { color: col.headerCol, width: 0 } });
s.addText(col.header, { x: x + 0.1, y: 0.9, w: 3.85, h: 0.52, align: "center", valign: "middle", fontSize: 12, bold: true, color: C.white });
col.items.forEach((item, j) => {
const iy = 1.6 + j * 0.88;
s.addShape(pres.shapes.OVAL, { x: x + 0.15, y: iy + 0.04, w: 0.2, h: 0.2, fill: { color: col.headerCol }, line: { color: col.headerCol, width: 0 } });
s.addText(item, { x: x + 0.45, y: iy, w: 3.5, h: 0.7, fontSize: 11, color: C.white, lineSpacingMultiple: 1.2 });
});
});
accentBar(s, C.gold, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 8 — DISCHARGE & LONG-TERM MANAGEMENT
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.light);
accentBar(s, C.teal, 0, 0.6);
s.addText("DISCHARGE PLANNING & LONG-TERM MANAGEMENT", {
x: 0.4, y: 0.1, w: 11, h: 0.45,
fontSize: 20, bold: true, color: C.white, charSpacing: 2
});
s.addText("Slide 8", { x: 12.0, y: 0.1, w: 1.1, h: 0.4, fontSize: 10, color: "A8D4C0", align: "right" });
// Observation table
card(s, 0.3, 0.8, 5.8, 3.1, C.white, "CBD5E1");
s.addText("OBSERVATION PERIODS", {
x: 0.5, y: 0.9, w: 5.4, h: 0.38,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1
});
const obsData = [
["Risk Profile", "Observation"],
["Mild, no high-risk features", "4-6 hours"],
["Moderate / high-risk comorbidity", "8-12 hours"],
["Severe, biphasic risk, refractory", "12-24 hours"],
["Asthma, CVD, mastocytosis", "24h minimum + ICU consideration"],
];
obsData.forEach((row, i) => {
const ry = 1.35 + i * 0.5;
const isBold = i === 0;
const bg2 = i === 0 ? C.navy : i % 2 === 0 ? "F8FAFC" : C.white;
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y: ry, w: 5.8, h: 0.48, fill: { color: bg2 }, line: { color: bg2, width: 0 } });
s.addText(row[0], { x: 0.5, y: ry + 0.06, w: 3.5, h: 0.36, fontSize: isBold ? 11 : 11, bold: isBold, color: isBold ? C.white : C.slate });
s.addText(row[1], { x: 3.7, y: ry + 0.06, w: 2.2, h: 0.36, fontSize: 11, bold: isBold, color: isBold ? C.white : C.navy, align: isBold ? "center" : "right" });
});
// Discharge checklist
card(s, 0.3, 4.05, 5.8, 3.1, C.white, "CBD5E1");
s.addText("DISCHARGE CHECKLIST", {
x: 0.5, y: 4.15, w: 5.4, h: 0.38,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1
});
const checklist = [
"Epinephrine auto-injector OR intranasal epinephrine (neffy) prescribed",
"Written anaphylaxis action plan provided",
"Patient (and carer) trained on device use",
"Allergen trigger identified and documented",
"Avoidance advice given",
"Referral to allergist/immunologist made",
"Serum tryptase follow-up arranged if mastocytosis suspected",
];
s.addText(checklist.map((c, i) => ({
text: "☑ " + c,
options: { bullet: false, breakLine: i < checklist.length - 1, fontSize: 11, color: C.slate, paraSpaceAfter: 3 }
})), { x: 0.5, y: 4.6, w: 5.5, h: 2.4, valign: "top" });
// Long-term right column
card(s, 6.4, 0.8, 6.6, 6.35, C.white, "CBD5E1");
s.addText("LONG-TERM MANAGEMENT", {
x: 6.6, y: 0.9, w: 6.2, h: 0.38,
fontSize: 13, bold: true, color: C.navy, charSpacing: 1
});
s.addShape(pres.shapes.RECTANGLE, { x: 6.6, y: 1.25, w: 6.0, h: 0.03, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });
const ltSections = [
{ title: "IMMUNOTHERAPY OPTIONS (EAACI 2025)", col: C.teal, items: [
"Peanut OIT: Recommended for children & adolescents",
"Milk / Egg OIT: Suggested (generally after age 4)",
"Sublingual / epicutaneous: Suggested for peanut",
"Omalizumab (anti-IgE): Suggested for IgE food allergy from age 1",
]},
{ title: "TRIGGER INVESTIGATION", col: C.navy, items: [
"Allergy testing: skin prick + specific IgE",
"Serum tryptase: baseline + post-event (1-2h, 24h)",
"Consider alpha-gal syndrome if red meat trigger",
"Drug allergy workup if medication-triggered",
]},
{ title: "PATIENT EDUCATION", col: C.amber, items: [
"When and how to use epinephrine device",
"Call emergency services even after self-treatment",
"Medical alert bracelet / ID",
"School/workplace anaphylaxis plan if applicable",
]},
];
let lty = 1.4;
ltSections.forEach(sec => {
s.addShape(pres.shapes.RECTANGLE, { x: 6.55, y: lty, w: 0.1, h: 1.6, fill: { color: sec.col }, line: { color: sec.col, width: 0 } });
s.addText(sec.title, { x: 6.75, y: lty, w: 6.1, h: 0.32, fontSize: 11, bold: true, color: sec.col });
sec.items.forEach((item, j) => {
s.addText("• " + item, { x: 6.85, y: lty + 0.32 + j * 0.32, w: 5.9, h: 0.3, fontSize: 11, color: C.slate });
});
lty += 0.32 + sec.items.length * 0.32 + 0.3;
});
accentBar(s, C.teal, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 — KEY CLINICAL MESSAGES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.navy);
accentBar(s, C.crimson, 0, 0.08);
s.addText("KEY CLINICAL MESSAGES", {
x: 0.4, y: 0.2, w: 12, h: 0.52,
fontSize: 26, bold: true, color: C.white, charSpacing: 3
});
s.addText("What every clinician must remember", {
x: 0.4, y: 0.7, w: 12, h: 0.3,
fontSize: 13, color: C.muted, italic: true
});
const messages = [
{ num: "01", msg: "Epinephrine must be given IMMEDIATELY — delayed administration (>30 min) is the single most modifiable predictor of fatal anaphylaxis", accent: C.crimson },
{ num: "02", msg: "Corticosteroids are no longer routinely recommended in acute anaphylaxis. Antihistamines are adjuncts ONLY — given post-stabilization", accent: C.amber },
{ num: "03", msg: "Fatal organ failure pattern differs by trigger: Respiratory (bronchospasm) for food/drugs — Cardiovascular for venom. Tailor your resuscitation accordingly", accent: C.gold },
{ num: "04", msg: "High-risk patients (asthma, CVD, age ≥65, mastocytosis) require longer observation, lower threshold for ICU, and specialist follow-up", accent: C.teal },
{ num: "05", msg: "All discharged patients must receive an epinephrine device, a written action plan, allergen identification, and allergist referral", accent: "38BDF8" },
];
messages.forEach((m, i) => {
const y = 1.2 + i * 1.22;
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 12.7, h: 1.05, fill: { color: "0F1E40" }, line: { color: "0F1E40", width: 0 } });
s.addShape(pres.shapes.RECTANGLE, { x: 0.3, y, w: 0.1, h: 1.05, fill: { color: m.accent }, line: { color: m.accent, width: 0 } });
s.addText(m.num, { x: 0.55, y: y + 0.12, w: 0.65, h: 0.65, fontSize: 26, bold: true, color: m.accent, align: "center" });
s.addText(m.msg, { x: 1.35, y: y + 0.15, w: 11.3, h: 0.75, fontSize: 13, color: C.white, lineSpacingMultiple: 1.35, valign: "middle" });
});
accentBar(s, C.crimson, 7.42, 0.08);
}
// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 — REFERENCES
// ═══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, "060E1F");
accentBar(s, C.teal, 0, 0.08);
s.addText("REFERENCES & EVIDENCE BASE", {
x: 0.4, y: 0.18, w: 12, h: 0.5,
fontSize: 22, bold: true, color: C.white, charSpacing: 2
});
s.addShape(pres.shapes.RECTANGLE, { x: 0.4, y: 0.68, w: 12.5, h: 0.03, fill: { color: C.teal }, line: { color: C.teal, width: 0 } });
const refs = [
{ pmid: "41701644", cite: "Chowdhury R et al. Predictors of Fatal Anaphylaxis: A Systematic Review. Int Arch Allergy Immunol. 2026. PMID: 41701644" },
{ pmid: "41802785", cite: "McKenzie B et al. Organ failure type in fatal and near-fatal anaphylaxis: a systematic review. BMJ Open. 2026. PMID: 41802785" },
{ pmid: "39473345", cite: "Santos AF et al. EAACI guidelines on the management of IgE-mediated food allergy. Allergy. 2025. PMID: 39473345" },
{ pmid: "41408837", cite: "Gülen T. Updated guidelines for anaphylaxis management. Lakartidningen. 2025 Dec. PMID: 41408837" },
{ pmid: "39254667", cite: "Maddukuri C et al. Pearls from the 2023 Joint Task Force Anaphylaxis Practice Parameter. Curr Opin Pediatr. 2025. PMID: 39254667" },
{ pmid: "40639499", cite: "Ebisawa M et al. Epinephrine Nasal Spray Improves Allergic Symptoms in Oral Food Challenge, Phase 3 Trial. J Allergy Clin Immunol Pract. 2025. PMID: 40639499" },
{ pmid: "38931932", cite: "Ellis AK et al. Development of neffy, an Epinephrine Nasal Spray, for Severe Allergic Reactions. Pharmaceutics. 2024. PMID: 38931932" },
{ pmid: "", cite: "Rosen's Emergency Medicine: Concepts and Clinical Practice, 10e. Chapter 106: Anaphylaxis" },
{ pmid: "", cite: "Goldman-Cecil Medicine International Edition. Anaphylaxis chapter" },
{ pmid: "", cite: "UpToDate: What's new in allergy and immunology (updated June 2, 2026)" },
];
refs.forEach((r, i) => {
const y = 0.85 + i * 0.65;
if (r.pmid) {
s.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.35, y: y + 0.06, w: 0.9, h: 0.28, fill: { color: C.teal }, line: { color: C.teal, width: 0 }, rectRadius: 0.05 });
s.addText("PMID", { x: 0.35, y: y + 0.06, w: 0.9, h: 0.28, align: "center", valign: "middle", fontSize: 8, bold: true, color: C.white });
}
s.addText((i + 1) + ". " + r.cite, {
x: 1.4, y, w: 11.5, h: 0.52,
fontSize: 11, color: "C8D6E8", lineSpacingMultiple: 1.2
});
});
accentBar(s, C.teal, 7.42, 0.08);
}
// ─── WRITE FILE ──────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/fatal-anaphylaxis-ppt/Fatal_Anaphylaxis_Predictors_Management.pptx" })
.then(() => console.log("✅ PPTX written successfully"))
.catch(e => { console.error("❌ Error:", e); process.exit(1); });
cd /home/daytona/workspace/fatal-anaphylaxis-ppt && node build.js 2>&1
ls -lh /home/daytona/workspace/fatal-anaphylaxis-ppt/Fatal_Anaphylaxis_Predictors_Management.pptx
Fatal Anaphylaxis Predictors Management
Presentation · PPTX
| Slide | Title | Design |
|---|---|---|
| 1 | Title Slide | Dark navy with crimson accents, epidemiology stat callouts |
| 2 | Epidemiology & Background | Trigger doughnut chart + key fact bullets |
| 3 | Predictors of Fatal Anaphylaxis | 3-column cards: Triggers / Comorbidities / Modifiable factors |
| 4 | Organ Failure Patterns by Trigger | Stacked bar chart (Respiratory vs Cardiovascular by allergen) + insight cards |
| 5 | High-Risk Patient Identification | 6 risk cards with color-coded severity tiers |
| 6 | Immediate Management | Step-by-step timeline with connector, color-coded by urgency |
| 7 | High-Risk Specific Adjustments | 3 columns: Asthma / CVD+Elderly / Mastocytosis |
| 8 | Discharge & Long-term Management | Observation table + discharge checklist + immunotherapy (OIT, omalizumab) |
| 9 | Key Clinical Messages | 5 numbered dark take-home banners |
| 10 | References | All 10 sources with PMID tags |
Search for clinical images of anaphylaxis and airway management





| Scenario | Preferred Approach |
|---|---|
| Mild stridor, early angioedema | IM epinephrine + O₂ + upright positioning |
| Worsening angioedema, partial obstruction | Early RSI with video laryngoscopy + surgeon standby |
| Severe laryngeal edema, failed laryngoscopy | DAS Plan B (SAD) or direct Plan D (cricothyroidotomy) |
| CICO in full anaphylactic arrest | Scalpel cricothyroidotomy per DAS 2015 |
Find latest research on predictive biomarkers for anaphylaxis severity
biomarkers anaphylaxis severity prediction tryptase
anaphylaxis serum biomarkers platelet activating factor histamine
anaphylaxis predictive biomarkers severity 2025 2026 tryptase PAF research
anaphylaxis biomarkers diagnosis systematic review meta-analysis
mast cell activation tryptase basophil anaphylaxis novel markers
https://link.springer.com/article/10.1007/s12016-025-09069-8
PMID: 40239922
PMID: 40987006
PMID: 41975726
PMID: 40447197
anaphylaxis multi-omics proteomics metabolomics severity biomarkers
PMID: 41953549
PMID: 42109509
PMID: 40588688
A tryptase level drawn during possible anaphylaxis that is 20% above the patient's baseline plus 2 ng/mL is diagnostic for acute mast cell activation.
| Biomarker | Category | Potential Role |
|---|---|---|
| Osteopontin | Protein | Mast cell activation marker; novel severity predictor |
| KIT p.D816V mutation | Genomics | Predicts clonal mast cell disorder; severe reaction risk |
| PGD2 metabolites | Metabolomics | Confirm mast cell involvement when tryptase normal |
| Regulatory T-cell signatures | Transcriptomics | Immune modulation of reaction severity |
| Basophil activation test (BAT) | Functional | In vitro IgE sensitization confirmation; bypasses skin testing risk |
| Component-resolved IgE (e.g., Api m 1) | Serology | Better than whole-venom IgE for severity prediction in bee allergy |
| IL-6 elevation | Cytokine | Cytokine release reaction (CRR) marker; not IgE-mediated |
| Complement activation fragments | Proteomics | Contact system activation in severe mast-cell reactions |
| Omics Layer | Studies Reviewed | Key Findings |
|---|---|---|
| Genomics | 43 | TPSA1 duplications (HAT), FcεRI polymorphisms, MRGPRX2 variants |
| Transcriptomics | 20 | Mast cell activation gene signatures; IL-4/IL-13 pathway upregulation |
| Proteomics | 26 | PAF-AH, tryptase isoforms, complement fragments, osteopontin |
| Metabolomics | 14 | Eicosanoids (PGD2, leukotrienes), PAF, ceramides |
| Epigenomics | 2 | DNA methylation patterns in mast cell priming |
| Biomarker | When to Draw | Interpretation | Availability |
|---|---|---|---|
| Serum tryptase | 1-2h after onset + 24h baseline | >20%+2 above baseline = diagnostic | Routine |
| Histamine | Within 30-60 min of onset | >10 nmol/L supportive | Routine (narrow window) |
| Urine PGD2 metabolite | 0-4h after onset | Mast cell confirmation | Specialist |
| Baseline tryptase | When stable (weeks later) | >7.5 ng/mL: consider HAT/mastocytosis | Routine |
| Post-mortem tryptase | At autopsy | >30.4 ng/mL highly diagnostic | Forensic |
| PAF / PAF-AH | At onset | Severity prediction; low PAF-AH = severe | Research only |
| Serum ferritin | Within 30 min | Elevation = IgG pathway anaphylaxis | Novel/research |
| BAT | Outpatient workup | IgE sensitization confirmation | Specialist |