Skip to content
PRS India

Sanjeevan Health Network

ABDM-linked booking and teleconsult across six clinics

A FHIR-native booking and teleconsult platform linked to ABDM, with patient consent checked in the data layer and a video call built to fall back to audio instead of dropping.

Client
Sanjeevan Health Network
Industry
Healthcare
Location
Delhi NCR, India
Duration
18 weeks
Published
Nov 2023
Updated
Oct 2026

7.4%

No-show rate, down from 22%

1900/mo

Teleconsults per month on a service people had given up on

84%

Of visits now produce an ABHA-linked clinical record

9s

P95 time from tapping join to the doctor being audible

01

The challenge

Sanjeevan Health Network runs six multi-speciality clinics across Delhi NCR and had just started offering teleconsultation. Booking meant calling a phone number. Doctor times were kept in a paper diary at each front desk. Prescriptions were handwritten and photographed.

Three problems, one of them existential

  • A 22% no-show rate. On a specialist's calendar, a no-show is not a small loss. It is a 20-minute slot that nobody could sell again, because nobody knew it was free until the patient did not arrive. Across six clinics, this was the biggest cause of lost time in the business.
  • Double-booking and phantom slots. Two receptionists, one doctor, one diary: the problem is easy to see, and it happened every week. Patients arrived and found their appointment did not exist.
  • ABDM was not optional. To take part as a Health Information Provider under the Ayushman Bharat Digital Mission, they had to link records to a patient's ABHA number. They also had to answer record requests, based on consent, through the Health Information Exchange. They needed to follow the network's rules exactly. And under the DPDP Act, they had to be able to prove that no clinical record was ever read without a valid patient consent.

The constraint that shaped everything

Many of their teleconsult patients connect from outside the big cities on a 3G-grade link. Their first vendor had built the video call to need 720p or fail. On a weak connection, it failed. Patients who could not see a doctor on video simply stopped booking, and the teleconsult line was called "not working in India". It worked fine — in an office, on fibre.

The rule we set with the clinical team was simple: a degraded consult must always beat a dropped consult. A doctor who can hear a patient can still treat them.

02

What we built

FHIR R4 as the internal model — not a translation layer

The clinical record is saved as FHIR R4 resources natively. We thought about a custom database design with a FHIR export added on, and said no. ABDM's HIP and HIU rules are FHIR bundles. If your own model is something else, you are stuck with a translation layer that loses data and drifts apart over time. Every change in the network rules then becomes a big data move. Using FHIR from day one meant that answering a record request was just packaging the data, not changing it.

Consent enforced at the repository layer, not the controller

Every read of a clinical record goes through one data layer. It needs a valid consent that has not expired, for that purpose and that requester. No code can reach the clinical records without it — not because we asked developers to remember, but because there is no method that takes a patient ID without also taking a consent context. Permission checks placed on each page of code fail sooner or later; someone adds a new endpoint in a hurry and forgets one. Make the unsafe thing impossible to write and it stops happening.

Every access is written to an audit log that can only be added to, and each entry is linked to the one before it. If a row is changed or removed, the chain breaks and the nightly check tells us.

We did not build a WebRTC SFU

Building and running a selective forwarding unit is a full product in itself, and a bad one is worse than no video at all. We used a managed WebRTC provider and spent our build effort on the part that really set this apart: graceful degradation. The app keeps measuring the available bitrate. Below ~150 kbps it drops the video and keeps the audio. It tells both people plainly what happened and keeps the consult going. Doctors get a one-tap "switch to audio" button that they use often and easily.

Slots that cannot double-book

Doctor times are saved as real slot rows, not worked out from rules each time someone asks. Booking uses a lock, so if two people try the same slot, one fails at once and clearly, and both never seem to succeed. A short Redis hold covers the time between "patient picked a slot" and "patient paid", so a slot is never lost to a booking that was left half done.

Attacking the no-show rate directly

A reminder in two steps — WhatsApp Business API at T-24h and T-2h, with SMS if the WhatsApp message is not delivered — plus a one-tap reschedule link in the reminder itself. Most no-shows were never people refusing to come. They were people who could not come and had no easy way to say so. Give them a button and they will use it, and the slot goes back on sale while it can still be sold.

03

The outcome

We rolled it out clinic by clinic over ten weeks. Front desks used the new system next to the paper diary for the first two weeks at each site. The diaries were not taken away; people just stopped opening them.

Results

  • No-shows: 22% → 7.4%. Almost all of the gain came from the reschedule button, not the reminder. Reminding someone of an appointment they cannot attend does not bring them in. Giving them a way to move it saves the slot.
  • 1,900 teleconsults a month, up from a service that people had given up on as unworkable. The audio fallback is used in roughly 12% of consults. That means 12% of those consults would earlier have been dropped calls and refunds.
  • 84% of visits produce an ABHA-linked record, and the network's record requests, based on consent, are answered automatically because the record was FHIR from the start.
  • Consult start time, P95: under 9 seconds from tapping "join" until the doctor can be heard — measured on real patient phones, not on an office network.

What we would defend in an audit

Every clinical read in the system's history has an audit row, and every audit row is linked to the one before it. Zero reads without consent is not just a promise here — it is how the code works, and the nightly check would tell us if that stopped being true.

Double-bookings have not recurred. Not "have reduced". The slot lock makes them impossible, and the front-desk staff, who had lived with them every week for years, noticed that before anything else we built.

Under the hood

How it's built.

Technology

  • Laravel
  • FHIR R4
  • ABDM HIP / HIE-CM
  • PostgreSQL
  • Redis
  • React
  • Managed WebRTC (SFU)
  • WhatsApp Business API
  • AWS KMS
  • Docker

Services used

  • Healthcare Software Development
  • Custom Software Development
  • API Integration
  • Cloud & DevOps
  • UI/UX Design

Our previous build insisted on HD video and then failed on a weak line. PRS asked our doctors one question — can you practise on audio alone? — and rebuilt the whole call around the answer.

Dr. Meera Raghunathan Medical Director, Sanjeevan Health Network

Same problem?

Let's build something that ships.