pediatric-ai-scribe-v3/public/js/bedside/index.js
Daniel 560ec43f8b feat: don't-miss tooltip after notes + bedside suture selector
#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.
2026-04-28 03:09:38 +02:00

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(); });