MediSync runs the whole floor — records, appointments, pharmacy, labs, imaging, wards and billing. What makes it work is what each person can't see: a receptionist gets a phone number, never a diagnosis; a nurse charts vitals but never opens the bill. Enforced on the server, on every request.
No signup. One click per role. Synthetic data only.
Every role below is a real login you can try right now. The system reshapes itself around each one — different menu, different data, different verbs.
Platform owner. Manages hospitals, roles, security policy and the audit trail.
Patient visibility
Every patient in the hospital
Runs the hospital: staff, departments, capacity, revenue and reporting.
Patient visibility
Every patient in the hospital
Consultant. Full clinical authority plus oversight of the department’s doctors.
Patient visibility
Patients in their department, plus anyone on their care list
Consults, diagnoses, prescribes and orders labs for their own patients.
Patient visibility
Only patients assigned to them or on their rostered ward
Owns the wards: bed allocation, rosters, and every nurse capability.
Patient visibility
Patients in their department, plus anyone on their care list
Records vitals, administers medication and updates care notes on their ward.
Patient visibility
Only patients assigned to them or on their rostered ward
Controls formulary, stock, procurement and pharmacy staff.
Patient visibility
Every patient in the hospital
Verifies and dispenses prescriptions, flags interactions, adjusts stock.
Patient visibility
Every patient in the hospital
Processes lab orders, enters results and flags critical values.
Patient visibility
Every patient in the hospital
Reads imaging studies and publishes reports back to the ordering doctor.
Patient visibility
Every patient in the hospital
Registers patients, books appointments and manages the front desk queue.
Patient visibility
Every patient in the hospital
Raises invoices, settles payments, handles insurance claims and refunds.
Patient visibility
Every patient in the hospital
Sees their own records, books visits, and pays bills by UPI or card.
Patient visibility
Only their own record
Twelve modules covering the path a patient takes from the front desk to the pharmacy counter — and the paperwork that follows them.
One chart per patient: demographics, allergies, chronic conditions, care team, encounter history and every note ever written.
Booking, check-in, queue and consultation flow — from the front desk to the consulting room, with no paper in between.
Structured consultations with chief complaint, examination, ICD-10 coded diagnosis and plan — signed and locked.
A prescription cannot be handed over until a pharmacist has checked it against the patient’s allergies and current drugs.
Order to result: collection, processing, entry, and senior verification, with critical values escalated the moment they appear.
X-ray, CT, MRI, ultrasound and ECG studies routed to a radiologist and reported back to the ordering doctor.
Live occupancy across ICU, HDU, general, private, maternity and paediatric wards, with nurse rosters attached.
Itemised invoices across consultation, pharmacy, labs, imaging and bed charges — settled by UPI, card, cash or insurance.
The people side: directory, departments, designations, shift assignment and who is on the floor right now.
Revenue, occupancy, clinic throughput and diagnostic turnaround — the numbers an administrator is actually asked for.
Every read, every write, every refusal — who, what, when, from which address. Including the attempts that were blocked.
The patient’s own view: their records, their results, their prescriptions, their bills — and a button to pay them.
This is the entire idea, in one table. Each column is a real role; each row is a real capability the server checks before it answers.
Super Admin sees
Every patient in the hospital
scope: ALL
Doctor sees
Only patients assigned to them or on their rostered ward
scope: ASSIGNED
Nurse sees
Only patients assigned to them or on their rostered ward
scope: ASSIGNED
Receptionist sees
Every patient in the hospital
scope: ALL
Permissions answer which verbs. Scope answers which rows. A doctor and an admin both hold patient:read — one sees nine patients, the other sees sixty.
Every charge — consultation, pharmacy, labs, imaging, bed nights — is itemised into one invoice, split against insurance, and pushed straight to the patient's dashboard. They pay it from their phone.
A real UPI intent, not a picture of one
The QR encodes a spec-compliant upi:// deep link with the payee VPA, the exact amount and a merchant reference. Scan it with GPay or PhonePe and a genuine payment sheet opens.
One tap into their own app
Google Pay, PhonePe, Paytm and BHIM each get a direct deep link, so nobody has to type an amount or a UPI ID.
Every other tender too
Card, cash, net banking and insurance co-pay, with part payments and refunds tracked against the same invoice.
Money in integer paise
Never floating point. A ledger that rounds is a ledger that is wrong, and 0.1 + 0.2 has no business near a hospital bill.
Straight answer on the demo: the QR and deep links are real. Confirmation is not — UPI notifies the merchant's server by signed webhook, and receiving one needs a PSP contract. So the demo fakes the callback after six seconds. Wiring Razorpay or Cashfree is one file: docs/PAYMENTS.md has the diff.
Invoice
INV-2026-1091
Scan to pay by UPI
upi://pay?pa=medisync@okhdfcbank&am=1370.25
Health records are the most sensitive category of personal data there is. Here is exactly what protects them — and, at the bottom, what still doesn't.
The UI hides what your role cannot use. That is a courtesy. Every API route independently re-derives who you are and re-checks the permission before it touches data — because a hidden button is still a reachable endpoint.
Sensitive fields — HIV status, psychiatric notes, genetic markers — are stripped in one chokepoint before serialisation. A new endpoint cannot forget to remove them, because it never receives them.
210,000 iterations of PBKDF2-SHA256 with a per-user salt, verified in constant time. A stolen database yields no passwords, and a timing measurement yields no hints.
Ten attempts per minute per IP, then the account itself locks for fifteen minutes after five failures. Unknown emails burn identical CPU to known ones, so the endpoint cannot be used to enumerate accounts.
Signed JWTs in httpOnly, SameSite=Lax, Secure cookies with a pinned algorithm. Script cannot read them, cross-site forms cannot post them, and an alg:none downgrade is rejected outright.
RFC 6238 codes from any authenticator app, with ±1 step of clock drift and constant-time comparison. Enrol from Settings → Security.
A fresh nonce per request means script-src carries no unsafe-inline at all. Add frame-ancestors none, HSTS, nosniff and a stripped Permissions-Policy, and the browser is doing its share of the work.
When a receptionist reaches for a sensitive field, the block is logged with actor, role, IP and intent. Most audit systems record what happened; the interesting question is usually what someone tried.
Being straight with you is part of the pitch. Before this goes anywhere near a real patient, three things need doing, and none of them are hidden in a footnote:
Pick a package by what your hospital needs today. Every module below is already built and working — nothing here is a promise.
₹50,000 dev + ₹15,000 setup
Modules included
₹90,000 dev + ₹20,000 setup
Modules included
₹1,25,000 dev + ₹25,000 setup
Everything — all modules
Multi-Hospital / Multi-Tenancy
One deployment serves many hospitals, fully isolated — the true SaaS model
Production Hardening
Encryption at rest, live payment gateway, security review
or ₹2,500 / month
Hosting is separate. Hosting, domain, database, SMS and payment-gateway fees are paid by the hospital directly to the providers — they are not included in the prices above. Prices are in INR and exclusive of applicable taxes.
Tell me what your hospital needs and I'll send a tailored quote. Custom development, deployment and ongoing support — from a single developer who built this end to end.
Sign in as a doctor and you get nine patients. Sign in as the receptionist who booked them and the diagnoses disappear. Same data, same server, different person.
Open the demo