FealDeal
Sanjeevan Health Network
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.
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
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.
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
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.
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.
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.
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.
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
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.
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
Technology
Services used
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.