Da Vinci - Payer Coverage Decision Exchange (PCDE), published by HL7 International - Financial Management Work Group. This is not an authorized publication; it is the continuous build for version 1.0.0). This version is based on the current content of https://github.com/HL7/davinci-pcde/ and changes regularly. See the Directory of published versions
Official URL: http://hl7.org/fhir/us/davinci-pcde/StructureDefinition/profile-pcde-bundle | Version: 1.0.0 | |||
Active as of 2022-08-29 | Computable Name: PCDEBundle |
Constraints on Bundle to reflect the contents of a Coverage Transition Document
This simple profile enforces the rules for a FHIR document Bundle, with an additional constraint that forces the first resource to be a Composition that complies with the PCDE Composition profile.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet / Code |
Bundle.language | preferred | CommonLanguages Max Binding: AllLanguages |
Bundle.type | required | Fixed Value: document |
Bundle.entry.search.mode | required | SearchEntryMode |
Bundle.entry.request.method | required | HTTPVerb |
Id | Grade | Path | Details | Requirements |
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-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-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) | |
pcde-bdl-1 | error | Bundle | First entry must be a valid PCDE Composition : entry.first().resource.conformsTo('http://hl7.org/fhir/us/davinci-pcde/StructureDefinition/profile-composition') | |
ele-1 | error | Bundle.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.timestamp | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.total | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.link | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.link.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.link.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.link.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.link.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.link.relation | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.link.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
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-8 | error | Bundle.entry | fullUrl cannot be a version specific reference : fullUrl.contains('/_history/').not() | |
ele-1 | error | Bundle.entry | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.link | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.fullUrl | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.search.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.search.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.search.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.search.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.search.mode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.search.score | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.request.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.request.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.request.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.request.method | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.url | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.ifNoneMatch | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.ifModifiedSince | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.ifMatch | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.request.ifNoneExist | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.response.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.response.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.response.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | Bundle.entry.response.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | Bundle.entry.response.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.response.location | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.response.etag | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.entry.response.lastModified | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | Bundle.signature | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |