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
| 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
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() ![]() |
1..1 | code | FHIR resource for the ViewDefinition Binding: ResourceType (required) | |
![]() ![]() |
C | 1..* | BackboneElement | A collection of columns and nested selects to include in the view. Constraints: sql-expressions |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url |
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() |
1..1 | string | FHIRPath expression that creates a column and defines its content | |
![]() ![]() ![]() ![]() |
C | 1..1 | string | Column name produced in the output Constraints: sql-name |
Documentation for this format | ||||
| 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. |
| 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_]*$')
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |
![]() ![]() |
||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only |
Documentation for this format | ||||
| 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')
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |||||
![]() ![]() |
Σ | 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: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 0..1 | uri | Canonical identifier for this view definition, represented as an absolute URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the view definition | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the view definition | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 0..1 | string | Name for this view definition (computer friendly) Constraints: sql-name | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this view definition (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the view definition | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Intended jurisdiction for view definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this view definition is defined | |||||
![]() ![]() |
0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
0..1 | date | When the view definition was approved by publisher | |||||
![]() ![]() |
0..1 | date | When the view definition was last reviewed by the publisher | |||||
![]() ![]() |
Σ | 0..1 | Period | When the view definition is expected to be used | ||||
![]() ![]() |
0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc Binding: DefinitionTopic (example) | |||||
![]() ![]() |
0..* | ContactDetail | Who authored the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who edited the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who reviewed the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who endorsed the view definition | |||||
![]() ![]() |
0..* | RelatedArtifact | Additional documentation, citations, etc | |||||
![]() ![]() |
1..1 | code | FHIR resource for the ViewDefinition Binding: ResourceType (required) | |||||
![]() ![]() |
0..* | canonical(StructureDefinition) | FHIR profiles that this view definition was intended to be executed against | |||||
![]() ![]() |
0..* | code | FHIR version(s) of the resource for the ViewDefinition Binding: FHIRVersion (required) | |||||
![]() ![]() |
0..* | BackboneElement | Constant that can be used in FHIRPath expressions | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
C | 1..1 | string | Name of constant (referred to in FHIRPath as %[name]) Constraints: sql-name | ||||
![]() ![]() ![]() |
1..1 | Value of constant | ||||||
![]() ![]() ![]() ![]() |
base64Binary | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
canonical(Any) | |||||||
![]() ![]() ![]() ![]() |
code | |||||||
![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() |
instant | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
integer64 | |||||||
![]() ![]() ![]() ![]() |
oid | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
positiveInt | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
unsignedInt | |||||||
![]() ![]() ![]() ![]() |
uri | |||||||
![]() ![]() ![]() ![]() |
url | |||||||
![]() ![]() ![]() ![]() |
uuid | |||||||
![]() ![]() |
C | 1..* | BackboneElement | A collection of columns and nested selects to include in the view. Constraints: sql-expressions | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() ![]() |
1..1 | string | FHIRPath expression that creates a column and defines its content | |||||
![]() ![]() ![]() ![]() |
C | 1..1 | string | Column name produced in the output Constraints: sql-name | ||||
![]() ![]() ![]() ![]() |
0..1 | markdown | Description of the column | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Indicates whether the column may have multiple values. | |||||
![]() ![]() ![]() ![]() |
0..1 | uri | A FHIR StructureDefinition URI for the column's type. | |||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Additional metadata describing the column | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Name of tag | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Value of tag | |||||
![]() ![]() ![]() |
0..* | See select (ViewDefinition) | Nested select relative to a parent expression. | |||||
![]() ![]() ![]() |
0..1 | string | A FHIRPath expression to retrieve the parent element(s) used in the containing select. The default is effectively `$this`. | |||||
![]() ![]() ![]() |
0..1 | string | Same as forEach, but will produce a row with null values if the collection is empty. | |||||
![]() ![]() ![]() |
0..* | string | FHIRPath expressions to recursively select from. | |||||
![]() ![]() ![]() |
0..* | See select (ViewDefinition) | Creates a union of all rows in the given selection structures. | |||||
![]() ![]() |
0..* | BackboneElement | A series of zero or more FHIRPath constraints to filter resources for the view. | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
1..1 | string | A FHIRPath expression defining a filter condition | |||||
![]() ![]() ![]() |
0..1 | string | A human-readable description of the above where constraint. | |||||
Documentation for this format | ||||||||
| 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. |
| 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_]*$')
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url |
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
![]() ![]() |
1..1 | code | FHIR resource for the ViewDefinition Binding: ResourceType (required) | |
![]() ![]() |
C | 1..* | BackboneElement | A collection of columns and nested selects to include in the view. Constraints: sql-expressions |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url |
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url |
![]() ![]() ![]() ![]() |
1..1 | string | FHIRPath expression that creates a column and defines its content | |
![]() ![]() ![]() ![]() |
C | 1..1 | string | Column name produced in the output Constraints: sql-name |
Documentation for this format | ||||
| 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. |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |
![]() ![]() |
||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only |
Documentation for this format | ||||
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | ViewDefinition(3.0.0-ballot) | View Definition | |||||
![]() ![]() |
Σ | 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: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url | ||||
![]() ![]() |
ΣC | 0..1 | uri | Canonical identifier for this view definition, represented as an absolute URI (globally unique) | ||||
![]() ![]() |
Σ | 0..* | Identifier | Additional identifier for the view definition | ||||
![]() ![]() |
Σ | 0..1 | string | Business version of the view definition | ||||
![]() ![]() |
Σ | 0..1 | How to compare versions Binding: VersionAlgorithm (extensible) | |||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
Coding | |||||||
![]() ![]() |
ΣC | 0..1 | string | Name for this view definition (computer friendly) Constraints: sql-name | ||||
![]() ![]() |
Σ | 0..1 | string | Name for this view definition (human friendly) | ||||
![]() ![]() |
?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
![]() ![]() |
Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date last changed | ||||
![]() ![]() |
Σ | 0..1 | string | Name of the publisher/steward (organization or individual) | ||||
![]() ![]() |
Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
![]() ![]() |
0..1 | markdown | Natural language description of the view definition | |||||
![]() ![]() |
Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Intended jurisdiction for view definition (if applicable) Binding: JurisdictionValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
![]() ![]() |
0..1 | markdown | Why this view definition is defined | |||||
![]() ![]() |
0..1 | markdown | Use and/or publishing restrictions | |||||
![]() ![]() |
0..1 | string | Copyright holder and year(s) | |||||
![]() ![]() |
0..1 | date | When the view definition was approved by publisher | |||||
![]() ![]() |
0..1 | date | When the view definition was last reviewed by the publisher | |||||
![]() ![]() |
Σ | 0..1 | Period | When the view definition is expected to be used | ||||
![]() ![]() |
0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc Binding: DefinitionTopic (example) | |||||
![]() ![]() |
0..* | ContactDetail | Who authored the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who edited the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who reviewed the view definition | |||||
![]() ![]() |
0..* | ContactDetail | Who endorsed the view definition | |||||
![]() ![]() |
0..* | RelatedArtifact | Additional documentation, citations, etc | |||||
![]() ![]() |
1..1 | code | FHIR resource for the ViewDefinition Binding: ResourceType (required) | |||||
![]() ![]() |
0..* | canonical(StructureDefinition) | FHIR profiles that this view definition was intended to be executed against | |||||
![]() ![]() |
0..* | code | FHIR version(s) of the resource for the ViewDefinition Binding: FHIRVersion (required) | |||||
![]() ![]() |
0..* | BackboneElement | Constant that can be used in FHIRPath expressions | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
C | 1..1 | string | Name of constant (referred to in FHIRPath as %[name]) Constraints: sql-name | ||||
![]() ![]() ![]() |
1..1 | Value of constant | ||||||
![]() ![]() ![]() ![]() |
base64Binary | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
canonical(Any) | |||||||
![]() ![]() ![]() ![]() |
code | |||||||
![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
decimal | |||||||
![]() ![]() ![]() ![]() |
id | |||||||
![]() ![]() ![]() ![]() |
instant | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
integer64 | |||||||
![]() ![]() ![]() ![]() |
oid | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
positiveInt | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
unsignedInt | |||||||
![]() ![]() ![]() ![]() |
uri | |||||||
![]() ![]() ![]() ![]() |
url | |||||||
![]() ![]() ![]() ![]() |
uuid | |||||||
![]() ![]() |
C | 1..* | BackboneElement | A collection of columns and nested selects to include in the view. Constraints: sql-expressions | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | A column to be produced in the resulting table. Constraints: no-collections, primitives-only | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() ![]() |
1..1 | string | FHIRPath expression that creates a column and defines its content | |||||
![]() ![]() ![]() ![]() |
C | 1..1 | string | Column name produced in the output Constraints: sql-name | ||||
![]() ![]() ![]() ![]() |
0..1 | markdown | Description of the column | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Indicates whether the column may have multiple values. | |||||
![]() ![]() ![]() ![]() |
0..1 | uri | A FHIR StructureDefinition URI for the column's type. | |||||
![]() ![]() ![]() ![]() |
0..* | BackboneElement | Additional metadata describing the column | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Name of tag | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Value of tag | |||||
![]() ![]() ![]() |
0..* | See select (ViewDefinition) | Nested select relative to a parent expression. | |||||
![]() ![]() ![]() |
0..1 | string | A FHIRPath expression to retrieve the parent element(s) used in the containing select. The default is effectively `$this`. | |||||
![]() ![]() ![]() |
0..1 | string | Same as forEach, but will produce a row with null values if the collection is empty. | |||||
![]() ![]() ![]() |
0..* | string | FHIRPath expressions to recursively select from. | |||||
![]() ![]() ![]() |
0..* | See select (ViewDefinition) | Creates a union of all rows in the given selection structures. | |||||
![]() ![]() |
0..* | BackboneElement | A series of zero or more FHIRPath constraints to filter resources for the view. | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
1..1 | string | A FHIRPath expression defining a filter condition | |||||
![]() ![]() ![]() |
0..1 | string | A human-readable description of the above where constraint. | |||||
Documentation for this format | ||||||||
| 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. |
| 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_]*$')
|
Other representations of profile: CSV, Excel, Schematron