Why we built our own LIMS instead of buying
NABL alignment, the sample lifecycle, barcode tracking, and the build-vs-buy economics for Indian diagnostics.
We evaluated four off-the-shelf LIMS products before writing a line of Labs code. Two were US-built and assumed a CLIA workflow that nobody in India runs. One was a hospital information system pretending to be a LIMS, with a sample-tracking module bolted on as an afterthought. The fourth was actually decent, NABL-aware, but quoted us per-seat licensing that worked out to ₹38 lakh a year for a mid-sized diagnostic chain — before customisation. Build-vs-buy isn't always close. Here it wasn't.
What an Indian diagnostic centre actually does
Strip away the software and the workflow is small enough to fit on a whiteboard:
- Collection — a phlebotomist draws blood at the centre or a patient's home. The patient gets a UHID if they're new, or is matched to an existing one.
- Accession — the sample arrives at the processing lab, gets a barcode, and is logged in with chain-of-custody.
- Process — analysers run the panel, results stream in over HL7 or are entered manually for manual tests.
- Validate — a pathologist reviews flagged results, applies reflex rules, and approves the report.
- Report — PDF goes to the patient over WhatsApp/email, and to the referring doctor if there is one.
That's it. Five stages. The reason existing LIMS products feel wrong is they bring twenty more stages from American hospital workflows that don't exist here.
NABL is the line that defines what "good enough" means
NABL ISO 15189 doesn't care how clean your code is. It cares whether you can produce, on demand, a complete audit trail of every action taken on every sample, signed by the responsible person, with timestamps that cannot be retroactively altered. Specifically:
- Every state transition (collected → accessioned → processed → validated → reported) is an append-only event with the actor's identity and time.
- Result edits keep the original value, the new value, the reason for change, and the authoriser. No silent updates, ever.
- Calibration and QC records for each analyser are cross-linked to the test results produced during that calibration window.
- The signing pathologist's e-signature is bound to the report PDF at validation time, with a tamper-evident hash chain across reports.
The off-the-shelf products got most of this right. None of them got it right and let you configure reflex rules for an Indian test menu without paying their professional services team to do it.
Barcodes are the single most important UX decision
Every sample tube gets a 1D Code-128 barcode at accession, printed on a Zebra TLP 2844 or equivalent. The barcode encodes a sample ID, not the patient ID — separation of concerns matters when a sample is transferred between centres. The lab tech scans on every bench: at receipt, at centrifuge, at the analyser, at storage. Each scan is a state transition event.
A LIMS that requires the tech to type a sample ID is a LIMS that will eventually report the wrong patient's HIV result. Barcodes are not optional.
Two non-obvious things we got wrong on the first try:
- Don't reuse barcode IDs across financial years. We did. A reprint-vs-original ambiguity took us a weekend to debug. Now the ID embeds the year prefix.
- Print two labels per sample. One on the tube, one on the requisition. When tubes decant in transit, the requisition label is what saves you.
The build economics
Twelve weeks of engineering, two pathologist consultants on retainer, and one full-time domain lead got us to a NABL-aligned v1. Annualised, that's roughly ₹42 lakh of fully loaded cost — within shouting distance of a single year of the off-the-shelf option, except we now own the code and every customer pays subscription, not a per-seat tax to an overseas vendor.
The hidden upside: every Campus and Creator engineer can read and modify Labs code. Bug reports get fixed in days, not in vendor support queues that close at 5pm Pacific. When a NABL assessor asks for a custom audit export at 11am during an inspection, we can ship it by 4pm. We could not do that on a third-party LIMS.
Where we'd push further
The next big investment is bidirectional analyser interfacing across more makes. We support Beckman, Sysmex and Roche today over HL7 and ASTM. Adding Mindray and Erba — both common in tier-2 chains — is the Q2 roadmap. After that, the prescription-OCR ingestion flow that lets a phlebotomist scan a paper script and have the test panel pre-filled.
If you run a diagnostic chain and your current LIMS is a desktop app from 2011, see /labs or write to admin@airanexus.in.