SQL on FHIR
3.0.0-ballot - STU 3 Ballot International flag

SQL on FHIR, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 3.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/sql-on-fhir/ and changes regularly. See the Directory of published versions

Resource Profile: Tabular View Definition

Official URL: http://hl7.org/fhir/uv/sql-on-fhir/StructureDefinition/TabularViewDefinition Version: 3.0.0-ballot
Standards status: Trial-use Maturity Level: 2 Computable Name: TabularViewDefinition
Other Identifiers: OID:2.16.840.1.113883.4.642.40.77.42.4

A profile for View Definitions where each resulting field must contain only a simple scalar value. This is sometimes referred to as 'CSV Mode', but applies to any system that explicitly constrains its views or tables to tabular data.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... resource 1..1 code FHIR resource for the ViewDefinition
Binding: ResourceType (required)
... select C 1..* BackboneElement A collection of columns and nested selects to include in the view.
Constraints: sql-expressions
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... path 1..1 string FHIRPath expression that creates a column and defines its content
..... name C 1..1 string Column name produced in the output
Constraints: sql-name

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ViewDefinition.status Base required PublicationStatus 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.resource Base required Resource Types 📦6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ViewDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ViewDefinition 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error ViewDefinition 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 error ViewDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ViewDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')
sql-expressions error ViewDefinition.select Can only have at most one of `forEach`, `forEachOrNull`, or `repeat`. (forEach.exists().toInteger() + forEachOrNull.exists().toInteger() + repeat.exists().toInteger()) <= 1
sql-name error ViewDefinition.select.column.name Name is limited to letters, numbers, or underscores and cannot start with an underscore -- i.e. with a regular expression of: ^[A-Za-z][A-Za-z0-9_]*$ This makes it usable as table names in a wide variety of databases. empty() or matches('^[A-Za-z][A-Za-z0-9_]*$')

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... select
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... url ΣC 0..1 uri Canonical identifier for this view definition, represented as an absolute URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the view definition
... version Σ 0..1 string Business version of the view definition
... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name ΣC 0..1 string Name for this view definition (computer friendly)
Constraints: sql-name
... title Σ 0..1 string Name for this view definition (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... experimental Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher/steward (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 0..1 markdown Natural language description of the view definition
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for view definition (if applicable)
Binding: JurisdictionValueSet . (extensible): Countries and regions within which this artifact is targeted for use.
... purpose 0..1 markdown Why this view definition is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... copyrightLabel 0..1 string Copyright holder and year(s)
... approvalDate 0..1 date When the view definition was approved by publisher
... lastReviewDate 0..1 date When the view definition was last reviewed by the publisher
... effectivePeriod Σ 0..1 Period When the view definition is expected to be used
... topic 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc
Binding: DefinitionTopic (example)
... author 0..* ContactDetail Who authored the view definition
... editor 0..* ContactDetail Who edited the view definition
... reviewer 0..* ContactDetail Who reviewed the view definition
... endorser 0..* ContactDetail Who endorsed the view definition
... relatedArtifact 0..* RelatedArtifact Additional documentation, citations, etc
... resource 1..1 code FHIR resource for the ViewDefinition
Binding: ResourceType (required)
... profile 0..* canonical(StructureDefinition) FHIR profiles that this view definition was intended to be executed against
... fhirVersion 0..* code FHIR version(s) of the resource for the ViewDefinition
Binding: FHIRVersion (required)
... constant 0..* BackboneElement Constant that can be used in FHIRPath expressions
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... name C 1..1 string Name of constant (referred to in FHIRPath as %[name])
Constraints: sql-name
.... value[x] 1..1 Value of constant
..... valueBase64Binary base64Binary
..... valueBoolean boolean
..... valueCanonical canonical(Any)
..... valueCode code
..... valueDate date
..... valueDateTime dateTime
..... valueDecimal decimal
..... valueId id
..... valueInstant instant
..... valueInteger integer
..... valueInteger64 integer64
..... valueOid oid
..... valueString string
..... valuePositiveInt positiveInt
..... valueTime time
..... valueUnsignedInt unsignedInt
..... valueUri uri
..... valueUrl url
..... valueUuid uuid
... select C 1..* BackboneElement A collection of columns and nested selects to include in the view.
Constraints: sql-expressions
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... path 1..1 string FHIRPath expression that creates a column and defines its content
..... name C 1..1 string Column name produced in the output
Constraints: sql-name
..... description 0..1 markdown Description of the column
..... collection 0..1 boolean Indicates whether the column may have multiple values.
..... type 0..1 uri A FHIR StructureDefinition URI for the column's type.
..... tag 0..* BackboneElement Additional metadata describing the column
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
...... name 1..1 string Name of tag
...... value 1..1 string Value of tag
.... select 0..* See select (ViewDefinition) Nested select relative to a parent expression.
.... forEach 0..1 string A FHIRPath expression to retrieve the parent element(s) used in the containing select. The default is effectively `$this`.
.... forEachOrNull 0..1 string Same as forEach, but will produce a row with null values if the collection is empty.
.... repeat 0..* string FHIRPath expressions to recursively select from.
.... unionAll 0..* See select (ViewDefinition) Creates a union of all rows in the given selection structures.
... where 0..* BackboneElement A series of zero or more FHIRPath constraints to filter resources for the view.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... path 1..1 string A FHIRPath expression defining a filter condition
.... description 0..1 string A human-readable description of the above where constraint.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ViewDefinition.language Base required All Languages 📍6.0.0-ballot5 FHIR Std.
ViewDefinition.versionAlgorithm[x] Base extensible Version Algorithm 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.status Base required PublicationStatus 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.jurisdiction Base extensible Jurisdiction ValueSet . ⏿5.0.0 tx.fhir.org
ViewDefinition.topic Base example Definition Topic 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.resource Base required Resource Types 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.fhirVersion Base required FHIRVersion 📦6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-1 warning ViewDefinition.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
dom-2 error ViewDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ViewDefinition 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error ViewDefinition 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 error ViewDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ViewDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')
sql-expressions error ViewDefinition.select Can only have at most one of `forEach`, `forEachOrNull`, or `repeat`. (forEach.exists().toInteger() + forEachOrNull.exists().toInteger() + repeat.exists().toInteger()) <= 1
sql-name error ViewDefinition.name, ViewDefinition.constant.name, ViewDefinition.select.column.name Name is limited to letters, numbers, or underscores and cannot start with an underscore -- i.e. with a regular expression of: ^[A-Za-z][A-Za-z0-9_]*$ This makes it usable as table names in a wide variety of databases. empty() or matches('^[A-Za-z][A-Za-z0-9_]*$')

Summary

Maturity: 2

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... resource 1..1 code FHIR resource for the ViewDefinition
Binding: ResourceType (required)
... select C 1..* BackboneElement A collection of columns and nested selects to include in the view.
Constraints: sql-expressions
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... path 1..1 string FHIRPath expression that creates a column and defines its content
..... name C 1..1 string Column name produced in the output
Constraints: sql-name

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ViewDefinition.status Base required PublicationStatus 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.resource Base required Resource Types 📦6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ViewDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ViewDefinition 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error ViewDefinition 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 error ViewDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ViewDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')
sql-expressions error ViewDefinition.select Can only have at most one of `forEach`, `forEachOrNull`, or `repeat`. (forEach.exists().toInteger() + forEachOrNull.exists().toInteger() + repeat.exists().toInteger()) <= 1
sql-name error ViewDefinition.select.column.name Name is limited to letters, numbers, or underscores and cannot start with an underscore -- i.e. with a regular expression of: ^[A-Za-z][A-Za-z0-9_]*$ This makes it usable as table names in a wide variety of databases. empty() or matches('^[A-Za-z][A-Za-z0-9_]*$')

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... select
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ViewDefinition 0..* ViewDefinition(3.0.0-ballot) View Definition
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... url ΣC 0..1 uri Canonical identifier for this view definition, represented as an absolute URI (globally unique)
... identifier Σ 0..* Identifier Additional identifier for the view definition
... version Σ 0..1 string Business version of the view definition
... versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmString string
.... versionAlgorithmCoding Coding
... name ΣC 0..1 string Name for this view definition (computer friendly)
Constraints: sql-name
... title Σ 0..1 string Name for this view definition (human friendly)
... status ?!Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.
... experimental Σ 0..1 boolean For testing purposes, not real usage
... date Σ 0..1 dateTime Date last changed
... publisher Σ 0..1 string Name of the publisher/steward (organization or individual)
... contact Σ 0..* ContactDetail Contact details for the publisher
... description 0..1 markdown Natural language description of the view definition
... useContext Σ 0..* UsageContext The context that the content is intended to support
... jurisdiction Σ 0..* CodeableConcept Intended jurisdiction for view definition (if applicable)
Binding: JurisdictionValueSet . (extensible): Countries and regions within which this artifact is targeted for use.
... purpose 0..1 markdown Why this view definition is defined
... copyright 0..1 markdown Use and/or publishing restrictions
... copyrightLabel 0..1 string Copyright holder and year(s)
... approvalDate 0..1 date When the view definition was approved by publisher
... lastReviewDate 0..1 date When the view definition was last reviewed by the publisher
... effectivePeriod Σ 0..1 Period When the view definition is expected to be used
... topic 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc
Binding: DefinitionTopic (example)
... author 0..* ContactDetail Who authored the view definition
... editor 0..* ContactDetail Who edited the view definition
... reviewer 0..* ContactDetail Who reviewed the view definition
... endorser 0..* ContactDetail Who endorsed the view definition
... relatedArtifact 0..* RelatedArtifact Additional documentation, citations, etc
... resource 1..1 code FHIR resource for the ViewDefinition
Binding: ResourceType (required)
... profile 0..* canonical(StructureDefinition) FHIR profiles that this view definition was intended to be executed against
... fhirVersion 0..* code FHIR version(s) of the resource for the ViewDefinition
Binding: FHIRVersion (required)
... constant 0..* BackboneElement Constant that can be used in FHIRPath expressions
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... name C 1..1 string Name of constant (referred to in FHIRPath as %[name])
Constraints: sql-name
.... value[x] 1..1 Value of constant
..... valueBase64Binary base64Binary
..... valueBoolean boolean
..... valueCanonical canonical(Any)
..... valueCode code
..... valueDate date
..... valueDateTime dateTime
..... valueDecimal decimal
..... valueId id
..... valueInstant instant
..... valueInteger integer
..... valueInteger64 integer64
..... valueOid oid
..... valueString string
..... valuePositiveInt positiveInt
..... valueTime time
..... valueUnsignedInt unsignedInt
..... valueUri uri
..... valueUrl url
..... valueUuid uuid
... select C 1..* BackboneElement A collection of columns and nested selects to include in the view.
Constraints: sql-expressions
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... column C 0..* BackboneElement A column to be produced in the resulting table.
Constraints: no-collections, primitives-only
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... path 1..1 string FHIRPath expression that creates a column and defines its content
..... name C 1..1 string Column name produced in the output
Constraints: sql-name
..... description 0..1 markdown Description of the column
..... collection 0..1 boolean Indicates whether the column may have multiple values.
..... type 0..1 uri A FHIR StructureDefinition URI for the column's type.
..... tag 0..* BackboneElement Additional metadata describing the column
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
...... name 1..1 string Name of tag
...... value 1..1 string Value of tag
.... select 0..* See select (ViewDefinition) Nested select relative to a parent expression.
.... forEach 0..1 string A FHIRPath expression to retrieve the parent element(s) used in the containing select. The default is effectively `$this`.
.... forEachOrNull 0..1 string Same as forEach, but will produce a row with null values if the collection is empty.
.... repeat 0..* string FHIRPath expressions to recursively select from.
.... unionAll 0..* See select (ViewDefinition) Creates a union of all rows in the given selection structures.
... where 0..* BackboneElement A series of zero or more FHIRPath constraints to filter resources for the view.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... path 1..1 string A FHIRPath expression defining a filter condition
.... description 0..1 string A human-readable description of the above where constraint.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ViewDefinition.language Base required All Languages 📍6.0.0-ballot5 FHIR Std.
ViewDefinition.versionAlgorithm[x] Base extensible Version Algorithm 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.status Base required PublicationStatus 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.jurisdiction Base extensible Jurisdiction ValueSet . ⏿5.0.0 tx.fhir.org
ViewDefinition.topic Base example Definition Topic 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.resource Base required Resource Types 📦6.0.0-ballot5 FHIR Std.
ViewDefinition.fhirVersion Base required FHIRVersion 📦6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cnl-1 warning ViewDefinition.url URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
dom-2 error ViewDefinition If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ViewDefinition 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error ViewDefinition 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 error ViewDefinition If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ViewDefinition A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
no-collections error ViewDefinition.select.column Tabular view columns must not be collections. collection.empty() or collection = false
primitives-only error ViewDefinition.select.column Tabular view columns only contain primitive values. type in ('base64Binary' | 'boolean' | 'canonical' | 'code' | 'dateTime' | 'decimal' | 'id' | 'instant' | 'integer' | 'integer64' | 'markdown' | 'oid' | 'string' | 'positiveInt' | 'time' | 'unsignedInt' | 'url' | 'uuid')
sql-expressions error ViewDefinition.select Can only have at most one of `forEach`, `forEachOrNull`, or `repeat`. (forEach.exists().toInteger() + forEachOrNull.exists().toInteger() + repeat.exists().toInteger()) <= 1
sql-name error ViewDefinition.name, ViewDefinition.constant.name, ViewDefinition.select.column.name Name is limited to letters, numbers, or underscores and cannot start with an underscore -- i.e. with a regular expression of: ^[A-Za-z][A-Za-z0-9_]*$ This makes it usable as table names in a wide variety of databases. empty() or matches('^[A-Za-z][A-Za-z0-9_]*$')

Summary

Maturity: 2

 

Other representations of profile: CSV, Excel, Schematron