This
page
is
part
of
the
FHIR
Specification
(v5.0.0:
R5
-
STU
v6.0.0-ballot4:
Release
6
Ballot
(1st
Full
Ballot)
(see
Ballot
Notes
).
This
is
the
The
current
published
version
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
for
published
versions
Responsible
Owner:
FHIR
Infrastructure
Work
Group
|
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
,
Extensions
and
R4
Conversions
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
|
||
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Changes since Release 3
Changes
from
both
R4
and
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
|
||
Documentation
for
this
format
|
||||
Changes since Release 3
Changes
from
both
R4
and
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
,
Extensions
and
R4
Conversions
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
|
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Changes since Release 3
Changes
from
both
R4
and
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
|
|
Documentation
for
this
format
|
||||
Changes since Release 3
Changes
from
both
R4
and
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 |
ele-1
|
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.
(e.g.,
StructureDefinition
)
and
extensions
(e.g.
(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
itself
These rules ensure that there is no need to change internal identifiers while exchanging resources.
See
also
Detailed
Descriptions
,
Mappings
,
Profiles
,
Extensions
and
R4
Conversions
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
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Changes since Release 3
Changes
from
both
R4
R4,
R4B,
and
R4B
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
|
Documentation
for
this
format
|
||||
Changes since Release 3
Changes
from
both
R4
R4,
R4B,
and
R4B
R5
to
R6
| BackboneElement |
|
See the Full Difference for further information
See
also
Detailed
Descriptions
,
Mappings
,
Profiles
,
Extensions
and
R4
Conversions
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
both
R4
and
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
both
R4
and
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
,
Extensions
and
R4
Conversions
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
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Changes since Release 3
Changes
from
both
R4
and
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
|
Documentation
for
this
format
|
||||
Changes since Release 3
Changes
from
both
R4
and
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
,
Extensions
and
R4
Conversions
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 |
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
Changes since Release 3
Changes
from
both
R4
and
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 |
|
Documentation
for
this
format
|
||||
Changes since Release 3
Changes
from
both
R4
and
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