PharmaVigil

An AI drug-safety platform: a pharmacy side-effect report becomes a de-duplicated, MedDRA-coded, triaged and reviewed case, sent to a regulator as a schema-valid ICH E2B(R3) message. Safety signals learned from public FDA FAERS reports flow back to the pharmacy counter as evidence, never as a verdict.

What it does

  1. Report. A pharmacist dispenses a drug (first-expiry-first-out lots) and reports a side effect in one click; partners send E2B(R3) messages over SOAP with WS-Security.
  2. Pipeline. Kafka carries each report through de-duplication, MedDRA coding and seriousness triage; the models run inside Java with ONNX Runtime.
  3. Review. A safety reviewer accepts or corrects every AI suggestion; each decision is stored next to the model's name, version and score.
  4. Submit. The approved case is exported as ICH E2B(R3) XML, checked against the official schemas, and sent over JMS to a mock regulator that answers ACK or NACK.
  5. Signals. PRR, ROR, IC, EBGM and a self-supervised Transformer (SafetyFormer) score drug–event pairs in FAERS; the counter shows them as evidence.

Architecture

Pharmacy app and partners send reports to intake-gateway; Kafka carries them through case-service (de-duplication, coding, triage, review); submission-gateway sends E2B(R3) over JMS to the mock regulator; signal-service feeds evidence back to the pharmacy app.

Results

Every number below comes from a script in the repository; its result file is committed and linked, and each states the data it was measured on. Items not measured yet say so.

Loading the evidence…

Live demo

The live demo runs on one Oracle Cloud Always Free ARM server. Its address and status are in the README (Live demo); a GitHub Action tests it end to end every day.

Limits