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:
OML^O21^OML_O21- MSH-9.1
OMLmessage code: what kind of message this is - MSH-9.2
O21trigger event: what happened in the real world: laboratory order message - MSH-9.3
OML_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.
| Segment | Name | OPT | Cardinality |
|---|---|---|---|
| MSH | Message Header | R | 1..1 |
| SFT | Software | O | 0..* |
| NTE | Notes and Comments - previous result | O | 0..* |
| PATIENT | a group of 8 segments, repeated together | O | 0..1 |
| PIDin PATIENT | Patient Identification – previous result | R | 1..1 |
| PD1in PATIENT | Additional Demographics – previous result | O | 0..1 |
| NTEin PATIENT | Notes and Comments - previous result | O | 0..* |
| NK1in PATIENT | Next of Kin/Associated Parties | O | 0..* |
| PATIENT_VISITin PATIENT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT | Patient Visit – previous result | R | 1..1 |
| PV2in PATIENT_VISIT | Patient Visit Add. Info – previous result | O | 0..1 |
| INSURANCEin PATIENT | a group of 3 segments, repeated together | O | 0..* |
| IN1in INSURANCE | Insurance | R | 1..1 |
| IN2in INSURANCE | Insurance Additional Info | O | 0..1 |
| IN3in INSURANCE | Insurance Add'l Info - Cert. | O | 0..1 |
| GT1in PATIENT | Guarantor | O | 0..1 |
| AL1in PATIENT | Allergy Information - previous result | O | 0..* |
| ORDER | a group of 6 segments, repeated together | R | 1..* |
| ORC | Common Order - previous result | R | 1..1 |
| TIMING | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING | Timing/Quantity | R | 1..1 |
| TQ2in TIMING | Timing/Quantity Order Sequence | O | 0..* |
| OBSERVATION_REQUEST | a group of 8 segments, repeated together | O | 0..1 |
| OBRin OBSERVATION_REQUEST | Order Detail - previous result | R | 1..1 |
| TCDin OBSERVATION_REQUEST | Test Code Detail | O | 0..1 |
| NTEin OBSERVATION_REQUEST | Notes and Comments - previous result | O | 0..* |
| CTDin OBSERVATION_REQUEST | Contact Data | O | 0..1 |
| DG1in OBSERVATION_REQUEST | Diagnosis | O | 0..* |
| OBSERVATIONin OBSERVATION_REQUEST | a group of 3 segments, repeated together | O | 0..* |
| OBXin OBSERVATION | Observation/Result - previous result | R | 1..1 |
| TCDin OBSERVATION | Test Code Detail | O | 0..1 |
| NTEin OBSERVATION | Notes and Comments - previous result | O | 0..* |
| SPECIMENin OBSERVATION_REQUEST | a group of 3 segments, repeated together | O | 0..* |
| SPMin SPECIMEN | Specimen | R | 1..1 |
| OBXin SPECIMEN | Observation/Result - previous result | O | 0..* |
| CONTAINERin SPECIMEN | a group of 2 segments, repeated together | O | 0..* |
| SACin CONTAINER | Specimen Container | R | 1..1 |
| OBXin CONTAINER | Observation/Result - previous result | O | 0..* |
| PRIOR_RESULTin OBSERVATION_REQUEST | a group of 4 segments, repeated together | O | 0..* |
| PATIENT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PIDin PATIENT_PRIOR | Patient Identification – previous result | R | 1..1 |
| PD1in PATIENT_PRIOR | Additional Demographics – previous result | O | 0..1 |
| PATIENT_VISIT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT_PRIOR | Patient Visit – previous result | R | 1..1 |
| PV2in PATIENT_VISIT_PRIOR | Patient Visit Add. Info – previous result | O | 0..1 |
| AL1in PRIOR_RESULT | Allergy Information - previous result | O | 0..* |
| ORDER_PRIORin PRIOR_RESULT | a group of 5 segments, repeated together | R | 1..* |
| ORCin ORDER_PRIOR | Common Order - previous result | O | 0..1 |
| OBRin ORDER_PRIOR | Order Detail - previous result | R | 1..1 |
| NTEin ORDER_PRIOR | Notes and Comments - previous result | O | 0..* |
| TIMING_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING_PRIOR | Timing/Quantity | R | 1..1 |
| TQ2in TIMING_PRIOR | Timing/Quantity Order Sequence | O | 0..* |
| OBSERVATION_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | R | 1..* |
| OBXin OBSERVATION_PRIOR | Observation/Result - previous result | R | 1..1 |
| NTEin OBSERVATION_PRIOR | Notes and Comments - previous result | O | 0..* |
| FT1 | Financial Transaction | O | 0..* |
| CTI | Clinical Trial Identification | O | 0..* |
| BLG | Billing Segment | O | 0..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.
| Segment | Name | OPT | Cardinality |
|---|---|---|---|
| MSH | R | 1..1 | |
| SFT | O | 0..* | |
| NTE | O | 0..* | |
| PATIENT | a group of 8 segments, repeated together | O | 0..1 |
| PIDin PATIENT | R | 1..1 | |
| PD1in PATIENT | O | 0..1 | |
| NTEin PATIENT | O | 0..* | |
| NK1in PATIENT | O | 0..* | |
| PATIENT_VISITin PATIENT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT | R | 1..1 | |
| PV2in PATIENT_VISIT | O | 0..1 | |
| INSURANCEin PATIENT | a group of 3 segments, repeated together | O | 0..* |
| IN1in INSURANCE | R | 1..1 | |
| IN2in INSURANCE | O | 0..1 | |
| IN3in INSURANCE | O | 0..1 | |
| GT1in PATIENT | O | 0..1 | |
| AL1in PATIENT | O | 0..* | |
| SPECIMEN | a group of 4 segments, repeated together | R | 1..* |
| SPM | R | 1..1 | |
| OBX | O | 0..* | |
| SAC | O | 0..* | |
| ORDER | a group of 6 segments, repeated together | R | 1..* |
| ORC | R | 1..1 | |
| TIMING | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING | R | 1..1 | |
| TQ2in TIMING | O | 0..* | |
| OBSERVATION_REQUEST | a group of 6 segments, repeated together | O | 0..1 |
| OBRin OBSERVATION_REQUEST | R | 1..1 | |
| TCDin OBSERVATION_REQUEST | O | 0..1 | |
| NTEin OBSERVATION_REQUEST | O | 0..* | |
| DG1in OBSERVATION_REQUEST | O | 0..* | |
| OBSERVATIONin OBSERVATION_REQUEST | a group of 3 segments, repeated together | O | 0..* |
| OBXin OBSERVATION | R | 1..1 | |
| TCDin OBSERVATION | O | 0..1 | |
| NTEin OBSERVATION | O | 0..* | |
| PRIOR_RESULTin OBSERVATION_REQUEST | a group of 4 segments, repeated together | O | 0..* |
| PATIENT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PIDin PATIENT_PRIOR | R | 1..1 | |
| PD1in PATIENT_PRIOR | O | 0..1 | |
| PATIENT_VISIT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT_PRIOR | R | 1..1 | |
| PV2in PATIENT_VISIT_PRIOR | O | 0..1 | |
| AL1in PRIOR_RESULT | O | 0..* | |
| ORDER_PRIORin PRIOR_RESULT | a group of 5 segments, repeated together | R | 1..* |
| ORCin ORDER_PRIOR | O | 0..1 | |
| OBRin ORDER_PRIOR | R | 1..1 | |
| NTEin ORDER_PRIOR | O | 0..* | |
| TIMING_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING_PRIOR | R | 1..1 | |
| TQ2in TIMING_PRIOR | O | 0..* | |
| OBSERVATION_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | R | 1..* |
| OBXin OBSERVATION_PRIOR | R | 1..1 | |
| NTEin OBSERVATION_PRIOR | O | 0..* | |
| FT1 | O | 0..* | |
| CTI | O | 0..* | |
| BLG | O | 0..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.
| Segment | Name | OPT | Cardinality |
|---|---|---|---|
| MSH | R | 1..1 | |
| SFT | O | 0..* | |
| NTE | O | 0..* | |
| PATIENT | a group of 8 segments, repeated together | O | 0..1 |
| PIDin PATIENT | R | 1..1 | |
| PD1in PATIENT | O | 0..1 | |
| NTEin PATIENT | O | 0..* | |
| NK1in PATIENT | O | 0..* | |
| PATIENT_VISITin PATIENT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT | R | 1..1 | |
| PV2in PATIENT_VISIT | O | 0..1 | |
| INSURANCEin PATIENT | a group of 3 segments, repeated together | O | 0..* |
| IN1in INSURANCE | R | 1..1 | |
| IN2in INSURANCE | O | 0..1 | |
| IN3in INSURANCE | O | 0..1 | |
| GT1in PATIENT | O | 0..1 | |
| AL1in PATIENT | O | 0..* | |
| SPECIMEN | a group of 3 segments, repeated together | R | 1..* |
| SPM | R | 1..1 | |
| OBX | O | 0..* | |
| SPECIMEN_CONTAINER | a group of 2 segments, repeated together | R | 1..* |
| SAC | R | 1..1 | |
| ORDER | a group of 6 segments, repeated together | R | 1..* |
| ORC | R | 1..1 | |
| TIMING | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING | R | 1..1 | |
| TQ2in TIMING | O | 0..* | |
| OBSERVATION_REQUEST | a group of 6 segments, repeated together | O | 0..1 |
| OBRin OBSERVATION_REQUEST | R | 1..1 | |
| TCDin OBSERVATION_REQUEST | O | 0..1 | |
| NTEin OBSERVATION_REQUEST | O | 0..* | |
| DG1in OBSERVATION_REQUEST | O | 0..* | |
| OBSERVATIONin OBSERVATION_REQUEST | a group of 3 segments, repeated together | O | 0..* |
| OBXin OBSERVATION | R | 1..1 | |
| TCDin OBSERVATION | O | 0..1 | |
| NTEin OBSERVATION | O | 0..* | |
| PRIOR_RESULTin OBSERVATION_REQUEST | a group of 4 segments, repeated together | O | 0..* |
| PATIENT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PIDin PATIENT_PRIOR | R | 1..1 | |
| PD1in PATIENT_PRIOR | O | 0..1 | |
| PATIENT_VISIT_PRIORin PRIOR_RESULT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT_PRIOR | R | 1..1 | |
| PV2in PATIENT_VISIT_PRIOR | O | 0..1 | |
| AL1in PRIOR_RESULT | O | 0..* | |
| ORDER_PRIORin PRIOR_RESULT | a group of 5 segments, repeated together | R | 1..* |
| ORCin ORDER_PRIOR | O | 0..1 | |
| OBRin ORDER_PRIOR | R | 1..1 | |
| NTEin ORDER_PRIOR | O | 0..* | |
| TIMING_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | O | 0..* |
| TQ1in TIMING_PRIOR | R | 1..1 | |
| TQ2in TIMING_PRIOR | O | 0..* | |
| OBSERVATION_PRIORin ORDER_PRIOR | a group of 2 segments, repeated together | R | 1..* |
| OBXin OBSERVATION_PRIOR | R | 1..1 | |
| NTEin OBSERVATION_PRIOR | O | 0..* | |
| FT1 | O | 0..* | |
| CTI | O | 0..* | |
| BLG | O | 0..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.