Order Catalog Implementation Guide
1.0.0 - STU 1

Order Catalog Implementation Guide, published by HL7 International / Orders and Observations. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-order-catalog/ and changes regularly. See the Directory of published versions

## Resource Profile: CatalogMessageDefinition Profile

Official URL: http://hl7.org/fhir/uv/order-catalog/StructureDefinition/CatalogMessageDefinition | Version: 1.0.0
Standards status: Trial-use | Maturity Level: 2 | Computable Name: CatalogMessageDefinition
Other Identifiers: OID:2.16.840.1.113883.4.642.40.55.42.8

This profile constrains MessageDefinition in the context of messaging the content of catalogs, in conformance with the FHIR messaging framework

This profile specifies the event codes that are available for messaging the content of catalogs between a system owning a catalog and a system interested in the catalog content, in whole or in part.

Usages:

- Examples for this Profile: MessageDefinitionInitialize and MessageDefinitionUpdate

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition | C | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems Constraints: cnl-0
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
event[x] | S Σ | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category | Σ | 0..1 | code | consequence | currency | notification Binding: MessageSignificanceCategory (required): The impact of the content of a message. Required Pattern: consequence
responseRequired | S | 1..1 | code | always | on-error | never | on-success Binding: MessageheaderResponseRequest (required): This enables the capability currently available through MSH-16 (Application Level acknowledgement) in HL7 Version 2 to declare at a message definition level whether a response is required or only upon error or success, or never. Example General: always
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG
MessageDefinition.category | Base | required | Message Significance Category | 📍5.0.0 | FHIR Std.
MessageDefinition.responseRequired | Base | required | messageheader-response-request | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | MessageDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from MessageDefinition

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition |  | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems
event[x] | S | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category |  | 0..1 | code | consequence | currency | notification Required Pattern: consequence
responseRequired | S | 1..1 | code | always | on-error | never | on-success
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition | C | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems Constraints: cnl-0
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | The cannonical URL for a given MessageDefinition Constraints: cnl-1
identifier | Σ | 0..* | Identifier | Business Identifier for a given MessageDefinition
version | Σ | 0..1 | string | Business version of the message definition
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this message definition (computer friendly)
title | Σ | 0..1 | string | Name for this message definition (human friendly)
replaces | Σ | 0..* | canonical(MessageDefinition) | Takes the place of
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the message definition
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for message definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose | Σ | 0..1 | markdown | Why this message definition is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
base | Σ | 0..1 | canonical(MessageDefinition) | Definition this one is based on
parent | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Protocol/workflow this is part of
event[x] | S Σ | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category | Σ | 0..1 | code | consequence | currency | notification Binding: MessageSignificanceCategory (required): The impact of the content of a message. Required Pattern: consequence
focus | Σ C | 0..* | BackboneElement | Resource(s) that are the subject of the event Constraints: md-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ | 1..1 | code | Type of resource Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
profile |  | 0..1 | canonical(StructureDefinition) | Profile that must be adhered to by focus
min | Σ | 1..1 | unsignedInt | Minimum number of focuses of this type
max | C | 0..1 | string | Maximum number of focuses of this type
responseRequired | S | 1..1 | code | always | on-error | never | on-success Binding: MessageheaderResponseRequest (required): This enables the capability currently available through MSH-16 (Application Level acknowledgement) in HL7 Version 2 to declare at a message definition level whether a response is required or only upon error or success, or never. Example General: always
allowedResponse |  | 0..* | BackboneElement | Responses to this message
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
message |  | 1..1 | canonical(MessageDefinition) | Reference to allowed message definition response
situation |  | 0..1 | markdown | When should this response be used
graph |  | 0..1 | canonical(GraphDefinition) | Canonical reference to a GraphDefinition
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
MessageDefinition.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
MessageDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
MessageDefinition.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG
MessageDefinition.category | Base | required | Message Significance Category | 📍5.0.0 | FHIR Std.
MessageDefinition.focus.​code | Base | required | Resource Types | 📍5.0.0 | FHIR Std.
MessageDefinition.responseRequired | Base | required | messageheader-response-request | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | MessageDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | MessageDefinition.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
md-1 | error | MessageDefinition.focus | Max must be postive int or * | `max='*' or (max.toInteger() > 0)`

This structure is derived from MessageDefinition

Summary

Mandatory: 1 element
Must-Support: 2 elements

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition | C | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems Constraints: cnl-0
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
date | Σ | 1..1 | dateTime | Date last changed
event[x] | S Σ | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category | Σ | 0..1 | code | consequence | currency | notification Binding: MessageSignificanceCategory (required): The impact of the content of a message. Required Pattern: consequence
responseRequired | S | 1..1 | code | always | on-error | never | on-success Binding: MessageheaderResponseRequest (required): This enables the capability currently available through MSH-16 (Application Level acknowledgement) in HL7 Version 2 to declare at a message definition level whether a response is required or only upon error or success, or never. Example General: always
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG
MessageDefinition.category | Base | required | Message Significance Category | 📍5.0.0 | FHIR Std.
MessageDefinition.responseRequired | Base | required | messageheader-response-request | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | MessageDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from MessageDefinition

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition |  | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems
event[x] | S | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category |  | 0..1 | code | consequence | currency | notification Required Pattern: consequence
responseRequired | S | 1..1 | code | always | on-error | never | on-success
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MessageDefinition | C | 0..* | MessageDefinition | A resource that defines a type of message that can be exchanged between systems Constraints: cnl-0
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
url | Σ C | 0..1 | uri | The cannonical URL for a given MessageDefinition Constraints: cnl-1
identifier | Σ | 0..* | Identifier | Business Identifier for a given MessageDefinition
version | Σ | 0..1 | string | Business version of the message definition
versionAlgorithm[x] | Σ | 0..1 |  | How to compare versions Binding: VersionAlgorithm (extensible)
versionAlgorithmString |  |  | string |
versionAlgorithmCoding |  |  | Coding |
name | Σ C | 0..1 | string | Name for this message definition (computer friendly)
title | Σ | 0..1 | string | Name for this message definition (human friendly)
replaces | Σ | 0..* | canonical(MessageDefinition) | Takes the place of
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 1..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher/steward (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description | Σ | 0..1 | markdown | Natural language description of the message definition
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for message definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose | Σ | 0..1 | markdown | Why this message definition is defined
copyright |  | 0..1 | markdown | Use and/or publishing restrictions
copyrightLabel |  | 0..1 | string | Copyright holder and year(s)
base | Σ | 0..1 | canonical(MessageDefinition) | Definition this one is based on
parent | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Protocol/workflow this is part of
event[x] | S Σ | 1..1 | Coding | Event code Binding: Message event codes for exchanging order catalog content (extensible): message events for messages conveying order-catalog content
category | Σ | 0..1 | code | consequence | currency | notification Binding: MessageSignificanceCategory (required): The impact of the content of a message. Required Pattern: consequence
focus | Σ C | 0..* | BackboneElement | Resource(s) that are the subject of the event Constraints: md-1
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ | 1..1 | code | Type of resource Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
profile |  | 0..1 | canonical(StructureDefinition) | Profile that must be adhered to by focus
min | Σ | 1..1 | unsignedInt | Minimum number of focuses of this type
max | C | 0..1 | string | Maximum number of focuses of this type
responseRequired | S | 1..1 | code | always | on-error | never | on-success Binding: MessageheaderResponseRequest (required): This enables the capability currently available through MSH-16 (Application Level acknowledgement) in HL7 Version 2 to declare at a message definition level whether a response is required or only upon error or success, or never. Example General: always
allowedResponse |  | 0..* | BackboneElement | Responses to this message
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
message |  | 1..1 | canonical(MessageDefinition) | Reference to allowed message definition response
situation |  | 0..1 | markdown | When should this response be used
graph |  | 0..1 | canonical(GraphDefinition) | Canonical reference to a GraphDefinition
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MessageDefinition.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
MessageDefinition.versionAlgorithm[x] | Base | extensible | Version Algorithm | 📍5.0.0 | FHIR Std.
MessageDefinition.status | Base | required | PublicationStatus | 📍5.0.0 | FHIR Std.
MessageDefinition.jurisdiction | Base | extensible | Jurisdiction ValueSet | 📍5.0.0 | FHIR Std.
MessageDefinition.event[x] | Base | extensible | Message event codes for exchanging order catalog content | 📦1.0.0 | This IG
MessageDefinition.category | Base | required | Message Significance Category | 📍5.0.0 | FHIR Std.
MessageDefinition.focus.​code | Base | required | Resource Types | 📍5.0.0 | FHIR Std.
MessageDefinition.responseRequired | Base | required | messageheader-response-request | 📍5.0.0 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cnl-0 | warning | MessageDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation | `name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')`
cnl-1 | warning | MessageDefinition.url | URL should not contain | or # - these characters make processing canonical references problematic | `exists() implies matches('^[^|# ]+$')`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
md-1 | error | MessageDefinition.focus | Max must be postive int or * | `max='*' or (max.toInteger() > 0)`

This structure is derived from MessageDefinition

Summary

Mandatory: 1 element
Must-Support: 2 elements

Maturity: 2

Other representations of profile: CSV, Excel, Schematron