Most drug-interaction alerts arrive as a verdict with no receipt. "Major interaction." Says who? Based on what? A clinician can't tell, so — under time pressure, for the hundredth alert that shift — they override it and move on. The alert was probably right. The opacity is what killed it.
We think an alert should arrive carrying its own evidence, in a format the EHR already speaks. Two ideas do the work: proof-carrying, and FHIR-native.
Proof-carrying: every claim shows its receipt
Every interaction we assert cites the FDA structured product label (SPL) sentence it came from — not "a reference," the actual span: the label's set ID, the LOINC section code (§34073-7, the drug-interactions section), and the verbatim sentence, down to the source document. Per-edge provenance completeness is 1.0 on our evaluation set: every asserted edge carries its span.
For a derived interaction — one composed along a mechanism chain — the proof is the path. The flagship example is clarithromycin ↔ simvastatin via CYP3A: the reasoner walks "clarithromycin inhibits CYP3A4" and "simvastatin is a substrate of CYP3A4," and hands you both cited label spans as the two-hop proof. The alert isn't "trust me." It's "here's the derivation; check it."
That's the real answer to alert fatigue. You don't fight overrides with louder alerts; you fight them by making every alert interrogable.
FHIR-native: it drops into the tools you already run
An explainable alert is worthless if it can't reach the point of care, so the delivery is standards-native:
- CDS Hooks — a worked example emits the discovery response plus the cards an EHR renders, and each card's
detailcarries the SPL basis. (It's a demo over one synthetic patient — no PHI, not a deployment — and labeled as such.) - FHIR ClinicalUseDefinition — interactions serialize as the R5 resource built for exactly this, so a FHIR-literate system ingests them without a custom adapter.
- RDF / Turtle — for graph-native consumers, the same knowledge exports as a
.ttlsubset you can load into a triple store and query directly.
No incumbent ships an alert that is both auditable to its source label and delivered in the EHR's own idiom. That combination — proof plus protocol — is the product.
The honest frame
This is a build-in-public project. The CDS-Hooks surface is a demo, not a hardened deployment; coverage is a growing corner of the interaction space, not parity with a million-pair catalog; and the FHIR-RDF export is a well-scoped subset, not full OWL/ShEx conformance. We say all of that out loud, because the whole pitch is that we show our work — and a database whose brand is honesty doesn't get to be coy about its own edges.
Every number here regenerates from cargo test. That's the point: you don't have to take the alert on faith. Neither do we.
Coverage is labeled growing, never parity. Public naming and launch timing are not yet decided. Evidence lives on-disk under research/shared/eval-data/.