Skip to content

A patient platform designed for clarity and trust

A patient-facing platform for appointment booking, records access, and care communication, built with clarity, accessibility, and privacy in mind.

Mendlow
AccessibilityRuth CallowayAshcombe Clinic
Good morning, Ruth

Thu, Sep 17, 2026 · Ashcombe Clinic

Book an appointment
Thu24Sep 202609:40
Your next appointment

Blood pressure review

Dr. Tobias Reyne · Ashcombe Clinic, Room 4

Booked
Reminders by text and email, 48 hours and 2 hours beforeChangeCancel

Recent results · 6

2 just outside range, each with a note from your physician
TestResultMeasured againstDateStatus
Blood pressure, home averageJust above the home target. Dr. Reyne will go through it with you on Sep 24.138/87 mmHgbelow 135/85Sep 14Outside range
Total cholesterolA little above target. We will talk about it at your review on Sep 24.5.3 mmol/Lbelow 5.0Sep 15Outside range
HbA1c39 mmol/mol20–41Sep 15Within range
Potassium4.4 mmol/L3.5–5.3Sep 15Within range
TSH (thyroid)2.1 mU/L0.27–4.2Sep 15Within range
Hemoglobin134 g/L115–165Sep 15Within range

Results appear here once a clinician has read them and added a note.

Your display settingsText size: LargeContrast: StandardMotion: ReducedPlain language: OffChange

Your care team

Messages reach whoever is covering
Dr. Hana WhitlockPhysicianAway Sep 18–25
Dr. Tobias ReynePhysician
Priya LanchesterRegistered nurse
Owen MarshClinical pharmacist

Write to the whole team, not one person, so your message is read when someone is away.

Messages

1 new
Dr. Hana WhitlockSep 15, 10:05

Thank you for sending your home readings, Ruth. I would like Dr. Reyne to go through them with you while I am away.

Re: blood pressure reading, Sep 14

Prescription refills

7 items
3 due on Oct 1, 2026Order together
Amlodipine 5 mg tablets
Ramipril 5 mg capsules
Atorvastatin 20 mg tablets
Levothyroxine 50 microgramsReady for pickup

What the engagement involved

Industry
Healthcare & Dental Practices
Duration
20 weeks
Cooperation model
Time & materials
Services
Accessibility-first designSecure messagingRecords UX
Integrations
HL7 FHIRTwilioStripeDocuSign
Technologies
Next.jsTypeScriptTailwind CSSHIPAA VaultWebRTCPostgreSQL
Team
1 Project lead1 Product designer2 Frontend engineers1 Backend engineer1 QA engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

The screens

Every surface, in order

10:31
Book an appointment
Step 4 of 4: ConfirmNothing left after this
ReasonBlood pressure reviewEdit
ClinicianDr. Tobias Reyne, PhysicianEdit
WhereAshcombe ClinicEdit
Week of September 21Next week ›
Mon2108:50–14:1016:30
Tue22–11:20–15:40
Wed2309:10––17:00
Thu2409:4012:0014:50–
Fri25–10:30–16:10
09:40 held for you · 8:42 left
‹ BackConfirm booking

Step four of four: the earlier answers kept with an Edit beside each, the week of times still there as large targets with Thursday 09:40 chosen and held, and a Back that loses nothing.

10:36
‹ BackBlood pressure reading
To: Care team, Ashcombe Clinic
Who can read this thread

Dr. Whitlock, Dr. Reyne, nurse Priya Lanchester, pharmacist Owen Marsh. Reception: subject only.

My home monitor average this week is 138/87. It was lower in June. Should I book to see someone?

Attached: home average 138/87Mon, Sep 14, 19:22
Sent after hours · read at 08:04 Tue
Dr. Hana Whitlock, Physician

Thank you, Ruth. Yes, please book a review. I am away next week, so Dr. Reyne will see you and has these readings.

Tue, Sep 15, 10:05

Read 08:00–18:30, Monday to Friday. After hours, messages wait until the next business day. In an emergency, call 911.

Write to your care team

A thread with the care team about a home blood pressure average of 138/87, who else can read it listed, the reply from Dr. Whitlock, and the after-hours note stated plainly.

10:40
‹ BackBlood pressure
Latest · home average138/87 mmHgOutside below 135/85
Oct 2025 – Sep 2026– – home · ··· clinic
DateReading · measured against
Sep 14 ’26138/87Home · below 135/85
Aug 4 ’26136/86Clinic · below 140/90
Jun 16 ’26134/84Home · below 135/85
Apr 28 ’26138/88Clinic · below 140/90
Mar 10 ’26139/88Home · below 135/85
Jan 27 ’26146/92Clinic · below 140/90
Dec 9 ’25144/91Home · below 135/85
Oct 21 ’25152/96Clinic · below 140/90

Twelve months of blood pressure over the eight results behind it, each marked against its own range: below 140/90 in clinic, below 135/85 at home.

10:44
‹ BackPrescription refills
3 due on Oct 1, 20261 ordered, waiting at Lindell's Pharmacy
7 itemsStatus
Amlodipine 5 mgtablets · 28 tabletsDue Oct 1
Ramipril 5 mgcapsules · 28 capsulesDue Oct 1
Atorvastatin 20 mgtablets · 28 tabletsDue Oct 1
Levothyroxine 50 microgramstablets · 28 tabletsAt pharmacy
Omeprazole 20 mgdelayed-release capsules · 28 capsulesDue Oct 19
Cholecalciferol 800 unitscapsules · 30 capsulesDue Oct 23
Albuterol 100 micrograms/doseinhaler · 1 inhaler, 200 dosesDue Nov 6
Order the 3 due

Prescription refills: seven items, three due on October 1 and checked to order together, and the levothyroxine already ordered and waiting at the pharmacy.

10:47
‹ BackDisplay & reading
Text sizeEverything scales, nothing is cut off
DefaultLargeLargest
Contrast
StandardHigh
Motion
FullReduced
Plain language
OffOn
Preview

Thu, Sep 24, 09:40

Blood pressure review with Dr. Reyne

Motion reduced: no sliding or pulsing

These settings were audited to WCAG 2.1 AA before launch.

Text size, contrast, motion and plain language, with a preview of the next appointment in the chosen settings, audited to WCAG 2.1 AA before launch.

10:52
‹ BackStatements
Oct 2025 – Sep 2026 · 7 statements
Charged$671.00Insurance paid$487.00You paid$184.00
Insurance: Harlow Mutual Health, member ID ending 4471
Date · itemInsurerYou
Physician visit10/21/2025 · $85.0060.0025.00
Video visit12/09/2025 · $48.0030.0018.00
Physician visit, blood test01/27/2026 · $142.50110.0032.50
Video visit03/10/2026 · $62.0040.0022.00
Physician visit, ECG04/28/2026 · $190.00150.0040.00
Nurse visit, blood test06/16/2026 · $58.5030.0028.50
Physician visit08/04/2026 · $85.0067.0018.00
Total you paid184.00

Seven statements across the year with what insurance paid and what the patient paid, footing to $184.00 of $671.00 charged.

Rollout across the group

11 clinics, one at a time, front-desk staff trained before each cutover

Find a patientTraining guide
Live

8 of 11

Booking, messages and records on

In training

1

Kestrel Park · cutover Mon 09/21

Scheduled

2

Longmeadow 09/23 · Millbrook 09/25

Engagement

Week 19 of 20

Phase 4: clinic rollout and training

Sites

Last week, Sep 7–11 · the site's own switchboard and booking counts
SiteStatusCutoverStaff trainedBookingsMade onlineOnline shareScheduling calls
Ashcombe ClinicLive08/03/2026 · wk 1312/1240222456%118
Brindle LaneLive08/10/2026 · wk 149/933117653%104
Carrow StreetLive08/12/2026 · wk 1411/1136819854%112
DeanfieldLive08/17/2026 · wk 158/828614149%97
Elmhurst RoadLive08/24/2026 · wk 1610/1031716351%109
FernmoorLive08/26/2026 · wk 167/724411848%88
GreyfriarsLive09/01/2026 · wk 179/930915249%121
Harbor WalkLive09/07/2026 · wk 188/82629737%138
Kestrel ParkIn training09/21/2026 · wk 207/10––Not live–
LongmeadowScheduled09/23/2026 · wk 200/9––Not live–
MillbrookScheduled09/25/2026 · wk 200/8––Not live–

Kestrel Park: 7 of 10 front-desk staff trained

Cutover waits until all ten have booked, moved and canceled a test appointment themselves. Last session Fri 09/18, 13:00.

Cutover Mon 09/21

The rollout across eleven clinics: eight live with last week's own booking and scheduling-call counts, Kestrel Park in training at seven of ten staff, and two scheduled.

Ashcombe Clinic · Tue, Sep 15, 2026

Front desk and exam rooms, same view · as of 14:10

Find a patient
Booked today42=Seen26+Waiting4+No-shows2+Still to come10The rest of the bar is the 10 still to come, 14:10–17:50

Lists

Each row adds up to its booked count
ClinicianRoomBookedSeenWaitingNo-showTo come
Dr. Hana WhitlockPhysicianRoom 1128103
Dr. Samir OduyaPhysicianRoom 2127212
Dr. Tobias ReynePhysicianRoom 485012
Priya LanchesterRegistered nurseTreatment 174102
Owen MarshClinical pharmacistRoom 532001
All lists42264210

Seen by hour

08:00–14:00
508:00
609:00
510:00
411:00
212:00
413:00

Waiting room

4 waiting
Longest waitAled Pryce · 24 minFor Dr. Samir Oduya, Room 2 · arrived 13:46
Aled PryceDr. Samir Oduya · Room 224 min
Maureen TilsleyDr. Samir Oduya · Room 215 min
Kofi Asante-BellDr. Hana Whitlock · Room 19 min
Ivy BrannaghPriya Lanchester · Treatment 16 min

No-shows

2
Declan Moss09:20 · Dr. Samir OduyaRebook link sent
Harriet Eke11:30 · Dr. Tobias ReyneRebook link sent

Both had the 48-hour and 2-hour reminders. Their slots returned to the day’s open list.

Ashcombe's Tuesday at 14:10 as reception and the exam rooms both see it: 42 booked as 26 seen, 4 waiting, 2 no-shows and 10 still to come, with the longest wait named.

Everything needing a clinical decision

Ashcombe Clinic · Tue, Sep 15, 2026, 14:10 · results, messages, refills and referrals in one queue, not four inboxes

Find a patientCall tasks · 3
Waiting413 urgent, at the top
=Results141 urgent+Messages122 urgent+Refills9None urgent+Referrals6None urgent

Queue · showing 10 of 41

Urgent first, then oldest first
PriorityKindPatientNeeds a decision onWaitingWith
Urgent MessagesGraham Oyelaran, 71Chest tightness since this morningTriage rule: chest pain keywords · escalated to a call 13:5812 minDr. Samir Oduya
Urgent ResultsDenise Harcourt, 64Potassium 6.2 mmol/LRange 3.5–5.3 · held from patient · call task created 13:4129 minDr. Hana Whitlock
Urgent MessagesLily Mayhew, 2 (parent)Rash that does not fade when pressedTriage rule: rash wording · escalated to a call 14:037 minDr. Tobias Reyne
Routine ResultsRuth Calloway, 58Total cholesterol 5.3 mmol/LRange below 5.0 · awaiting comment before release1 h 50 minDr. Tobias Reyne
Routine RefillsArthur Penhale, 79Warfarin 1 mg, 3 mg tabletsINR due before refill · last INR Sep 112 h 05 minOwen Marsh
Routine MessagesSunita Varma, 45Question about her HRT review dateRefers to appointment 09/29 · addressed to Care team2 h 40 minPriya Lanchester
Routine ReferralsColin Fairweather, 52Letter from orthopedics, knee MRIAction requested: review and discuss options3 h 15 minDr. Samir Oduya
Routine ResultsNadia Brooke, 37Ferritin 11 micrograms/LRange 13–150 · awaiting comment before release3 h 30 minDr. Hana Whitlock
Routine RefillsEileen Scobie, 83Amlodipine 10 mg, Hydrochlorothiazide 12.5 mgMedication review overdue · 13 months4 hOwen Marsh
Routine ReferralsTheo Lindqvist, 29Discharge summary, outpatient surgeryAction requested: wound check in 10 days5 hPriya Lanchester

One decision queue instead of four inboxes: 41 waiting as 14 results, 12 messages, 9 refills and 6 referrals, with the three urgent at the top.

Slots offered against slots taken

Ashcombe Clinic · Sep 14–18 and Sep 21–25 · offered minus booked is open, on every row

Find a patient
Offered, two weeks

740

All six slot types

Booked

601

Online, phone and desk

Same-day urgent

100%

Taken, both weeks

Nurse slots open

63

of 150 offered

By slot type

Each week: offered − booked = open
This week · Sep 14–18Next week · Sep 21–25
Slot typeOfferedBookedOpenOfferedBookedOpenTaken, two weeks
Physician routine12011731201041692%
Physician same-day urgent4040040400100%
Physician phone or video6058260501090%
Registered nurse75482775393658%
Medical assistant45341145271868%
Clinical pharmacist3025530191173%
All slots3703224837027991

Where the open slots are

Open, two weeks
Physician routine19
Physician same-day urgent0
Physician phone or video12
Registered nurse63
Medical assistant29
Clinical pharmacist16

Two weeks of slots by type, offered minus booked equaling open on every row: same-day urgent fully taken both weeks while 63 nurse slots sit open.

Results outside range · Sep 14–18, 2026

All live sites · as of Fri, Sep 18, 17:30 · each result shows the range it broke

Find a patient
Outside range

158

Received this week

In a working day

152

6 looked at later

With a clinician

17

Opened, comment not yet written

Released

141

Commented, then visible to the patient

Without a comment

0

Released with no comment: none

Latest

9 of 158
TestValue · rangePatient · siteLooked atStatus
Potassium5.9 mmol/L3.5–5.3H. GorrieAshcombe · 09/18 13:1238 minDr. S. OduyaWith clinician
Total cholesterol6.4 mmol/Lbelow 5.0B. FerrandAshcombe · 09/18 11:402 h 15 minDr. T. ReyneWith clinician
HbA1c49 mmol/mol20–41J. OkaforBrindle Lane · 09/16 09:123 h 05 minDr. L. HessaryReleased
eGFR5260 or aboveM. DunmoreCarrow Street · 09/15 16:404 h 10 minDr. A. KetteringReleased
Hemoglobin108 g/L115–165S. PellowDeanfield · 09/15 15:021 h 22 minDr. R. IyerReleased
ALT62 U/L0–40P. GarsideGreyfriars · 09/14 17:551 day 2 hDr. N. AchterbergReleased
TSH6.8 mU/L0.27–4.2C. Mbeki-RoweElmhurst Road · 09/16 11:302 h 48 minDr. F. QuayleReleased
Vitamin B12164 ng/L197–771E. ScobieFernmoor · 09/17 10:051 day 4 hDr. O. BrandtWith clinician
Sodium131 mmol/L133–146W. TreharneHarbor Walk · 09/17 08:4458 minDr. V. SalgadoReleased

A result with a clinician is not visible to the patient until the comment is written and released.

By test

158 results
Total cholesterolbelow 5.0 mmol/L38
HbA1c20–41 mmol/mol31
eGFR60 or above22
ALT0–40 U/L16
Hemoglobin115–165 g/L (F) · 130–180 (M)14
TSH0.27–4.2 mU/L12
Potassium3.5–5.3 mmol/L9
Vitamin B12197–771 ng/L9
Sodium133–146 mmol/L7

How the week reconciles

In a dayLaterAll
Released1392141
With clinician13417
Looked at1526158

Every one has been opened. Released always means a comment was written first.

The week's 158 results outside range, each with the range it broke: 152 looked at inside a working day and 6 later, 141 commented and released, 17 still with a clinician, none released without a comment.

Who can open what, and who did

Every read logged with actor, record and stated reason · last 30 days, all live sites

Find a patient
Roles × record kinds

5 × 6

Nobody but the patient holds all six

Openings, 30 days

18,402

Staff reads of patient records

Challenged

6

Questioned by the practice manager

Left unexplained

0

Each has its reason on file

Access by role

Limited = subject line, released-or-not, refill status
RoleContact detailsAppointmentsMessagesResultsMedicationStatements
PatientTheir own record onlyOwn recordOwn recordOwn recordOwn recordOwn recordOwn record
PhysicianTheir panel and covering patientsReadRead & writeRead & writeRead & writeRead & writeNo access
Nurse & pharmacistPatients on their listsReadReadRead & writeReadRead & writeNo access
ReceptionPatients booking or at the deskRead & writeRead & writeLimitedLimitedLimitedRead
Practice managerBilling and complaintsReadReadNo accessNo accessNo accessRead & write

Openings by role

30 days
Physician7,842
Nurse & pharmacist4,390
Reception5,488
Practice manager682
All staff18,402

Patients opening their own record are logged, not counted here.

Challenged openings · 6

Each closed with the reason it was needed, or the change made
RefWhenActorRecordStated reasonExplanation
AC-009108/21 10:14Reception, DeanfieldAppointments · M. CotterBookingPatient's daughter booking by phone, consent on file
AC-009408/25 16:02Physician, Elmhurst RoadResults · K. RuddockCoveringCovering Dr. Quayle's patients that day, schedule confirms
AC-009708/29 08:47Nurse, Brindle LaneMessages · T. AbaraMessage triageThread routed to her from the triage queue
AC-010209/03 13:30Practice managerStatements · A. PryceStatement queryComplaint about a charge, ref CM-2217
AC-010609/08 11:21Reception, AshcombeResults · own relativeAt the deskOpened a relative's record; reminded, access narrowed
AC-010909/12 19:05Pharmacist, Carrow StreetMedication · L. FarrantRefill requestAfter-hours refill check, request timestamp matches

Five roles against six kinds of record, the patient holding their own and nobody else holding all six, and 18,402 staff openings in thirty days with six challenged and each explained.

Introduction

The brief

Booking an appointment or finding records meant navigating dated, confusing screens. We redesigned the patient experience around guided, accessible flows.

A group of eleven clinics whose patient portal had been bought in 2014 and never replaced, and whose front desk was fielding around four hundred calls a day, most of them to book, rebook, or ask for a result. The engagement was commissioned after an accessibility complaint the group couldn't answer, which is why the audit came before the redesign.

Product Design

What people were running into

01
  1. 01

    Patients had no simple way to book, view records, or reach their care team between visits, driving avoidable phone volume to the front desk.

    The booking form was one page with nineteen fields, no keyboard order, and error messages that appeared above the fold while the invalid field stayed below it. Records lived behind a separate login patients were never given. Every one of those was a phone call, and the front desk was taking them while patients stood at the counter waiting.

    We redesigned scheduling around a guided booking flow, gave patients a clear records view, and added secure messaging so care teams could follow up without a phone call.

The solution

Design decisions

  1. 01

    Ran accessibility audits and designed to WCAG AA from the start

    The audit ran before any design work and set the constraints, so accessibility shaped the flow from the start, with nothing retrofitted.

  2. 02

    Prototyped a guided booking flow with real patients

    The booking flow was prototyped with real patients including screen-reader users, which is where the four-step order and the ten-minute slot hold came from.

  3. 03

    Built secure, role-aware messaging between patients and teams

    Clinic staff scoped this, and their first requirement was that it couldn't become a second inbox, so it routes into the triage queue they already work.

  4. 04

    Rolled out clinic by clinic with staff training

    Each clinic went live with its front-desk staff trained beforehand, so the people absorbing the change had seen it before their patients did.

Process

Phase by phase

  1. Phase 1: Accessibility & UX Audit

    Patient Journey & Compliance Audit

    Audited existing booking & records access for WCAG 2.1 AA compliance and usability friction across various patient demographics.

    • Accessibility Audit Report
    • Patient Journey Map
    • Healthcare Usability Matrix
  2. Phase 2: Product Design & Prototyping

    Guided Booking & Messaging UX

    Designed a progressive multi-step booking flow and HIPAA-encrypted patient-provider messaging interface.

    • Figma Design System
    • Interactive Prototype
    • Accessibility Test Sign-off
  3. Phase 3: HIPAA Architecture & Build

    EHR Integration & Encrypted Vault

    Built the secure web application connecting directly to the EHR system with end-to-end encryption for patient data.

    • Next.js Care Engine
    • EHR Connector API
    • HIPAA Compliance Audit
  4. Phase 4: Clinic Rollout & Training

    Multi-Clinic Launch & Staff Onboarding

    Deployed clinic by clinic across 11 locations, training front-desk staff and monitoring patient adoption metrics.

    • Multi-Clinic Launch Plan
    • Staff Training Guide
    • Patient Onboarding Assets
Engagement plan · 20 weeks

Audit first, accessibility gating every increment, then clinic by clinic with front-desk staff trained before each cutover

Find a patient

Phases

Week 19 of 20
Phase1234567891011121314151617181920
1 · Accessibility & UX auditPatient journey & compliance auditAudit report · journey map · usability matrix
Weeks 1–4 · Done
2 · Product design & prototypingGuided booking & messaging UXDesign system · prototype · accessibility sign-off
Weeks 5–10 · Done
3 · Architecture & buildEHR integration & encrypted vaultCare engine · EHR connector API · compliance audit
Weeks 9–16 · Done
4 · Clinic rollout & trainingClinic by clinic, staff firstLaunch plan · staff training guide · patient onboarding
Weeks 13–20 · In progress
Keyboard + screen-reader gate
Today

Cutovers

One clinic at a time · staff trained first
Ashcombe ClinicWk 13 · 08/03 · LiveBrindle LaneWk 14 · 08/10 · LiveCarrow StreetWk 14 · 08/12 · LiveDeanfieldWk 15 · 08/17 · LiveElmhurst RoadWk 16 · 08/24 · LiveFernmoorWk 16 · 08/26 · LiveGreyfriarsWk 17 · 09/01 · LiveHarbor WalkWk 18 · 09/07 · LiveKestrel ParkWk 20 · 09/21 · TrainingLongmeadowWk 20 · 09/23 · ScheduledMillbrookWk 20 · 09/25 · Scheduled8 live
The audit set the constraintsRun before any design, so accessibility shaped the flow
A gate, not a final reviewNo merge without keyboard and screen-reader passes
Front desk firstEach clinic's staff saw the change before patients did
On screen

The twenty-week plan at week 19: the audit first, a keyboard and screen-reader gate on every increment, and eleven clinic cutovers one at a time, eight live, one in training and two scheduled.

01

Guided Appointment Scheduler

Accessible multi-step clinic booking engine with automated SMS and email reminders.

Booking is four steps (reason, clinician, slot, confirm), each announced to screen readers and reachable by keyboard, because the previous single-page form failed the clinic's own accessibility audit. Slots are held for ten minutes while the patient completes and released automatically after, so two people can't claim the same appointment. Reminders go out at forty-eight hours and two hours by both SMS and email.

What shipped
  • Four steps, keyboard-reachable and screen-reader announced
  • Ten-minute slot holds prevent double booking
  • SMS and email reminders at 48 and 2 hours
Guided booking · how it behaves

Four steps, each announced and keyboard-reachable · slots held ten minutes · reminders at 48 and 2 hours

Find a patientAudit report

The four steps, as announced

One question per step
1Reason· What is the appointment for? 7 tab stops
“Step 1 of 4, Reason. Three steps left.”
2Clinician· Who would you like to see? 6 tab stops
“Step 2 of 4, Clinician. Dr. Whitlock is away until September 25.”
3Time· Choose a time 14 tab stops
“Step 3 of 4, Time. Week of September 21, 12 times.”
4Confirm· Check and confirm 5 tab stops
“Step 4 of 4, Confirm. Thursday, September 24, 9:40, held for ten minutes.”

Merge gate · booking-flow increment 14

Nothing merges without both passes
Keyboard passEvery control reachable in order, focus always visiblePassed
Screen-reader passEach step announced; errors read beside their fieldPassed
MergedBoth passes signed off by the accessibility leadPassed

Slot holds, live

Held while a patient finishes, released after ten minutes
SlotWithHeld atHoldState
Thu 09/24 09:40Dr. T. Reyne10:30:188:42Held
Mon 09/21 08:50Dr. S. Oduya10:27:025:26Held
Tue 09/22 11:20P. Lanchester10:19:44Expired, back on listReleased
Wed 09/23 09:10Dr. T. Reyne10:16:31Booked in the holdBooked
Fri 09/25 10:30Dr. S. Oduya10:12:09Expired, back on listReleased

A held slot shows as taken to everyone else, so two people cannot claim it.

Reminders for one booking

By text and email, both times
Ruth Calloway · Thu 09/24/2026, 09:40Dr. Tobias Reyne · Room 4
WhenChannelSendsState
48 hours before TextTue, Sep 22, 09:40Scheduled
48 hours before EmailTue, Sep 22, 09:40Scheduled
2 hours before TextThu, Sep 24, 07:40Scheduled
2 hours before EmailThu, Sep 24, 07:40Scheduled

If the booking moves, both reminders move with it; if it is canceled, neither sends.

On screen

The booking engine: the four steps as a screen reader announces them, the keyboard and screen-reader gate each increment passed before merging, live ten-minute slot holds, and one booking's text and email reminders at 48 and 2 hours.

Ruth Calloway · Total cholesterol

MDL-204118 · born 03/12/1968 · received 09/15/2026 12:20 · held until a clinician comments

Find a patientNot visible to patient
Result5.3 mmol/LMeasured against: below 5.0Outside range
Earlier results, same test01/27/20265.6 mmol/Lbelow 5.010/21/20255.9 mmol/Lbelow 5.0Held. The patient sees nothing until you write a comment and release it.

Your comment to the patient

Required before release
A little above target. We will talk about it at your review on Sep 24.
Link to blood pressure review, 09/24/2026 09:40
Release with commentKeep held and callRelease is logged with your name and time

What the patient will see

After release · plain language available
Total cholesterolOutside range
5.3 mmol/L · below 5.0
Dr. Tobias ReyneA little above target. We will talk about it at your review on Sep 24.

Where this result lives

Pointers, not copies
Records vaultThe value, the report, the history
Mendlow databasePointer, permissions, release state
Result value in app databaseNot stored
ref vault:res/7f3a-19c2 · perm md,nurse,pharm · held

Every read of this record

Actor, record, stated reason
09/15 14:08Dr. Tobias Reyne · PhysicianOpened resultResult review
09/15 13:30Dr. Tobias Reyne · PhysicianTook the result from Dr. Whitlock's listCovering
09/15 12:55Jo Tennant · ReceptionSaw "not released", not the valueAt the desk
09/15 12:41Owen Marsh · PharmacistOpened resultStatin review
09/15 12:21Decision queue · SystemAdded to the results queueRouted
09/15 12:20Lab interface · SystemPointer written, value to vaultResult filed
09/14 09:15Priya Lanchester · NurseOpened the requestSample taken
On screen

A cholesterol result held from the patient until Dr. Reyne writes a comment and releases it, the vault holding the value while the app keeps a pointer, and every read of the record with its actor and stated reason.

02

Secure Patient Records Portal

HIPAA-compliant records view allowing patients to access lab results and medical history securely.

Records are read through a HIPAA vault and never copied into the application database, so the app holds pointers and permissions and never the protected health information itself. Every read is logged with actor, record and stated reason. Lab results sit behind a clinician release step, so a patient doesn't meet a serious result alone on a Saturday, and sessions expire hard with no silent refresh.

What shipped
  • PHI stays in the vault; the app holds pointers only
  • Every read logged with actor, record and reason
  • Clinician release gate ahead of result visibility
Care team messages

Addressed to the team, routed into the decision queue you already work · Tue, Sep 15, 14:10

Find a patientCall task open

In the queue · messages 12

2 urgent
AllResultsMessagesRefills
Graham Oyelaran12 minChest tightness since this morning
Lily Mayhew (parent)7 minRash that does not fade when pressed
Sunita Varma2 h 40Question about her HRT review date
Peter Ashdown3 h 05Dose confirmation after discharge
Ruth Calloway3 h 50Booked 09/24, thank you
Marion Kell4 h 10Work note for another two weeks?
Idris Fenwick4 h 30Is my referral letter sent?
Carys Holt5 hBlood test fasting question
Ben Orrell5 h 20Inhaler technique video link
Aisha Rahman6 hPhoto of mole, as asked
Graham Oyelaran, 71Urgent To: Care team, Ashcombe Clinic · picked up by Dr. Samir Oduya, on-call physician Refers to: appointment 09/08/2026, Dr. Hana Whitlock, blood pressure medication

Since this morning I have had a tightness in my chest when I go up the stairs. It is still there a bit now. I saw Dr. Whitlock last week about my medication.

Graham Oyelaran · 13:57
13:58 · Rule “chest pain wording” · marked urgent 13:58 · Escalated to a call for the on-call physician

We have read your message as urgent and a clinician is phoning you now. In an emergency, call 911.

Sent automatically · 13:58
14:01 · Dr. Samir Oduya calling (555) 010-0418

Note to the thread

Seen by the care team, not the patient
Add what was agreed on the call
Encrypted end to endReply to patientClose after call

Triage rule

Practice's own rules
Chest pain wordingchesttightnesspainpressurebreathless
When matchedMark urgentThenCall task, on-call physicianPatient toldA clinician is phoningNotWait its turn in the queue

Who can read this thread

Dr. Samir OduyaOn-call physicianDr. Hana WhitlockPrimary care physicianDr. Tobias ReynePhysicianPriya LanchesterRegistered nurse Reception sees the subject only

Routing

Into the decision queueAddressed to the team, so cover worksCarries the appointment it refers to
03

Direct Care Team Messaging

On screen

A message addressed to the care team, not to one physician, sitting in the decision queue the practice already works, carrying the appointment it refers to, and escalated by a triage rule to a call from the on-call physician.

Encrypted direct messaging between patients and clinic staff for follow-up care.

Messages are encrypted end to end and addressed to a care team instead of an individual, so cover works when a clinician is away. Threads route into the practice's existing triage queue, not a new inbox nobody watches, and each one carries the appointment or result it refers to. Anything the triage rules mark urgent escalates straight to a phone call.

What shipped
  • Threads addressed to a care team, so cover works
  • Routed into the existing triage queue
  • Urgent flags escalate straight to a call

What moved after the redesign

−38%

Front-desk call volume

+52%

Online bookings

WCAG AA

Accessibility

Call volume is the switchboard's own count for scheduling calls specifically, comparing the three months after full rollout with the three before. Online bookings are measured as a share of all bookings, not in absolute terms, so growth in patient numbers can't flatter the figure. The accessibility result is a third-party audit, not a self-assessment.

Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.

Principles that held

  • Designing to WCAG 2.1 AA from day one reduced front-desk scheduling calls by 38%.

    Accessible and simple turned out to be the same work: the constraints that make a flow usable by a screen reader are the ones that make it obvious to everyone.

  • Secure direct messaging resolved patient follow-ups without requiring unnecessary in-clinic visits.

    The follow-ups that stopped becoming visits were the ones needing a yes or a dose confirmation. A message answers those; an appointment slot was the wrong unit for them.

  • Guided step-by-step booking increased online appointment scheduling by 52%.

    Booking rose because each step asked one thing and showed what was left. Patients had never really rejected the nineteen-field form; they abandoned it midway.

How design and engineering worked together

  • A cross-functional team of 5 worked on a time & materials basis over 20 weeks, covering Accessibility-first design, Secure messaging, Records UX. We ran daily standups with an in-house lead in the room, and a demo at the end of every sprint. Scope changed twice during the engagement, and both times the change was priced and agreed before work started.

    Accessibility was a gate on every increment, not a review at the end: nothing merged without keyboard and screen-reader passes, which is the only arrangement under which a WCAG claim survives contact with a deadline. Rollout went clinic by clinic with the front-desk staff trained before each cutover, so the people absorbing the change had seen it first.

Four settings, one card

Accessible and simple turned out to be the same work

The settings patients use in the app, applied live to the card on their home screen. Make the text larger, raise the contrast, turn motion down or switch to plain language, and the same appointment and result stay readable. Switch tabs, or use the arrow keys once one is focused.

Everything is sized relative to the text, so a larger setting reflows the card instead of cutting words off or hiding the button.

Now: text default, contrast standard, motion full, plain language off. Timings are illustrative.

The patient’s card, live
Next appointment

Thu, Sep 24, 09:40

Blood pressure review · Dr. Tobias Reyne · Ashcombe Clinic, Room 4

Total cholesterol 5.3 mmol/LOutside range

Measured against below 5.0 mmol/L. A little above target. We will talk about it at your review on Sep 24.

Press the card’s button to see how a confirmation arrives: sliding in with motion on Full, simply appearing with Reduced.

Architecture

From a patient’s tap to the clinic, and back

Bookings, messages and results pass through the same five stages. The patient-facing app stays simple because the hard rules (holds, release and routing) live behind it, where no screen can skip them.

  1. 1 · Source

    Patient app

    • Four-step booking: reason, clinician, slot, confirm
    • Messages to the care team
    • Records and results views

    Nothing merged without keyboard and screen-reader passes

  2. 2 · Queue

    Holds and triage

    • A chosen slot is held while the patient finishes
    • Threads routed into the practice's existing triage queue

    A slot held ten minutes cannot be claimed twice

  3. 3 · Engine

    Care engine

    • Role-aware permissions on every request
    • Triage rules mark urgent threads
    • Clinician release step on results

    No result reaches a patient before a clinician releases it

  4. 4 · State

    Records vault

    • Protected health information stays in the vault
    • PostgreSQL holds pointers and permissions
    • Every read logged: actor, record, reason

    The app database never holds the record itself

  5. 5 · Delivery

    Reminders and calls

    • Text and email reminders at 48 and 2 hours
    • Urgent threads become a call task
    • Sessions expire hard, no silent refresh

    An urgent message is escalated to a call, never left in a queue

Privacy, release and access

Safe to open to every patient

The right role, and a reason on file

Messaging and records are role-aware: a patient holds their own record, staff see what their role needs, and nobody else holds everything. Every read is logged with actor, record and stated reason, and sessions expire hard with no silent refresh.

No result without a clinician first

Lab results sit behind a clinician release step, so a patient doesn't meet a serious result alone on a Saturday. The results themselves stay in the vault; the application holds pointers and permissions, never the protected information.

A booking flow nobody is shut out of

The audit ran before any design. Booking is four steps, each keyboard-reachable and announced to screen readers, and no increment merged without both passes. A third-party audit, not a self-assessment, put the result at WCAG 2.1 AA.

Patients phoning the front desk to book, rebook or chase a result? Scope your build in 3 minutes.

Scope your build
Have a project?

Let's talk

Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.