#2 — Don't-miss tooltip (encounters HPI + sick visit, max 5) - New POST /api/dont-miss returning {points: [{point, why}]} capped at 5 (cap defended both in the prompt and server-side .slice(0,5)) - New dontMissTooltip prompt in prompts.js - New suggestDontMiss() helper in app.js mirroring suggestBillingCodes; inserts an orange-bordered card next to the note output, silent on empty - Wired into liveEncounter.js (encounter HPI) and sickVisit.js. Not added to wellvisit/soap/hospital/chart per spec. #1 — Bedside suture selector - New ES module public/js/bedside/sutures.js (~300L) following the burns.js pattern: site × age × tension × cosmetic × contamination × hours-since-injury → material, size, technique, removal day range, glue/Steri-strip alternative, warnings, tetanus reminder. - 15 anatomic sites covered (face, eyelid, lip vermilion, intraoral, ear, scalp, neck, trunk, upper/lower ext, hand, foot, joint surface, genitalia, fingertip). - Bites: cat/human → don't-close-primarily warning; dog bite to hand → loose-approximation note. Heavy contamination → delayed primary closure. >12h non-face/scalp → judgment call note. - Removal days shown as ranges (3–5, 7–10, 10–14) per source norms, not single midpoints. - Subungual hematoma trephination guidance corrected: any painful hematoma with intact nail and no displaced fracture (especially if 25–50% or more), per current UpToDate guidance. - Inline citation: Roberts & Hedges 7e (2019), Fleisher & Ludwig 8e, AAP Section on EM, UpToDate (Pope JV). - Pill registered in sub-nav SECTIONS + bedside/index.js. Persists active state via existing UIState helper. All 46 tests pass.
48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
// ============================================================
|
|
// bedside/index.js
|
|
// Imports + registers all Bedside section modules on load.
|
|
// Loaded as <script type="module"> from index.html and e2e-harness.html.
|
|
// ============================================================
|
|
|
|
import './shared.js'; // side-effect: sets window._EM for back-compat
|
|
import * as ageWeight from './age-weight.js';
|
|
import * as subNav from './sub-nav.js';
|
|
import * as lightbox from './image-lightbox.js';
|
|
import * as neonatal from './neonatal.js';
|
|
import * as airway from './airway.js';
|
|
import * as cardiac from './cardiac.js';
|
|
import * as respiratory from './respiratory.js';
|
|
import * as ventilation from './ventilation.js';
|
|
import * as seizure from './seizure.js';
|
|
import * as sepsis from './sepsis.js';
|
|
import * as anaphylaxis from './anaphylaxis.js';
|
|
import * as sedation from './sedation.js';
|
|
import * as agitation from './agitation.js';
|
|
import * as antiemetics from './antiemetics.js';
|
|
import * as antimicrobials from './antimicrobials.js';
|
|
import * as burns from './burns.js';
|
|
import * as toxicology from './toxicology.js';
|
|
import * as trauma from './trauma.js';
|
|
import * as sutures from './sutures.js';
|
|
|
|
[
|
|
ageWeight,
|
|
subNav,
|
|
lightbox,
|
|
neonatal,
|
|
airway,
|
|
cardiac,
|
|
respiratory,
|
|
ventilation,
|
|
seizure,
|
|
sepsis,
|
|
anaphylaxis,
|
|
sedation,
|
|
agitation,
|
|
antiemetics,
|
|
antimicrobials,
|
|
burns,
|
|
toxicology,
|
|
trauma,
|
|
sutures,
|
|
].forEach(function(m) { if (m && typeof m.init === 'function') m.init(); });
|