Release 4 R6 Ballot (1st Full Ballot)

This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU v6.0.0-ballot4: Release 6 Ballot (1st Full Ballot) (see Ballot Notes ) in it's permanent home (it will always be available at this URL). ). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions for published versions icon . Page versions: R5 R4B R4 R3 R2

2.47 2.15 Resource MessageHeader - Content

Responsible Owner: Infrastructure And Messaging icon Work Group Maturity Level : 4   Trial Use Normative Security Category : Not Classified Compartments : Device , Practitioner

The header for a message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.

The MessageHeader resource is defined in order to support Messaging using FHIR resources . The principal usage of the MessageHeader resource is when messages are exchanged. However, as a resource that can be used with the RESTful framework, the MessageHeader resource has the normal resource end-point ([base-url]/MessageHeader), which is used to manage a set of static messages resources. This could be used to make an archive of past messages available. Creating or updating Message resources in this fashion does not represent the actual occurrence of any event, nor can it trigger any logic associated with the actual event. It is just for managing a set of message resources.

Structure

Code for the string 1..1 0..1 The Σ Id
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MessageHeader Σ TU N DomainResource A resource that describes a message that is exchanged between systems

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . event[x] Σ 1..1 The real world event that triggered this message represents or link to event definition messsage
Binding: MessageEvent ( Example )
. . . . eventCoding Coding
. . . . eventUri uri
. . . . eventCanonical canonical ( EventDefinition | SubscriptionTopic )
. . . destination Σ 0..* BackboneElement Message destination application(s)

. . . name . endpoint[x] Σ 0..1 Actual destination address or Endpoint resource
Name of system
. . . . target . endpointUrl Σ url 0..1
. . . . . endpointReference Reference ( Device Endpoint ) Particular delivery destination within the destination
. . . . endpoint name Σ 0..1 url string Name of system
Actual destination address or id
. . . . receiver Σ 0..1 Reference ( Device | Organization | Patient | Practitioner | PractitionerRole | Organization RelatedPerson ) Intended "real-world" recipient for the data
. . sender . source Σ 1..1 Reference ( Practitioner | PractitionerRole | Organization BackboneElement ) Message source application
Real world sender of the message
. . enterer . . endpoint[x] Σ 0..1 Reference ( Practitioner | PractitionerRole ) Actual source of the data entry address or Endpoint resource
. author . . . Σ . endpointUrl 0..1 Reference ( Practitioner | PractitionerRole url ) The source of the decision
. . source . . . endpointReference 1..1 BackboneElement Reference ( Endpoint ) Message source application
. . . . name Σ 0..1 string Name of system
. . . . software Σ 0..1 string Name of software running the system
. . . . version Σ 0..1 string Version of software running
. . . . contact Σ 0..1 ContactPoint Human contact for problems
. . . endpoint Σ 1..1 url Actual message source address or id responsible . sender Σ 0..1 Reference ( Device | Organization | Patient | Practitioner | PractitionerRole | Organization ) Real world sender of the message
Final responsibility for event
. . . response Σ 0..1 BackboneElement If this is a reply to prior message
. . . . identifier Σ 1..1 id Identifier Bundle.identifier of original message
. . . . code Σ 1..1 code ok | transient-error | fatal-error
ResponseType Binding: Response Type ( Required )
. . . . details Σ 0..1 Reference ( OperationOutcome ) Specific list of hints/warnings/errors
. . . focus Σ 0..* Reference ( Any ) The actual content of the message

. . . definition Σ 0..1 canonical ( MessageDefinition ) Link to the definition for this message

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MessageHeader ( DomainResource ) Code that identifies the event this message represents and connects it with its definition. Events are defined as part of the FHIR specification have the system value "http://terminology.hl7.org/CodeSystem/message-events". Alternatively uri by codes, or by URIs that identify events, or by reference to the EventDefinition event[x] : Type [1..1] « Coding | uri ; One of the message events defined as part of this version of FHIR. (Strength=Example) MessageEvent ?? » Identifies the sending system to allow the use of a trust relationship sender : Reference [0..1] « Practitioner | PractitionerRole | Organization » The person or device SubscriptionTopic resources that performed define the data entry leading to this message. When there event directly. This element is more than one candidate, pick the most proximal to intentionally unbound, and the message. Can provide other enterers in extensions enterer : Reference [0..1] « Practitioner | PractitionerRole » The logical author selection of the message - the person or device that decided the described appropriate event should happen. When there codes is more than one candidate, pick the most proximal delegated to the MessageHeader. Can provide other authors in extensions author : Reference [0..1] « Practitioner | PractitionerRole » The person or organization that accepts overall responsibility for the contents implementations and implementation guides. For codes, a good set of the message. The implication example codes is that the message found in [the V2 event happened under the policies of the responsible party codes](https://terminology.hl7.org/ValueSet-v2-0003.html) responsible event[x] : Reference DataType [0..1] [1..1] « Practitioner Coding | PractitionerRole uri | canonical ( EventDefinition | Organization SubscriptionTopic ); null (Strength=Example) MessageEvent ?? » Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message reason : CodeableConcept [0..1] « Reason for event occurrence. null (Strength=Example) ExampleMessageReasonCodes ?? » The actual data of the message - a reference to the root/focus class of the event event. This is allowed to be a Parameters resource focus : Reference [0..*] « Any » Permanent link to the MessageDefinition for this message definition : canonical [0..1] « MessageDefinition » MessageDestination Human-readable name for the target system name : string [0..1] Identifies the target end system in situations Indicates where the initial message transmission is to an intermediary system should be routed target endpoint[x] : Reference DataType [0..1] « Device url | Reference ( Endpoint ) » Indicates where Human-readable name for the message should be routed to target system endpoint name : url string [1..1] [0..1] Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient receiver : Reference [0..1] « Practitioner Device | PractitionerRole Organization | Patient | Organization Practitioner | PractitionerRole | RelatedPerson » MessageSource Identifies the routing target to send acknowledgements to endpoint[x] : DataType [0..1] « url | Reference ( Endpoint ) » Human-readable name for the source system name : string [0..1] May include configuration or other information useful in debugging software : string [0..1] Can convey versions of multiple systems in situations where a message passes through multiple hands version : string [0..1] An e-mail, phone, website or other contact point to use to resolve issues with message communications contact : ContactPoint [0..1] Identifies the routing target to send acknowledgements sending entity to allow the use of a trust relationship endpoint sender : url Reference [1..1] [0..1] « Device | Organization | Patient | Practitioner | PractitionerRole » Response The MessageHeader.id Bundle.identifier of the message to which this message is a response identifier : id Identifier [1..1] Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not code : code [1..1] « The kind of response to a message. null (Strength=Required) ResponseType ! » Full details of any issues found in the message details : Reference [0..1] « OperationOutcome » The destination application which the message is intended for destination [0..*] The source application from which this message originated source [1..1] Information about the message that this message is a response to. Only present if this message is a response response [0..1]

XML Template

<MessageHeader xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <</event[x]>

 <event[x]><!-- 1..1 Coding|uri|canonical(EventDefinition|SubscriptionTopic) The real world event that triggered this messsage --></event[x]>

 <destination>  <!-- 0..* Message destination application(s) -->
  <endpoint[x]><!-- 0..1 url|Reference(Endpoint) Actual destination address or Endpoint resource --></endpoint[x]>

  <name value="[string]"/><!-- 0..1 Name of system -->
  <</target>
  <
  <</receiver>

  <receiver><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Intended "real-world" recipient for the data --></receiver>
 </destination>
 <</sender>
 <</enterer>
 <</author>

 <source>  <!-- 1..1 Message source application -->
  <endpoint[x]><!-- 0..1 url|Reference(Endpoint) Actual source address or Endpoint resource --></endpoint[x]>

  <name value="[string]"/><!-- 0..1 Name of system -->
  <software value="[string]"/><!-- 0..1 Name of software running the system -->
  <version value="[string]"/><!-- 0..1 Version of software running -->
  <contact><!-- 0..1 ContactPoint Human contact for problems --></contact>
  <

  <sender><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole) Real world sender of the message --></sender>
 </source>
 <</responsible>

 <reason><!-- 0..1 CodeableConcept Cause of event --></reason>
 <response>  <!-- 0..1 If this is a reply to prior message -->
  <

  <identifier><!-- 1..1 Identifier Bundle.identifier of original message --></identifier>

  <code value="[code]"/><!-- 1..1 ok | transient-error | fatal-error -->
  <details><!-- 0..1 Reference(OperationOutcome) Specific list of hints/warnings/errors --></details>
 </response>
 <</focus>

 <focus><!-- 0..* Reference(Any) The actual content of the message --></focus>

 <definition><!-- 0..1 canonical(MessageDefinition) Link to the definition for this message --></definition>
</MessageHeader>

JSON Template

{doco
  "resourceType" : "MessageHeader",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  
  " },
  ">",

  // event[x]: The real world event that triggered this messsage. One of these 3:
  "eventCoding" : { Coding },
  "eventUri" : "<uri>",
  "eventCanonical" : "<canonical(EventDefinition|SubscriptionTopic)>",

  "destination" : [{ // Message destination application(s)
    // endpoint[x]: Actual destination address or Endpoint resource. One of these 2:
    "endpointUrl" : "<url>",
    "endpointReference" : { Reference(Endpoint) },

    "name" : "<string>", // Name of system
    "
    "
    "

    "receiver" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // Intended "real-world" recipient for the data
  }],
  "
  "
  "

  "source" : { // R!  Message source application
    // endpoint[x]: Actual source address or Endpoint resource. One of these 2:
    "endpointUrl" : "<url>",
    "endpointReference" : { Reference(Endpoint) },

    "name" : "<string>", // Name of system
    "software" : "<string>", // Name of software running the system
    "version" : "<string>", // Version of software running
    "contact" : { ContactPoint }, // Human contact for problems
    "

    "sender" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole) } // Real world sender of the message
  },
  "

  "reason" : { CodeableConcept }, // Cause of event
  "response" : { // If this is a reply to prior message
    "

    "identifier" : { Identifier }, // R!  Bundle.identifier of original message

    "code" : "<code>", // R!  ok | transient-error | fatal-error
    "details" : { Reference(OperationOutcome) } // Specific list of hints/warnings/errors
  },
  "
  "

  "focus" : [{ Reference(Any) }], // The actual content of the message
  "definition" : "<canonical(MessageDefinition)>" // Link to the definition for this message

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MessageHeader;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  # event[x] : 1..1 The real world event that triggered this messsage. One of these 3
    fhir:event [  a fhir:Coding ; Coding ]
    fhir:event [  a fhir:Uri ; uri ]
    fhir:event [  a fhir:Canonical ; canonical(EventDefinition|SubscriptionTopic) ]
  fhir:destination ( [ # 0..* Message destination application(s)
    # endpoint[x] : 0..1 Actual destination address or Endpoint resource. One of these 2
      fhir:endpoint [  a fhir:Url ; url ]
      fhir:endpoint [  a fhir:Reference ; Reference(Endpoint) ]
    fhir:name [ string ] ; # 0..1 Name of system
    fhir:receiver [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Intended "real-world" recipient for the data
  ] ... ) ;
  fhir:source [ # 1..1 Message source application
    # endpoint[x] : 0..1 Actual source address or Endpoint resource. One of these 2
      fhir:endpoint [  a fhir:Url ; url ]
      fhir:endpoint [  a fhir:Reference ; Reference(Endpoint) ]
    fhir:name [ string ] ; # 0..1 Name of system
    fhir:software [ string ] ; # 0..1 Name of software running the system
    fhir:version [ string ] ; # 0..1 Version of software running
    fhir:contact [ ContactPoint ] ; # 0..1 Human contact for problems
    fhir:sender [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole) ] ; # 0..1 Real world sender of the message
  ] ;
  fhir:reason [ CodeableConcept ] ; # 0..1 Cause of event
  fhir:response [ # 0..1 If this is a reply to prior message
    fhir:identifier [ Identifier ] ; # 1..1 Bundle.identifier of original message
    fhir:code [ code ] ; # 1..1 ok | transient-error | fatal-error
    fhir:details [ Reference(OperationOutcome) ] ; # 0..1 Specific list of hints/warnings/errors
  ] ;
  fhir:focus  ( [ Reference(Any) ] ... ) ; # 0..* The actual content of the message
  fhir:definition [ canonical(MessageDefinition) ] ; # 0..1 Link to the definition for this message

]

Changes since R3 from R5 to R6

MessageHeader
MessageHeader.event[x]
    Renamed from event to event[x]
  • Add Type uri
MessageHeader.destination.endpoint MessageHeader.destination.receiver
  • Type changed from uri to url Reference: Added Target Types Device, Patient, RelatedPerson
MessageHeader.destination.receiver MessageHeader.source.sender
  • Moved from MessageHeader to MessageHeader.destination MessageHeader.source
  • Type Reference: Added Target Type PractitionerRole Patient
MessageHeader.sender MessageHeader.destination.target
  • Type Reference: Added Target Type PractitionerRole Deleted
MessageHeader.author
  • Deleted
MessageHeader.responsible
  • Deleted

Changes from R4 and R4B to R6

MessageHeader
MessageHeader.enterer MessageHeader.event[x]
  • Add Type Reference: Added Target canonical(EventDefinition | SubscriptionTopic)
MessageHeader.destination.endpoint[x]
  • Renamed from endpoint to endpoint[x]
  • Min Cardinality changed from 1 to 0
  • Add Type PractitionerRole Reference(Endpoint)
MessageHeader.author MessageHeader.destination.receiver
  • Type Reference: Added Target Type PractitionerRole Types Device, Patient, RelatedPerson
MessageHeader.source.endpoint MessageHeader.source.endpoint[x]
  • Type Renamed from endpoint to endpoint[x]
  • Min Cardinality changed from uri 1 to url 0
  • Add Type Reference(Endpoint)
MessageHeader.responsible MessageHeader.source.sender
  • Moved from MessageHeader to MessageHeader.source
  • Type Reference: Added Target Type PractitionerRole Types Device, Patient
MessageHeader.response.code MessageHeader.response.identifier
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/response-code id to http://hl7.org/fhir/ValueSet/response-code|4.0.1 Identifier
MessageHeader.definition MessageHeader.destination.target
  • Added Element Deleted
MessageHeader.timestamp MessageHeader.enterer
  • deleted Deleted
MessageHeader.author
  • Deleted
MessageHeader.responsible
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors). ) for R4B as XML or JSON .

Structure

Code for the string 1..1 0..1 The Σ Id
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MessageHeader Σ TU N DomainResource A resource that describes a message that is exchanged between systems

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . event[x] Σ 1..1 The real world event that triggered this message represents or link to event definition messsage
Binding: MessageEvent ( Example )
. . . . eventCoding Coding
. . . . eventUri uri
. . . . eventCanonical canonical ( EventDefinition | SubscriptionTopic )
. . . destination Σ 0..* BackboneElement Message destination application(s)

. . . name . endpoint[x] Σ 0..1 Actual destination address or Endpoint resource
Name of system
. . . . target . endpointUrl Σ url 0..1
. . . . . endpointReference Reference ( Device Endpoint ) Particular delivery destination within the destination
. . . . endpoint name Σ 0..1 url string Name of system
Actual destination address or id
. . . . receiver Σ 0..1 Reference ( Device | Organization | Patient | Practitioner | PractitionerRole | Organization RelatedPerson ) Intended "real-world" recipient for the data
. . sender . source Σ 1..1 Reference ( Practitioner | PractitionerRole | Organization BackboneElement ) Message source application
Real world sender of the message
. . enterer . . endpoint[x] Σ 0..1 Reference ( Practitioner | PractitionerRole ) Actual source of the data entry address or Endpoint resource
. author . . . Σ . endpointUrl 0..1 Reference ( Practitioner | PractitionerRole url ) The source of the decision
. . source . . . endpointReference 1..1 BackboneElement Reference ( Endpoint ) Message source application
. . . . name Σ 0..1 string Name of system
. . . . software Σ 0..1 string Name of software running the system
. . . . version Σ 0..1 string Version of software running
. . . . contact Σ 0..1 ContactPoint Human contact for problems
. . . endpoint Σ 1..1 url Actual message source address or id responsible . sender Σ 0..1 Reference ( Device | Organization | Patient | Practitioner | PractitionerRole | Organization ) Real world sender of the message
Final responsibility for event
. . . response Σ 0..1 BackboneElement If this is a reply to prior message
. . . . identifier Σ 1..1 id Identifier Bundle.identifier of original message
. . . . code Σ 1..1 code ok | transient-error | fatal-error
ResponseType Binding: Response Type ( Required )
. . . . details Σ 0..1 Reference ( OperationOutcome ) Specific list of hints/warnings/errors
. . . focus Σ 0..* Reference ( Any ) The actual content of the message

. . . definition Σ 0..1 canonical ( MessageDefinition ) Link to the definition for this message

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MessageHeader ( DomainResource ) Code that identifies the event this message represents and connects it with its definition. Events are defined as part of the FHIR specification have the system value "http://terminology.hl7.org/CodeSystem/message-events". Alternatively uri by codes, or by URIs that identify events, or by reference to the EventDefinition event[x] : Type [1..1] « Coding | uri ; One of the message events defined as part of this version of FHIR. (Strength=Example) MessageEvent ?? » Identifies the sending system to allow the use of a trust relationship sender : Reference [0..1] « Practitioner | PractitionerRole | Organization » The person or device SubscriptionTopic resources that performed define the data entry leading to this message. When there event directly. This element is more than one candidate, pick the most proximal to intentionally unbound, and the message. Can provide other enterers in extensions enterer : Reference [0..1] « Practitioner | PractitionerRole » The logical author selection of the message - the person or device that decided the described appropriate event should happen. When there codes is more than one candidate, pick the most proximal delegated to the MessageHeader. Can provide other authors in extensions author : Reference [0..1] « Practitioner | PractitionerRole » The person or organization that accepts overall responsibility for the contents implementations and implementation guides. For codes, a good set of the message. The implication example codes is that the message found in [the V2 event happened under the policies of the responsible party codes](https://terminology.hl7.org/ValueSet-v2-0003.html) responsible event[x] : Reference DataType [0..1] [1..1] « Practitioner Coding | PractitionerRole uri | canonical ( EventDefinition | Organization SubscriptionTopic ); null (Strength=Example) MessageEvent ?? » Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message reason : CodeableConcept [0..1] « Reason for event occurrence. null (Strength=Example) ExampleMessageReasonCodes ?? » The actual data of the message - a reference to the root/focus class of the event event. This is allowed to be a Parameters resource focus : Reference [0..*] « Any » Permanent link to the MessageDefinition for this message definition : canonical [0..1] « MessageDefinition » MessageDestination Human-readable name for the target system name : string [0..1] Identifies the target end system in situations Indicates where the initial message transmission is to an intermediary system should be routed target endpoint[x] : Reference DataType [0..1] « Device url | Reference ( Endpoint ) » Indicates where Human-readable name for the message should be routed to target system endpoint name : url string [1..1] [0..1] Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient receiver : Reference [0..1] « Practitioner Device | PractitionerRole Organization | Patient | Organization Practitioner | PractitionerRole | RelatedPerson » MessageSource Identifies the routing target to send acknowledgements to endpoint[x] : DataType [0..1] « url | Reference ( Endpoint ) » Human-readable name for the source system name : string [0..1] May include configuration or other information useful in debugging software : string [0..1] Can convey versions of multiple systems in situations where a message passes through multiple hands version : string [0..1] An e-mail, phone, website or other contact point to use to resolve issues with message communications contact : ContactPoint [0..1] Identifies the routing target to send acknowledgements sending entity to allow the use of a trust relationship endpoint sender : url Reference [1..1] [0..1] « Device | Organization | Patient | Practitioner | PractitionerRole » Response The MessageHeader.id Bundle.identifier of the message to which this message is a response identifier : id Identifier [1..1] Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not code : code [1..1] « The kind of response to a message. null (Strength=Required) ResponseType ! » Full details of any issues found in the message details : Reference [0..1] « OperationOutcome » The destination application which the message is intended for destination [0..*] The source application from which this message originated source [1..1] Information about the message that this message is a response to. Only present if this message is a response response [0..1]

XML Template

<MessageHeader xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <</event[x]>

 <event[x]><!-- 1..1 Coding|uri|canonical(EventDefinition|SubscriptionTopic) The real world event that triggered this messsage --></event[x]>

 <destination>  <!-- 0..* Message destination application(s) -->
  <endpoint[x]><!-- 0..1 url|Reference(Endpoint) Actual destination address or Endpoint resource --></endpoint[x]>

  <name value="[string]"/><!-- 0..1 Name of system -->
  <</target>
  <
  <</receiver>

  <receiver><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Intended "real-world" recipient for the data --></receiver>
 </destination>
 <</sender>
 <</enterer>
 <</author>

 <source>  <!-- 1..1 Message source application -->
  <endpoint[x]><!-- 0..1 url|Reference(Endpoint) Actual source address or Endpoint resource --></endpoint[x]>

  <name value="[string]"/><!-- 0..1 Name of system -->
  <software value="[string]"/><!-- 0..1 Name of software running the system -->
  <version value="[string]"/><!-- 0..1 Version of software running -->
  <contact><!-- 0..1 ContactPoint Human contact for problems --></contact>
  <

  <sender><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole) Real world sender of the message --></sender>
 </source>
 <</responsible>

 <reason><!-- 0..1 CodeableConcept Cause of event --></reason>
 <response>  <!-- 0..1 If this is a reply to prior message -->
  <

  <identifier><!-- 1..1 Identifier Bundle.identifier of original message --></identifier>

  <code value="[code]"/><!-- 1..1 ok | transient-error | fatal-error -->
  <details><!-- 0..1 Reference(OperationOutcome) Specific list of hints/warnings/errors --></details>
 </response>
 <</focus>

 <focus><!-- 0..* Reference(Any) The actual content of the message --></focus>

 <definition><!-- 0..1 canonical(MessageDefinition) Link to the definition for this message --></definition>
</MessageHeader>

JSON Template

{doco
  "resourceType" : "MessageHeader",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  
  " },
  ">",

  // event[x]: The real world event that triggered this messsage. One of these 3:
  "eventCoding" : { Coding },
  "eventUri" : "<uri>",
  "eventCanonical" : "<canonical(EventDefinition|SubscriptionTopic)>",

  "destination" : [{ // Message destination application(s)
    // endpoint[x]: Actual destination address or Endpoint resource. One of these 2:
    "endpointUrl" : "<url>",
    "endpointReference" : { Reference(Endpoint) },

    "name" : "<string>", // Name of system
    "
    "
    "

    "receiver" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // Intended "real-world" recipient for the data
  }],
  "
  "
  "

  "source" : { // R!  Message source application
    // endpoint[x]: Actual source address or Endpoint resource. One of these 2:
    "endpointUrl" : "<url>",
    "endpointReference" : { Reference(Endpoint) },

    "name" : "<string>", // Name of system
    "software" : "<string>", // Name of software running the system
    "version" : "<string>", // Version of software running
    "contact" : { ContactPoint }, // Human contact for problems
    "

    "sender" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole) } // Real world sender of the message
  },
  "

  "reason" : { CodeableConcept }, // Cause of event
  "response" : { // If this is a reply to prior message
    "

    "identifier" : { Identifier }, // R!  Bundle.identifier of original message

    "code" : "<code>", // R!  ok | transient-error | fatal-error
    "details" : { Reference(OperationOutcome) } // Specific list of hints/warnings/errors
  },
  "
  "

  "focus" : [{ Reference(Any) }], // The actual content of the message
  "definition" : "<canonical(MessageDefinition)>" // Link to the definition for this message

}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MessageHeader;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  # event[x] : 1..1 The real world event that triggered this messsage. One of these 3
    fhir:event [  a fhir:Coding ; Coding ]
    fhir:event [  a fhir:Uri ; uri ]
    fhir:event [  a fhir:Canonical ; canonical(EventDefinition|SubscriptionTopic) ]
  fhir:destination ( [ # 0..* Message destination application(s)
    # endpoint[x] : 0..1 Actual destination address or Endpoint resource. One of these 2
      fhir:endpoint [  a fhir:Url ; url ]
      fhir:endpoint [  a fhir:Reference ; Reference(Endpoint) ]
    fhir:name [ string ] ; # 0..1 Name of system
    fhir:receiver [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Intended "real-world" recipient for the data
  ] ... ) ;
  fhir:source [ # 1..1 Message source application
    # endpoint[x] : 0..1 Actual source address or Endpoint resource. One of these 2
      fhir:endpoint [  a fhir:Url ; url ]
      fhir:endpoint [  a fhir:Reference ; Reference(Endpoint) ]
    fhir:name [ string ] ; # 0..1 Name of system
    fhir:software [ string ] ; # 0..1 Name of software running the system
    fhir:version [ string ] ; # 0..1 Version of software running
    fhir:contact [ ContactPoint ] ; # 0..1 Human contact for problems
    fhir:sender [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole) ] ; # 0..1 Real world sender of the message
  ] ;
  fhir:reason [ CodeableConcept ] ; # 0..1 Cause of event
  fhir:response [ # 0..1 If this is a reply to prior message
    fhir:identifier [ Identifier ] ; # 1..1 Bundle.identifier of original message
    fhir:code [ code ] ; # 1..1 ok | transient-error | fatal-error
    fhir:details [ Reference(OperationOutcome) ] ; # 0..1 Specific list of hints/warnings/errors
  ] ;
  fhir:focus  ( [ Reference(Any) ] ... ) ; # 0..* The actual content of the message
  fhir:definition [ canonical(MessageDefinition) ] ; # 0..1 Link to the definition for this message

]

Changes since Release 3 from R5 to R6

MessageHeader
MessageHeader.event[x]
    Renamed from event to event[x]
  • Add Type uri
MessageHeader.destination.endpoint MessageHeader.destination.receiver
  • Type changed from uri to url Reference: Added Target Types Device, Patient, RelatedPerson
MessageHeader.destination.receiver MessageHeader.source.sender
  • Moved from MessageHeader to MessageHeader.destination MessageHeader.source
  • Type Reference: Added Target Type PractitionerRole Patient
MessageHeader.sender MessageHeader.destination.target
  • Type Reference: Added Target Type PractitionerRole Deleted
MessageHeader.author
  • Deleted
MessageHeader.responsible
  • Deleted

Changes from R4 and R4B to R6

MessageHeader
MessageHeader.enterer MessageHeader.event[x]
  • Add Type Reference: Added Target canonical(EventDefinition | SubscriptionTopic)
MessageHeader.destination.endpoint[x]
  • Renamed from endpoint to endpoint[x]
  • Min Cardinality changed from 1 to 0
  • Add Type PractitionerRole Reference(Endpoint)
MessageHeader.author MessageHeader.destination.receiver
  • Type Reference: Added Target Type PractitionerRole Types Device, Patient, RelatedPerson
MessageHeader.source.endpoint MessageHeader.source.endpoint[x]
  • Type Renamed from endpoint to endpoint[x]
  • Min Cardinality changed from uri 1 to url 0
  • Add Type Reference(Endpoint)
MessageHeader.responsible MessageHeader.source.sender
  • Moved from MessageHeader to MessageHeader.source
  • Type Reference: Added Target Type PractitionerRole Types Device, Patient
MessageHeader.response.code MessageHeader.response.identifier
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/response-code id to http://hl7.org/fhir/ValueSet/response-code|4.0.1 Identifier
MessageHeader.definition MessageHeader.destination.target
  • Added Element Deleted
MessageHeader.timestamp MessageHeader.enterer
  • deleted Deleted
MessageHeader.author
  • Deleted
MessageHeader.responsible
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and 1 r3 resources are invalid (0 errors). ) for R4B as XML or JSON .

 

See the Profiles & Extensions and the alternate Additional definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis

Path Definition ValueSet Type Reference Documentation
MessageHeader.event[x] MessageEvent Example

One of the message events defined as part of this version of FHIR. Example Message Events

MessageHeader.reason Reason for event occurrence. ExampleMessageReasonCodes Example ExampleMessageReasonCodes

Example Message Reasons. These are the set of codes that might be used an updating an encounter using admin-update.

MessageHeader.response.code The kind of response to a message. ResponseType Required ResponseType

The kind of response to a message.

  • The resources referenced by the enterer, author and responsible elements may all be included in the message bundle or left out There is no persistent identifier on the basis MessageHeader that identifies the recipient (and any intermediaries) are able to locate/resolve specific triggering event for the resources independently. The former would message - any such identity must be suitable for loosely coupled systems, and determined from the latter for tightly coupled systems. The messaging Capability statement for an application may reference a Structure Definition that describes how payload of the bundling occurs message.
  • The actual content of the focus resource is specified for each message event (see the list on the messaging page ). Any resources referenced in the focus element are always included in the bundle
  • If MessageHeader.source.endpoint and MessageHeader.destination.endpoint , are literal URLs, then they SHOULD identify the addresses to which messages can be delivered. If they are logical URIs (i.e. non-dereferenceable), message delivery intermediaries must know how to deliver the message to the destination application.
  • The time of the event will be found in the focus resource. The time of the message will be found in Bundle.timestamp
  • The author sender and the receiver are not the actual technical systems - these are the human or organizations that make use of the technical systems
  • A receiver is not obligated to reject messages which do not explicitly identify it as receiver (e.g. a tracker will get messages that are destined for some other system)
  • The value set MessageEvent is populated by the authors of the resources declaring the events

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

author code destination-uri uri Actual destination address or id MessageHeader.destination.endpoint enterer responsible source-uri uri Actual message source address or id MessageHeader.source.endpoint target reference Particular delivery destination within the destination MessageHeader.destination.target ( Device )
Name Type Description Expression In Common
reference The source of the decision MessageHeader.author ( Practitioner , PractitionerRole code ) token ok | transient-error | fatal-error MessageHeader.response.code
destination string Name of system MessageHeader.destination.name
reference The source of the data entry MessageHeader.enterer ( Practitioner , PractitionerRole event ) event token Code for the event this message represents or link to event definition MessageHeader.event MessageHeader.event.ofType(Coding) | MessageHeader.event.ofType(canonical)
focus reference The actual content of the message MessageHeader.focus
(Any)
receiver reference Intended "real-world" recipient for the data MessageHeader.destination.receiver
( Practitioner , Organization , Device , Patient , PractitionerRole , RelatedPerson )
response-id token Id of original message MessageHeader.response.identifier
reference Final responsibility for event MessageHeader.responsible ( Practitioner , Organization , PractitionerRole sender ) sender reference Real world sender of the message MessageHeader.sender MessageHeader.source.sender
( Practitioner , Organization , Device , Patient , PractitionerRole )
source string Name of system MessageHeader.source.name