TRxHub IG
0.1.0 - ci-build

TRxHub IG - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: TRxHub Transaction Bundle

Official URL: https://trxhub.mediservice.ch/fhir/StructureDefinition/trxhub-transaction-bundle Version: 0.1.0
Draft as of 2026-10-08 Computable Name: TRxHubTransactionBundle

Transaction Bundle for TRxHub. Lets a client submit several operations in a single request, processed atomically.

Overview

A transaction bundle allows to perform multiple operations at once in a single atomic transaction.

If any of the operation fail the transactions will be rolled back and no partial execution will be applied.

The transaction Bundle only supports the creation of Resources.

fullUrl

The fullUrl is used for bundle internal references. For example if a Patient and a Coverage should be created in the same Request the Coverage can reference the patient by its fullUrl urn:uuid. This client generated UUID however is temporary and only for bundle internal references and will be replaced by the generated TRxHub ID.

Ordering

Submitting the Resources in the correct order inside the Bundle is crucial for internal reference resolution. The Bundle entries are processed from top to bottom, meaning the first entry is processed first and the last entry is processed last. If a resource is referenced by another resource inside the Bundle it must be placed before the resource that references it.

Response

In response to a transaction bundle TRxHub will return a transaction response bundle containing all created resources. The returned resources follow the same behavior and structure as if they were created on their separate endpoint.

The one exception is DocumentReference: it does not return a Bundle of MedicationRequests inside the transaction bundle but rather lists the MedicationRequest entries directly in the transaction response bundle. Therefore, the entry.resource always returns a top level FHIR resource and never a nested Bundle.

Limitations

Since resources references inside the Bundle must be resolvable it is not possible to register an ePrescription and create an order-medication ServiceRequest in the same Bundle. The order-medication ServiceRequest needs to reference the MedicationRequests created from the ePrescription which are not known during Bundle assembly. Therefore, an order-medication ServiceRequest must be created in a separate call. This can be separate transaction bundle call or a call to the ServiceRequest endpoint directly.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, trxhub-tb-1, trxhub-tb-2
Bundle.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Bundle.type This element must be supported. This element is included in summaries. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.
Fixed Value: transaction
Bundle.entry This element must be supported. This element is included in summaries. C 1..* BackboneElement One operation per entry
Constraints: bdl-5, bdl-8
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
Bundle.entry.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.fullUrl This element must be supported. This element is included in summaries. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. This element is included in summaries. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.request This element must be supported. This element is included in summaries. C 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.request.method This element must be supported. This element is included in summaries. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
Fixed Value: POST
Bundle.entry.request.url This element must be supported. This element is included in summaries. 1..1 uri Resource type to create, e.g. 'Patient'

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Bundle.type Base required BundleType 📍4.0.1 FHIR Std.
Bundle.entry.request.​method Base required HTTPVerb 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
bdl-3 error Bundle entry.request mandatory for batch/transaction/history, otherwise prohibited entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))
bdl-4 error Bundle entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))
bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
bdl-7 error Bundle FullUrl 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&resource.meta.versionId).isDistinct()
bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10 error Bundle A document must have a date type = 'document' implies (timestamp.hasValue())
bdl-11 error Bundle A document must have a Composition as the first resource type = 'document' implies entry.first().resource.is(Composition)
bdl-12 error Bundle A message must have a MessageHeader as the first resource type = 'message' implies entry.first().resource.is(MessageHeader)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))

This structure is derived from Bundle

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: trxhub-tb-1, trxhub-tb-2
Bundle.type This element must be supported. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Fixed Value: transaction
Bundle.total 0..0 If search, the total number of matches
Bundle.entry This element must be supported. 1..* BackboneElement One operation per entry
Bundle.entry.fullUrl This element must be supported. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.search 0..0 Search related information
Bundle.entry.request This element must be supported. 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.method This element must be supported. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Fixed Value: POST
Bundle.entry.request.url This element must be supported. 1..1 uri Resource type to create, e.g. 'Patient'
Bundle.entry.response 0..0 Results of execution (transaction/batch/history)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, trxhub-tb-1, trxhub-tb-2
Bundle.id This element is included in summaries. 0..1 id Logical id of this artifact
Bundle.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Bundle.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Bundle.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Bundle.identifier This element is included in summaries. 0..1 Identifier Persistent identifier for the bundle
Bundle.type This element must be supported. This element is included in summaries. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.
Fixed Value: transaction
Bundle.timestamp This element is included in summaries. 0..1 instant When the bundle was assembled
Bundle.link This element is included in summaries. 0..* BackboneElement Links related to this Bundle
Bundle.link.id 0..1 string Unique id for inter-element referencing
Bundle.link.extension 0..* Extension Additional content defined by implementations
Bundle.link.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.link.relation This element is included in summaries. 1..1 string See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
Bundle.link.url This element is included in summaries. 1..1 uri Reference details for the link
Bundle.entry This element must be supported. This element is included in summaries. C 1..* BackboneElement One operation per entry
Constraints: bdl-5, bdl-8
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
Bundle.entry.id 0..1 string Unique id for inter-element referencing
Bundle.entry.extension 0..* Extension Additional content defined by implementations
Bundle.entry.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.link This element is included in summaries. 0..* See link (Bundle) Links related to this entry
Bundle.entry.fullUrl This element must be supported. This element is included in summaries. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. This element is included in summaries. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.request This element must be supported. This element is included in summaries. C 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.id 0..1 string Unique id for inter-element referencing
Bundle.entry.request.extension 0..* Extension Additional content defined by implementations
Bundle.entry.request.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.request.method This element must be supported. This element is included in summaries. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
Fixed Value: POST
Bundle.entry.request.url This element must be supported. This element is included in summaries. 1..1 uri Resource type to create, e.g. 'Patient'
Bundle.entry.request.ifNoneMatch This element is included in summaries. 0..1 string For managing cache currency
Bundle.entry.request.ifModifiedSince This element is included in summaries. 0..1 instant For managing cache currency
Bundle.entry.request.ifMatch This element is included in summaries. 0..1 string For managing update contention
Bundle.entry.request.ifNoneExist This element is included in summaries. 0..1 string For conditional creates

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Bundle.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Bundle.type Base required BundleType 📍4.0.1 FHIR Std.
Bundle.entry.search.​mode Base required SearchEntryMode 📍4.0.1 FHIR Std.
Bundle.entry.request.​method Base required HTTPVerb 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
bdl-3 error Bundle entry.request mandatory for batch/transaction/history, otherwise prohibited entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))
bdl-4 error Bundle entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))
bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
bdl-7 error Bundle FullUrl 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&resource.meta.versionId).isDistinct()
bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10 error Bundle A document must have a date type = 'document' implies (timestamp.hasValue())
bdl-11 error Bundle A document must have a Composition as the first resource type = 'document' implies entry.first().resource.is(Composition)
bdl-12 error Bundle A message must have a MessageHeader as the first resource type = 'message' implies entry.first().resource.is(MessageHeader)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, trxhub-tb-1, trxhub-tb-2
Bundle.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Bundle.type This element must be supported. This element is included in summaries. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.
Fixed Value: transaction
Bundle.entry This element must be supported. This element is included in summaries. C 1..* BackboneElement One operation per entry
Constraints: bdl-5, bdl-8
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
Bundle.entry.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.fullUrl This element must be supported. This element is included in summaries. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. This element is included in summaries. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.request This element must be supported. This element is included in summaries. C 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.request.method This element must be supported. This element is included in summaries. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
Fixed Value: POST
Bundle.entry.request.url This element must be supported. This element is included in summaries. 1..1 uri Resource type to create, e.g. 'Patient'

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Bundle.type Base required BundleType 📍4.0.1 FHIR Std.
Bundle.entry.request.​method Base required HTTPVerb 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
bdl-3 error Bundle entry.request mandatory for batch/transaction/history, otherwise prohibited entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))
bdl-4 error Bundle entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))
bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
bdl-7 error Bundle FullUrl 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&resource.meta.versionId).isDistinct()
bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10 error Bundle A document must have a date type = 'document' implies (timestamp.hasValue())
bdl-11 error Bundle A document must have a Composition as the first resource type = 'document' implies entry.first().resource.is(Composition)
bdl-12 error Bundle A message must have a MessageHeader as the first resource type = 'message' implies entry.first().resource.is(MessageHeader)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))

Differential View

This structure is derived from Bundle

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: trxhub-tb-1, trxhub-tb-2
Bundle.type This element must be supported. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Fixed Value: transaction
Bundle.total 0..0 If search, the total number of matches
Bundle.entry This element must be supported. 1..* BackboneElement One operation per entry
Bundle.entry.fullUrl This element must be supported. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.search 0..0 Search related information
Bundle.entry.request This element must be supported. 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.method This element must be supported. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Fixed Value: POST
Bundle.entry.request.url This element must be supported. 1..1 uri Resource type to create, e.g. 'Patient'
Bundle.entry.response 0..0 Results of execution (transaction/batch/history)
Bundle.signature 0..0 Digital Signature

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Bundle C 0..* Bundle Contains a collection of resources
Constraints: bdl-1, bdl-2, bdl-3, bdl-4, bdl-7, bdl-9, bdl-10, bdl-11, bdl-12, trxhub-tb-1, trxhub-tb-2
Bundle.id This element is included in summaries. 0..1 id Logical id of this artifact
Bundle.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Bundle.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Bundle.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Bundle.identifier This element is included in summaries. 0..1 Identifier Persistent identifier for the bundle
Bundle.type This element must be supported. This element is included in summaries. 1..1 code document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection
Binding: BundleType (required): Indicates the purpose of a bundle - how it is intended to be used.
Fixed Value: transaction
Bundle.timestamp This element is included in summaries. 0..1 instant When the bundle was assembled
Bundle.link This element is included in summaries. 0..* BackboneElement Links related to this Bundle
Bundle.link.id 0..1 string Unique id for inter-element referencing
Bundle.link.extension 0..* Extension Additional content defined by implementations
Bundle.link.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.link.relation This element is included in summaries. 1..1 string See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1
Bundle.link.url This element is included in summaries. 1..1 uri Reference details for the link
Bundle.entry This element must be supported. This element is included in summaries. C 1..* BackboneElement One operation per entry
Constraints: bdl-5, bdl-8
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
Bundle.entry.id 0..1 string Unique id for inter-element referencing
Bundle.entry.extension 0..* Extension Additional content defined by implementations
Bundle.entry.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.link This element is included in summaries. 0..* See link (Bundle) Links related to this entry
Bundle.entry.fullUrl This element must be supported. This element is included in summaries. 1..1 uri Client-assigned urn:uuid identifying this entry within the bundle
Bundle.entry.resource This element must be supported. This element is included in summaries. 1..1 The resource. Must conform to a supported TRxHub profile.
Bundle.entry.resource.resource Patient(TRxHubPatient)
Bundle.entry.resource.resource Coverage(TRxHubCoverage)
Bundle.entry.resource.resource Practitioner(TRxHubPractitioner)
Bundle.entry.resource.resource ServiceRequest(TRxHubServiceRequest)
Bundle.entry.resource.resource MedicationRequest(TRxHubMedicationRequest)
Bundle.entry.resource.resource DocumentReference(TRxHubEPrescriptionDocumentReference)
Bundle.entry.request This element must be supported. This element is included in summaries. C 1..1 BackboneElement Additional execution information (transaction/batch/history)
Bundle.entry.request.id 0..1 string Unique id for inter-element referencing
Bundle.entry.request.extension 0..* Extension Additional content defined by implementations
Bundle.entry.request.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Bundle.entry.request.method This element must be supported. This element is included in summaries. 1..1 code GET | HEAD | POST | PUT | DELETE | PATCH
Binding: HTTPVerb (required): HTTP verbs (in the HTTP command line). See HTTP rfc for details.
Fixed Value: POST
Bundle.entry.request.url This element must be supported. This element is included in summaries. 1..1 uri Resource type to create, e.g. 'Patient'
Bundle.entry.request.ifNoneMatch This element is included in summaries. 0..1 string For managing cache currency
Bundle.entry.request.ifModifiedSince This element is included in summaries. 0..1 instant For managing cache currency
Bundle.entry.request.ifMatch This element is included in summaries. 0..1 string For managing update contention
Bundle.entry.request.ifNoneExist This element is included in summaries. 0..1 string For conditional creates

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Bundle.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Bundle.type Base required BundleType 📍4.0.1 FHIR Std.
Bundle.entry.search.​mode Base required SearchEntryMode 📍4.0.1 FHIR Std.
Bundle.entry.request.​method Base required HTTPVerb 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdl-1 error Bundle total only when a search or history total.empty() or (type = 'searchset') or (type = 'history')
bdl-2 error Bundle entry.search only when a search entry.search.empty() or (type = 'searchset')
bdl-3 error Bundle entry.request mandatory for batch/transaction/history, otherwise prohibited entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))
bdl-4 error Bundle entry.response mandatory for batch-response/transaction-response/history, otherwise prohibited entry.all(response.exists() = (%resource.type = 'batch-response' or %resource.type = 'transaction-response' or %resource.type = 'history'))
bdl-5 error Bundle.entry must be a resource unless there's a request or response resource.exists() or request.exists() or response.exists()
bdl-7 error Bundle FullUrl 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&resource.meta.versionId).isDistinct()
bdl-8 error Bundle.entry fullUrl cannot be a version specific reference fullUrl.contains('/_history/').not()
bdl-9 error Bundle A document must have an identifier with a system and a value type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10 error Bundle A document must have a date type = 'document' implies (timestamp.hasValue())
bdl-11 error Bundle A document must have a Composition as the first resource type = 'document' implies entry.first().resource.is(Composition)
bdl-12 error Bundle A message must have a MessageHeader as the first resource type = 'message' implies entry.first().resource.is(MessageHeader)
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
trxhub-tb-1 error Bundle entry.request.url must match the resource type of entry.resource entry.all(request.url = resource.type().name)
trxhub-tb-2 error Bundle entry.fullUrl must be a urn:uuid entry.all(fullUrl.startsWith('urn:uuid:'))

 

Other representations of profile: CSV, Excel, Schematron