This
page
is
part
of
the
FHIR
Specification
v6.0.0-ballot3:
Release
6
Ballot
(3rd
Draft)
(see
Ballot
Notes
).
The
current
version
is
5.0.0
.
For
a
full
list
Continuous
Integration
Build
of
available
versions,
see
FHIR
(will
be
incorrect/inconsistent
at
times).
See
the
Directory
of
published
versions
Responsible
Owner:
FHIR
Infrastructure
Work
Group
|
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
RDF
(Turtle)
.
A
UML
Based
Object-Oriented
Definition
is
also
provided.
This
specification
defines
160
134
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.
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.