Trap · frequency · patient PT009

q8h read as eight doses a day

Every eight hours is three doses, not eight. The misreading raises alarms on orders that are fine.

The patient's rows

Exactly what the agent sees for PT009, copied from the chart. The value this mistake misreads is underlined.

patients.csv
patient_idage_yearssexweightweight_unit
PT00939F59kg
labs.csv
patient_idcreatininecreatinine_unitcollected_at
PT0090.9mg/dL2026-10-31T05:48
meds.csv
order_idpatient_iddrugdose_mgfrequencystart_timestatus
RX4864PT009Cylvarone200q12h (the value this mistake misreads)2026-10-18T07:55active
RX3742PT009Exalmizide600q8h (the value this mistake misreads)2026-10-24T00:13active

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

Takes the number in qNh as doses per day, so q8h becomes 8 a day and q12h becomes 12.

Weight
59 read as kg → 59 kg
Creatinine
0.9 mg/dL (2026-10-31T05:48) read as mg/dL → 0.90 mg/dL
CrCl
(140 − 39) × 59 ÷ (72 × 0.90) × 0.85 = 78.2 mL/min
OrderDaily doseLimitFlagged
RX4864Cylvarone200 × 12 = 2400 mg (the value this mistake misreads)900 mgCrCl 45-90yes (the value this mistake misreads)
RX3742Exalmizide600 × 8 = 4800 mg (the value this mistake misreads)2000 mgCrCl ≥ 70yes (the value this mistake misreads)

Output line: {"crcl_ml_min":78.2,"flagged_order_ids":["RX3742","RX4864"]}

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
59 read as kg → 59 kg
Creatinine
0.9 mg/dL (2026-10-31T05:48) read as mg/dL → 0.90 mg/dL
CrCl
(140 − 39) × 59 ÷ (72 × 0.90) × 0.85 = 78.2 mL/min
OrderDaily doseLimitFlagged
RX4864Cylvarone200 × 2 = 400 mg900 mgCrCl 45-90no
RX3742Exalmizide600 × 3 = 1800 mg2000 mgCrCl ≥ 70no

Output line: {"crcl_ml_min":78.2,"flagged_order_ids":[]}

The test that catches it

The careless output, graded by the task's real test file. This is what pytest printed.

  • Flagged set exact · PT009test_flagged_orders_exact[PT009]

    AssertionError: PT009: flagged ['RX3742', 'RX4864'] vs expected []
tests/test_outputs.py
@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.