HL7 v2.5.1 Specificationsv2.5.1

to moveEnter to openTry PID-5, ADT, 0004

OML: Laboratory order message

This page lists the structures and trigger events OML defines, taken from the standard. The written commentary that theADT page carries has not been written for OML.

Recognising OML messages

OML announces itself in MSH-9 like this:

MSH-9OML^O21^OML_O21
  1. MSH-9.1OMLmessage code: what kind of message this is
  2. MSH-9.2O21trigger event: what happened in the real world: laboratory order message
  3. MSH-9.3OML_O21message structure: which segments to expect, and in what order

How to use these specifications explains MSH-9 in full, with a worked example.

Message structures

OML takes 3 structures.

OML_O21: laboratory order message

Sent when one thing happens: O21: laboratory order message.

You must always send: MSH, ORC. Everything else is optional, or required only inside a group you chose to send.

SegmentNameOPTCardinality
MSHMessage HeaderR1..1
SFTSoftwareO0..*
NTENotes and Comments - previous resultO0..*
PATIENTa group of 8 segments, repeated togetherO0..1
PIDin PATIENTPatient Identification – previous resultR1..1
PD1in PATIENTAdditional Demographics – previous resultO0..1
NTEin PATIENTNotes and Comments - previous resultO0..*
NK1in PATIENTNext of Kin/Associated PartiesO0..*
PATIENT_VISITin PATIENTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISITPatient Visit – previous resultR1..1
PV2in PATIENT_VISITPatient Visit Add. Info – previous resultO0..1
INSURANCEin PATIENTa group of 3 segments, repeated togetherO0..*
IN1in INSURANCEInsuranceR1..1
IN2in INSURANCEInsurance Additional InfoO0..1
IN3in INSURANCEInsurance Add'l Info - Cert.O0..1
GT1in PATIENTGuarantorO0..1
AL1in PATIENTAllergy Information - previous resultO0..*
ORDERa group of 6 segments, repeated togetherR1..*
ORCCommon Order - previous resultR1..1
TIMINGa group of 2 segments, repeated togetherO0..*
TQ1in TIMINGTiming/QuantityR1..1
TQ2in TIMINGTiming/Quantity Order SequenceO0..*
OBSERVATION_REQUESTa group of 8 segments, repeated togetherO0..1
OBRin OBSERVATION_REQUESTOrder Detail - previous resultR1..1
TCDin OBSERVATION_REQUESTTest Code DetailO0..1
NTEin OBSERVATION_REQUESTNotes and Comments - previous resultO0..*
CTDin OBSERVATION_REQUESTContact DataO0..1
DG1in OBSERVATION_REQUESTDiagnosisO0..*
OBSERVATIONin OBSERVATION_REQUESTa group of 3 segments, repeated togetherO0..*
OBXin OBSERVATIONObservation/Result - previous resultR1..1
TCDin OBSERVATIONTest Code DetailO0..1
NTEin OBSERVATIONNotes and Comments - previous resultO0..*
SPECIMENin OBSERVATION_REQUESTa group of 3 segments, repeated togetherO0..*
SPMin SPECIMENSpecimenR1..1
OBXin SPECIMENObservation/Result - previous resultO0..*
CONTAINERin SPECIMENa group of 2 segments, repeated togetherO0..*
SACin CONTAINERSpecimen ContainerR1..1
OBXin CONTAINERObservation/Result - previous resultO0..*
PRIOR_RESULTin OBSERVATION_REQUESTa group of 4 segments, repeated togetherO0..*
PATIENT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PIDin PATIENT_PRIORPatient Identification – previous resultR1..1
PD1in PATIENT_PRIORAdditional Demographics – previous resultO0..1
PATIENT_VISIT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISIT_PRIORPatient Visit – previous resultR1..1
PV2in PATIENT_VISIT_PRIORPatient Visit Add. Info – previous resultO0..1
AL1in PRIOR_RESULTAllergy Information - previous resultO0..*
ORDER_PRIORin PRIOR_RESULTa group of 5 segments, repeated togetherR1..*
ORCin ORDER_PRIORCommon Order - previous resultO0..1
OBRin ORDER_PRIOROrder Detail - previous resultR1..1
NTEin ORDER_PRIORNotes and Comments - previous resultO0..*
TIMING_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherO0..*
TQ1in TIMING_PRIORTiming/QuantityR1..1
TQ2in TIMING_PRIORTiming/Quantity Order SequenceO0..*
OBSERVATION_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherR1..*
OBXin OBSERVATION_PRIORObservation/Result - previous resultR1..1
NTEin OBSERVATION_PRIORNotes and Comments - previous resultO0..*
FT1Financial TransactionO0..*
CTIClinical Trial IdentificationO0..*
BLGBilling SegmentO0..1

R inside a group means required of that group. Send the group and you must include that segment; leave the group out and it never appears. This structure has 15 such groups: PATIENT, PATIENT_VISIT, INSURANCE, ORDER, TIMING, OBSERVATION_REQUEST, OBSERVATION, SPECIMEN, CONTAINER, PRIOR_RESULT, PATIENT_PRIOR, PATIENT_VISIT_PRIOR, ORDER_PRIOR, TIMING_PRIOR, OBSERVATION_PRIOR.

OML_O33

Sent when one thing happens: O33: O33.

You must always send: MSH, SPM, ORC. Everything else is optional, or required only inside a group you chose to send.

SegmentNameOPTCardinality
MSHR1..1
SFTO0..*
NTEO0..*
PATIENTa group of 8 segments, repeated togetherO0..1
PIDin PATIENTR1..1
PD1in PATIENTO0..1
NTEin PATIENTO0..*
NK1in PATIENTO0..*
PATIENT_VISITin PATIENTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISITR1..1
PV2in PATIENT_VISITO0..1
INSURANCEin PATIENTa group of 3 segments, repeated togetherO0..*
IN1in INSURANCER1..1
IN2in INSURANCEO0..1
IN3in INSURANCEO0..1
GT1in PATIENTO0..1
AL1in PATIENTO0..*
SPECIMENa group of 4 segments, repeated togetherR1..*
SPMR1..1
OBXO0..*
SACO0..*
ORDERa group of 6 segments, repeated togetherR1..*
ORCR1..1
TIMINGa group of 2 segments, repeated togetherO0..*
TQ1in TIMINGR1..1
TQ2in TIMINGO0..*
OBSERVATION_REQUESTa group of 6 segments, repeated togetherO0..1
OBRin OBSERVATION_REQUESTR1..1
TCDin OBSERVATION_REQUESTO0..1
NTEin OBSERVATION_REQUESTO0..*
DG1in OBSERVATION_REQUESTO0..*
OBSERVATIONin OBSERVATION_REQUESTa group of 3 segments, repeated togetherO0..*
OBXin OBSERVATIONR1..1
TCDin OBSERVATIONO0..1
NTEin OBSERVATIONO0..*
PRIOR_RESULTin OBSERVATION_REQUESTa group of 4 segments, repeated togetherO0..*
PATIENT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PIDin PATIENT_PRIORR1..1
PD1in PATIENT_PRIORO0..1
PATIENT_VISIT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISIT_PRIORR1..1
PV2in PATIENT_VISIT_PRIORO0..1
AL1in PRIOR_RESULTO0..*
ORDER_PRIORin PRIOR_RESULTa group of 5 segments, repeated togetherR1..*
ORCin ORDER_PRIORO0..1
OBRin ORDER_PRIORR1..1
NTEin ORDER_PRIORO0..*
TIMING_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherO0..*
TQ1in TIMING_PRIORR1..1
TQ2in TIMING_PRIORO0..*
OBSERVATION_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherR1..*
OBXin OBSERVATION_PRIORR1..1
NTEin OBSERVATION_PRIORO0..*
FT1O0..*
CTIO0..*
BLGO0..1

R inside a group means required of that group. Send the group and you must include that segment; leave the group out and it never appears. This structure has 14 such groups: PATIENT, PATIENT_VISIT, INSURANCE, SPECIMEN, ORDER, TIMING, OBSERVATION_REQUEST, OBSERVATION, PRIOR_RESULT, PATIENT_PRIOR, PATIENT_VISIT_PRIOR, ORDER_PRIOR, TIMING_PRIOR, OBSERVATION_PRIOR.

OML_O35

Sent when one thing happens: O35: O35.

You must always send: MSH, SPM, SAC, ORC. Everything else is optional, or required only inside a group you chose to send.

SegmentNameOPTCardinality
MSHR1..1
SFTO0..*
NTEO0..*
PATIENTa group of 8 segments, repeated togetherO0..1
PIDin PATIENTR1..1
PD1in PATIENTO0..1
NTEin PATIENTO0..*
NK1in PATIENTO0..*
PATIENT_VISITin PATIENTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISITR1..1
PV2in PATIENT_VISITO0..1
INSURANCEin PATIENTa group of 3 segments, repeated togetherO0..*
IN1in INSURANCER1..1
IN2in INSURANCEO0..1
IN3in INSURANCEO0..1
GT1in PATIENTO0..1
AL1in PATIENTO0..*
SPECIMENa group of 3 segments, repeated togetherR1..*
SPMR1..1
OBXO0..*
SPECIMEN_CONTAINERa group of 2 segments, repeated togetherR1..*
SACR1..1
ORDERa group of 6 segments, repeated togetherR1..*
ORCR1..1
TIMINGa group of 2 segments, repeated togetherO0..*
TQ1in TIMINGR1..1
TQ2in TIMINGO0..*
OBSERVATION_REQUESTa group of 6 segments, repeated togetherO0..1
OBRin OBSERVATION_REQUESTR1..1
TCDin OBSERVATION_REQUESTO0..1
NTEin OBSERVATION_REQUESTO0..*
DG1in OBSERVATION_REQUESTO0..*
OBSERVATIONin OBSERVATION_REQUESTa group of 3 segments, repeated togetherO0..*
OBXin OBSERVATIONR1..1
TCDin OBSERVATIONO0..1
NTEin OBSERVATIONO0..*
PRIOR_RESULTin OBSERVATION_REQUESTa group of 4 segments, repeated togetherO0..*
PATIENT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PIDin PATIENT_PRIORR1..1
PD1in PATIENT_PRIORO0..1
PATIENT_VISIT_PRIORin PRIOR_RESULTa group of 2 segments, repeated togetherO0..1
PV1in PATIENT_VISIT_PRIORR1..1
PV2in PATIENT_VISIT_PRIORO0..1
AL1in PRIOR_RESULTO0..*
ORDER_PRIORin PRIOR_RESULTa group of 5 segments, repeated togetherR1..*
ORCin ORDER_PRIORO0..1
OBRin ORDER_PRIORR1..1
NTEin ORDER_PRIORO0..*
TIMING_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherO0..*
TQ1in TIMING_PRIORR1..1
TQ2in TIMING_PRIORO0..*
OBSERVATION_PRIORin ORDER_PRIORa group of 2 segments, repeated togetherR1..*
OBXin OBSERVATION_PRIORR1..1
NTEin OBSERVATION_PRIORO0..*
FT1O0..*
CTIO0..*
BLGO0..1

R inside a group means required of that group. Send the group and you must include that segment; leave the group out and it never appears. This structure has 15 such groups: PATIENT, PATIENT_VISIT, INSURANCE, SPECIMEN, SPECIMEN_CONTAINER, ORDER, TIMING, OBSERVATION_REQUEST, OBSERVATION, PRIOR_RESULT, PATIENT_PRIOR, PATIENT_VISIT_PRIOR, ORDER_PRIOR, TIMING_PRIOR, OBSERVATION_PRIOR.

Trigger events

The trigger event is the real-world thing that made the message get sent. OML defines 3.

EventNameStructure
O21laboratory order messageOML_O21
O33O33OML_O33
O35O35OML_O35