TransLABtor

ASTM LIS2-A2 · E1381-02

Standard ASTM LIS interface

This document defines the ASTM host interface between your Laboratory Information System (LIS) and TransLABtor middleware, based on CLSI LIS01-A2 / LIS2-A2 record content with ASTM E1381-02 low-level framing. Implement the record sequences and field positions below to exchange orders and results. TransLABtor driver type: astm_standard_lis.

Document version
1.0.0
Last updated
8 September 2026

1. Integration topology

Your LIS connects to the TransLABtor LIS channel. TransLABtor routes accepted orders to configured analyzers and returns consolidated results to the LIS.

  • LIS → TransLABtor: order messages (H / P / O / L records)
  • TransLABtor → LIS: result messages (H / P / O / R / L records)
  • Optional: query / response (Q records) for worklist synchronization

Connection modes: TCP Server, TCP Client, or File I/O. TCP ports are assigned per site during deployment.

2. Low-level protocol (E1381-02)

Each transmission uses the standard ASTM session handshake:

  1. Sender transmits ENQ (0x05)
  2. Receiver responds ACK (0x06) or NAK (0x15)
  3. Sender transmits one or more frames, each framed as:
    STX (0x02) + record text + ETX (0x03) or ETB (0x17) + 2-character checksum + CR + LF
  4. Receiver ACKs each valid frame or NAKs on checksum / format error
  5. Sender transmits EOT (0x04) to end the session

Checksum: modulo-256 sum of all bytes from the first record character through ETX/ETB, rendered as two ASCII hexadecimal digits (CLSI LIS01). Record delimiter within a frame: CR (0x0D). Field delimiter within a record: | (pipe).

3. Transport — File I/O

When File I/O mode is enabled:

  • Inbound: drop ASTM message files (records separated by CR) into the configured incoming directory; processed files are archived.
  • Outbound: result files are written to the outgoing directory with a configurable extension (default .astm).
  • File mode may omit ENQ/ACK/EOT session wrapping — one file equals one logical message (H through L).

4. Record types

Record Direction Purpose
HBothMessage header — sender, receiver, timestamp, processing ID
PBothPatient demographics
OBothOrder / specimen — test request on inbound; context on outbound results
RTL → LISResult value, units, flags, status
CBothComment (patient, specimen, or test level)
QBothQuery / worklist request (optional)
LBothMessage terminator

5. Order message (LIS → TransLABtor)

5.1 Record sequence

H|
P|
O|  (repeat per test / order line)
[C|]
L|

5.2 Header record (H)

FieldDescription
H-2Password (optional; site configuration)
H-3Sending application / LIS name
H-4Sending facility
H-5Receiving application (TransLABtor)
H-6Receiving facility
H-7Date/time YYYYMMDDHHMMSS
H-12Processing ID: P production, T test/training
H-13Version: 1394-97 or LIS2-A2

5.3 Patient record (P)

FieldDescription
P-2Patient ID (site ID type configurable)
P-3Alternate patient ID / MRN
P-5Patient name Last^First^Middle
P-7Date of birth YYYYMMDD
P-8Sex: M or F when sent
P-11Attending physician
P-13Location

5.4 Order record (O) — required fields

FieldDescription
O-2Sequence number within message
O-3Specimen ID — required
O-4Instrument specimen ID (rack^position^module — optional)
O-5Universal test ID: ^^^AssayCode^AssayName^Dilution
O-6Priority: R routine, S STAT
O-7Requested date/time
O-11Action code: A add, N new, C cancel
O-12Specimen type / class: blank = patient, Q = QC
O-15Specimen fluid / source (site-specific descriptor)
O-16Ordering physician
O-26Report type: O order download, Q query response
O-31Routing instrument / destination code — maps to TransLABtor instruments.instrument_code

Each O record represents one test line for a specimen. Multiple tests on the same specimen use multiple O records under one P record.

5.5 Terminator (L)

L-2 = 1 for normal termination. Missing or malformed terminator rejects the message.

6. Result message (TransLABtor → LIS)

6.1 Record sequence

H|
P|
O|
R|  (repeat per result)
[C|]
L|

6.2 Result record (R)

FieldDescription
R-2Sequence number
R-3Universal test ID — LIS test code in outbound position 4 (^^^LISCode^Name)
R-4Result value (numeric or text)
R-5Units
R-6Reference range
R-7Abnormal flags
R-8Result status: F final, P preliminary, X cannot process
R-9Date/time of analysis YYYYMMDDHHMMSS
R-10Operator / instrument ID
R-12Result type: F final, I instrument comment (optional handling)

By default, only validated results are transmitted to the LIS.

7. Query (optional)

Worklist query uses Q records:

FieldDescription
Q-2Sequence
Q-3Starting range ID — specimen ID or ALL
Q-4Ending range ID
Q-13Request type: O orders

TransLABtor responds with an order message (H/P/O/L) or a negative query response (Q with status X) when no orders match.

8. Validation rules

RuleOutcome
O-3 Specimen ID required on every order lineNAK / message rejected
H-12 Processing ID must match site configurationNAK / message rejected
P-8 Sex, when present, must be M or FNAK / message rejected
Patient ID mismatch on existing specimenRejected (patient safety guard)
Frame checksum failureNAK — retransmit frame
Routing code (O-31) unknownOrder line skipped; audit recorded

9. Test and instrument mapping

LIS assay codes in O-5 are mapped to instrument wire codes per target analyzer before download. Outbound R-3 uses the LIS code stored at order time (ordered_lis_test_code). Provide a crosswalk during scoping or configure mappings in TransLABtor after deployment.

10. Examples — orders (illustrative)

10.1 One specimen, multiple tests, same instrument

Single P record and one O record per test. All lines share specimen ID SM2026001 and the same routing code in O-31.

H|\^&|||LIS|HOSP|TransLABtor|LAB|20260202120000||P|1394-97|20260202120000
P|1|PAT001||Doe^John||19800101|M|||||||||||||||||||
O|1|SM2026001||^^^GLU^Glucose|R|20260202100000|||||A||||SER|||||||HEM001||||||O
O|2|SM2026001||^^^BUN^Urea|R|20260202100000|||||A||||SER|||||||HEM001||||||O
O|3|SM2026001||^^^CREA^Creatinine|R|20260202100000|||||A||||SER|||||||HEM001||||||O
L|1|N

10.2 One specimen, multiple tests, split by instrument

Change O-31 per line when tests route to different analyzers.

H|\^&|||LIS|HOSP|TransLABtor|LAB|20260202120500||P|1394-97|20260202120500
P|1|PAT001||Doe^John||19800101|M|||||||||||||||||||
O|1|SM2026001||^^^GLU^Glucose|R|20260202100000|||||A||||SER|||||||HEM001||||||O
O|2|SM2026001||^^^HGB^Haemoglobin|R|20260202100000|||||A||||SER|||||||HEM001||||||O
O|3|SM2026001||^^^PT^Prothrombin Time|R|20260202100000|||||A||||PLASMA|||||||COAG001||||||O
L|1|N

11. Example — result with multiple tests (TransLABtor → LIS)

One message may include multiple O / R pairs for the same specimen — one pair per completed test.

H|\^&|||TransLABtor|LAB|LIS|HOSP|20260202143000||P|1394-97|20260202143000
P|1|PAT001||Doe^John||19800101|M
O|1|SM2026001||^^^GLU^Glucose|||||||||||||||||||||||
R|1|^^^GLU^Glucose|5.4|mmol/L|3.9-6.1|N|F|20260202142500|HEM001||F
O|2|SM2026001||^^^BUN^Urea|||||||||||||||||||||||
R|1|^^^BUN^Urea|6.2|mmol/L|2.5-7.1|N|F|20260202142500|HEM001||F
O|3|SM2026001||^^^CREA^Creatinine|||||||||||||||||||||||
R|1|^^^CREA^Creatinine|88|umol/L|59-104|N|F|20260202142500|HEM001||F
L|1|N

12. Deployment parameters (negotiated per site)

ParameterNotes
Processing IDP or T — must match inbound H-12
Routing fieldDefault O-31 instrument destination code
Patient ID fieldP-2 vs P-3 selection
File I/O pathsIncoming / outgoing directories
E1381 variantE1381-02 framed (default) or record-only file mode
Integration support: Share de-identified ASTM traces or your LIS host manual via the contact form for a joint field-mapping workshop.