Multi-site healthcare
AI Patient Operations
We cannot add clinical hours because reception is the bottleneck.
A four-site clinic group where the binding constraint on capacity is administrative, not clinical. Reception handles booking, rescheduling, confirmations and a steady stream of non-clinical questions while the phone keeps ringing. Did-not-attend rates leave slots empty that a waiting list could have filled, and patients supply the same information at every touchpoint.
The product
AI Patient Operations
The queue, the approval screen, the exception list. Every number is readable and every handover is visible.
Built by Koderead to show the operating system. Figures are a worked example.
Watch one record
Where the handover actually happens.
A screenshot shows a state. This follows a single record through the system, including the point where it stops and waits for a person.
Patient messages out of hours22:40
The practice closed six hours ago.
Availability resolved across sites22:41
All four diaries, clinician and room together.
Released slot offered onward22:42
Waiting list worked by clinical priority, set by clinicians.
A different message stops everything09:58
Mentions chest pain. Never auto-resolved, no exceptions.
State
- Channel
- SMS
- Request
- Move Thursday's appointment
- Site
- Northgate
- Staff available
- None
No clinical advice, triage, diagnosis or medication guidance — absolute, and written into scope
Deeper into the build
The screens where a person is still in the loop.
A queue is easy to show. What matters is what happens at the record, at the approval, and at the exception — because that is where the design either holds or does not.
| Received | Channel | Trigger | Routed to | |
|---|---|---|---|---|
| 09:58 | SMS | Mentioned chest pain | Duty clinician | Immediate |
| 11:20 | Web | Asked about medication dose | Duty clinician | Immediate |
| 14:02 | Phone | Described worsening symptom | Duty clinician | Immediate |
| 16:41 | SMS | Parking and access only | Resolved | Administrative |
No clinical advice, triage, diagnosis or medication guidance. The boundary is absolute and written into the scope before the build.
- Slot utilisation
- 91.4%
- Did-not-attend
- 6.8%
- Intake before arrival
- 84%
was 84.2%
was 11.4%
- Cancellations backfilled from waiting list126 of 178
- Booked without reception involvement1,402 of 1,960
- Escalated to clinical staff318
The binding constraint on this practice was administrative, not clinical. Adding clinician hours would not have increased throughput.
The change
Where the work moved.
Amber marks a step the system performs. Solid ink marks one a person still performs. The counts above each column say the same thing in numbers.
Today
5 human steps- Performed by Customer
Patient calls to rebook
During clinic hours only
- Performed by A person
Reception checks the diary
- Performed by A person
Offers what they can see
One site at a time
- Performed by A person
Updates the record by hand
- Performed by A person
Cancellation leaves a gap
Waiting list not worked
- Performed by A person
Intake form completed on arrival
After
1 human step- Performed by Customer
Patient rebooks any hour
Phone, web or message
- Performed by Automated
Availability resolved
Across all four sites
- Performed by System
Record updated directly
- Performed by System
Released slot offered to waiting list
By clinical priority
- Performed by Automated
Pre-arrival intake collected
- Performed by A person
Anything clinical escalated
Immediately, never auto-resolved
- Automated
- A person
- System
- Customer
Scope of authority
What this system is not allowed to do.
On a real engagement this is a document your operations lead signs before anyone writes code.
- No clinical advice, triage, diagnosis or medication guidance — absolute, and written into scope
- Any message containing a symptom escalates to qualified staff immediately and is never auto-resolved
- Urgent or emergency language triggers human handover with clear signposting
- Patient data handled under HIPAA / GDPR terms appropriate to jurisdiction, processed inside the clinic's own tenancy
- Clinical priority on the waiting list is set by clinicians, never inferred by the system
Built from
The solutions behind this build.
Your version of this
This took a mapped workflow before it took any code.
If this looks like your multi-site healthcare, the place to start is the same place we started here.