PrescribeIT™ Specification and Guide Version 2.0 Revision F

 

The official URL for this profile is:

http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101

Download Excel representation

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

>

This structure is derived from PrescribeIT Message Bundle for Tasks

NameCard.TypeConstraints and Usage
.  Bundle 0..*bdl-2: entry.search only when a search
bdl-1: total only when a search or history
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId
bdl-3: entry.request only for some types of bundles
bdl-4: entry.response only for some types of bundles
headerExists: First entry must be a MessageHeader
patientin1: Second entry must be a Patient
max25tasks: Cannot have more than 25 tasks in one message
sameGroup: All "requisition" extensions in the bundle must have the same value
messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
Definition:
A container for a collection of resources.

..  id 0..1idDefinition:
The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.


Comments:
Usage Note: This value is assigned by the PrescribeIT™ system upon receipt of a bundle and returned synchronously in the response to that bundle. This ID should not be confused with the traceID that is also returned in the response and is generally used when diagnosing message failures within the PrescribeIT™ system logs. The Bundle.id is also used by receiving systems to remove the bundle from their inbox after they have successfully retrieved the bundle.

..  meta 1..1MetaDefinition:
The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.

...  profile 2..*uriSlice: Unordered, Open by value:value
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set.

...  profile
       (BaseProfile)
1..1uriFixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
Fixed value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message

...  profile
       (MessageProfile)
1..1uriFixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
Fixed value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101

...  tag 1..*CodingSlice: Unordered, Open by value:system
Binding: (unbound) (example)
Definition:
Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.


Comments:
The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.

...  tag
       (version)
1..1CodingBinding: SharedSpecificationVersion (required)
Definition:
Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.


Comments:
Usage Note: This the version of the specification the Bundle claims to be conformant with.

....  system 1..1uriFixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion
Definition:
The identification of the code system that defines the meaning of the symbol in the code.


Comments:
Fixed value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion

....  code 1..1codeFixed Value: PrescribeIT2.0
Definition:
A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).


Comments:
Fixed value: PrescribeIT2.0

..  type 1..1codeBinding: BundleType (required)
Fixed Value: message
Definition:
Indicates the purpose of this bundle- how it was intended to be used.


Comments:
Fixed value: message

..  entry 5..*BackboneElementbdl-5: must be a resource unless there's a request or response
bdl-6: The fullUrl element must be present when a resource is present, and not present otherwise
Definition:
An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).


Comments:
Conformance Rule: A bundle may include various tasks (e.g. Denial, Approved, Approved with Changes, a New RX Order, or a Discontinue or any other physician response to the pharmacy that is for the same patient with the exception of cancel request messages. A bundle that contains one or more cancel request messages (e140) may not include any other task type. Note; A bundle may contain one or more e140 messages that were grouped together as of the same original prescription.

...  fullUrl 1..1uriDefinition:
The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle) * Results from operations might involve resources that are not identified.


Comments:
fullUrl may not be unique in the context of a resource. Note that since FHIR resources do not need to be served through the FHIR API, the absolute URL may not end with the logical id of the resource (Resource.id), but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then it SHALL end with the Resource.id.

...  resource 1..1ResourceDefinition:
The Resources for the entry.

..  signature 0..1SignatureDefinition:
Digital Signature - base64 encoded. XML DigSIg or a JWT.


Comments:
Conformance Rule: The signature will be created by the PrescribeIT™ Switch. This is not created by the EMR. Requirements around inclusion of a signature, verification of signatures and treatment of signed/non-signed bundles is implementation-environment specific. Further information is found in PMS Requirements document.

This structure is derived from PrescribeIT Message Bundle for Tasks

Summary

Mandatory: 3 elements
Must-Support: 7 elements
Fixed Value: 2 elements

Slices

This structure defines the following Slices:

  • The element Bundle.meta.profile is sliced based on the value of value:value

This structure is derived from PrescribeIT Message Bundle for Tasks

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle SI0..*messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
... meta S1..1Meta
.... profile SuriSlice: Unordered, Open by value:value
.... profile S1..1uriFixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
.... tag S1..1Coding
..... code S1..1codeFixed Value: PrescribeIT2.0
... entry S5..*BackboneElement
... signature S0..1Signature

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle SΣI0..*Contains a collection of resources
messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
... id SΣ0..1idLogical id of this artifact
... meta SΣ1..1MetaMetadata about the resource
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... profile SΣuriProfiles this resource claims to conform to
Slice: Unordered, Open by value:value
.... profile SΣ1..1uriProfiles this resource claims to conform to

Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message
.... profile SΣ1..1uriProfiles this resource claims to conform to

Fixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible)
.... tag SΣCodingTags applied to this resource
Slice: Unordered, Open by value:system
Binding: (unbound) (example)
.... tag SΣ1..1CodingTags applied to this resource
Binding: SharedSpecificationVersion (required)
..... id 0..1idxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... system SΣ1..1uriIdentity of the terminology system
Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion
..... version Σ0..1stringVersion of the system - if relevant
..... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: PrescribeIT2.0
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: http://tools.ietf.org/html/bcp47 (required)
... type SΣ1..1codedocument | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required)
Fixed Value: message
... total ΣI0..1unsignedIntIf search, the total number of matches
... link Σ0..*BackboneElementLinks related to this Bundle
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... relation Σ1..1stringhttp://www.iana.org/assignments/link-relations/link-relations.xhtml
.... url Σ1..1uriReference details for the link
... entry SΣI5..*BackboneElementEntry in the bundle - will have a resource, or information
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... fullUrl SΣ1..1uriAbsolute URL for resource (server address, or UUID/OID)
.... resource SΣ1..1ResourceA resource in the bundle
... signature SΣ0..1SignatureDigital Signature

doco Documentation for this format

Grid View

This structure is derived from PrescribeIT Message Bundle for Tasks

NameCard.TypeConstraints and Usage
.  Bundle 0..*bdl-2: entry.search only when a search
bdl-1: total only when a search or history
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId
bdl-3: entry.request only for some types of bundles
bdl-4: entry.response only for some types of bundles
headerExists: First entry must be a MessageHeader
patientin1: Second entry must be a Patient
max25tasks: Cannot have more than 25 tasks in one message
sameGroup: All "requisition" extensions in the bundle must have the same value
messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
Definition:
A container for a collection of resources.

..  id 0..1idDefinition:
The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.


Comments:
Usage Note: This value is assigned by the PrescribeIT™ system upon receipt of a bundle and returned synchronously in the response to that bundle. This ID should not be confused with the traceID that is also returned in the response and is generally used when diagnosing message failures within the PrescribeIT™ system logs. The Bundle.id is also used by receiving systems to remove the bundle from their inbox after they have successfully retrieved the bundle.

..  meta 1..1MetaDefinition:
The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.

...  profile 2..*uriSlice: Unordered, Open by value:value
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set.

...  profile
       (BaseProfile)
1..1uriFixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
Fixed value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message

...  profile
       (MessageProfile)
1..1uriFixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
Definition:
A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]].


Comments:
Fixed value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101

...  tag 1..*CodingSlice: Unordered, Open by value:system
Binding: (unbound) (example)
Definition:
Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.


Comments:
The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.

...  tag
       (version)
1..1CodingBinding: SharedSpecificationVersion (required)
Definition:
Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.


Comments:
Usage Note: This the version of the specification the Bundle claims to be conformant with.

....  system 1..1uriFixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion
Definition:
The identification of the code system that defines the meaning of the symbol in the code.


Comments:
Fixed value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion

....  code 1..1codeFixed Value: PrescribeIT2.0
Definition:
A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).


Comments:
Fixed value: PrescribeIT2.0

..  type 1..1codeBinding: BundleType (required)
Fixed Value: message
Definition:
Indicates the purpose of this bundle- how it was intended to be used.


Comments:
Fixed value: message

..  entry 5..*BackboneElementbdl-5: must be a resource unless there's a request or response
bdl-6: The fullUrl element must be present when a resource is present, and not present otherwise
Definition:
An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).


Comments:
Conformance Rule: A bundle may include various tasks (e.g. Denial, Approved, Approved with Changes, a New RX Order, or a Discontinue or any other physician response to the pharmacy that is for the same patient with the exception of cancel request messages. A bundle that contains one or more cancel request messages (e140) may not include any other task type. Note; A bundle may contain one or more e140 messages that were grouped together as of the same original prescription.

...  fullUrl 1..1uriDefinition:
The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle) * Results from operations might involve resources that are not identified.


Comments:
fullUrl may not be unique in the context of a resource. Note that since FHIR resources do not need to be served through the FHIR API, the absolute URL may not end with the logical id of the resource (Resource.id), but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then it SHALL end with the Resource.id.

...  resource 1..1ResourceDefinition:
The Resources for the entry.

..  signature 0..1SignatureDefinition:
Digital Signature - base64 encoded. XML DigSIg or a JWT.


Comments:
Conformance Rule: The signature will be created by the PrescribeIT™ Switch. This is not created by the EMR. Requirements around inclusion of a signature, verification of signatures and treatment of signed/non-signed bundles is implementation-environment specific. Further information is found in PMS Requirements document.

This structure is derived from PrescribeIT Message Bundle for Tasks

Summary

Mandatory: 3 elements
Must-Support: 7 elements
Fixed Value: 2 elements

Slices

This structure defines the following Slices:

  • The element Bundle.meta.profile is sliced based on the value of value:value

Differential View

This structure is derived from PrescribeIT Message Bundle for Tasks

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle SI0..*messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
... meta S1..1Meta
.... profile SuriSlice: Unordered, Open by value:value
.... profile S1..1uriFixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
.... tag S1..1Coding
..... code S1..1codeFixed Value: PrescribeIT2.0
... entry S5..*BackboneElement
... signature S0..1Signature

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle SΣI0..*Contains a collection of resources
messageis101: First entry must be a MessageHeader with the messageheader-101 profile
onlyOneSAML: Only one practitioner in the bundle may have a SAML token
... id SΣ0..1idLogical id of this artifact
... meta SΣ1..1MetaMetadata about the resource
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... profile SΣuriProfiles this resource claims to conform to
Slice: Unordered, Open by value:value
.... profile SΣ1..1uriProfiles this resource claims to conform to

Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/profile-bundle-message
.... profile SΣ1..1uriProfiles this resource claims to conform to

Fixed Value: http://prescribeit.ca/fhir/StructureDefinition/interaction-bundle-101
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible)
.... tag SΣCodingTags applied to this resource
Slice: Unordered, Open by value:system
Binding: (unbound) (example)
.... tag SΣ1..1CodingTags applied to this resource
Binding: SharedSpecificationVersion (required)
..... id 0..1idxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... system SΣ1..1uriIdentity of the terminology system
Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion
..... version Σ0..1stringVersion of the system - if relevant
..... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: PrescribeIT2.0
..... display Σ0..1stringRepresentation defined by the system
..... userSelected Σ0..1booleanIf this coding was chosen directly by the user
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: http://tools.ietf.org/html/bcp47 (required)
... type SΣ1..1codedocument | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required)
Fixed Value: message
... total ΣI0..1unsignedIntIf search, the total number of matches
... link Σ0..*BackboneElementLinks related to this Bundle
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... relation Σ1..1stringhttp://www.iana.org/assignments/link-relations/link-relations.xhtml
.... url Σ1..1uriReference details for the link
... entry SΣI5..*BackboneElementEntry in the bundle - will have a resource, or information
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... fullUrl SΣ1..1uriAbsolute URL for resource (server address, or UUID/OID)
.... resource SΣ1..1ResourceA resource in the bundle
... signature SΣ0..1SignatureDigital Signature

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathNameConformanceValueSet
Bundle.meta.securityAll Security LabelsextensibleAll Security Labels
Bundle.meta.tagSharedSpecificationVersionrequiredSharedSpecificationVersion
Bundle.meta.tagSharedSpecificationVersionrequiredSharedSpecificationVersion
Bundle.language?extrequiredhttp://tools.ietf.org/html/bcp47
Bundle.typeBundleTyperequiredBundleType
Bundle.entry.search.modeSearchEntryModerequiredSearchEntryMode
Bundle.entry.request.methodHTTPVerbrequiredHTTPVerb

Constraints

IdPathDetailsRequirements
bdl-2Bundleentry.search only when a search
: entry.search.empty() or (type = 'searchset')
bdl-1Bundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-7BundleFullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId
: entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct()
bdl-3Bundleentry.request only for some types of bundles
: entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history'
bdl-4Bundleentry.response only for some types of bundles
: entry.response.empty() or type = 'batch-response' or type = 'transaction-response'
headerExistsBundleFirst entry must be a MessageHeader
: entry[0].resource.is(MessageHeader)
patientin1BundleSecond entry must be a Patient
: entry[1].resource.is(Patient)
max25tasksBundleCannot have more than 25 tasks in one message
: entry.select(resource as Task).count()<=25
sameGroupBundleAll "requisition" extensions in the bundle must have the same value
: (entry.resource.as(Task).extension.where($this.url='http://hl7.org/fhir/StructureDefinition/extension-Task.groupIdentifier').valueIdentifier.system).distinct().count() <= 1 and (entry.resource.as(Task).extension.where($this.url='http://hl7.org/fhir/StructureDefinition/extension-Task.groupIdentifier').valueIdentifier.value).distinct().count() <= 1 and ((entry.resource.as(Task).extension.where($this.url='http://hl7.org/fhir/StructureDefinition/extension-Task.groupIdentifier').valueIdentifier.system).count() = 0 or (entry.resource.as(Task).extension.where($this.url='http://hl7.org/fhir/StructureDefinition/extension-Task.groupIdentifier').valueIdentifier.system).count() = (entry.resource.as(Task).extension.where($this.url='http://hl7.org/fhir/StructureDefinition/extension-Task.groupIdentifier')).count())
messageis101BundleFirst entry must be a MessageHeader with the messageheader-101 profile
: entry[0].resource.meta.where(profile='http://prescribeit.ca/fhir/StructureDefinition/interaction-messageheader-101').exists()
onlyOneSAMLBundleOnly one practitioner in the bundle may have a SAML token
: entry.resource.as(Practitioner).extension.where(url='http://sharedhealth.exchange/fhir/StructureDefinition/ext-practitioner-saml').count() <=1
bdl-5Bundle.entrymust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-6Bundle.entryThe fullUrl element must be present when a resource is present, and not present otherwise
: fullUrl.empty() xor resource.exists()