Trap · frequency · patient PT010
BD read as once a day
Twice daily counted once halves the daily dose on paper and hides a real overdose.
The patient's rows
Exactly what the agent sees for PT010, copied from the chart. The value this mistake misreads is underlined.
| patient_id | age_years | sex | weight | weight_unit |
|---|---|---|---|---|
| PT010 | 80 | M | 68 | kg |
| patient_id | creatinine | creatinine_unit | collected_at |
|---|---|---|---|
| PT010 | 2.1 | mg/dL | 2026-11-01T06:17 |
| order_id | patient_id | drug | dose_mg | frequency | start_time | status |
|---|---|---|---|---|---|---|
| RX5724 | PT010 | Aldrovexin | 500 | BD (the value this mistake misreads) | 2026-10-31T11:51 | active |
| RX3857 | PT010 | Bremazotan | 100 | OD | 2026-10-22T10:35 | active |
Two readings of the same rows
Every step is shown. Where the careless reading goes wrong, the value is underlined.
What a careless agent computes
Reads BD, Latin for twice a day, as once daily.
- Weight
- 68 read as kg → 68 kg
- Creatinine
- 2.1 mg/dL (2026-11-01T06:17) read as mg/dL → 2.10 mg/dL
- CrCl
- (140 − 80) × 68 ÷ (72 × 2.10) = 27 mL/min
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX5724Aldrovexin | 500 × 1 = 500 mg (the value this mistake misreads) | 750 mgCrCl 15-30 | no (the value this mistake misreads) |
| RX3857Bremazotan | 100 × 1 = 100 mg | 200 mgCrCl 25-50 | no |
Output line: {"crcl_ml_min":27,"flagged_order_ids":[]}
The correct answer
Reads the unit, status, frequency and time columns as the instruction says, and flags only a daily dose strictly over the band's limit.
- Weight
- 68 read as kg → 68 kg
- Creatinine
- 2.1 mg/dL (2026-11-01T06:17) read as mg/dL → 2.10 mg/dL
- CrCl
- (140 − 80) × 68 ÷ (72 × 2.10) = 27 mL/min
| Order | Daily dose | Limit | Flagged |
|---|---|---|---|
| RX5724Aldrovexin | 500 × 2 = 1000 mg | 750 mgCrCl 15-30 | yes |
| RX3857Bremazotan | 100 × 1 = 100 mg | 200 mgCrCl 25-50 | no |
Output line: {"crcl_ml_min":27,"flagged_order_ids":["RX5724"]}
The test that catches it
The careless output, graded by the task's real test file. This is what pytest printed.
Flagged set exact · PT010test_flagged_orders_exact[PT010]
AssertionError: PT010: flagged [] vs expected ['RX5724']
@pytest.mark.parametrize("pid", PATIENT_IDS)
def test_flagged_orders_exact(by_patient, pid):
assert pid in by_patient, f"no output for {pid}"
got = by_patient[pid].get("flagged_order_ids")
assert isinstance(got, list)
assert set(got) == set(EXPECTED[pid]["flagged_order_ids"]), \
f"{pid}: flagged {sorted(got)} vs expected {EXPECTED[pid]['flagged_order_ids']}"
No other patient's answer moves under this mistake, so this one failure is the whole signal.