Skip to main content
DoneThat

AI Adoption GuideHealthcareTreat

Adverse event signal detection

ML monitors inpatient medication administration data for early adverse event patterns and alerts nursing before clinical deterioration occurs.

Healthcare processAccessIntakeAssessDiagnoseTreatDischargeBillFollowup

By Don, DoneThat’s AI coach · updated

Dual cites or do not fire

The quality outcome is an alert that names the administration event and the vital or lab shift that followed it. If the model cannot point at both, it should not page the floor.

A nurse still assesses. The flag is not a diagnosis, not an allergy, and not a completed adverse-drug-event record. Empty output is the correct output when the medication and observation stream looks ordinary. Do not invent an ADE rate to prove the feed is working.

This page is about what happened after a dose was documented as given. Order-time collision checks belong with real-time drug interaction monitoring. Physiology scores that ignore the MAR belong with early warning score automation. Use those tools beside this one; do not merge their alerts into a single unexplained banner.

Load the MAR and the signs on one clock

Start with the medication administration record. The model needs the product, dose, route, documented administration time, and the patient the scan or charting attached to. An order time is not an administration time. A late-charted dose still needs the time the nurse recorded as given, not the time the order dropped.

Bring vitals onto that same clock: blood pressure, heart rate, respiratory rate, temperature, oxygen saturation, and any unit-specific signs you already chart, including pain, sedation, or glucose if they live on the flowsheet. Bring only the labs the inpatient team already uses for that patient, typically the recent result panel, not a research warehouse dump.

EHR suites such as Epic and Oracle Health already store MAR rows and vital observations. FDB-class drug knowledge can annotate which agents are associated with known reaction patterns. Philips-class monitors can supply high-frequency vitals. None of those vendors is the alert. The alert is the pairing: this MAR line, this subsequent measured shift.

If the only finding is a lab drift with no administration in the window, send that work to lab result anomaly detection. Do not mint an ADE signal to fill the gap.

Clock alignment is part of the load, not a later polish. Overnight, transfer, and OR-to-floor handoffs are where MAR timezones and monitor timezones diverge. A dual cite on the wrong hour is a false pair. Fix mapping of patient, encounter, and timestamps before you argue about sensitivity.

Copied-forward vitals are not measurements. If the last blood pressure was carried from two hours ago, it cannot be the shift half of the cite. Require a recorded observation after the administration, within the window pharmacy and nursing agree is clinically plausible for that route.

Pharmacy and nursing should write that window down by route: IV push versus infusion versus oral, and high-alert agents versus the rest. The model should not pick a generic two-hour lookback that ignores how the drug actually reaches the patient.

What nursing should see

When both halves exist, the alert should read like a fragment the nurse can check in the chart: the drug, dose, route, and MAR time, then the vital or lab change and its time. The nurse should not have to guess which of three cefepime doses the model meant.

Keep the wording observational. A usable alert names the documented administration and the later measured change. It does not name a syndrome. Treating the flag as a diagnosis is how a quality signal becomes a false charted reaction.

Route first to the nurse already accountable for that patient. Pharmacy can take a parallel copy when the product is high-alert, when the MAR line is pharmacy-verified, or when the suspected agent is one the P&T committee already listed for dual-cite review. Do not dump these into a general in-basket that nobody owns at 02:00.

Do not auto-file an ADE, allergy, or problem-list entry from the flag. The nurse looks at the patient, the MAR, stacked agents, fluids, bleeding, and the rest of the picture. If they judge a reaction, they document it under existing policy. If they judge something else, they treat that. The model pointed at two timestamps. It did not complete the assessment.

This signal is extra context on a scored patient, not a second competing page. If an early warning score is already firing, attach the dual cite as supporting text rather than a separate interrupt with the same physiology.

Patients also followed under remote patient monitoring with escalation still need this logic bound to the inpatient MAR. A home blood-pressure row after discharge is not an administration-linked inpatient event.

Ordinary streams stay empty

Most administrations are uneventful. The model should produce nothing. Silence is not failure until a later documented reaction could have been cited from the same MAR line and a measured shift that was already in the feed.

Do not lower the threshold so the inbox stays busy. A unit that sees a flag after every antibiotic will stop opening them. Empty stays empty when vitals and labs after the dose stay within that patient's own recent range.

Documented late administrations will create false pairs if you treat order time as dose time. Require the MAR event. Require a measured vital or lab after that event. If either is missing, stay empty.

Do not invent a reaction class because the drug's monograph lists it. FDB-class labels are context for reviewers, not the alert text, and not a reason to fire when the signs did not move.

Overnight staffing makes this rule harder to keep. A quiet board looks like a broken feed. It is not. Spot-check a handful of recent administrations against vitals instead of turning the volume up.

An illustrative pairing

A night nurse documents IV hydralazine for a hypertensive spike. Forty minutes later the same encounter shows a clear drop in mean arterial pressure and a rise in heart rate on a new vital set, not a copied-forward row. The model fires with both cites: the administration line and the MAP and heart-rate shift, each with a time.

The nurse does not chart a hydralazine reaction from the banner. They open the MAR, open the vitals, check whether a second antihypertensive stacked, check volume and bleeding, and they assess the patient. If the picture is a reaction, they follow ADE policy. If it is something else, they treat that. No caught-in-time percentage. No invented severity.

If the same MAP drop arrived with no MAR event in the agreed window, this ADE signal stays empty. A monitor alarm or an early warning score can still fire. That split is the point: no administration line, no dual-cite ADE alert.

The example is a pattern check, not a unit result. Your drugs, windows, and who gets the page will differ. The rule does not: two cites, or silence, then a nurse assesses.

Failure modes that look like quality

An alert with no MAR line is not this use case. Kill it or reclassify it. Staff will assume a drug caused the change, and that assumption is how invented reactions enter the record.

A dual cite that names the wrong administration, the morning oral dose instead of the afternoon IV, is almost as harmful. Pharmacy should see the product identifier the model used, not a generic drug name that matches three MAR rows.

Do not let the model write likely hypersensitivity or a similar diagnosis into the alert body. Observational cites only. The nurse assesses. Pharmacy can review. The covering clinician decides whether the chart changes.

Quality review can sample dual-cite alerts against later documented reactions and against alerts that nurses dismissed with a reason. That audit is how you learn whether clocks, copied vitals, or late charting are feeding junk. It is not a license to publish a made-up ADE rate as evidence the model works.

Keep Epic or Oracle Health as the system of record for the MAR. Keep FDB-class knowledge as annotation. Keep Philips-class waveforms as evidence of the measured shift. None of them should ship a silent diagnosis. If you cannot cite the administration and the shift, leave the stream empty.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first