Check adverse-event narratives against their case data
For: Pharmacovigilance lead or safety writer preparing case narratives for a study report or aggregate report
The pain today
Hundreds of case narratives are written from line listings. Dates, doses, outcomes and causality statements slip out of step with the source data, and reviewers catch it by reading every narrative against every listing.
The ask
“I attached the adverse-event narratives and the de-identified case listings they were written from. For each narrative, tell me every place where a date, dose, event term, outcome, action taken or causality statement does not match the listing, and quote both sides.”
Plain words, as you would say it to a colleague. Edit it to fit your case before you send it.
What you attach or connect
- De-identified case narratives as text
- Case line listings exported as text
- Narrative writing conventions
The unit of work
One worker task per one case narrative with its listing rows.
Why a swarm fits
A narrative is checked only against its own case rows, so context per unit is tiny and cases are independent. Two independent readings matter because a missed mismatch is a finding at inspection.
Not for
Identifiable patient data without the right agreements in place. It does not assess causality, seriousness or expectedness.
The decision tree
5 typed decisions, each with an action for every answer
At fixed moments in a run, the engine puts one narrow question to a decision model. The decision model never writes text: it answers yes or no with a probability, picks from listed options, or gives a score, about a small slice of the material. The engine then does exactly what this tree says, which is what makes the run auditable. The thresholds are the template's design values, not measured results.
Planner, while planning
Scope checkYes or no, with a probability
Before work starts on a unit
Do the case identifier and event term in this narrative match the identifier and at least one event row in the paired listing extract?
Sees only: The narrative header and the paired listing rows
Why: Prevents a narrative from being checked against another case's data.
- Yes: 0.60 or higherthenAccept
- Unsure: 0.30 up to 0.60thenEscalate to a strong model
- No: below 0.30thenSkip this unit
After workers, the judge checks
Evidence checkYes or no, with a probability
After a worker answers
Do the quoted narrative sentence and the quoted listing value state different values for the same field of the same event?
Sees only: One narrative sentence, one listing row and the field name
Why: Keeps wording differences, such as date formats, from being reported as data mismatches.
- Yes: 0.85 or higherthenAccept
- Unsure: 0.50 up to 0.85thenEscalate to a strong model
- No: below 0.50thenReject and retry
Reconciler, while merging
Conflict checkA choice among options
While reconciling
Are the two readers' findings about the same field of the same event in this case?
Sees only: One finding from each reader with their quotes
Why: Uses the second family as a real check: single-reader findings are re-read, not trusted or dropped.
- Same field, both report a mismatchthenAccept
- Same field, only one reports a mismatchthenEscalate to a strong model
- Different fields or eventsthenContinue
Run control, between rounds
Retry or stopA choice among options
After a rejection or low confidence
After the re-read, does the listing row state the value, state a different one, or leave the field blank?
Sees only: The disputed narrative sentence and the full listing row
Why: Settles reader splits from the source row and keeps blank-source cases open.
- Row matches the narrativethenReject and retry
- Row differs from the narrativethenAccept
- Field is blank in the listingthenMark unresolved
Accountable person, before anything is settled
Person decidesYes or no, with a probability
Before anything is reported as settled
Does the finding concern a causality statement, a seriousness criterion, an outcome or a dose of the suspect product?
Sees only: One confirmed mismatch with both quotes
Why: Puts every medically meaningful mismatch in front of the safety physician before the narrative is corrected.
Accountable: The safety physician owns causality and seriousness assessment and signs every narrative; the swarm only points at mismatches.
- Yes: 0.40 or higherthenAsk a person
- Unsure: 0.15 up to 0.40thenAsk a person
- No: below 0.15thenAccept
The fleet: who does what
Model tiers by role, not brands: you choose the models. Strong reasoning models plan and reconcile, small fast models do the wide work, and the judge is a decision model from a different family, so it does not share the workers' blind spots.
Planner
A strong reasoning model pairs each narrative with its listing rows and fixes the list of fields to compare.
Decisions here:1. Scope check
Workers
Two sets of small workers from different families each compare the same narrative to its rows, without seeing each other.
Designed for 30 to 300 agents, one worker task per one case narrative with its listing rows. Each worker receives only its own unit.
Judge, from a different model family
A decision model from a third family rules on each disagreement between the two readings or keeps it open.
Decisions here:2. Evidence check
Reconciler
A strong reasoning model merges confirmed mismatches by field type and lists cases where the readers still disagree.
Decisions here:3. Conflict check4. Retry or stop
Accountable person
The safety physician owns causality and seriousness assessment and signs every narrative; the swarm only points at mismatches.
Decisions here:5. Person decides
Checked before anything is accepted
- Each mismatch quotes the narrative sentence and the listing value
- A mismatch is confirmed only when both readers or the judge support it
- Narratives with no matching listing rows are flagged, not checked against a guess
What comes back
- Mismatch list per case with both quotes
- Open disagreements between the two readers
- Mismatch counts by field type across the set
- Cases that could not be paired
What to measure
- Mismatches confirmed by the safety reviewer on a sample
- Mismatches the reviewer found that the swarm missed
- Reviewer time per narrative
- Cost per narrative
Names of measures only. No result is claimed for this template.
Templates open in the workspace chat with the ask filled in. Nothing runs until you send it.
Get early accessSign in to useMore in Healthcare and life sciences
Grade protocol deviations across trial sites, with evidence
For: Clinical operations lead or trial quality manager at a sponsor or contract research organisation
Deviation logs and monitoring reports pile up across sites.
Trace every summary claim in a dossier back to its study report
For: Regulatory affairs lead or medical writer assembling a marketing application
Summary documents restate results from many study reports.
Watch guideline and label changes against local clinical protocols
For: Medication safety pharmacist or clinical governance lead at a hospital group
National guidelines, product labels and safety notices change all year.