Skip to content
Koderead

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.

Today

ReceptionNorthgate

Appointments this week
1,960
Booked without staff
1,402

71.5%

Escalated to staff
318

clinical or complex

Cancellations backfilled
126

of 178 released

Did-not-attend
6.8%

was 11.4%

Intake before arrival
84%
Appointment board — AI Patient Operations
TimeSiteClinicianStateHow it was filled
09:00NorthgateDr A. FenwickBookedRebooked by patient, 22:40 last night
09:20NorthgateDr A. FenwickBackfilledCancellation offered to waiting list, accepted in 4m
09:40RiversideDr M. OseiBookedIntake completed pre-arrival
10:00RiversideDr M. OseiEscalatedMessage mentioned chest pain — routed to staff immediately
10:20EastwoodMs R. KaurOpenOffered to waiting list, no response yet
10:40EastwoodMs R. KaurBackfilledFilled from list by clinical priority

The 10:00 row is the important one. A message mentioning a symptom is never resolved by the system — it routes to qualified staff immediately, and the slot is held.

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.

One evening message, start to finishWorked example
  1. Patient messages out of hours22:40

    The practice closed six hours ago.

  2. Availability resolved across sites22:41

    All four diaries, clinician and room together.

  3. Released slot offered onward22:42

    Waiting list worked by clinical priority, set by clinicians.

  4. 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.

Clinical escalation — never auto-resolvedImmediate handover
Clinical escalation — never auto-resolved
ReceivedChannelTriggerRouted to
09:58SMSMentioned chest painDuty clinicianImmediate
11:20WebAsked about medication doseDuty clinicianImmediate
14:02PhoneDescribed worsening symptomDuty clinicianImmediate
16:41SMSParking and access onlyResolvedAdministrative

No clinical advice, triage, diagnosis or medication guidance. The boundary is absolute and written into the scope before the build.

Capacity recoveredFour sites
Slot utilisation
91.4%

was 84.2%

Did-not-attend
6.8%

was 11.4%

Intake before arrival
84%
  • 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
  1. Patient calls to rebook

    During clinic hours only

    Performed by Customer
  2. Reception checks the diary

    Performed by A person
  3. Offers what they can see

    One site at a time

    Performed by A person
  4. Updates the record by hand

    Performed by A person
  5. Cancellation leaves a gap

    Waiting list not worked

    Performed by A person
  6. Intake form completed on arrival

    Performed by A person

After

1 human step
  1. Patient rebooks any hour

    Phone, web or message

    Performed by Customer
  2. Availability resolved

    Across all four sites

    Performed by Automated
  3. Record updated directly

    Performed by System
  4. Released slot offered to waiting list

    By clinical priority

    Performed by System
  5. Pre-arrival intake collected

    Performed by Automated
  6. Anything clinical escalated

    Immediately, never auto-resolved

    Performed by A person
  • 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.