Skip to content

SATUSEHAT and BPJS integrations

Lab analyzer bridging (LIS): connecting laboratory analyzers to Medivana

Updated 30 Oct 2026

In this article

Lab analyzer bridging sends laboratory orders from Medivana to the analyzer or to the clinic's LIS (laboratory information system) middleware, then receives the results back automatically. Results from the analyzer arrive as a draft: the analyst still checks, validates, and finalizes them as usual.

This feature is the Custom integration: lab analyzer bridging (LIS) add-on and requires the Laboratory module. Setup for each analyzer is supported by the Medivana implementation team (custom integration service).

Before you start

What to prepare Details
Analyzer details Brand/model, supported protocol (HL7 v2.3.1/2.5.1 or ASTM LIS2-A2), and how it connects (HTTP through middleware, MLLP/TCP, or ASTM/TCP)
Test codes on the analyzer The test/parameter codes the analyzer sends (for example HGB, WBC, GLU) and their units
Medivana lab catalog Tests, parameters, units, and reference ranges match the analyzer and reagents (Laboratory settings)
Sample labels Sample barcodes/labels use the Medivana order number (LAB-YYYYMMDD-0001) so results match automatically
Network Middleware that sends over HTTPS only needs internet access. Analyzers that can only use TCP (MLLP/ASTM) use the Medivana TCP gateway over TLS or VPN; contact the Medivana team

Setup steps

  1. Open Analytics & integrations → Lab analyzer bridging → Analyzer connections and choose Add connection (permission "Manage integration credentials").
  2. Enter the name, the branch where the analyzer is located, the protocol, and how orders are sent:
    • Receive results only: the analyzer does not receive orders from Medivana (the operator types the order number on the analyzer).
    • Send orders via HTTP: Medivana sends ORM/OML messages to the middleware URL.
    • Send orders via MLLP/TCP: Medivana sends to the analyzer's or middleware's host:port.
    • Middleware polls for orders: the middleware fetches orders periodically (suitable for clinic networks without a public IP).
  3. Save. The connection token is shown only once: copy it into the middleware configuration (header Authorization: Bearer <token>) or into the analyzer's security field (MSH-8 for HL7, Access Password H.4 for ASTM). If the token is lost, create a new one; the old token stops working immediately.
  4. Open the Code mapping tab and map every analyzer code to a Medivana test or parameter:
    • Test-level codes (for example CBC → Complete blood count) are used when sending orders.
    • Parameter codes (for example HGB → Hemoglobin) are used to receive results. Parameters with the same LOINC code are recognized automatically.
    • If the analyzer's unit differs (for example glucose in mmol/L while the catalog uses mg/dL), enter the Analyzer unit and the Conversion factor (18.0182).
    • For qualitative results, enter translations if the analyzer uses different terms (for example NEG=Negative). NEG/POS/TRACE are recognized automatically.
  5. Test with one sample: create a lab order, make sure the order appears on the analyzer (the Message log tab shows "Received by analyzer"), run the sample, then check that the result on the Lab & radiology screen is marked From analyzer.

Daily flow

  1. The doctor creates a lab order from the EMR; the order is sent automatically to the analyzer that maps its tests.
  2. Results from the analyzer are added to the order as a draft. Values outside the reference range are flagged just like manual entries.
  3. The analyst checks, validates, and finalizes the results. Results from the analyzer are never finalized automatically.
  4. Results that cannot be matched automatically go to the Results inbox. The analyst chooses Match to order (search by order number, MRN, or name) or Ignore with a reason.
  5. Cancelling an order in Medivana also sends a cancellation to the analyzer.

Results inbox: meanings and actions

Symptom / message Cause What to do
Order/specimen number not found The sample label is not a Medivana order number, there was a typo on the analyzer, or it is a QC sample Match it to the correct order or ignore it (QC sample)
Analyzer test code not mapped A new code from the analyzer Match it once with "Save mapping" ticked; later results arrive automatically. Once the mapping is complete, older messages can be Reprocessed from the Message log
Analyzer unit differs from the catalog The analyzer sends a different unit Enter the converted value when matching, then complete the unit and factor in the mapping
Result value is not valid for the parameter The qualitative result is not one of the options Enter the correct value; add a translation in the mapping
Patient identity does not match the order The name and MRN on the analyzer differ from the order Check the sample label. Do not match it until you are sure the sample belongs to that patient
Order already finalized or cancelled A late or repeat result after finalization Correct finalized results according to the lab supervisor's SOP
Analyzer reports the test could not be performed Insufficient sample, analyzer error Repeat the test or ignore it with a reason

Common problems

Symptom / message Cause What to do
Analyzer/middleware gets 401 Wrong token, or the token has been replaced Enter the latest token from the connection; create a new token if needed
Analyzer gets 403 "This LIS connection is inactive" The connection was deactivated Reactivate it in the Analyzer connections tab
Analyzer gets 402 The lab analyzer bridging add-on or the Laboratory module is not active The clinic owner adds the add-on in Plan & billing
Order does not reach the analyzer The test is not mapped, the send mode is "Receive results only", or the analyzer cannot be reached Check the Message log tab and the SATUSEHAT & BPJS menu → "lis" system; orders are resent automatically, or choose resend after fixing the problem
Message rejected: "Control ID already used for another message" The analyzer reuses message numbers after a restart Configure the analyzer/middleware so the message number (MSH-10) is unique
Test-mode results do not arrive The message is marked as test/QC (processing ID T/D/Q) This is normal: test results are not written to patients

Messages from analyzers contain patient data. They are stored encrypted; opening a message's content in the Message log is recorded in the audit log.

Baca dalam Bahasa Indonesia