This
page
is
part
of
the
FHIR
Specification
(v4.3.0:
R4B
-
STU
(v5.0.0-snapshot3:
R5
Snapshot
#3,
to
support
Connectathon
32
).
The
current
version
which
supercedes
this
version
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
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.
Additional
Bulk
Data
Formats
are
also
undergoing
exploration.
Other
representations
are
allowed,
but
are
not
described
by
this
specification
(though
see
link
below).
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 |
|
||
|
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
Σ
:
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
data
type
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
data
types,
datatypes,
or
is
a
Reference
these
are
represented
by
showing
the
common
type
(
Reference
or
Type
),
and
then
showing
the
applicable
data
type
datatype
names
or
resource
types
in
a
stereotype,
separated
by
the
|
character.
Type
is
not
formally
otherwise
defined
by
this
specification,
but
is
a
super
type
of
all
the
data
types.
A
few
elements
have
a
choice
of
more
than
one
data
type
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
data
type
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
data
type
datatype
chosen
from
among
the
list
of
permitted
data
types.
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.