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
- Open Analytics & integrations → Lab analyzer bridging → Analyzer connections and choose Add connection (permission "Manage integration credentials").
- 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).
- 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. - 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.
- 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
- The doctor creates a lab order from the EMR; the order is sent automatically to the analyzer that maps its tests.
- Results from the analyzer are added to the order as a draft. Values outside the reference range are flagged just like manual entries.
- The analyst checks, validates, and finalizes the results. Results from the analyzer are never finalized automatically.
- 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.
- 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.