ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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 + AL est 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 :

plaintext orm-o01-example.hl7
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, prescripteur DRSMITH.
  • OBR+1+ORD789012 : examen demandé = CBC^Complete Blood Count^L (code local), date du prélèvement souhaitée 14 mai 11h00, secteur LAB, statut F (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 :

plaintext orr-o02-example.hl7
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 en CBC^...^L~58410-2^...^LN.
  • ORC-1 = NW sur une commande qui existe déjà : l'EHR doit envoyer RP (Replace) ou XO (Change order) pour les modifications. NW cré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+DomaineRemplace
OML^O21LaboratoryORM^O01 côté laboratoire
OMI^O23ImagingORM^O01 côté radiologie / RIS
OMP^O09Pharmacy / TreatmentORM^O01 + segments RXO pour la pharmacie
OMD^O03DietaryORM^O01 + ODS / ODT
OMG^O19General OrderORM^O01 cas général (qui ne tombe pas dans un domaine ci-dessus)
OMS^O05Stock requisitionORM^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.