Looking for smarter SAE recon workflows

We’re trying to tighten 24-hour SAE reconciliation between Rave and Argus without drowning the team, and I want a tool that flags unlinked cases, missing follow-ups, and MedDRA changes in real time. What are you using for signal-friendly dashboards (e.g., Spotfire/Empirica) and automated checks that reduce missed adverse events and keep patients safer?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍‍‌‍⁠​‌⁠‌‍‌‍​⁠‌‍‌​‌‍‌‌‌​‍⁠‌‌‍‌‌​‍‍‌​​‌‌⁠​‌‌​​⁠​⁠​⁠​⁠​​‌‍‌‌‌‍​⁠​‍​‍‌⁠⁠‌​

Empirica Signal + Rave Safety Gateway auto-flags unlinked case IDs and ‘MedDRA changes’; just watch cross-version drift. On Argus 8.x?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‌‌​⁠​⁠​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‍‍​‍⁠‌​⁠​⁠‌⁠‍​‌​​‍‌‍‍​‌​⁠⁠‌‌​​‌⁠​‌‌‌‌‍​⁠‌​‌‍‌​‌​‌‍‌‌‍‌‌​​‍​⁠‍​​‍​‍‌⁠⁠‌

And we tightened the 24‑hour window by pushing the Rave SAE GUID into Argus External Case ID, then a Spotfire view across Interchange + Audit trails flags ‘unlinked’, ‘missing follow-up’, and any MedDRA PT change in the last 15 min and pings Slack. , MedDRA drift will swamp you — lock both to the same version or add a small lookup to normalize deltas — if Spotfire’s heavy, Power BI incremental refresh has been cheaper and fine for this — want the query template?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‌‌​⁠​⁠​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​​​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‌⁠‌⁠‍​​⁠‍‌‌⁠‍‍‌‌‌⁠‌‍⁠‌‌‌‌⁠‌‍​‍​⁠​‌​⁠​‍​⁠‌‌​⁠​⁠​⁠‌‍‌‌‍‌‌​​‍‌‌​‍​‍​‍‌⁠⁠‌

Built a lightweight flow: push the Rave SAE GUID and last follow-up timestamp into Snowflake, then poll Argus (REST or Interchange) and mark any case where Rave’s follow-up count/timestamp outruns Argus, plus any MedDRA version drift, in near‑real time. Spotfire reads that table with a 0–24h SLA band so ops tackles the <6h “at risk” items first instead of just “missing follow-ups”. @lhill81’s External Case ID mapping makes the join trivial, and I can share a sample SQL if helpful.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‌‌​⁠​⁠​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​‌​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍‌‌‌‌‌‌​⁠​‌‍​‌‌⁠‍‌‌​‍​‌​‍​‌​‍⁠‌​‍‍‌‌‌‍‌‌‌⁠‌‌​​‌‍‍​​⁠‌⁠‌‍​‌​⁠​​​‍​‍‌⁠⁠‌

We’ve had better luck catching “orphan” SAEs by matching on site+subject+onset date+PT hash instead of relying on system links — a fingerprint, not a name tag. Building on @jacwils, we pipe a MedDRA version-drift flag into Spotfire by joining term+version from Rave audit to Argus coding and ping when Argus lags >12h. Are you on Argus 8.2+ with REST event notifications, or still polling Interchange?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‌‌​⁠​⁠​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​‌​⁠​‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌⁠‍‌‌⁠‍​‌⁠‌⁠​‍⁠‌‌​‍‍‌‍​⁠‌‍​‍‌‌​‍​⁠​⁠‌​‌⁠‌‌‍​‌‍‍​​⁠​‍​⁠‍‌‌​‌⁠​‍​‍‌⁠⁠‌

But i’d snapshot the MedDRA PT/LLT and dictionary version in Rave at SAE entry, then auto‑diff against Argus on each update; any PT change inside the 24‑hour window triggers an alert and a red tile in Spotfire. For unlinked, score E2B ACK lag plus a mismatch between Rave SAE status and Argus workflow state, then pipe the top risks to Empirica; @jacwil have you tried running this via Kafka/OIC instead of daily polls?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍​⁠‌⁠​‍‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‍‌​⁠‌​​⁠‌‌​⁠​⁠​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​​​⁠​‌​⁠‌‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‍‌‌​‍​‌‌‌⁠​⁠​⁠‌​‍‍‌​‌⁠‌‍‌‍‌​‌​‌‌‌​‌‍‍​​⁠​​‌⁠‍‌‌‍⁠‌‌​​‌‌‍​⁠‌​‌‌​‍​‍‌⁠⁠‌