Laboratory Workflow

Last updated: 26 July 2026

Overview

Diagnostic services in NICE HMS use FHIR resources: ServiceRequest (test orders), Specimen (sample collection), and DiagnosticReport (results and PDF). There is no standalone "Lab" sidebar menu — the workflow is distributed across four areas:

AreaPurpose
Admin → Service Request MastersConfigure tests, panels, and reference ranges
Patient Dashboard → BillingPrimary entry point for ordering tests
Patient → Services → Services PanelConsole for viewing and managing orders
Doctor workspaceCreate service requests, specimens, and diagnostic reports

Service Request Masters (Test Configuration)

Admins configure the diagnostic test catalog under Admin → Service Request Masters. The sidebar provides links for Single Test creation, Custom Panel creation, and From LOINC import. A search page (/admin/admin/service-request-masters/search/0) lists all configured services with name, display name, and LOINC ID.

Creating a Single Test

FieldRequiredDescription
Test NameYesAuto-generates the LOINC ID by lowercasing and removing spaces
LOINC IDYesManually editable; defaults from Test Name
CategoryYesHospital, Laboratory, Radiology, Blood Bank, or Pharmacy
Scale TypeYesDetermines the result entry template (see below)
Sale PriceYesDecimal value
UnitConditionalHidden for Document and Narrative scale types
After BillingYesTRUE = diagnostic report blocked until invoice is created. FALSE = report can be created immediately.
Consignee LedgerNoLedger account for revenue sharing
Consignee Ledger %NoPercentage share to the ledger
Item SubHeadNoAccounting classification
Reference RangeConditionalHidden for Document, Panel, and Narrative types. Opens a modal for age/gender-specific ranges.

Creating a Custom Panel

A panel groups related tests ordered together (e.g., Complete Blood Count, Lipid Profile, LFT, KFT). The parent form has the same fields as a single test, which propagate to all child tests. Use the Add button to add child tests.

Each child test has its own: Test name, LOINC ID, Scale Type, Unit (conditional), and Reference Range (conditional). A child test with scale type Panel (-) acts as a display-only grouping header within the panel.

Scale Types

The scale type determines how results are entered and what the report template looks like:

Scale TypeCodeInputUsed For
QuantitativeQnNumber input with reference range. Values outside range auto-bold.Hemoglobin, Fasting Blood Sugar, most lab tests
OrdinalOrdText input with reference rangeUrine dipstick (1+, 2+, 3+)
NominalNomText input with reference rangeBlood group, presence/absence tests
DocumentDocTinyMCE rich text editor with AI generation and voice dictationUSG, CT, MRI, procedure notes, OT notes
NarrativeNarFree textClinical interpretations, comments
Panel-Display-only grouping headerSection labels within a custom panel

Document-type tests deserve special attention: since ABDM does not have a separate "procedure" HI type, DiagnosticReport with scale type Document can serve ultrasound, CT scan, procedure notes, and OT notes. However, the system also has a separate Procedure/OT Note module (see OPD Workflow) for dedicated surgical documentation with operator, assistants, and anesthetist fields.

Reference Ranges

Reference ranges are configured per test with optional age and gender variations:

SettingDescription
Age Limit Low / HighAge range this reference applies to (default: 0-200 years)
Age TypeYears, Months, or Days
Applies ToGender filter: Male, Female, other, unknown (default: all)
Lower Limit / Higher LimitNumeric reference range (Qn scale)
TextText-based reference range (Ord/Nom scales)

You can add multiple reference ranges — for example, different hemoglobin ranges for adult males, adult females, and children. At result entry time, the system filters reference ranges by the patient's age and gender and applies the last matching range.

From LOINC Import

The From LOINC page imports tests from a standardized global LOINC master (orgId=0):

  1. Select a panel from the LOINC master dropdown.
  2. Each child test loads with its LOINC name (read-only) plus editable Display Name, Status (TRUE/FALSE), Test Required (R/O), Units, and Reference Range (low/high/text).
  3. Submit to create an org-specific copy with your customizations.

After Billing Gate

When afterBilling is set to TRUE for a test or panel, the diagnostic report page checks the ServiceRequest status. If the status is still "draft" (not yet billed), the page blocks with:

Your service request needs be active or completed state because its panels after billing state is true

The flow: create ServiceRequest (draft) → create invoice → ServiceRequest becomes active → diagnostic report can be created.

When afterBilling is FALSE, the diagnostic report can be created immediately regardless of billing status. The default in the admin test form is FALSE; reseller-level tests default to TRUE.

Creating a Service Request (Test Order)

Entry Points

There are three ways to create a service request:

Entry PointPath
Billing pagePatient Dashboard → Billing → Lab & Services Billing → Create
Services ConsoleSidebar → Patient → Services → Services Panel (/admin/patient/console/services-console)
Doctor workspaceNavigate directly to /admin/doctor/records/bundle/service-request/create?patientid=X&encounterid=Y

The billing page is the primary entry point for most organizations.

Form Fields

FieldDescription
DateDateTime picker, defaults to current
PriorityRoutine, Urgent, ASAP, or STAT
StatusDraft (default), Active, On-hold, Cancelled, Completed
IntentAlways "order" (disabled field)
RequesterPractitioner or Patient; also supports free-text "Out Of List" entry
To be Done or Signed byMulti-select practitioners who perform and sign the report
RepeatDONT REPEAT (blocks duplicate tests in same encounter) or REPEAT
CategoryDropdown of service request categories; defaults to "Laboratory procedure"
ServicesMulti-select from the organization's configured tests and panels
NoteFree-text clinical notes

After Creation

The saved ServiceRequest form displays three links:

LinkDestination
Click Here to ReportOpens the Diagnostic Report page for result entry
Click Here To create InvoiceOpens the invoice creation page, passing the service request ID
Click Hear Add SpecimenOpens the Specimen form for sample collection

The system prevents adding more than one specimen per service request and blocks duplicate tests in the same encounter (unless marked REPEAT).

Specimen Collection

Specimen entry is a link from the Service Request form, not a standalone dashboard. There is no list of pending collections or barcode/label printing.

Access: Service Request form → Click Hear Add Specimen

The form at /admin/doctor/records/bundle/specimen/create has three fields:

FieldType
Collected Date and TimeDateTime picker
Received Date and TimeDateTime picker
Specimen TypeFree text input (not a dropdown)

To find past specimens for a patient, use the search page at /admin/doctor/records/bundle/specimen/search/{patientId}.

Result Entry (Diagnostic Report)

Access: Service Request form → Click Here to Report

This opens /admin/doctor/records/bundle/diagnostic-report-by-service-request/{serviceRequestId}. The form is generated dynamically from the panel or test configuration — one observation row per configured child test, with the input type determined by its scale type.

Report-Level Fields

FieldDescription
Request StatusActive or Completed. Controls the ServiceRequest status.
Lab IdOptional free-text local lab identifier

Result Entry by Scale Type

Quantitative (Qn): Number input showing the test name, value field, unit, and the patient's applicable reference range. Values outside the reference range are rendered in bold on the final report.

Ordinal / Nominal (Ord/Nom): Text input showing test name, value field, unit, and reference range.

Document (Doc): A TinyMCE rich text editor with three productivity features:

  • Editor shortcuts — pre-configured text expansions
  • Abbreviation expansion — auto-expands medical abbreviations
  • Templates — load pre-written report templates from a dropdown
  • Dictaphone — voice-to-text button to dictate findings
  • Generate Report — AI-assisted generation: the AI takes the report template plus the transcribed/dictated text and fills the template sections with structured clinical content

Document-type observations are used for ultrasound reports, CT scan findings, MRI interpretations, procedure notes, and OT notes.

Narrative (Nar): Free text input for clinical interpretations and comments.

Panel (-): Display-only section header within a panel — no value to enter.

Save and Finalize

Results can be saved as draft and finalized later. When the status is set to "final," the ServiceRequest is automatically marked as completed, and the report is pushed to ABDM (if ABDM is configured).

Report Generation

After saving, the system returns a PDF link:

  • URL: /api/pdfs/bundle/{compositionId}?bundletype=DiagnosticReport
  • What's included: Patient demographics, test names and results with units, reference ranges, abnormal values in bold, lab information, and the organization's Report Header letterhead
  • Paper size: Uses the organization's configured reportPaperSize

Delivery

MethodHow
PrintPDF opens in browser tab. Print or save as PDF.
WhatsAppSends the report PDF to the patient's registered mobile number. Available via the BundleWhatsApp API endpoint.

Procedure and OT Notes

The system has a separate Procedure/OT Note module for surgical and procedural documentation. It is not part of the lab workflow — it is a standalone FHIR Composition accessed from the Doctor workspace:

Access: /admin/doctor/records/bundle/op-procedure/create?patientid=X&encounterid=Y

The form captures: Primary Operator, Assistants, Anesthetist, Technicians, Asserter, Recorder, and a Procedure TinyMCE editor for free-text notes with template support.

However, since ABDM does not distinguish procedures as a separate HI type, a DiagnosticReport with Document scale type can also serve procedure and OT note use cases. Choose whichever fits your documentation needs.

FAQ

Q: Why can't I create a diagnostic report for a service request? A: If the test or panel has afterBilling: TRUE, the diagnostic report is blocked until an invoice is created for the service request and its status becomes "active" or "completed." Create the invoice from the Service Request form link first.

Q: How do I add reference ranges that vary by age and gender? A: In the test configuration form, open the Reference Range modal. Add separate ranges with different age limits and gender selections. At result entry time, the system auto-filters to the matching range.

Q: Can I enter partial results and finalize the rest later? A: Yes. Save results as draft. Only finalized results appear on the printed report.

Q: How do I create a report for an ultrasound or CT scan? A: Configure the test with Scale Type: Document (Doc). This provides a TinyMCE rich text editor with AI generation and voice dictation instead of numeric value fields.

Q: Does the system print barcode labels for specimens? A: No. The specimen form records collection and receipt timestamps with a free-text specimen type. There is no barcode or label printing.

Q: How are tests priced and billed? A: Each test/panel has a configured Sale Price. From the Service Request form, click "Click Here To create Invoice" — the system creates an invoice with the test and its price. The invoice links to the service request and the encounter.

Q: Can I import standardized test panels? A: Yes. Use Admin → Service Request Masters → From LOINC to import panels from the global LOINC master. You can customize display names, units, and reference ranges before saving them to your organization.

Q: Can reports include previous results for comparison? A: Yes. When generating a report, the system can show previous results for the same test alongside the current result for trend analysis.

Q: Is there a lab dashboard showing pending samples or turnaround times? A: No. The Services Console (/admin/patient/console/services-console) lists service requests with date and category filters, but there is no dedicated lab dashboard with status counts or turnaround time tracking.

Was this page helpful?
NICE HMS. 1st Gate Nehru Stadium, City Hubballi, District Dhrawad, State Karnataka, 580020
INDIA, Phone : email , GST 29AEYPB4702Q1ZS
facebook
twitter
linkedin
youtube
RSS