Prescription-to-order agent
A customer photographs a prescription. An order appears in the ERP.
Repeat medical-supply orders arrived as WhatsApp photographs of prescriptions, printed, handwritten, creased, badly lit. Every one had to be read by a person and retyped into the ERP. It was slow, it happened outside office hours, and a mistyped NHS number or quantity is a clinical problem, not just an admin one.
The agent reads the script image and extracts patient, NHS number, script number and every line item. It then holds a real conversation about the order: the customer can say "actually make it 6", "that's not aproderm, it's tegaderm film 12x12", or "also add 10 atrauman", and the order updates. It resolves products and account codes against the live CIN7 catalogue, reads the order back, and raises it once the customer confirms.
It handles the awkward cases too: splitting a script when the patient wants more than the prescribed quantity (the extra becomes a separate sales order), recording NHS exemption codes, and tracking whether an electronic script has been returned to the NHS Spine.
Three independent controls, because in a regulated medical context a confident wrong answer is worse than no answer.
- The model is never the last word on a number. NHS numbers carry a Modulus-11 check digit, so a misread is caught arithmetically. The EPS barcode is decoded independently and cross-checked against what the model read.
- Every generated reply passes an output guardrail. The agent may rephrase verified facts naturally, but it is blocked from stating a price, a stock level, an ETA, or anything clinical. A rejected reply never reaches the customer: it falls back to a fixed template or goes to a human.
- It never invents. The vision step is instructed to return
nulland flag the field as unclear rather than guess, so "I couldn't read this" is a first-class outcome that triggers a follow-up question.
The engine ships with a send-mode ladder: observe processes every message and logs what it would have sent, without sending; approve queues replies in an outbox and a human taps Send on each one; auto is full production.
You watch it work on your real traffic for as long as you like before it is allowed to speak to a customer. Autonomy is earned, not switched on at launch.
Orders arrive the way customers already communicate, no portal, no app, no training, no office hours. Staff stop retyping prescriptions, and the only conversations that reach a person are the ones that genuinely need judgement. Orders are created in CIN7 as drafts, never auto-authorised, so the warehouse still reviews before anything ships.