FHIR Tooling Extensions IG
0.3.0 - Release 0.2.0 International flag

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

Extension: Type Specifier Extension

Official URL: http://hl7.org/fhir/tools/StructureDefinition/type-specifier Version: 0.3.0
Active as of 2024-12-13 Maturity Level: 2 Computable Name: TypeSpecifier
Other Identifiers: OID:2.16.840.1.113883.4.642.40.1.42.41

In some logical models, the type of content at one location depends on the value of some other element, and the type is otherwise not explicit in the instance. In such cases, the type of the element is assigned an abstract ancestor type, and this extension specifies how to determine what type is actually used

Context of Use

This extension may be used on the following element(s):

  • Element ID ElementDefinition

Usage info

Usage:

Formal Views of Extension Content

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

This structure is derived from Extension

Summary

Complex Extension: In some logical models, the type of content at one location depends on the value of some other element, and the type is otherwise not explicit in the instance. In such cases, the type of the element is assigned an abstract ancestor type, and this extension specifies how to determine what type is actually used

  • condition: string: The FHIRPath expression for this type to be true.
  • type: code: An Extension

Maturity: 2

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one
... Slices for extension 2..2 Extension Extension
Slice: Unordered, Closed by value:url
.... extension:condition 1..1 Extension Condition for this type (FHIRPath)
..... extension 0..0
..... url 1..1 uri "condition"
..... value[x] 1..1 string Value of extension
.... extension:type 1..1 Extension The type (uri - usually full URI of logical model type_
..... extension 0..0
..... url 1..1 uri "type"
..... value[x] 1..1 code Value of extension
... url 1..1 uri "http://hl7.org/fhir/tools/StructureDefinition/type-specifier"
... value[x] 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one
... id 0..1 id Unique id for inter-element referencing
... Slices for extension 2..2 Extension Extension
Slice: Unordered, Closed by value:url
.... extension:condition 1..1 Extension Condition for this type (FHIRPath)
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "condition"
..... value[x] 1..1 string Value of extension
.... extension:type 1..1 Extension The type (uri - usually full URI of logical model type_
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "type"
..... value[x] 1..1 code Value of extension
... url 1..1 uri "http://hl7.org/fhir/tools/StructureDefinition/type-specifier"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: In some logical models, the type of content at one location depends on the value of some other element, and the type is otherwise not explicit in the instance. In such cases, the type of the element is assigned an abstract ancestor type, and this extension specifies how to determine what type is actually used

  • condition: string: The FHIRPath expression for this type to be true.
  • type: code: An Extension

Maturity: 2

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one
... Slices for extension 2..2 Extension Extension
Slice: Unordered, Closed by value:url
.... extension:condition 1..1 Extension Condition for this type (FHIRPath)
..... extension 0..0
..... url 1..1 uri "condition"
..... value[x] 1..1 string Value of extension
.... extension:type 1..1 Extension The type (uri - usually full URI of logical model type_
..... extension 0..0
..... url 1..1 uri "type"
..... value[x] 1..1 code Value of extension
... url 1..1 uri "http://hl7.org/fhir/tools/StructureDefinition/type-specifier"
... value[x] 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Extension 0..* Extension Indicates that this repeating element is represented as an object in json and the named one of the two sub-elements is the key for the other one
... id 0..1 id Unique id for inter-element referencing
... Slices for extension 2..2 Extension Extension
Slice: Unordered, Closed by value:url
.... extension:condition 1..1 Extension Condition for this type (FHIRPath)
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "condition"
..... value[x] 1..1 string Value of extension
.... extension:type 1..1 Extension The type (uri - usually full URI of logical model type_
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "type"
..... value[x] 1..1 code Value of extension
... url 1..1 uri "http://hl7.org/fhir/tools/StructureDefinition/type-specifier"

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()