Skip to content

Template Profile

Canonical../StructureDefinition/nexus-template-list
Statusdraft · 1.26.0
BaseList (constraint)
SourceFSH · JSON

A reusable template: a List that names and identifies the template, carrying the resources it produces as prototypes inside a contained transaction Bundle.

Invariants

Every rule in force on a conforming instance. This profile rows are stated here; inherited rows come from the base resource and are listed so that a constraint named on an element is findable. Invariant keys elsewhere on this page link into this table.

Key Source Severity On Rule
nexus-note-extension-not-where-native this profile error List The resource-note extension is not used on a resource that has a native note element -- that element is the home
extension('../StructureDefinition/nexus-emr-resource-note').empty()
nexus-template-bundle-is-transaction this profile error List The contained prototype Bundle SHALL be type transaction: instantiating a template writes its prototypes, and the per-entry request that describes each write is only meaningful on a transaction.
contained.where($this is Bundle).all(type = 'transaction')
nexus-template-entry-is-contained-bundle this profile error List List.entry.item SHALL be a local reference (#id) that resolves to a Bundle contained in this template. The prototypes are that Bundle's entries.
entry.item.reference.exists() and entry.item.reference.startsWith('#') and entry.item.reference.substring(1) in %resource.contained.where($this is Bundle).id
nexus-template-has-identity this profile error List A template carries exactly one identifier under the Nexus template naming system -- that identifier is which template this is, and it is what the picker searches for.
identifier.where(system = '../NamingSystem/nexus-template').count() = 1
nexus-template-subject-is-placeholder this profile error List List.subject SHALL be a placeholder -- present, but carrying neither reference nor identifier. A template is about nobody until it is instantiated; the value is supplied then, from the population expression the element carries.
subject.reference.empty() and subject.identifier.empty()
dom-2 inherited error List If the resource is contained in another resource, it SHALL NOT contain nested Resources
contained.contained.empty()
dom-3 inherited error List If 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
dom-4 inherited error List If 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-5 inherited error List If a resource is contained in another resource, it SHALL NOT have a security label
contained.meta.security.empty()
dom-6 inherited warning List A resource should have narrative for robust management
text.div.exists()
ele-1 inherited error List.meta All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
ext-1 inherited error List.extension Must have either extensions or value[x], not both
extension.exists() != value.exists()
lst-1 inherited error List A list can only have an emptyReason if it is empty
emptyReason.empty() or entry.empty()
lst-2 inherited error List The deleted flag can only be used if the mode of the list is "changes"
mode = 'changes' or entry.deleted.empty()
lst-3 inherited error List An entry date can only be used if the mode of the list is "working"
mode = 'working' or entry.date.empty()