FHIR Tooling Extensions IG
0.3.0 - Release 0.2.0 International flag

This page is part of the HL7 Tools Extension IG (v0.3.0: Releases - Informative) based on FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, 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-10-27 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()