Check adverse-event narratives against their case data

For: Pharmacovigilance lead or safety writer preparing case narratives for a study report or aggregate report

Pattern: Cross-examinationNeeds scaleDesigned for 30 to 300 agents

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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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.

  1. 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

  2. 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.

  3. 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

  4. 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

  5. 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 use

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.

Pattern: Map, verify, reduceNeeds scale6 decisionsDesigned for 40 to 400 agents