CH ALIS (R4)
0.2.0 - CI build

Publish Box goes here

Resource Profile: CH ALIS Transaction Profile

Defining URL:http://fhir.ch/ig/ch-alis/StructureDefinition/ch-alis-transaction
Version:0.2.0
Name:ChAlisTransaction
Title:CH ALIS Transaction Profile
Status:Draft as of 2020-11-26
Definition:

Base definition for the Bundle resource in the context of ALIS-Connect.

Publisher:ALIS-Connect
Copyright:

CC-BY-SA-4.0

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://fhir.ch/ig/ch-alis/StructureDefinition/ch-alis-transaction

Formal Views of Profile Content

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

This structure is derived from Bundle

Summary

Mandatory: 4 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

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

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet / Code
Bundle.languagepreferredCommonLanguages
Max Binding: AllLanguages
Bundle.typerequiredFixed Value: transaction
Bundle.entry.search.moderequiredSearchEntryMode
Bundle.entry.request.methodrequiredHTTPVerb
Bundle.entry:ChargeItem.search.moderequiredSearchEntryMode
Bundle.entry:ChargeItem.request.methodrequiredHTTPVerb

Constraints

IdPathDetailsRequirements
bdl-1Bundletotal only when a search or history
: total.empty() or (type = 'searchset') or (type = 'history')
bdl-2Bundleentry.search only when a search
: entry.search.empty() or (type = 'searchset')
bdl-3Bundleentry.request mandatory for batch/transaction/history, otherwise prohibited
: entry.all(request.exists() = (%resource.type = 'batch' or %resource.type = 'transaction' or %resource.type = 'history'))
bdl-4Bundleentry.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-7BundleFullUrl 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-9BundleA document must have an identifier with a system and a value
: type = 'document' implies (identifier.system.exists() and identifier.value.exists())
bdl-10BundleA document must have a date
: type = 'document' implies (timestamp.hasValue())
bdl-11BundleA document must have a Composition as the first resource
: type = 'document' implies entry.first().resource.is(Composition)
bdl-12BundleA message must have a MessageHeader as the first resource
: type = 'message' implies entry.first().resource.is(MessageHeader)
ele-1Bundle.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.timestampAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.totalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.link.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.link.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.link.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.link.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.link.relationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.link.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
bdl-5Bundle.entrymust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-8Bundle.entryfullUrl cannot be a version specific reference
: fullUrl.contains('/_history/').not()
ele-1Bundle.entryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.fullUrlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.searchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.search.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.search.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.search.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.search.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.search.modeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.search.scoreAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.requestAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.request.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.request.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.request.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.request.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.ifNoneMatchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.ifModifiedSinceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.ifMatchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.request.ifNoneExistAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.responseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.response.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.response.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.response.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry.response.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry.response.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.response.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.response.etagAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry.response.lastModifiedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
bdl-5Bundle.entry:ChargeItemmust be a resource unless there's a request or response
: resource.exists() or request.exists() or response.exists()
bdl-8Bundle.entry:ChargeItemfullUrl cannot be a version specific reference
: fullUrl.contains('/_history/').not()
ele-1Bundle.entry:ChargeItemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.linkAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.fullUrlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
dom-2Bundle.entry:ChargeItem.resourceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3Bundle.entry:ChargeItem.resourceIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4Bundle.entry:ChargeItem.resourceIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5Bundle.entry:ChargeItem.resourceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Bundle.entry:ChargeItem.resourceA resource should have narrative for robust management
: text.`div`.exists()
ele-1Bundle.entry:ChargeItem.searchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.search.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.search.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.search.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.search.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.search.modeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.search.scoreAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.requestAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.request.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.request.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.request.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.request.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.ifNoneMatchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.ifModifiedSinceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.ifMatchAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.request.ifNoneExistAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.responseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.response.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.response.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.response.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Bundle.entry:ChargeItem.response.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Bundle.entry:ChargeItem.response.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.response.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.response.etagAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.entry:ChargeItem.response.lastModifiedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Bundle.signatureAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())