{
 "use_case": "pv-intake",
 "title": "PV intake: an email whose day 0 is earlier than it looks, a recorded call, and a German email with no identifiable patient",
 "about": "Three synthetic adverse event reports about fictional medicines. The pharmacist's email about angioedema with an overnight admission must be a valid, serious, unexpected case whose day 0 is 2 Sep 2026 (the day the sales representative was told), not the 8 Sep received date, so the US and EU 15-day reports are due 17 Sep 2026. The recorded call (house voices, voiced in the audio drama studio through the consent ledger) is transcribed and must be a valid, serious, unexpected biologic case due 30 Sep 2026, with the lot number captured. The German email has no identifiable patient: not a valid case, no clock, and follow-up questions come back in German. The signed case record verifies and fails once changed; the safety physician's decision is signed.",
 "licence": "Synthetic (CC0): the reports, medicines (Veltarin, Zorvimab), company and people are invented (decosa_api/verticals/pv/data/samples.json). The call audio was rendered with Kokoro-82M (Apache-2.0) house voices. Part of decosa-api, AGPL-3.0-or-later.",
 "inputs": [
  {
   "file": "inputs/angioedema-email.txt",
   "what": "The pharmacist's email as received."
  },
  {
   "file": "inputs/veltarin-product.json",
   "what": "Veltarin's name, type and reference label (adverse reactions)."
  },
  {
   "file": "inputs/febrile-neutropenia-call.mp3",
   "what": "The recorded medical information call (75 s, MP3, C2PA credential inside)."
  },
  {
   "file": "inputs/zorvimab-product.json",
   "what": "Zorvimab's name, type (biologic) and label section 6."
  },
  {
   "file": "inputs/german-email.txt",
   "what": "The German pharmacist's email."
  }
 ],
 "steps": [
  {
   "id": "clock",
   "method": "POST",
   "path": "/pv/clock",
   "auth": false,
   "body": {
    "day0": "2026-09-02",
    "serious": true,
    "unexpected": true,
    "today": "2026-09-09"
   }
  },
  {
   "id": "email",
   "method": "POST",
   "path": "/pv/intake",
   "timeout": 600,
   "body": {
    "report": {
     "kind": "email",
     "text": {
      "$file": "inputs/angioedema-email.txt"
     },
     "received_date": "2026-09-08",
     "id": "HP-2026-0412"
    },
    "product": {
     "$file": "inputs/veltarin-product.json"
    },
    "regions": [
     "us",
     "eu"
    ],
    "draft_narrative": false,
    "today": "2026-09-09",
    "title": "Rehearsal: angioedema email"
   }
  },
  {
   "id": "verify",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "email.record"
    }
   }
  },
  {
   "id": "tampered",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "email.record"
    }
   },
   "tamper": {
    "at": "record.statement.serious",
    "set": "no"
   }
  },
  {
   "id": "decide",
   "method": "POST",
   "path": "/pv/decide",
   "body": {
    "case_record": {
     "$ref": "email.record"
    },
    "validity": "valid",
    "seriousness": "serious",
    "expectedness": "unexpected",
    "causality": "implied_spontaneous",
    "submit": [
     "us_15_day",
     "eu_15_day"
    ],
    "decider": {
     "name": "Rehearsal Reviewer",
     "role": "Safety physician"
    },
    "rationale": "Angioedema with an overnight admission; angioedema is not in the reference safety information."
   }
  },
  {
   "id": "verify_decision",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "decide.record"
    }
   }
  },
  {
   "id": "call",
   "method": "POST",
   "path": "/pv/intake",
   "timeout": 900,
   "body": {
    "report": {
     "kind": "call",
     "audio_b64": {
      "$b64": "inputs/febrile-neutropenia-call.mp3"
     },
     "language": "en",
     "received_date": "2026-09-15",
     "id": "MI-CALL-3310"
    },
    "product": {
     "$file": "inputs/zorvimab-product.json"
    },
    "regions": [
     "us",
     "eu"
    ],
    "draft_narrative": false,
    "today": "2026-09-16",
    "title": "Rehearsal: recorded call"
   }
  },
  {
   "id": "german",
   "method": "POST",
   "path": "/pv/intake",
   "timeout": 600,
   "body": {
    "report": {
     "kind": "email",
     "text": {
      "$file": "inputs/german-email.txt"
     },
     "received_date": "2026-09-16",
     "id": "DE-2026-0340"
    },
    "product": {
     "$file": "inputs/veltarin-product.json"
    },
    "regions": [
     "eu"
    ],
    "draft_narrative": false,
    "today": "2026-09-17",
    "title": "Rehearsal: German email"
   }
  }
 ],
 "checks": [
  {
   "says": "with day 0 on 2 Sep 2026, the US 15-day report is due 17 Sep 2026 (no model)",
   "path": "clock.rows[id=us_15][0].deadline",
   "equals": "2026-09-17"
  },
  {
   "says": "the email is a valid case (all four minimum criteria)",
   "path": "email.criteria.valid",
   "equals": true
  },
  {
   "says": "it is serious (hospitalisation, quoted)",
   "path": "email.seriousness.serious",
   "equals": "yes"
  },
  {
   "says": "and unexpected against the label",
   "path": "email.expectedness.unexpected",
   "equals": "yes"
  },
  {
   "says": "day 0 is 2 Sep, the day the sales representative was told, not the 8 Sep received date",
   "path": "email.clock.day0",
   "equals": "2026-09-02"
  },
  {
   "says": "so the first deadline is 17 Sep 2026",
   "path": "email.clock.primary.deadline",
   "equals": "2026-09-17"
  },
  {
   "says": "the identifiable patient is met by quotes from the report (her age among them)",
   "path": "email.criteria.criteria[id=patient][0].evidence[quote~67]",
   "count_min": 1
  },
  {
   "says": "the signed case record verifies",
   "path": "verify.ok",
   "equals": true
  },
  {
   "says": "a record whose seriousness was changed no longer verifies",
   "path": "tampered.ok",
   "equals": false
  },
  {
   "says": "the safety physician's decision is signed and verifies",
   "path": "verify_decision.ok",
   "equals": true
  },
  {
   "says": "the call is transcribed by a speech recogniser",
   "path": "call.intake.asr.model",
   "exists": true
  },
  {
   "says": "the call is a valid, serious case",
   "path": "call.seriousness.serious",
   "equals": "yes"
  },
  {
   "says": "febrile neutropenia is unexpected against a label that lists only neutropenia",
   "path": "call.expectedness.unexpected",
   "equals": "yes"
  },
  {
   "says": "the call's 15-day reports are due 30 Sep 2026",
   "path": "call.clock.primary.deadline",
   "equals": "2026-09-30"
  },
  {
   "says": "the German email is not a valid case: no identifiable patient",
   "path": "german.criteria.missing",
   "contains": "patient"
  },
  {
   "says": "so no clock starts",
   "path": "german.clock.day0",
   "equals": null
  },
  {
   "says": "the first follow-up question comes back in German",
   "path": "german.followups[0].question_in_reporter_language",
   "exists": true
  },
  {
   "says": "every model call has a signed receipt",
   "receipts": "signed",
   "min": 8
  }
 ]
}