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
| 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.
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.
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.
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.
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.
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
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
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 |
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |
![]() ![]() |
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 | |
![]() ![]() |
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 |
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||
![]() ![]() ![]() |
C | 1..1 | BackboneElement | Additional execution information (transaction/batch/history) |
![]() ![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
![]() ![]() ![]() ![]() |
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 | |
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |
Documentation for this format | ||||
| 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. |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Bundle | Contains a collection of resources Constraints: trxhub-tb-1, trxhub-tb-2 |
![]() ![]() |
1..1 | code | document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection Fixed Value: transaction | |
![]() ![]() |
0..0 | If search, the total number of matches | ||
![]() ![]() |
1..* | BackboneElement | One operation per entry | |
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||
![]() ![]() ![]() |
0..0 | Search related information | ||
![]() ![]() ![]() |
1..1 | BackboneElement | Additional execution information (transaction/batch/history) | |
![]() ![]() ![]() ![]() |
1..1 | code | GET | HEAD | POST | PUT | DELETE | PATCH Fixed Value: POST | |
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |
![]() ![]() ![]() |
0..0 | Results of execution (transaction/batch/history) | ||
![]() ![]() |
0..0 | Digital Signature | ||
Documentation for this format | ||||
| 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:'))
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||
![]() ![]() |
0..1 | id | Logical id of this artifact | |||||
![]() ![]() |
0..1 | Meta | Metadata about the resource | |||||
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Identifier | Persistent identifier for the bundle | |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..1 | instant | When the bundle was assembled | |||||
![]() ![]() |
0..* | BackboneElement | Links related to this Bundle | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
1..1 | string | See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 | |||||
![]() ![]() ![]() |
1..1 | uri | Reference details for the link | |||||
![]() ![]() |
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 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
0..* | See link (Bundle) | Links related to this entry | |||||
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |||||
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||||||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||||||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||||||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||||||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||||||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||||||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||||||
![]() ![]() ![]() |
C | 1..1 | BackboneElement | Additional execution information (transaction/batch/history) | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For managing cache currency | |||||
![]() ![]() ![]() ![]() |
0..1 | instant | For managing cache currency | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For managing update contention | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For conditional creates | |||||
Documentation for this format | ||||||||
| 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. |
| 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
Summary
Mandatory: 4 elements
Must-Support: 7 elements
Fixed: 2 elements
Prohibited: 4 elements
Structures
This structure refers to these other structures:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
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 |
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |
![]() ![]() |
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 | |
![]() ![]() |
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 |
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||
![]() ![]() ![]() |
C | 1..1 | BackboneElement | Additional execution information (transaction/batch/history) |
![]() ![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
![]() ![]() ![]() ![]() |
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 | |
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |
Documentation for this format | ||||
| 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. |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Bundle | Contains a collection of resources Constraints: trxhub-tb-1, trxhub-tb-2 |
![]() ![]() |
1..1 | code | document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection Fixed Value: transaction | |
![]() ![]() |
0..0 | If search, the total number of matches | ||
![]() ![]() |
1..* | BackboneElement | One operation per entry | |
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||
![]() ![]() ![]() |
0..0 | Search related information | ||
![]() ![]() ![]() |
1..1 | BackboneElement | Additional execution information (transaction/batch/history) | |
![]() ![]() ![]() ![]() |
1..1 | code | GET | HEAD | POST | PUT | DELETE | PATCH Fixed Value: POST | |
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |
![]() ![]() ![]() |
0..0 | Results of execution (transaction/batch/history) | ||
![]() ![]() |
0..0 | Digital Signature | ||
Documentation for this format | ||||
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
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 | ||||
![]() ![]() |
0..1 | id | Logical id of this artifact | |||||
![]() ![]() |
0..1 | Meta | Metadata about the resource | |||||
![]() ![]() |
0..1 | uri | A set of rules under which this content was created | |||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Identifier | Persistent identifier for the bundle | |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..1 | instant | When the bundle was assembled | |||||
![]() ![]() |
0..* | BackboneElement | Links related to this Bundle | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
1..1 | string | See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 | |||||
![]() ![]() ![]() |
1..1 | uri | Reference details for the link | |||||
![]() ![]() |
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 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() |
0..* | See link (Bundle) | Links related to this entry | |||||
![]() ![]() ![]() |
1..1 | uri | Client-assigned urn:uuid identifying this entry within the bundle | |||||
![]() ![]() ![]() |
1..1 | The resource. Must conform to a supported TRxHub profile. | ||||||
![]() ![]() ![]() ![]() |
Patient(TRxHubPatient) | |||||||
![]() ![]() ![]() ![]() |
Coverage(TRxHubCoverage) | |||||||
![]() ![]() ![]() ![]() |
Practitioner(TRxHubPractitioner) | |||||||
![]() ![]() ![]() ![]() |
ServiceRequest(TRxHubServiceRequest) | |||||||
![]() ![]() ![]() ![]() |
MedicationRequest(TRxHubMedicationRequest) | |||||||
![]() ![]() ![]() ![]() |
DocumentReference(TRxHubEPrescriptionDocumentReference) | |||||||
![]() ![]() ![]() |
C | 1..1 | BackboneElement | Additional execution information (transaction/batch/history) | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||
![]() ![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Resource type to create, e.g. 'Patient' | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For managing cache currency | |||||
![]() ![]() ![]() ![]() |
0..1 | instant | For managing cache currency | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For managing update contention | |||||
![]() ![]() ![]() ![]() |
0..1 | string | For conditional creates | |||||
Documentation for this format | ||||||||
| 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. |
| 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
Summary
Mandatory: 4 elements
Must-Support: 7 elements
Fixed: 2 elements
Prohibited: 4 elements
Structures
This structure refers to these other structures:
Other representations of profile: CSV, Excel, Schematron