This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
| Responsible Owner: FHIR Infrastructure | Standards Status: Normative |
Types Framework Cross Reference: Base Types | Datatypes | Resources | Patterns
The FHIR specification defines types in the following general categories:
This page defines the base abstract types that provide the foundation for all those types:
Legend: see Standards Status Colors
See also Detailed Descriptions, Mappings, Profiles and Extensions
The Base type that all other types specialize. This type has no properties or constraints.
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Base for all types and resources | |||
UML Diagram (Legend)
Changes since Release 3
Changes from R5 to R6
| Base |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Base for all types and resources | |||
Changes since Release 3
Changes from R5 to R6
| Base |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
Specializations:
In addition, this type is used in Logical Models that don't have or want id/extension.
Note: implementations often use this type to introduce the navigation features
defined in the FHIRPath specification .
See also Detailed Descriptions, Mappings, Profiles and Extensions
The base definition for all elements contained inside a resource. All elements, whether defined as a Datatype (including primitives) or as part of a resource structure, have this base content:
There are 3 kinds of descendant types that specialize Element:
Note that resources themselves all specialize the base type Resource.
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Base | Base for all elements + Rule: All FHIR elements must have a @value or children or both Elements defined in Ancestors: | ||
| C | 0..1 | string | Unique id for inter-element referencing | |
| 0..* | Extension | Additional content defined by implementations | ||
UML Diagram (Legend)
Changes since Release 3
Changes from R5 to R6
| Element |
|
Changes from R4B to R6
| Element | |
| Element.id |
|
Changes from R4 to R6
| Element |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Base | Base for all elements + Rule: All FHIR elements must have a @value or children or both Elements defined in Ancestors: | ||
| C | 0..1 | string | Unique id for inter-element referencing | |
| 0..* | Extension | Additional content defined by implementations | ||
Changes since Release 3
Changes from R5 to R6
| Element |
|
Changes from R4B to R6
| Element | |
| Element.id |
|
Changes from R4 to R6
| Element |
|
See the Full Difference for further information
As the base type for all elements included in a resource, Element
is an important structural element of FHIR. Even the primitive types inherit
the base features and representation rules that apply to the Element type.
Constraints
| id | Level | Location | Description | Expression |
| Rule | (base) | All FHIR elements must have a @value or children or both | hasValue() or (children().count() > id.count()) |
This constraint exists to reduce syntactical variation in resource contents. If an element has no children, then it is always omitted from the resource, as opposed to optionally present without any content.
The id property of the element is defined to allow implementers
to build implementation functionality that makes use of internal references
inside the resource. This specification does not define any general use for
the internal id, though some resources (e.g., StructureDefinition) and
extensions (e.g., originalText, narrativeLink) make use of it.
The internal id is unique within the scope of the resource that contains it. Specifically, this means:
id element does not have extensions itselfThese rules ensure that there is no need to change internal identifiers while exchanging resources.
See also Detailed Descriptions, Mappings, Profiles and Extensions
The base definition for complex elements defined as part of a resource definition - that is, elements that have children that are defined in the resource. Datatype elements do not use this type.
For instance, Patient.contact is an element that is defined as part of the patient resource, so it automatically
has the type BackboneElement.
Note that the descendant types of BackboneElement are all declared implicitly as
part of the definitions of the resources.
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Element | Base for elements defined inside a resource Elements defined in Ancestors: id, extension | ||
| ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
UML Diagram (Legend)
Changes since Release 3
Changes from R4, R4B, and R5 to R6
| BackboneElement |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Element | Base for elements defined inside a resource Elements defined in Ancestors: id, extension | ||
| ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
Changes since Release 3
Changes from R4, R4B, and R5 to R6
| BackboneElement |
|
See the Full Difference for further information
See also Detailed Descriptions, Mappings, Profiles and Extensions
The base definition for the useable types defined by the FHIR Specification.
See FHIR Datatypes for specialization of this type.
UML Diagram (Legend)
Changes since Release 3
Changes from R5 to R6
| DataType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
Changes since Release 3
Changes from R5 to R6
| DataType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
See also Detailed Descriptions, Mappings, Profiles and Extensions
The base definition for the few datatypes that allow modifier extensions:
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Element | Base for datatypes that can carry modifier extensions Elements defined in Ancestors: id, extension | ||
| ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
UML Diagram (Legend)
Changes since Release 3
Changes from R5 to R6
| BackboneType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | Element | Base for datatypes that can carry modifier extensions Elements defined in Ancestors: id, extension | ||
| ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |
Changes since Release 3
Changes from R5 to R6
| BackboneType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
See also Detailed Descriptions, Mappings, Profiles and Extensions
The base type for all re-useable types defined that have a simple property. See Primitive Types for the list of defined primitives types.
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | DataType | Parent type for DataTypes with a simple value Elements defined in Ancestors: id, extension | ||
UML Diagram (Legend)
Changes since Release 3
Changes from R5 to R6
| PrimitiveType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type | Description & Constraints Filter: |
|---|---|---|---|---|
| «A»N | DataType | Parent type for DataTypes with a simple value Elements defined in Ancestors: id, extension | ||
Changes since Release 3
Changes from R5 to R6
| PrimitiveType |
|
Changes from R4B to R6
This complex-type did not exist in Release R4B
Changes from R4 to R6
This complex-type did not exist in Release R4
See the Full Difference for further information