2026-09-24 · AnesRecord++ V2 sandbox · research digest + wish list
The pattern everywhere is the same as ours: a box beside the bed translates the monitor, the record system never talks to the monitor directly.
Edan iM8 → direct cable → our box → decoded every second: HR, RR, SpO2, PR, NIBP (SYS/DIA/MAP), T1/T2/ΔT, alarm text, ECG/PLETH/RESP waveforms, patient demographics (name, patient no., doctor, DOB, admit date, height, weight, bed). Live Monitor Mirror tab. Everything marked provisional.
Ordered by value ÷ effort. ✅ = data already in hand.
| # | Feature | Why (from the research) | Effort |
|---|---|---|---|
| A | Confirm-first charting — one tap puts the current HR/SBP/DBP/MAP/RR/Temp/SpO2 into the current time column, marked as monitor-sourced, with an audit entry | Matches Epic's validate-before-record; keeps the human in the loop | small ✅ |
| B | NIBP result queue — every new cuff result appears as a pending chip ("133/77 at 19:41 — accept?"); one tap charts it | NIBP is discrete and the most-charted value; least artifact-prone | small ✅ |
| C | Demographics prefill + identity check — offer the monitor's name/DOB/sex/height/weight/bed into the record header; warn loudly if the record's patient ≠ the monitor's patient | Vendors call patient-identity matching the #1 integration safety issue | small ✅ |
| D | Alarm log → events row — monitor alarm texts (SENSOR OFF, LEAD OFF, T1 LOW, apnea…) with start/stop times, one tap to keep as an intra-op event | Complete record; explains gaps | small ✅ |
| E | 1-second trend archive per case — store the raw decoded stream with the record (compressed), viewable later | The "immutable registry" idea; needed for artifact review, QA and research | medium ✅ |
| F | Mark-as-artifact on any charted point, keeping raw and confirmed side by side, with an explicit artifact definition in the UI | 2–6 % of BP points are artifacts; rule-based flags help, humans decide | small |
| G | Waveform strip capture — button saves the last 10 s of ECG/PLETH as an image into the record's photos | Documents arrhythmias/ischemia at the moment they happen | small ✅ |
| H | No-data / disconnect banner on the record page + last-good timestamp | Downtime awareness; standard in every AIMS | tiny ✅ |
| I | Auto case timeline hints — first sustained SpO2 = "patient on monitor"; NIBP cadence; suggests anesthesia start/end marks (never places them) | Completeness without automation risk | small ✅ |
| J | Rule-based quality flags before confirm — value outside physiologic range, jump > x % from previous, cuff-inflation window on the same limb, probe-off | Literature's simple filters catch the obvious artifacts | small |
| K | PACU board — one PACU box, 10 monitors (each with its own LOCAL NET NO), per-bed tiles, tap a bed to open its record | Same hub pattern as wards; needs per-bed connection keying in monitor_edan.py | medium |
| L | Central trend forwarding — the OR/PACU box posts the 1-s trend to the VPS; QA dashboard shows live rooms | Already have the sync path and a QA dashboard | medium |
| M | HL7 ORU / FHIR Observation export of confirmed values | Speaks the hospital's language when they eventually want the data | medium |
What is in real clinical use today (all decision support, none of it charts on its own):
How VitalDB assists (this is its main purpose):
load_vitaldb.py); the same files let us test any model against thousands of cases before it touches a live patient.What we can do now (ordered):
| # | AI item | Data needed | Status |
|---|---|---|---|
| N1 | Rule-based smart flags (range, jump, probe-off, cuff window) — see item J | our stream ✅ | LIVE on the review screen; per-minute copy in shadow |
| N2 | Trend-based early warnings — MAP falling x mmHg over y min, SpO2 slope, HR/PR mismatch, temp drift; shown as a "watch" chip, never an alarm | our 1-s trend ✅ | BUILT — shadow mode (scores every minute, labelled at Stop, admin report /ai/shadow) |
| N3 | LLM case summary / handoff — we already generate SBAR; extend to a draft narrative from the confirmed chart (drafts only, clinician edits) | record data ✅ | BUILT — shadow mode (draft stored in ai_drafts at Stop; rules text until ANTHROPIC_API_KEY is set) |
| N4 | Non-invasive hypotension early warning — run a VitalDB-trained model (Jeong 2024 class) on pleth + NIBP + HR, output "risk ↑ in next 5 min" as a provisional hint | pleth 256 Hz + NIBP ✅ | BUILT — shadow mode (scores every minute, labelled at Stop, admin report /ai/shadow) |
| N5 | Hypoxemia risk hint (Prescience-style features: SpO2 trend, FiO2, BMI, RR, procedure) | record + stream ✅ (FiO2 after the Atlan link) | BUILT — shadow mode (scores every minute, labelled at Stop, admin report /ai/shadow) |
| N6 | Artifact suggestion — model flags likely artifacts for one-tap review (never auto-removal) | 1-s archive (item E) | BUILT — shadow mode (scored per plotted value at Stop; labelled by the resident's amendments on save) |
| N7 | PACU deterioration score (NEWS2-style, then a learned index) once the PACU board exists | item K | BUILT — shadow mode (scores every minute, labelled at Stop, admin report /ai/shadow) |
Guard-rails we keep: every AI output is labelled hint / provisional, sits outside the legal record, never silences a monitor alarm, never doses anything; models are validated on our own archived cases (item E) before use; a clear "what this is not" note in the UI (not a regulated medical device).
Sources: HPI feasibility/RCTs https://pmc.ncbi.nlm.nih.gov/articles/PMC12482379/ · https://pmc.ncbi.nlm.nih.gov/articles/PMC12577059/ · hypotension prediction review https://pmc.ncbi.nlm.nih.gov/articles/PMC12140563/ · Prescience https://pubmed.ncbi.nlm.nih.gov/31001455/ · Epic DI https://sites.northwestern.edu/imqicommittee/2021/02/05/epic-deterioration-index-identifying-patient-acuity/ · STEP-OP (VitalDB) https://medinform.jmir.org/2021/9/e31311/ · non-invasive hypotension model on VitalDB https://link.springer.com/article/10.1007/s10877-024-01206-6 · cross-centre evaluation https://link.springer.com/article/10.1007/s10877-025-01357-0