FHIR Testing
0.1.0 - ci-build

FHIR Testing, published by NHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/costateixeira/fhirtesting/ and changes regularly. See the Directory of published versions

Resource Profile: Test Plan Bundle

Official URL: http://costateixeira.github.io/fhirtesting/StructureDefinition/testplan-bundle Version: 0.1.0
Draft as of 2024-08-13 Computable Name: TestPlanBundle

A Transaction Bundle for Test Plans and their content.

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from Bundle

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle 0..* Bundle Contains a collection of resources
... type 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Required Pattern: transaction
... Slices for entry 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
.... entry:testPlan 1..* BackboneElement Entry in the bundle - will have a resource or information
..... resource 0..1 TestPlan A resource in the bundle
...... title 1..1 string Name for this test plan (human friendly)
...... status S 1..1 code draft | active | retired | unknown
.... entry:binaryResources 0..* BackboneElement Entry in the bundle - will have a resource or information
..... resource 0..1 Binary A resource in the bundle
...... contentType S 1..1 code MimeType of the binary content
...... data S 0..1 base64Binary The actual content

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle C 0..* Bundle Contains a collection of resources
bdl-1: total only when a search or history
bdl-2: entry.search only when a search
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
bdl-9: A document must have an identifier with a system and a value
bdl-10: A document must have a date
bdl-11: A document must have a Composition as the first resource
bdl-12: A message must have a MessageHeader as the first resource
bdl-13: A subscription-notification must have a SubscriptionStatus as the first resource
bdl-14: entry.request.method PATCH not allowed for history
bdl-15: Bundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
bdl-16: Issue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
bdl-17: Use and meaning of issues for documents has not been validated because the content will not be rendered in the document.
bdl-18: Self link is required for searchsets.
bdl-3a: For collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
bdl-3b: For collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
bdl-3c: For collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
bdl-3d: For collections of type transaction-response or batch-response, all entries must contain response elements
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... type ΣC 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.


Required Pattern: transaction
... Slices for entry ΣC 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
.... entry:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Resource A resource in the bundle
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)
.... entry:testPlan ΣC 1..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 TestPlan A resource in the bundle
...... 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
...... title 1..1 string Name for this test plan (human friendly)
...... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)
.... entry:binaryResources ΣC 0..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Binary A resource in the bundle
...... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
...... contentType SΣ 1..1 code MimeType of the binary content
Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.

...... data S 0..1 base64Binary The actual content
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Bundle.typerequiredPattern: transaction
http://hl7.org/fhir/ValueSet/bundle-type|5.0.0
from the FHIR Standard
Bundle.entry.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
bdl-1errorBundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-2errorBundleentry.search only when a search
: (type = 'searchset') or entry.search.empty()
bdl-5errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesmust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-7errorBundleFullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
: (type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&iif(resource.meta.versionId.exists(), resource.meta.versionId, '')).isDistinct()
bdl-8errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesfullUrl cannot be a version specific reference
: fullUrl.exists() implies fullUrl.contains('/_history/').not()
bdl-9errorBundleA document must have an identifier with a system and a value
: type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10errorBundleA document must have a date
: type = 'document' implies (timestamp.hasValue())
bdl-11errorBundleA document must have a Composition as the first resource
: type = 'document' implies entry.first().resource.is(Composition)
bdl-12errorBundleA message must have a MessageHeader as the first resource
: type = 'message' implies entry.first().resource.is(MessageHeader)
bdl-13errorBundleA subscription-notification must have a SubscriptionStatus as the first resource
: type = 'subscription-notification' implies entry.first().resource.is(SubscriptionStatus)
bdl-14errorBundleentry.request.method PATCH not allowed for history
: type = 'history' implies entry.request.method != 'PATCH'
bdl-15errorBundleBundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
: type='transaction' or type='transaction-response' or type='batch' or type='batch-response' or entry.all(fullUrl.exists() or request.method='POST')
bdl-16errorBundleIssue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
: issues.exists() implies (issues.issue.severity = 'information' or issues.issue.severity = 'warning')
bdl-17errorBundleUse and meaning of issues for documents has not been validated because the content will not be rendered in the document.
: type = 'document' implies issues.empty()
bdl-18errorBundleSelf link is required for searchsets.
: type = 'searchset' implies link.where(relation = 'self' and url.exists()).exists()
bdl-3aerrorBundleFor collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
: type in ('document' | 'message' | 'searchset' | 'collection') implies entry.all(resource.exists() and request.empty() and response.empty())
bdl-3berrorBundleFor collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
: type = 'history' implies entry.all(request.exists() and response.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3cerrorBundleFor collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
: type in ('transaction' | 'batch') implies entry.all(request.method.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3derrorBundleFor collections of type transaction-response or batch-response, all entries must contain response elements
: type in ('transaction-response' | 'batch-response') implies entry.all(response.exists())
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle C 0..* Bundle Contains a collection of resources
bdl-1: total only when a search or history
bdl-2: entry.search only when a search
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
bdl-9: A document must have an identifier with a system and a value
bdl-10: A document must have a date
bdl-11: A document must have a Composition as the first resource
bdl-12: A message must have a MessageHeader as the first resource
bdl-13: A subscription-notification must have a SubscriptionStatus as the first resource
bdl-14: entry.request.method PATCH not allowed for history
bdl-15: Bundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
bdl-16: Issue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
bdl-17: Use and meaning of issues for documents has not been validated because the content will not be rendered in the document.
bdl-18: Self link is required for searchsets.
bdl-3a: For collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
bdl-3b: For collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
bdl-3c: For collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
bdl-3d: For collections of type transaction-response or batch-response, all entries must contain response elements
... 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
... identifier ΣC 0..1 Identifier Persistent identifier for the bundle
... type ΣC 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.


Required Pattern: transaction
... timestamp ΣC 0..1 instant When the bundle was assembled
... total ΣC 0..1 unsignedInt If search, the total number of matches
... link ΣC 0..* BackboneElement Links related to this Bundle
.... 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
.... relation ΣC 1..1 code See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
Binding: LinkRelationTypes (required)
.... url ΣC 1..1 uri Reference details for the link
... Slices for entry ΣC 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
.... entry:All Slices Content/Rules for all slices
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Resource A resource in the bundle
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
.... entry:testPlan ΣC 1..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 TestPlan A resource in the bundle
...... 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 BindingsPurpose
CommonLanguages Starter Set
...... text 0..1 Narrative Text summary of the resource, for human interpretation
...... 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 Canonical identifier for this test plan, represented as a URI (globally unique)
cnl-1: URL should not contain | or # - these characters make processing canonical references problematic
...... identifier Σ 0..* Identifier Business identifier identifier for the test plan
...... version Σ 0..1 string Business version of the test plan
...... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
....... versionAlgorithmString string
....... versionAlgorithmCoding Coding
...... name ΣC 0..1 string Name for this test plan (computer friendly)
...... title 1..1 string Name for this test plan (human friendly)
...... status ?!SΣ 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 Σ 0..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 test plan
...... useContext Σ 0..* UsageContext The context that the content is intended to support
...... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction where the test plan applies (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.


...... purpose 0..1 markdown Why this test plan is defined
...... copyright 0..1 markdown Use and/or publishing restrictions
...... copyrightLabel 0..1 string Copyright holder and year(s)
...... category 0..* CodeableConcept The category of the Test Plan - can be acceptance, unit, performance
Binding: TestScriptScopePhaseType (example): The high-level category for this plan.


...... scope 0..* Reference() What is being tested with this Test Plan - a conformance resource, or narrative criteria, or an external reference
...... testTools 0..1 markdown A description of test tools to be used in the test plan - narrative for now
...... dependency 0..* BackboneElement The required criteria to execute the test plan - e.g. preconditions, previous tests
....... 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
....... description 0..1 markdown Description of the dependency criterium
....... predecessor 0..1 Reference() Link to predecessor test plans
...... exitCriteria 0..1 markdown The threshold or criteria for the test plan to be considered successfully executed - narrative
...... testCase 0..* BackboneElement The test cases that constitute this plan
....... 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
....... sequence 0..1 integer Sequence of test case in the test plan
....... scope 0..* Reference() The scope or artifact covered by the case
....... dependency 0..* BackboneElement Required criteria to execute the test case
........ 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
........ description 0..1 markdown Description of the criteria
........ predecessor 0..1 Reference() Link to predecessor test plans
....... testRun 0..* BackboneElement The actual test to be executed
........ 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
........ narrative 0..1 markdown The narrative description of the tests
........ script 0..1 BackboneElement The test cases in a structured language e.g. gherkin, Postman, or FHIR TestScript
......... 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
......... language 0..1 CodeableConcept The language for the test cases e.g. 'gherkin', 'testscript'
......... source[x] 0..1 The actual content of the cases - references to TestScripts or externally defined content
.......... sourceString string
.......... sourceReference Reference(Any)
....... testData 0..* BackboneElement The test data used in the test case
........ 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
........ type 1..1 Coding The type of test data description, e.g. 'synthea'
........ content 0..1 Reference() The actual test resources when they exist
........ source[x] 0..1 Pointer to a definition of test resources - narrative or structured e.g. synthetic data generation, etc
......... sourceString string
......... sourceReference Reference(Any)
....... assertion 0..* BackboneElement Test assertions or expectations
........ 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
........ type 0..* CodeableConcept Assertion type - for example 'informative' or 'required'
........ object 0..* CodeableReference() The focus or object of the assertion
........ result 0..* CodeableReference() The actual result assertion
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
.... entry:binaryResources ΣC 0..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Binary A resource in the bundle
...... 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 BindingsPurpose
CommonLanguages Starter Set
...... contentType SΣ 1..1 code MimeType of the binary content
Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.

...... securityContext Σ 0..1 Reference(Resource) Identifies another resource to use as proxy when enforcing access control
...... data S 0..1 base64Binary The actual content
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
... signature Σ 0..1 Signature Digital Signature
... issues ΣC 0..1 OperationOutcome Issues with the Bundle

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Bundle.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.typerequiredPattern: transaction
http://hl7.org/fhir/ValueSet/bundle-type|5.0.0
from the FHIR Standard
Bundle.link.relationrequiredLinkRelationTypes
http://hl7.org/fhir/ValueSet/iana-link-relations|5.0.0
from the FHIR Standard
Bundle.entry.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.versionAlgorithm[x]extensibleVersionAlgorithm
http://hl7.org/fhir/ValueSet/version-algorithm
from the FHIR Standard
Bundle.entry:testPlan.resource.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.jurisdictionextensibleJurisdictionValueSet
http://hl7.org/fhir/ValueSet/jurisdiction
from the FHIR Standard
Bundle.entry:testPlan.resource.categoryexampleTestScriptScopePhaseType
http://hl7.org/fhir/ValueSet/testscript-scope-phase-codes
from the FHIR Standard
Bundle.entry:testPlan.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
bdl-1errorBundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-2errorBundleentry.search only when a search
: (type = 'searchset') or entry.search.empty()
bdl-5errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesmust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-7errorBundleFullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
: (type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&iif(resource.meta.versionId.exists(), resource.meta.versionId, '')).isDistinct()
bdl-8errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesfullUrl cannot be a version specific reference
: fullUrl.exists() implies fullUrl.contains('/_history/').not()
bdl-9errorBundleA document must have an identifier with a system and a value
: type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10errorBundleA document must have a date
: type = 'document' implies (timestamp.hasValue())
bdl-11errorBundleA document must have a Composition as the first resource
: type = 'document' implies entry.first().resource.is(Composition)
bdl-12errorBundleA message must have a MessageHeader as the first resource
: type = 'message' implies entry.first().resource.is(MessageHeader)
bdl-13errorBundleA subscription-notification must have a SubscriptionStatus as the first resource
: type = 'subscription-notification' implies entry.first().resource.is(SubscriptionStatus)
bdl-14errorBundleentry.request.method PATCH not allowed for history
: type = 'history' implies entry.request.method != 'PATCH'
bdl-15errorBundleBundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
: type='transaction' or type='transaction-response' or type='batch' or type='batch-response' or entry.all(fullUrl.exists() or request.method='POST')
bdl-16errorBundleIssue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
: issues.exists() implies (issues.issue.severity = 'information' or issues.issue.severity = 'warning')
bdl-17errorBundleUse and meaning of issues for documents has not been validated because the content will not be rendered in the document.
: type = 'document' implies issues.empty()
bdl-18errorBundleSelf link is required for searchsets.
: type = 'searchset' implies link.where(relation = 'self' and url.exists()).exists()
bdl-3aerrorBundleFor collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
: type in ('document' | 'message' | 'searchset' | 'collection') implies entry.all(resource.exists() and request.empty() and response.empty())
bdl-3berrorBundleFor collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
: type = 'history' implies entry.all(request.exists() and response.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3cerrorBundleFor collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
: type in ('transaction' | 'batch') implies entry.all(request.method.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3derrorBundleFor collections of type transaction-response or batch-response, all entries must contain response elements
: type in ('transaction-response' | 'batch-response') implies entry.all(response.exists())
cnl-1warningBundle.entry:testPlan.resource.urlURL should not contain | or # - these characters make processing canonical references problematic
: exists() implies matches('^[^|# ]+$')
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Bundle

Summary

Mandatory: 2 elements(1 nested mandatory element)
Must-Support: 3 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Bundle.entry

Differential View

This structure is derived from Bundle

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle 0..* Bundle Contains a collection of resources
... type 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Required Pattern: transaction
... Slices for entry 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
.... entry:testPlan 1..* BackboneElement Entry in the bundle - will have a resource or information
..... resource 0..1 TestPlan A resource in the bundle
...... title 1..1 string Name for this test plan (human friendly)
...... status S 1..1 code draft | active | retired | unknown
.... entry:binaryResources 0..* BackboneElement Entry in the bundle - will have a resource or information
..... resource 0..1 Binary A resource in the bundle
...... contentType S 1..1 code MimeType of the binary content
...... data S 0..1 base64Binary The actual content

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle C 0..* Bundle Contains a collection of resources
bdl-1: total only when a search or history
bdl-2: entry.search only when a search
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
bdl-9: A document must have an identifier with a system and a value
bdl-10: A document must have a date
bdl-11: A document must have a Composition as the first resource
bdl-12: A message must have a MessageHeader as the first resource
bdl-13: A subscription-notification must have a SubscriptionStatus as the first resource
bdl-14: entry.request.method PATCH not allowed for history
bdl-15: Bundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
bdl-16: Issue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
bdl-17: Use and meaning of issues for documents has not been validated because the content will not be rendered in the document.
bdl-18: Self link is required for searchsets.
bdl-3a: For collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
bdl-3b: For collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
bdl-3c: For collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
bdl-3d: For collections of type transaction-response or batch-response, all entries must contain response elements
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... type ΣC 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.


Required Pattern: transaction
... Slices for entry ΣC 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
.... entry:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Resource A resource in the bundle
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)
.... entry:testPlan ΣC 1..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 TestPlan A resource in the bundle
...... 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
...... title 1..1 string Name for this test plan (human friendly)
...... status ?!SΣ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)
.... entry:binaryResources ΣC 0..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Binary A resource in the bundle
...... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
...... contentType SΣ 1..1 code MimeType of the binary content
Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.

...... data S 0..1 base64Binary The actual content
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
...... status Σ 1..1 string Status response code (text optional)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Bundle.typerequiredPattern: transaction
http://hl7.org/fhir/ValueSet/bundle-type|5.0.0
from the FHIR Standard
Bundle.entry.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
bdl-1errorBundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-2errorBundleentry.search only when a search
: (type = 'searchset') or entry.search.empty()
bdl-5errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesmust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-7errorBundleFullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
: (type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&iif(resource.meta.versionId.exists(), resource.meta.versionId, '')).isDistinct()
bdl-8errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesfullUrl cannot be a version specific reference
: fullUrl.exists() implies fullUrl.contains('/_history/').not()
bdl-9errorBundleA document must have an identifier with a system and a value
: type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10errorBundleA document must have a date
: type = 'document' implies (timestamp.hasValue())
bdl-11errorBundleA document must have a Composition as the first resource
: type = 'document' implies entry.first().resource.is(Composition)
bdl-12errorBundleA message must have a MessageHeader as the first resource
: type = 'message' implies entry.first().resource.is(MessageHeader)
bdl-13errorBundleA subscription-notification must have a SubscriptionStatus as the first resource
: type = 'subscription-notification' implies entry.first().resource.is(SubscriptionStatus)
bdl-14errorBundleentry.request.method PATCH not allowed for history
: type = 'history' implies entry.request.method != 'PATCH'
bdl-15errorBundleBundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
: type='transaction' or type='transaction-response' or type='batch' or type='batch-response' or entry.all(fullUrl.exists() or request.method='POST')
bdl-16errorBundleIssue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
: issues.exists() implies (issues.issue.severity = 'information' or issues.issue.severity = 'warning')
bdl-17errorBundleUse and meaning of issues for documents has not been validated because the content will not be rendered in the document.
: type = 'document' implies issues.empty()
bdl-18errorBundleSelf link is required for searchsets.
: type = 'searchset' implies link.where(relation = 'self' and url.exists()).exists()
bdl-3aerrorBundleFor collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
: type in ('document' | 'message' | 'searchset' | 'collection') implies entry.all(resource.exists() and request.empty() and response.empty())
bdl-3berrorBundleFor collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
: type = 'history' implies entry.all(request.exists() and response.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3cerrorBundleFor collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
: type in ('transaction' | 'batch') implies entry.all(request.method.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3derrorBundleFor collections of type transaction-response or batch-response, all entries must contain response elements
: type in ('transaction-response' | 'batch-response') implies entry.all(response.exists())
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Bundle C 0..* Bundle Contains a collection of resources
bdl-1: total only when a search or history
bdl-2: entry.search only when a search
bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
bdl-9: A document must have an identifier with a system and a value
bdl-10: A document must have a date
bdl-11: A document must have a Composition as the first resource
bdl-12: A message must have a MessageHeader as the first resource
bdl-13: A subscription-notification must have a SubscriptionStatus as the first resource
bdl-14: entry.request.method PATCH not allowed for history
bdl-15: Bundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
bdl-16: Issue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
bdl-17: Use and meaning of issues for documents has not been validated because the content will not be rendered in the document.
bdl-18: Self link is required for searchsets.
bdl-3a: For collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
bdl-3b: For collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
bdl-3c: For collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
bdl-3d: For collections of type transaction-response or batch-response, all entries must contain response elements
... 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
... identifier ΣC 0..1 Identifier Persistent identifier for the bundle
... type ΣC 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection | subscription-notification
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.


Required Pattern: transaction
... timestamp ΣC 0..1 instant When the bundle was assembled
... total ΣC 0..1 unsignedInt If search, the total number of matches
... link ΣC 0..* BackboneElement Links related to this Bundle
.... 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
.... relation ΣC 1..1 code See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
Binding: LinkRelationTypes (required)
.... url ΣC 1..1 uri Reference details for the link
... Slices for entry ΣC 1..* BackboneElement Entry resource in the patient summary bundle
Slice: Unordered, Open by type:resource
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
.... entry:All Slices Content/Rules for all slices
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Resource A resource in the bundle
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
.... entry:testPlan ΣC 1..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 TestPlan A resource in the bundle
...... 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 BindingsPurpose
CommonLanguages Starter Set
...... text 0..1 Narrative Text summary of the resource, for human interpretation
...... 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 Canonical identifier for this test plan, represented as a URI (globally unique)
cnl-1: URL should not contain | or # - these characters make processing canonical references problematic
...... identifier Σ 0..* Identifier Business identifier identifier for the test plan
...... version Σ 0..1 string Business version of the test plan
...... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
....... versionAlgorithmString string
....... versionAlgorithmCoding Coding
...... name ΣC 0..1 string Name for this test plan (computer friendly)
...... title 1..1 string Name for this test plan (human friendly)
...... status ?!SΣ 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 Σ 0..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 test plan
...... useContext Σ 0..* UsageContext The context that the content is intended to support
...... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction where the test plan applies (if applicable)
Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use.


...... purpose 0..1 markdown Why this test plan is defined
...... copyright 0..1 markdown Use and/or publishing restrictions
...... copyrightLabel 0..1 string Copyright holder and year(s)
...... category 0..* CodeableConcept The category of the Test Plan - can be acceptance, unit, performance
Binding: TestScriptScopePhaseType (example): The high-level category for this plan.


...... scope 0..* Reference() What is being tested with this Test Plan - a conformance resource, or narrative criteria, or an external reference
...... testTools 0..1 markdown A description of test tools to be used in the test plan - narrative for now
...... dependency 0..* BackboneElement The required criteria to execute the test plan - e.g. preconditions, previous tests
....... 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
....... description 0..1 markdown Description of the dependency criterium
....... predecessor 0..1 Reference() Link to predecessor test plans
...... exitCriteria 0..1 markdown The threshold or criteria for the test plan to be considered successfully executed - narrative
...... testCase 0..* BackboneElement The test cases that constitute this plan
....... 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
....... sequence 0..1 integer Sequence of test case in the test plan
....... scope 0..* Reference() The scope or artifact covered by the case
....... dependency 0..* BackboneElement Required criteria to execute the test case
........ 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
........ description 0..1 markdown Description of the criteria
........ predecessor 0..1 Reference() Link to predecessor test plans
....... testRun 0..* BackboneElement The actual test to be executed
........ 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
........ narrative 0..1 markdown The narrative description of the tests
........ script 0..1 BackboneElement The test cases in a structured language e.g. gherkin, Postman, or FHIR TestScript
......... 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
......... language 0..1 CodeableConcept The language for the test cases e.g. 'gherkin', 'testscript'
......... source[x] 0..1 The actual content of the cases - references to TestScripts or externally defined content
.......... sourceString string
.......... sourceReference Reference(Any)
....... testData 0..* BackboneElement The test data used in the test case
........ 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
........ type 1..1 Coding The type of test data description, e.g. 'synthea'
........ content 0..1 Reference() The actual test resources when they exist
........ source[x] 0..1 Pointer to a definition of test resources - narrative or structured e.g. synthetic data generation, etc
......... sourceString string
......... sourceReference Reference(Any)
....... assertion 0..* BackboneElement Test assertions or expectations
........ 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
........ type 0..* CodeableConcept Assertion type - for example 'informative' or 'required'
........ object 0..* CodeableReference() The focus or object of the assertion
........ result 0..* CodeableReference() The actual result assertion
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
.... entry:binaryResources ΣC 0..* BackboneElement Entry in the bundle - will have a resource or information
bdl-5: must be a resource unless there's a request or response
bdl-8: fullUrl cannot be a version specific reference
This repeating element order: For bundles of type 'document' and 'message', the first resource is special (must be Composition or MessageHeader respectively). For all bundles, the meaning of the order of entries depends on the bundle type
..... 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
..... link Σ 0..* See link (Bundle) Links related to this entry
..... fullUrl ΣC 0..1 uri URI for resource (e.g. the absolute URL server address, URI for UUID/OID, etc.)
..... resource ΣC 0..1 Binary A resource in the bundle
...... 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 BindingsPurpose
CommonLanguages Starter Set
...... contentType SΣ 1..1 code MimeType of the binary content
Binding: MimeTypes (required): The mime type of an attachment. Any valid mime type is allowed.

...... securityContext Σ 0..1 Reference(Resource) Identifies another resource to use as proxy when enforcing access control
...... data S 0..1 base64Binary The actual content
..... search ΣC 0..1 BackboneElement Search related information
...... 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
...... mode Σ 0..1 code match | include - why this is in the result set
Binding: SearchEntryMode (required): Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process.

...... score Σ 0..1 decimal Search ranking (between 0 and 1)
..... request ΣC 0..1 BackboneElement Additional execution information (transaction/batch/history)
...... 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
...... method ΣC 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.

...... url Σ 1..1 uri URL for HTTP equivalent of this entry
...... ifNoneMatch Σ 0..1 string For managing cache validation
...... ifModifiedSince Σ 0..1 instant For managing cache currency
...... ifMatch Σ 0..1 string For managing update contention
...... ifNoneExist Σ 0..1 string For conditional creates
..... response ΣC 0..1 BackboneElement Results of execution (transaction/batch/history)
...... 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
...... status Σ 1..1 string Status response code (text optional)
...... location Σ 0..1 uri The location (if the operation returns a location)
...... etag Σ 0..1 string The Etag for the resource (if relevant)
...... lastModified Σ 0..1 instant Server's date time modified
...... outcome Σ 0..1 Resource OperationOutcome with hints and warnings (for batch/transaction)
... signature Σ 0..1 Signature Digital Signature
... issues ΣC 0..1 OperationOutcome Issues with the Bundle

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Bundle.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.typerequiredPattern: transaction
http://hl7.org/fhir/ValueSet/bundle-type|5.0.0
from the FHIR Standard
Bundle.link.relationrequiredLinkRelationTypes
http://hl7.org/fhir/ValueSet/iana-link-relations|5.0.0
from the FHIR Standard
Bundle.entry.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.versionAlgorithm[x]extensibleVersionAlgorithm
http://hl7.org/fhir/ValueSet/version-algorithm
from the FHIR Standard
Bundle.entry:testPlan.resource.statusrequiredPublicationStatus
http://hl7.org/fhir/ValueSet/publication-status|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.resource.jurisdictionextensibleJurisdictionValueSet
http://hl7.org/fhir/ValueSet/jurisdiction
from the FHIR Standard
Bundle.entry:testPlan.resource.categoryexampleTestScriptScopePhaseType
http://hl7.org/fhir/ValueSet/testscript-scope-phase-codes
from the FHIR Standard
Bundle.entry:testPlan.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry:testPlan.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.resource.contentTyperequiredMimeTypes (a valid code from urn:ietf:bcp:13)
http://hl7.org/fhir/ValueSet/mimetypes|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.search.moderequiredSearchEntryMode
http://hl7.org/fhir/ValueSet/search-entry-mode|5.0.0
from the FHIR Standard
Bundle.entry:binaryResources.request.methodrequiredHTTPVerb
http://hl7.org/fhir/ValueSet/http-verb|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
bdl-1errorBundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-2errorBundleentry.search only when a search
: (type = 'searchset') or entry.search.empty()
bdl-5errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesmust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-7errorBundleFullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId (except in history bundles)
: (type = 'history') or entry.where(fullUrl.exists()).select(fullUrl&iif(resource.meta.versionId.exists(), resource.meta.versionId, '')).isDistinct()
bdl-8errorBundle.entry, Bundle.entry:testPlan, Bundle.entry:binaryResourcesfullUrl cannot be a version specific reference
: fullUrl.exists() implies fullUrl.contains('/_history/').not()
bdl-9errorBundleA document must have an identifier with a system and a value
: type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10errorBundleA document must have a date
: type = 'document' implies (timestamp.hasValue())
bdl-11errorBundleA document must have a Composition as the first resource
: type = 'document' implies entry.first().resource.is(Composition)
bdl-12errorBundleA message must have a MessageHeader as the first resource
: type = 'message' implies entry.first().resource.is(MessageHeader)
bdl-13errorBundleA subscription-notification must have a SubscriptionStatus as the first resource
: type = 'subscription-notification' implies entry.first().resource.is(SubscriptionStatus)
bdl-14errorBundleentry.request.method PATCH not allowed for history
: type = 'history' implies entry.request.method != 'PATCH'
bdl-15errorBundleBundle resources where type is not transaction, transaction-response, batch, or batch-response or when the request is a POST SHALL have Bundle.entry.fullUrl populated
: type='transaction' or type='transaction-response' or type='batch' or type='batch-response' or entry.all(fullUrl.exists() or request.method='POST')
bdl-16errorBundleIssue.severity for all issues within the OperationOutcome must be either 'information' or 'warning'.
: issues.exists() implies (issues.issue.severity = 'information' or issues.issue.severity = 'warning')
bdl-17errorBundleUse and meaning of issues for documents has not been validated because the content will not be rendered in the document.
: type = 'document' implies issues.empty()
bdl-18errorBundleSelf link is required for searchsets.
: type = 'searchset' implies link.where(relation = 'self' and url.exists()).exists()
bdl-3aerrorBundleFor collections of type document, message, searchset or collection, all entries must contain resources, and not have request or response elements
: type in ('document' | 'message' | 'searchset' | 'collection') implies entry.all(resource.exists() and request.empty() and response.empty())
bdl-3berrorBundleFor collections of type history, all entries must contain request or response elements, and resources if the method is POST, PUT or PATCH
: type = 'history' implies entry.all(request.exists() and response.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3cerrorBundleFor collections of type transaction or batch, all entries must contain request elements, and resources if the method is POST, PUT or PATCH
: type in ('transaction' | 'batch') implies entry.all(request.method.exists() and ((request.method in ('POST' | 'PATCH' | 'PUT')) = resource.exists()))
bdl-3derrorBundleFor collections of type transaction-response or batch-response, all entries must contain response elements
: type in ('transaction-response' | 'batch-response') implies entry.all(response.exists())
cnl-1warningBundle.entry:testPlan.resource.urlURL should not contain | or # - these characters make processing canonical references problematic
: exists() implies matches('^[^|# ]+$')
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Bundle

Summary

Mandatory: 2 elements(1 nested mandatory element)
Must-Support: 3 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Bundle.entry

 

Other representations of profile: CSV, Excel, Schematron