DRAFT - The specification is currently in development and subject to significant change. It is not ready for limited roll-out or production level use.

MessageHeader (CA:eReC)

Structure Definition: MessageHeader Profile

Canonical URL:https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-MessageHeader

Simplifier project page: MessageHeader

Derived from: MessageHeader (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
referralIdentifierI0..1Extension(Identifier)Binding
routingOptionsI0..*Extension(CodeableConcept)
modifierExtension?! I0..*Extension
eventUriuri
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
targetΣ I0..1Reference(Device)
endpointΣ1..1url
receiverΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
senderΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
entererΣ I0..1Reference(PractitionerRole | Practitioner)
authorS Σ I1..1Reference(PractitionerRole)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
endpointS Σ1..1url
responsibleΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
reasonS Σ0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifierΣ1..1id
codeΣ1..1codeBinding
detailsΣ I0..1Reference(OperationOutcome)
focusS Σ I0..*Reference(ServiceRequest | Task | Appointment | Communication)
definitionΣ0..1canonical(MessageDefinition)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
referralIdentifierI0..1Extension(Identifier)Binding
routingOptionsI0..*Extension(CodeableConcept)
modifierExtension?! I0..*Extension
eventUriuri
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
targetΣ I0..1Reference(Device)
endpointΣ1..1url
receiverΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
senderΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
entererΣ I0..1Reference(PractitionerRole | Practitioner)
authorS Σ I1..1Reference(PractitionerRole)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
endpointS Σ1..1url
responsibleΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
reasonS Σ0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifierΣ1..1id
codeΣ1..1codeBinding
detailsΣ I0..1Reference(OperationOutcome)
focusS Σ I0..*Reference(ServiceRequest | Task | Appointment | Communication)
definitionΣ0..1canonical(MessageDefinition)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
referralIdentifierI0..1Extension(Identifier)Binding
routingOptionsI0..*Extension(CodeableConcept)
modifierExtension?! I0..*Extension
eventUriuri
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
targetΣ I0..1Reference(Device)
endpointΣ1..1url
receiverΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
senderΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
entererΣ I0..1Reference(PractitionerRole | Practitioner)
authorS Σ I1..1Reference(PractitionerRole)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
nameΣ0..1string
softwareΣ0..1string
versionΣ0..1string
id0..1string
extensionI0..*Extension
systemS Σ I0..1codeBinding
valueS Σ0..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ I0..1Period
endpointS Σ1..1url
responsibleΣ I0..1Reference(Practitioner | PractitionerRole | Organization)
reasonS Σ0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
identifierΣ1..1id
codeΣ1..1codeBinding
detailsΣ I0..1Reference(OperationOutcome)
focusS Σ I0..*Reference(ServiceRequest | Task | Appointment | Communication)
definitionΣ0..1canonical(MessageDefinition)
MessageHeader..
MessageHeader.meta..
MessageHeader.extensionExtension..
MessageHeader.extensionExtension..
MessageHeader.event[x]..
MessageHeader.event[x]Coding..
MessageHeader.event[x].code..
MessageHeader.destination..
MessageHeader.destination.receiverReference(Practitioner | PractitionerRole | Organization)..
MessageHeader.senderReference(Practitioner | PractitionerRole | Organization)..
MessageHeader.entererReference(PractitionerRole | Practitioner)..
MessageHeader.authorReference(PractitionerRole)1..
MessageHeader.source..
MessageHeader.source.contact..
MessageHeader.source.contact.system..
MessageHeader.source.contact.value..
MessageHeader.source.endpoint..
MessageHeader.responsibleReference(Practitioner | PractitionerRole | Organization)..
MessageHeader.reason..
MessageHeader.focusReference(ServiceRequest | Task | Appointment | Communication)..

{
    "resourceType": "StructureDefinition",
    "id": "CA-eReC-MessageHeader",
    "url": "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-MessageHeader",
    "version": "0.1.0",
    "name": "MessageHeader",
    "title": "MessageHeader",
    "status": "draft",
    "description": "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.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "MessageHeader",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/MessageHeader",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "MessageHeader.meta",
                "path": "MessageHeader.meta",
                "comment": "The MustSupport flag on this element has been relaxed in this version until further confirmation of the use of meta.profile (outside of use for certain validation suites) and impact can be assessed by the working group."
            },
            {
                "id": "MessageHeader.extension:referralIdentifier",
                "path": "MessageHeader.extension",
                "sliceName": "referralIdentifier",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/Referral-Identifier-EXT"
                        ]
                    }
                ],
                "isModifier": false,
                "binding": {
                    "strength": "extensible",
                    "description": "Codes supported by Ontario Health that can be used to determine which identifier to use for a specific purpose.",
                    "valueSet": "https://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/identifier-type"
                }
            },
            {
                "id": "MessageHeader.extension:routingOptions",
                "path": "MessageHeader.extension",
                "sliceName": "routingOptions",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/Routing-Options-EXT"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "MessageHeader.event[x]",
                "path": "MessageHeader.event[x]",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "type",
                            "path": "$this"
                        }
                    ],
                    "rules": "open"
                }
            },
            {
                "id": "MessageHeader.event[x]:eventCoding",
                "path": "MessageHeader.event[x]",
                "sliceName": "eventCoding",
                "type":  [
                    {
                        "code": "Coding"
                    }
                ],
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/message-event-code"
                }
            },
            {
                "id": "MessageHeader.event[x]:eventCoding.code",
                "path": "MessageHeader.event[x].code",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/message-event-code"
                }
            },
            {
                "id": "MessageHeader.destination",
                "path": "MessageHeader.destination",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.destination.receiver",
                "path": "MessageHeader.destination.receiver",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Organization"
                        ]
                    }
                ]
            },
            {
                "id": "MessageHeader.sender",
                "path": "MessageHeader.sender",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Organization"
                        ]
                    }
                ]
            },
            {
                "id": "MessageHeader.enterer",
                "path": "MessageHeader.enterer",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner"
                        ]
                    }
                ]
            },
            {
                "id": "MessageHeader.author",
                "path": "MessageHeader.author",
                "min": 1,
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "MessageHeader.source",
                "path": "MessageHeader.source",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.source.contact",
                "path": "MessageHeader.source.contact",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.source.contact.system",
                "path": "MessageHeader.source.contact.system",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.source.contact.value",
                "path": "MessageHeader.source.contact.value",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.source.endpoint",
                "path": "MessageHeader.source.endpoint",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.responsible",
                "path": "MessageHeader.responsible",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Organization"
                        ]
                    }
                ]
            },
            {
                "id": "MessageHeader.reason",
                "path": "MessageHeader.reason",
                "mustSupport": true
            },
            {
                "id": "MessageHeader.focus",
                "path": "MessageHeader.focus",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Task",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Appointment",
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Communication"
                        ]
                    }
                ],
                "mustSupport": true
            }
        ]
    }
}

Usage

The header for a message exchange that is either requesting or responding to an eReferral/eConsult.

The MessageHeader is used to convey the purpose of the message (i.e.: eventCoding), to direct the performe toward the information acted upon (i.e.: focus) and to support message routing.

Notes

.id

  • used to uniquely identify a message
  • populate this element with a UUID each time a message is created
  • note: a FHIR message contains two identifiers that are unique within the message stream, rules:
    • a MessageHeader.id (this element) SHALL be assigned when the message is created
    • a Bundle.id SHALL be assigned each time the message is sent

.eventCoding

  • used to convey the business event that triggered the message
  • SHALL be populated with a code from MessageEventCode and coding system

.destination

  • used to enable message routing through an intermediary
  • .endpoint SHALL be populated with either:
    • a literal URL that identifies the addresses to which the message should be delivered, or
    • a logical URI (i.e. non-dereferenceable) known to the intermediary.

.author

  • identifies the person who initiated the event
  • SHALL be populated with a reference to a PractitionerRole resource included as a message Bundle.entry

.source.endpoint

  • used to enable message routing of responses through an intermediary
  • SHALL be populated with either:
    • a literal URL that identifies the addresses to which the message should be delivered, or
    • a logical URI (i.e. non-dereferenceable) known to the intermediary

.reason

  • indicates the reason for the event that is the focus of this message, eg. RFI

.response

  • indicates that a message is a response to a request message (with status)
  • if used:
    • .response.identifier SHALL be populated with the MessageHeader.id of the message to which this message is a response
    • .response.code SHALL be populated with a valid ResponseType
    • .response.details MAY be provided in a referenced OperationOutcome included in the Bundle

.focus

  • identifies the information acted upon when the message was triggered
  • SHALL include a reference to a ServiceRequest, Task, Appointment, Communication which are included as a message Bundle.entry
  • a MessageHeader MAY include multiple instances of focus to communicate some events