ORM^O01 — Order Message
Le message historique de prescription HL7 v2 : examens de laboratoire, imagerie, soins, médicaments. Présent dans pratiquement chaque flux EHR ↔ SIL en place avant 2010.
Objet du message
ORM^O01 transporte une commande clinique : une demande d'analyse de laboratoire, d'examen d'imagerie, de prescription médicamenteuse, de soin infirmier. Le message est multi-objets : il peut porter plusieurs commandes dans un seul envoi (groupes ORC + OBR répétés), chacune avec ses observations associées (OBX), ses notes (NTE), ses diagnostics (DG1), ses spécimens (SPM).
Le code d'action du segment ORC-1 qualifie l'intention : NW
(New Order), CA (Cancel), DC (Discontinue), RP
(Replace), HD (Hold), RL (Release). C'est ce code qui pilote
la sémantique côté récepteur.
Structure segmentaire
La structure abstraite ORM_O01 définie au chapitre 4 de v2.5.1 :
ORM_O01
MSH Message Header (mandatoire)
[ { NTE } ] Notes and Comments (optionnel)
[
PATIENT
PID Patient Identification (mandatoire)
[ PD1 ] Patient Additional Demographics
[ { NTE } ]
[ { NK1 } ] Next of Kin
[
PATIENT_VISIT
PV1 Patient Visit
[ PV2 ] Patient Visit - Additional Info
]
[ { INSURANCE
IN1 Insurance
[ IN2 ]
[ IN3 ]
} ]
[ GT1 ] Guarantor
[ { AL1 } ] Patient Allergy
]
{
ORDER Commande (répétable)
ORC Common Order (mandatoire)
[
ORDER_DETAIL
OBR | RQD | RQ1 | RXO | ODS | ODT
[ { NTE } ]
[ { DG1 } ] Diagnosis
[ { OBX } ] Observation / Result
[ { FT1 } ] Financial Transaction
[ { CTI } ] Clinical Trial Identification
[
BLG Billing
]
]
} MSH — Message Header
- MSH-9 :
ORM^O01^ORM_O01. - MSH-10 : identifiant unique du message côté émetteur (clé d'idempotence).
- MSH-12 :
2.5.1. - MSH-15 / MSH-16 :
AL+ALest fréquent pour ORM (l'EHR attend un ORR applicatif avec le placer/filler ID alloué côté SIL).
PID — Patient Identification
PID est identique à celui d'un ADT^A01 (voir la page ADT^A01) — la consistance des identifiants PID-3 entre les deux flux est critique pour la corrélation aval (résultats ORU rattachés au bon patient et au bon séjour).
ORC — Common Order
Le segment ORC est le squelette commun à toutes les commandes : code d'action, identifiants Placer / Filler, opérateur, date de commande, etc. Champs critiques :
- ORC-1 : Order Control (
NW,CA,DC,RP,HD,RL…). Pilote la sémantique métier. - ORC-2 : Placer Order Number — identifiant attribué par le système prescripteur (EHR). Stable sur tout le cycle de vie de la commande.
- ORC-3 : Filler Order Number — identifiant attribué par le système exécutant (SIL). Renvoyé dans l'ORR.
- ORC-5 : Order Status (
IP=In Process,CM=Completed,SC=Scheduled,A=Some results available…). - ORC-7 : Quantity / Timing — fréquence de répétition (pour les ordonnances récurrentes).
- ORC-9 : date d'effet souhaitée.
- ORC-10 / ORC-12 : Entered By / Ordering Provider (médecin prescripteur, XCN).
- ORC-17 : Entering Organization — facility de saisie.
OBR — Observation Request
OBR porte le détail de la demande d'examen. Champs critiques :
- OBR-2 : Placer Order Number (doit matcher ORC-2).
- OBR-3 : Filler Order Number (matche ORC-3, vide à la création).
- OBR-4 : Universal Service Identifier (CWE) — code de l'examen demandé (
CBC,BMP,TSH…). Codé idéalement en LOINC. - OBR-7 : Observation Date/Time — date de prélèvement / examen.
- OBR-16 : Ordering Provider (XCN).
- OBR-22 : Results Report / Status Change — Date/Time (à la création, vide).
- OBR-24 : Diagnostic Serv Sect ID (
LAB,RAD,CHE…). - OBR-25 : Result Status (
O=Order received,I=In progress,P=Preliminary,F=Final).
OBX — Observation / Result
OBX porte une observation discrète : à la commande (renseignements cliniques, poids, grossesse), ou aux résultats (utilisé dans l'ORU^R01 retour). Champs critiques en contexte ORM (observations à la commande) :
- OBX-2 : type de valeur (
NM=Numeric,ST=String,CWE=Coded with Exceptions,TX=Text…). - OBX-3 : Observation Identifier — code de l'observation (LOINC).
- OBX-5 : Observation Value.
- OBX-6 : Units (UCUM).
- OBX-7 : Reference Range (intervalle normal).
- OBX-8 : Abnormal Flags (
H=High,L=Low,HH=Critical High…). - OBX-11 : Observation Result Status.
Exemple réel
Demande de Numération Formule Sanguine (NFS / CBC) pour le patient John Doe, suite à suspicion de pneumonie bactérienne :
MSH|^~\&|EHR|CLINIC02|LIS|HOSP01|20260514110000||ORM^O01^ORM_O01|ORM00000001|P|2.5.1|||AL|NE
PID|1||MRN567890^^^HOSP^MR||DOE^JOHN^A^^MR.||19720515|M|||100 MAIN ST^^ANYTOWN^CA^90210^USA||(555)555-1234|||S||ACCT123456
PV1|1|I|ICU^101^A^HOSP01||||DRSMITH^Smith^James^A^^DR.||||||1||||||||||||||||||||||HOSP01
ORC|NW|ORD789012|||IP||^^^20260514110000^^R||20260514110000|DRSMITH^Smith^James^A^^DR.||DRSMITH^Smith^James^A^^DR.|HOSP01
OBR|1|ORD789012||CBC^Complete Blood Count^L|||20260514110000|||||||||DRSMITH^Smith^James^A^^DR.||||||20260514110000||LAB|F
NTE|1||Hématocrite si possible
DG1|1|I10|J18.9^Pneumonie bactérienne^I10|||A - MSH : l'EHR de la clinique poste vers le SIL de l'hôpital, version 2.5.1.
- PID + PV1 : patient et visite (cohérents avec l'A01 d'admission).
- ORC+NW : New Order, Placer
ORD789012, prescripteurDRSMITH. - OBR+1+ORD789012 : examen demandé =
CBC^Complete Blood Count^L(code local), date du prélèvement souhaitée 14 mai 11h00, secteurLAB, statutF(Final — la demande est validée). - NTE : note clinique libre (« Hématocrite si possible »).
- DG1 : diagnostic d'entrée justifiant la demande : pneumonie bactérienne (CIM-10 J18.9), code
A= Admitting.
Réponse (ORR^O02)
Le SIL répond en allouant un Filler Order Number et en confirmant la prise en compte :
MSH|^~\&|LIS|HOSP01|EHR|CLINIC02|20260514110005||ORR^O02^ORR_O02|ORR00000001|P|2.5.1
MSA|AA|ORM00000001
PID|1||MRN567890^^^HOSP^MR||DOE^JOHN^A^^MR.||19720515|M
ORC|OK|ORD789012|LIS456789||IP||||20260514110005 - MSA-1 :
AA(Application Accept). - MSA-2 : identifiant du message ORM acquitté.
- ORC-1 :
OK= Acknowledge — la commande est acceptée. - ORC-3 :
LIS456789— le Filler ID alloué côté SIL.
Le résultat final arrivera plus tard, dans un message séparé : ORU^R01
(Observation Result Unsolicited), corrélé via le couple Placer / Filler.
Erreurs fréquentes
- Placer Order Number non unique côté EHR : si l'EHR réutilise un Placer ID pour une nouvelle commande, le SIL ne sait pas si c'est une mise à jour ou une nouvelle demande. Toujours stratifier par épisode + horodatage.
- OBR-4 sans codage standard : utiliser uniquement un libellé local (
CBC^Complete Blood Count^L) sans coordonnée LOINC oblige le SIL à maintenir une table de correspondance. À enrichir au moins enCBC^...^L~58410-2^...^LN. - ORC-1 =
NWsur une commande qui existe déjà : l'EHR doit envoyerRP(Replace) ouXO(Change order) pour les modifications.NWcrée toujours une commande nouvelle. - Pas de réponse ORR : certains SIL en mode batch ne renvoient pas d'ORR ; l'EHR doit alors corréler les résultats ORU par Placer ID (OBR-2) plutôt que par Filler ID.
- Multi-commandes mélangées : un ORM peut porter N groupes ORC+OBR. Chacun doit être autosuffisant (son propre Placer ID, son propre code OBR-4).
Évolution ORM → OML / OMI / OMP / OMD / OMG
À partir de v2.5, HL7 a séparé ORM en plusieurs messages domaine-spécifiques pour réduire l'ambiguïté sémantique. La table ci-dessous résume l'équivalence :
| Message v2.5+ | Domaine | Remplace |
|---|---|---|
| OML^O21 | Laboratory | ORM^O01 côté laboratoire |
| OMI^O23 | Imaging | ORM^O01 côté radiologie / RIS |
| OMP^O09 | Pharmacy / Treatment | ORM^O01 + segments RXO pour la pharmacie |
| OMD^O03 | Dietary | ORM^O01 + ODS / ODT |
| OMG^O19 | General Order | ORM^O01 cas général (qui ne tombe pas dans un domaine ci-dessus) |
| OMS^O05 | Stock requisition | ORM^O01 + RQD/RQ1 pour les approvisionnements |
Quel que soit le message domaine choisi, la mécanique reste la même : une réponse ORR (ORI^O23 pour OMI, ORL^O22 pour OML, etc.) acquitte la commande, puis un message de résultat ORU^R01 ou son équivalent retourne les observations.
Voir aussi : ADT^A01 pour l'admission patient, et FHIR Bundle qui transporte les opérations multi-ressources en FHIR R5, équivalent fonctionnel d'un ORM multi-ORC.