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.

MessageDefinition — Définir un événement messaging

Ce que ADT_A01 est à HL7 v2, MessageDefinition l'est au messaging FHIR : la définition formelle d'un événement, du contenu attendu, et de la réponse autorisée.

Objet de la ressource

MessageDefinition est la métadonnée qui décrit un événement messaging FHIR : quel code d'événement (le eventCoding), quelles ressources sont attendues comme focus, à quels profils elles doivent être conformes, quelles réponses sont autorisées.

Là où HL7 v2 publiait les structures abstraites (ADT_A01, ORM_O01) dans le standard, FHIR encode la même chose comme une ressource : une MessageDefinition par événement métier, packagée dans un Implementation Guide.

Champs clés

ChampTypeCardinalitéRôle
urluri0..1URL canonique.
namestring0..1Nom machine.
statuscode1..1Obligatoire. État de publication.
event[x]Coding | uri1..1Obligatoire. Code d'événement défini.
categorycode0..1consequence, currency, notification.
focusBackboneElement[]0..*Ressources attendues en focus.
focus.codecode1..1Type de ressource (Patient, Encounter…).
focus.profilecanonical(StructureDefinition)0..1Profil sur la ressource.
focus.min / focus.maxinteger / string1..1 chacunCardinalité.
responseRequiredcode0..1always, on-error, never, on-success.
allowedResponseBackboneElement[]0..*MessageDefinition de réponses autorisées.
graphcanonical(GraphDefinition)0..1Graphe complet de ressources attendu.
parentcanonical[]0..*Hiérarchie d'événements.

Exemple JSON

MessageDefinition Patient Link Notification : notifie la fusion ou le lien entre deux patients (cas type d'identitovigilance) :

json messagedefinition-patient-link.json
{
  "resourceType": "MessageDefinition",
  "id": "patient-link",
  "url": "http://hl7.org/fhir/MessageDefinition/patient-link",
  "version": "5.0.0",
  "name": "PatientLinkNotification",
  "title": "Patient Link Notification",
  "status": "draft",
  "experimental": true,
  "date": "2026-05-14",
  "publisher": "HL7 (FHIR Project)",
  "description": "Notification d'un lien entre deux patients (fusion, doublon).",
  "eventCoding": {
    "system": "http://hl7.org/fhir/message-events",
    "code": "patient-link"
  },
  "category": "notification",
  "focus": [{
    "code": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "min": 2,
    "max": "2"
  }],
  "responseRequired": "always",
  "allowedResponse": [{
    "message": "http://hl7.org/fhir/MessageDefinition/patient-link-response"
  }]
}

Pièges courants

  • event[x] incohérent avec le MessageHeader.event[x] — le code dans MessageHeader DOIT matcher la MessageDefinition citée.
  • Cardinalité focus mal pensée — pour un événement comme patient-link, focus.min=2 exige bien deux Patients ; pour un admit, un seul.
  • Réponse obligatoire sans allowedResponse — déclarer responseRequired=always sans lister une MessageDefinition réponse rend l'IG inopérant.
  • Confusion MessageDefinition vs OperationDefinition — la première décrit un événement asynchrone (push de Bundle), la seconde une opération synchrone ($xxx).

Ressources liées