This
page
is
part
of
the
FHIR
Specification
(v5.0.0:
R5
-
STU
v6.0.0-ballot3:
Release
6
Ballot
(3rd
Draft)
(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
.
Page
versions:
R5
R4B
R4
R3
R2
FHIR
Infrastructure
Work
Group
|
Maturity Level : Normative | Standards Status : Normative |
This page documents how the content of the resources defined by the FHIR specification are described. In actual exchange, resources can be represented in the following formats: XML , JSON and Turtle . A UML Based Object-Oriented Definition is also provided.
This specification defines 160 resources as part of this specification. Additional resources may be defined in other specifications - see the discussion on Resource .
The resources are described in several different ways:
In addition to this descriptive syntax, other definitional forms are available, including W3C schema, Schematron, JSON Schema, and the StructureDefinition syntax defined internally.
The Logical View shows the resources as a tree structure with the following columns:
| Column | Content |
| Name |
The
name
of
the
element
in
the
resource
(manifests
as
XML
element
name
or
JSON
or
RDF
property
name).
Some
names
finish
with
[x]
-
the
meaning
of
this
is
discussed
below.
In
addition,
this
column
contains
an
icon
that
denotes
the
underlying
type
of
the
content.
The
icons
are
described
below
|
| Flags | A set of information about the element that impacts how implementers handle them. The flags are described below |
| Card. | Cardinality: the lower and upper bounds on how many times this element is allowed to appear in the resource |
| Type | The type of the element (hyperlinked to the definition of the type). Note that the type of the element has one of two meanings, depending on whether the element has defined children. If the element has children, then the element has an anonymous type that specializes the given type. If the element has no children, then the element has properties and children as specified by the nominated type |
| Description & Constraints | A description of the element, and details about constraints that are applied to it. Particularly, for coded elements, information about which codes can be used. The description comes from ElementDefinition.short |
Here's an example:
| Name | Flags | Card. | Type | Description & Constraints |
|---|---|---|---|---|
|
Base Type | Definition | ||
|
Σ | 1..1 | TypeA | description of content |
|
?! Σ | 0..1 |
description
SHALL at least have a value |
|
|
0..1 | typeB | ||
|
I | 0..1 | typeC | |
|
1..* | BackboneElement | Definition | |
|
1..1 | TypeD | Relevant Records |
Key to Type Icons
value
attribute/property.
These
are
also
known
as
primitive
types.
All
primitive
type
names
start
with
a
lower
case
letter
Key to Flags
?!
:
This
element
is
a
modifying
element
-
see
Modifier
Elements
S
:
This
element
is
an
element
that
has
implementation
obligations
-
see
Implementation
Obligations
Σ
:
This
element
is
an
element
that
is
part
of
the
summary
set
-
see
Summary
Searches
I
:
This
element
defines
or
is
affected
by
constraints
-
see
Constraints
T
:
This
element
is
a
candidate
for
carrying
translations
-
see
Multi-language
support
«A»
:
This
Type
is
an
Abstract
Type
«I»
:
This
Resource
is
an
Interface
Definition
Notes:
value
attribute/property
to
contain
the
actual
value
of
the
element
value
attribute/property
can
never
be
empty.
Either
it
is
absent,
or
it
is
present
with
at
least
one
character
of
non-whitespace
content
id
attribute
to
serve
as
the
target
of
an
internal
reference
.
The
id
attribute
is
not
shown
in
this
format.
Extensions
are
not
always
shown,
but
may
appear
except
where
the
flag
NE
appears
The datatype for a particular element is typically expressed as the name of the specified type with a hyperlink to its definition. However, there are two exceptions:
In profiles, references to types may be profiled - i.e. Instances of the element must comply with a specified profile or one of a list of profiles. The canonical URLs of any applicable profiles are listed inside {}.
Where
an
element
can
have
a
choice
of
datatypes,
or
is
a
Reference
these
are
represented
by
showing
the
common
type
(
Reference
or
Type
),
and
then
showing
the
applicable
datatype
names
or
resource
types
in
a
stereotype,
separated
by
the
|
character.
A
few
elements
have
a
choice
of
more
than
one
datatype
for
their
content.
All
such
elements
have
a
name
that
takes
the
form
nnn[x]
.
The
"nnn"
part
of
the
name
is
constant,
and
the
"[x]"
is
replaced
with
the
title-cased
name
of
the
type
that
is
actually
used.
The
table
view
shows
each
of
these
names
explicitly.
Elements that have a choice of datatype cannot repeat - they must have a maximum cardinality of 1. When constructing an instance of an element with a choice of types, the authoring system must create a single element with a datatype chosen from among the list of permitted datatypes.
Note: In object-oriented implementations, this is naturally represented as a polymorphic property (see Object Representation of FHIR ). However this is not necessary and the correct implementation varies according to the particular features of the language. In XML schema, these become an xs:choice of element. To help with code generation, a list of choice elements is published.