ORM: Order Message
ORM places, changes and cancels orders. It is the message that says "do this test" and, through the order control code in ORC-1, the message that later says "actually, do not".
Recognising ORM messages
ORM announces itself in MSH-9 like this:
ORM^O01^ORM_O01- MSH-9.1
ORMmessage code: what kind of message this is (order message) - MSH-9.2
O01trigger event: what happened in the real world: general order message - MSH-9.3
ORM_O01message structure: which segments to expect, and in what order
How to use these specifications explains MSH-9 in full, with a worked example.
Here it is in a real message. Look at the first line.
MSH|^~\&|EPIC|STJOSEPH|LABSYS|STJOSEPH|20240314102958||ORM^O01^ORM_O01|ORD20240314-4471|P|2.5.1 PID|1||1000345678^^^STJOSEPH^MR||CARTWRIGHT^ELEANOR^MAY^^^^L||19510822|F ORC|NW|ORD8842^EPIC|||||^^^20240314103000^^R||20240314102958|USER22^PATEL^NIRAV||1447312^OKONKWO^ADAEZE^^^^MD|3W^^^STJOSEPH|^PRN^PH^^1^503^5550199 OBR|1|ORD8842^EPIC||58410-2^CBC PANEL^LN|||20240314103000
Message structures
ORM takes 1 structure.
ORM_O01: general order message
Sent when one thing happens: O01: general 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 |
| NTE | Notes and Comments (for Results) | O | 0..* |
| PATIENT | a group of 7 segments, repeated together | O | 0..1 |
| PIDin PATIENT | Patient Identification | R | 1..1 |
| PD1in PATIENT | Additional Demographics | O | 0..1 |
| NTEin PATIENT | Notes and Comments (for Results) | O | 0..* |
| PATIENT_VISITin PATIENT | a group of 2 segments, repeated together | O | 0..1 |
| PV1in PATIENT_VISIT | Patient Visit | R | 1..1 |
| PV2in PATIENT_VISIT | Patient Visit- Additional Info | 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 | O | 0..* |
| ORDER | a group of 5 segments, repeated together | R | 1..* |
| ORC | Common Order | R | 1..1 |
| ORDER_DETAIL | a group of 5 segments, repeated together | O | 0..1 |
| CHOICEin ORDER_DETAIL | a group of 0 segments, repeated together | R | 1..1 |
| NTEin ORDER_DETAIL | Notes and Comments (for Results) | O | 0..* |
| CTDin ORDER_DETAIL | Contact Data | O | 0..1 |
| DG1in ORDER_DETAIL | Diagnosis | O | 0..* |
| OBSERVATIONin ORDER_DETAIL | a group of 2 segments, repeated together | O | 0..* |
| OBXin OBSERVATION | Observation/Result | R | 1..1 |
| NTEin OBSERVATION | Notes and Comments (for Results) | 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 7 such groups: PATIENT, PATIENT_VISIT, INSURANCE, ORDER, ORDER_DETAIL, CHOICE, OBSERVATION.
Trigger events
The trigger event is the real-world thing that made the message get sent. ORM defines 1.
| Event | Name | Structure |
|---|---|---|
| O01 | general order message | ORM_O01 |