The same patient exists four times
Front desk, lab, pharmacy and billing each keep their own record. When two of them disagree, a receptionist reconciles it by hand.
Appointment engines, EMR, lab and pharmacy modules, ABDM-linked records, and the reports your medical superintendent actually asks for. Built to keep working through a Monday morning OP queue.
Front desk, lab, pharmacy and billing each keep their own record. When two of them disagree, a receptionist reconciles it by hand.
A clinical note gets amended six weeks later. Without an amendment history the original is gone, and nobody can say who changed it.
Most hospital software needs the network to bill a patient. A short outage means paper slips, and somebody re-keys them that night.
Healthcare software development means building what a hospital, clinic or diagnostic lab runs on. Patient registration, appointments, medical records, lab and pharmacy workflows, billing and claims. In India it also means building to the ABDM specification, linking records to ABHA numbers, and handling patient data under the DPDP Act.
Most hospitals do not run one system. They run four, plus a WhatsApp number the front desk uses for appointments. Each is fine on its own. The trouble starts when two of them describe the same patient differently.
So we settle identity first. One patient record that holds across OP, IP, lab and pharmacy is worth more than any dashboard. Everything downstream gets easier once that is fixed.
ABDM turned good practice into a written specification. ABHA linking, HL7 FHIR R4 exchange, NHCX claim settlement. We build to it from day one, because retrofitting an identity model is close to a rewrite.
Every card links to the practice that does the work. Follow one if you want the detail.
OP and IP registration, doctor scheduling, EMR, discharge summaries, billing and MIS. One system, one patient identifier.
ExploreBooking, digital prescriptions, report access, video consults and reminders on iOS and Android. Same record the hospital sees.
ExploreSymptom intake that routes to the right department, discharge summaries drafted from notes, claim documents read automatically. A clinician approves every output.
ExploreBed occupancy, average length of stay, lab turnaround by department, revenue by consultant. Refreshed nightly from the HIS, not assembled in Excel.
ExploreDrug batch and expiry tracking, ward indents, duty rosters across shifts, and payroll that understands night allowance and on-call.
ExploreABHA linking, FHIR R4 mapping, HL7 v2 feeds from your existing HIS, DICOM handoff to PACS, NHCX claims. The plumbing between systems built to ignore each other.
ExploreLocal search for every branch, department landing pages, doctor profiles that rank. Campaigns measured on booked appointments, not clicks.
ExploreThe situation it answers, the architecture, every module, the systems it plugs into and how long it takes. These describe our work, not one client's project. Named clients with measured results are in the case studies.
A group of four to eight clinics sharing a pool of visiting consultants. Each branch keeps its own appointment book. A patient who visits two branches exists twice. Consultants get double-booked because the branches cannot see each other calendars.
React PWA for front desk and consultant screens. Node.js API over a PostgreSQL clinical store, Redis for the slot engine, role-based access across six roles. One VPS per group, with nightly encrypted backups held off-site.
Patient data is handled under the DPDP Act. Consent is captured against a stated purpose and every read of a record is logged. Clinical entries are append-only, so a correction is recorded as an amendment and never overwrites the original.
A pathology and imaging lab with collection centres feeding a central unit, plus home-collection phlebotomists. Sample identity lives on handwritten labels. Reports go out as email attachments. Nobody can produce turnaround time for one test on one day.
Barcode-first sample tracking on a Node.js API with PostgreSQL. React technician console for result entry and verification. Android app for phlebotomist routes. Patient reports are served through signed links that expire.
A report cannot be released until a pathologist verifies it, and the signing credential is recorded against every release. Calibration, internal QC and reference range revisions are kept with full version history for NABL audits.
A 100 to 250 bed hospital where the clinical system came from one vendor and everything behind it runs on spreadsheets and Tally. Ward indents are paper chits. Drug expiry is discovered at the counter. Payroll takes four days.
Modular ERP sharing the hospital employee and item masters, on Node.js and PostgreSQL. The pharmacy counter runs offline-capable, so it keeps billing through a network drop and syncs when the line returns.
Schedule H and H1 sales are recorded against the prescriber and the prescription reference. GST e-invoices are raised at the point of billing, not reconciled monthly. Payroll deductions follow EPFO and ESIC schedules.
A hospital with a working HIS but no direct line to patients. Appointments arrive by phone calls the desk cannot always answer. Nobody knows whether discharged patients came back for follow-up. Reports are collected in person.
React Native app for iOS and Android, talking to the existing HIS through a purpose-built integration API. WebRTC video consults, scheduled push notifications, and a document service that issues expiring signed links instead of public report URLs.
Teleconsultation follows the Telemedicine Practice Guidelines. Practitioner identity is displayed, consent is recorded at the start of the consult, and prescriptions stay inside the permitted list. Report links expire and are never publicly addressable.
A management committee that gets a monthly MIS pack stitched together by hand from four systems, arriving three weeks after the month closes. Nobody argues with the numbers because nobody can reproduce them. Questions raised in the meeting take another month.
Nightly extraction from the HIS, LIS and pharmacy databases into a PostgreSQL warehouse with a modelled star schema. Surfaced in Power BI with row-level security, so a department head sees their department and the director sees everything.
Reporting datasets are de-identified wherever the question does not need a named patient. Access to identifiable extracts is restricted by role and every access is logged.
Get these wrong and the build is not late, it is unusable. They are design inputs on day one.
The Ayushman Bharat Digital Mission sets how health records are identified and exchanged nationally. You register the facility and its practitioners, create or link ABHA numbers, and share records through the consent-manager flow instead of direct database access.
Health data is personal data under the Digital Personal Data Protection Act. In practice: consent captured for a stated purpose, retention limits actually enforced, breach notification readiness, and the ability to produce or erase a patient record on request.
FHIR R4 is the ABDM exchange format. Most installed Indian HIS and analyser equipment still speaks HL7 v2 or ASTM. Any build touching existing hardware needs both, plus a mapping layer that does not quietly drop fields between them.
Remote consultation carries its own obligations. Verify the practitioner registration, record patient consent, restrict which medicines may be prescribed remotely, and keep the consultation record on the same footing as an in-person visit.
Accreditation audits ask for evidence, not assertions. Incident registers, calibration logs, internal quality control records, version history on reference ranges. Systems that produce this as a by-product of daily work survive audits comfortably.
Usually yes. Most installed Indian HIS platforms expose an HL7 v2 feed, a database view, or a vendor API, and we build against whichever exists. Where a vendor will not open anything, a staged replacement is honestly cheaper than fighting it. We will say so in discovery, not afterwards.
Register the facility and its practitioners in the ABDM registries. Create or link ABHA numbers at registration. Store records so they map cleanly onto FHIR R4 resources. Handle data requests through the consent-manager flow. Most of the effort sits in the record model, which is why designing for it beats retrofitting it.
Consent is stored with the record against a stated purpose, never assumed. Access is restricted by role and every read of an identifiable record is logged. Data is encrypted in transit and at rest. Retention is enforced by scheduled jobs, and there is a defined process for producing or erasing a patient record on request.
Both, but the shape differs. A single clinic usually needs appointments, records, billing and reminders, and goes live in eight to ten weeks. A multi-branch group needs central patient identity, cross-branch scheduling and consolidated reporting. That is where the fourteen to twenty week ranges above come from.
The counters that cannot stop are built to keep going. OP registration and pharmacy billing hold transactions locally and sync when the connection returns, with conflict handling for the rare record that changed on both sides. Reporting and integrations catch up afterwards. Those can wait. A patient queue cannot.
You do. Source code is handed over in your own repository. Infrastructure runs in your account or on hosting you control. The database is yours, with documented schema and export routines. Nothing in the contract makes leaving expensive, because holding clinical data hostage is not a retention strategy we use.
Tell us the workflow that keeps breaking. We will say honestly whether software fixes it, and what it would take.