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
:
|
Types Framework Cross Reference: Base Types | Datatypes | Resources | Patterns
The FHIR specification defines a set of datatypes that are used for the resource elements. There are five categories of datatypes:
This page describes the general-purpose datatypes (categories 1 and 2).
Datatypes Summary .
Legend: see Standards Status Colors
A limited set of these datatypes may appear in extensions. All datatypes (including primitives) may have extensions, but only the following datatypes may include Modifier Extensions :
The
following
table
describes
the
primitive
types
that
are
used
in
this
specification.
Primitive
types
are
those
that
specialize
PrimitiveType
,
with
a
value,
and
no
additional
elements
as
children
(though,
like
all
types,
they
have
id
and
extensions
).
See
also
the
Primitive
Examples
and
the
section
about
Extensions
on
Primitive
Datatypes
.
| Primitive Types | |||
| FHIR Name | Value Domain | XML Representation | JSON representation |
|---|---|---|---|
| base64Binary |
A
stream
of
bytes,
base64
encoded
(
RFC
4648
).
base64Binary
content
does
not
include
any
whitespace
or
line
feeds,
but
reading
applications
should
ignore
whitespace
characters
(per
RFC
4648
)
|
xs:base64Binary | A JSON string - base64 content |
Regex:
(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?
|
XML Definition | JSON Definition | |
| There is no specified upper limit to the size of a binary, but systems will have to impose some implementation based limit to the size they support. This should be clearly documented, though there is no computable way for this at this time | |||
| boolean | true | false | xs:boolean, except that 0 and 1 are not valid values | JSON boolean (true or false) |
Regex:
true|false
|
XML Definition | JSON Definition | |
| canonical |
A
URI
that
refers
to
a
resource
by
its
canonical
URL
(
resources
with
a
url
property
).
The
canonical
type
differs
from
a
uri
in
that
it
has
special
meaning
in
this
specification,
and
in
that
it
may
have
a
version
appended,
separated
by
a
vertical
bar
(|).
Note
that
the
type
canonical
is
not
used
for
the
actual
canonical
URLs
that
are
the
target
of
these
references,
but
for
the
URIs
that
refer
to
them,
and
may
have
the
version
suffix
in
them.
Like
other
URIs,
elements
of
type
canonical
may
also
have
#fragment
references.
Unlike
other
URIs,
canonical
URLs
are
never
relative
-
they
are
either
absolute
URIs,
or
fragment
identifiers
|
xs:anyURI | A JSON string - a canonical URL |
Regex:
\S*
|
XML Definition | JSON Definition | |
| code | Indicates that the value is taken from a set of controlled strings defined elsewhere (see Using codes for further discussion). Technically, a code is restricted to a string which has at least one character and no leading or trailing whitespace, and where there is no whitespace other than single spaces in the contents | xs:token | JSON string |
Regex:
[^\s]+(
[^\s]+)*
This datatype can be bound to a ValueSet |
XML Definition | JSON Definition | |
| date |
A
date,
or
partial
date
:
YYYY,
YYYY-MM,
or
YYYY-MM-DD,
|
union of xs:date, xs:gYearMonth, xs:gYear | A JSON string - a union of xs:date, xs:gYearMonth, xs:gYear |
Regex:
([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])
|
XML Definition | JSON Definition | |
| dateTime |
A
date,
date-time
or
partial
date
:
YYYY,
YYYY-MM,
YYYY-MM-DD
or
YYYY-MM-DDThh:mm:ss+zz:zz,
|
union of xs:dateTime, xs:date, xs:gYearMonth, xs:gYear | A JSON string - a union of xs:dateTime, xs:date, xs:gYearMonth, xs:gYear |
Regex:
([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])
|
XML Definition | JSON Definition | |
| decimal | Rational numbers that have a decimal representation. Decimals in FHIR cannot have more than 18 digits and a decimal point. See below about the precision of the number | union of xs:decimal and xs:double (see below for limitations) | A JSON number (see below for limitations) |
Regex:
-?(0|[1-9][0-9]{0,17})(\.[0-9]{1,17})?([eE][+-]?[0-9]{1,9}})?
|
XML Definition | JSON Definition | |
| id | Any combination of upper- or lower-case ASCII letters ('A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.', with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.) | xs:string | JSON string |
Regex:
[A-Za-z0-9\-\.]{1,64}
|
XML Definition | JSON Definition | |
| instant |
An
instant
in
time
in
a
format
that
is
a
subset
of
[ISO8601]
:
YYYY-MM-DDThh:mm:ss.sss+zz:zz
instant
,
but
is
not
required
to
be).
instant
is
a
more
constrained
dateTime
|
xs:dateTime | A JSON string - an xs:dateTime |
| Note: This type is for system times, not human times (see date and dateTime below). | |||
Regex:
([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(
|
XML Definition | JSON Definition | |
| integer | A signed integer in the range −2,147,483,648..2,147,483,647 (32-bit; for larger values, use decimal) | xs:int, except that leading 0 digits are not allowed | JSON number (with no decimal point) |
Regex:
[0]|[-+]?[1-9][0-9]*
|
XML Definition | JSON Definition | |
| integer64 |
A
signed
integer
in
the
range
-9,223,372,036,854,775,808
to
+9,223,372,036,854,775,807
(64-bit).
This type is defined to allow for record/time counters that can get very large |
xs:long, except that leading 0 digits are not allowed | JSON String (due to issues with precision in floating point libraries) |
Regex:
[0]|[-+]?[1-9][0-9]*
|
XML Definition | JSON Definition | |
| markdown |
A
FHIR
string
(see
below)
that
may
contain
markdown
syntax
for
optional
processing
by
a
markdown
presentation
engine,
in
the
GFM
extension
of
CommonMark
format
(see
below)
|
xs:string | JSON string |
Regex:
^[\s\S]+$
(can't
put
size
limit
in
the
regex
-
too
large)
|
XML Definition | JSON Definition | |
| oid |
An
OID
represented
as
a
URI
(
RFC
3001
);
|
xs:anyURI | JSON string - uri |
Regex:
urn:oid:[0-2](\.(0|[1-9][0-9]*))+
|
XML Definition | JSON Definition | |
| string | A sequence of Unicode characters | xs:string | JSON String |
| Note that strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size. Because UTF-8 characters can be expressed with more than one byte, the string size may be more than 1MB. Strings SHOULD not contain Unicode character points below 32, except for u0009 (horizontal tab), u000D (carriage return) and u000A (line feed). We recommend that systems treat the characters u000D and u000A and the sequence u000D u000A as new lines. Leading and Trailing whitespace is allowed, but SHOULD be removed when using the XML format . Note: This means that a string that consists only of whitespace could be trimmed to nothing, which would be treated as an invalid element value. Therefore strings SHOULD always contain non-whitespace content | |||
| This datatype can be bound to a ValueSet | |||
Regex:
^[\s\S]+$
(see
notes
below)
|
XML Definition | JSON Definition | |
| positiveInt |
Any
positive
integer
in
the
range
1..2,147,483,647
|
xs:positiveInteger | JSON number |
Regex:
[1-9][0-9]*
|
XML Definition | JSON Definition | |
| time |
A
time
during
the
day,
in
the
format
hh:mm:ss
(a
subset
of
[ISO8601]
).
There
is
no
date
specified.
Seconds
must
be
provided
due
to
schema
type
constraints
but
may
be
zero-filled
and
may
be
ignored
at
receiver
discretion.
The
time
"24:00"
SHALL
NOT
be
used.
A
timezone
offset
SHALL
NOT
be
present
.
Times
can
be
converted
to
a
Duration
since
midnight.
|
xs:time | A JSON string - an xs:time |
Regex:
([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\.[0-9]{1,9})?
|
XML Definition | JSON Definition | |
| unsignedInt |
Any
non-negative
integer
in
the
range
0..2,147,483,647
|
xs:nonNegativeInteger | JSON number |
Regex:
[0]|([1-9][0-9]*)
|
XML Definition | JSON Definition | |
| uri |
A
Uniform
Resource
Identifier
Reference
(
RFC
3986
).
Note:
URIs
are
case
sensitive.
For
UUID
(urn:uuid:53fefa32-fcbb-4ff8-8a92-55ee120877b7)
use
all
lowercase
|
xs:anyURI | A JSON string - a URI |
Regex:
\S*
(This
regex
is
very
permissive,
but
URIs
must
be
valid.
Implementers
are
welcome
to
use
more
specific
regex
statements
for
a
URI
in
specific
contexts)
|
XML Definition | JSON Definition | |
|
URIs
can
be
absolute
or
relative,
and
may
have
an
optional
fragment
identifier
This datatype can be bound to a ValueSet |
|||
| url |
A
Uniform
Resource
Locator
(
RFC
1738
).
Note
URLs
are
accessed
directly
using
the
specified
protocol.
Common
URL
protocols
are
http{s}:
,
ftp:
,
mailto:
and
mllp:
,
though
many
others
are
defined
|
xs:anyURI | A JSON string - a URL |
Regex:
\S*
|
XML Definition | JSON Definition | |
| uuid |
A
UUID
(aka
GUID)
represented
as
a
URI
(
RFC
4122
);
|
xs:anyURI | JSON string - uri |
Regex:
urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}
|
XML Definition | JSON Definition | |
Notes:
INF
,
-INF
and
NaN
are
not
allowed,
and
JSON
is
restricted
to
the
precision
limits
documented
in
XML
schema
for
xs:double
and
xs:decimal
[\r\n\t\x{0020}-\x{FFFF}]*
or
[\r\n\t\u0020-\uFFFF]*
are
better
expressions
of
the
constraints
on
string,
but
poorly
supported
(see
Regex
Tutorial
for
details).
The
string
regex
also
applies
to
markdown
as
well.
The
regex
does
not
enforce
the
length
limit
code
.
,
but
also
includes
other
identifier
formats
as
well,
and
is
not
case
insensitive
like
ISO
18232.
http://example.com/fhir/Patient/
1234
,
the
last
part
"1234"
(highlighted
in
red)
is
the
part
that
is
an
id
datatype.
uri
,
not
an
id
.
UUIDs
in
URIs
SHALL
also
be
represented
in
lowercase
(urn:uuid:59bf0ef4-e89c-4628-9b51-12ae3fdbe22b).
uri
,
url
and
canonical
datatypes:
url
and
canonical
are
specializations
of
uri
,
they
are
never
substituted
for
each
other.
extensions
on
CommonMark
format,
with
the
exception
of
support
for
inline
HTML
which
is
not
supported.
">"
characters
preceding
character
content
(
">"
becomes
"\>"
)
before
processing
the
content
or
by
using
a
markdown
processor-specific
flag
that
accomplishes
the
same
effect.
This
means
that
HTML
content
cannot
be
embedded
in
markdown
to
influence
rendering.
string
to
markdown
in
a
later
version
of
this
FHIR
specification
is
considered
a
non-breaking
change
for
elements
with
a
single
type.
It
is
a
breaking
change
for
multi-type/choice
elements
because
the
type
name
is
reflected
in
the
element
name.
(Adding
markdown
as
an
additional
choice
to
a
multi-type
element
is
not
a
breaking
change).
The
impact
of
a
lack
of
escaping
on
existing
string
data
on
safe
rendering
should
be
considered
in
evaluating
changes
from
string
to
markdown
-
see
next
bullet.
Implementation Note: A simple way to convert plain text to be safe as markdown is to prefix any of the characters *, &, #, [, <, >, and ` with a backslash (\). When presenting markdown as plain text, implementers may wish to reverse this transform.
All
elements
using
these
primitive
types
may
have
one
or
more
of
a
value
as
described
above,
an
internal
identity
(e.g.
(e.g.,
xml:id),
and
extensions.
For
an
example,
take
an
element
of
name
"count"
and
type
"integer".
XML
The value is represented in XML as an attribute named "value":
<count value="2"/>
The full representation, with id, extensions and value:
<count id="a1" value="2">
<extension url="...">
<valueXX.../>
</extension>
</count>
JSON
In JSON, for convenience, the value is represented as the property itself:
"count" : 2
The full representation, with id, extensions and value, showing the id and extensions in the sibling property:
"count" : 2
"_count" : {
"id" : "a1",
"extension" : [{
"url" : "...",
"valueXXX" : "...."
}]
}
RDF
The
value
is
represented
in
RDF
as
a
relationship
with
the
URI
"http://hl7.org/fhir/value".
Using
the
normal
prefix,
this
becomes:
fhir:Type.count [ fhir:value "2"^^xsd:integer ]
For
the
types
date
and
DateTime,
the
type
must
be
specified
explicitly.
For
all
other
types,
it
is
optional.
The
full
representation,
with
id,
extensions
and
value:
fhir:Type.count [
Element.id "a1";
fhir:value "2"^^xsd:integer;
Element.extension [
fhir:Extension.url "..";
fhir:Extension.valueXX...
]
]
For
additional
details,
see
the
XML
,
JSON
and
Turtle
RDF
(Turtle)
format
definitions.
When the value is missing, and there are no extensions, the element is not represented at all. This means that in xml, attributes are never present with a length of 0 (value=""), and properties are never a 0 length string or null in JSON ("name" : "" is not valid). (note: there is one specific use of the null in the JSON representation).
According to XML schema, leading and trailing whitespace in the value attribute is ignored for the types boolean, integer, decimal, base64Binary, instant, uri, date, dateTime, oid, and uri. Note that this means that the schema aware XML libraries give different attribute values to non-schema aware libraries when reading the XML instances. For this reason, the value attribute for these types SHOULD not have leading and trailing spaces. String values should only have leading and trailing spaces if they are part of the content of the value. In JSON and Turtle whitespace in string values is always significant. Primitive types other than string SHALL NOT have leading or trailing whitespace.
In XML, these types are represented as XML Elements with child elements with the name of the defined elements of the type. The name of the element is defined where the type is used. In JSON, the datatype is represented by an object with properties named the same as the XML elements. Since the JSON representation is almost exactly the same, only the first example has an additional explicit JSON representation.
Complex datatypes may be "profiled". A Structure Definition or type "constraint" makes a set of rules about which elements SHALL have values and what the possible values are.
UML Diagrams of the Datatypes
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
This type is for containing or referencing attachments - additional data content defined in other formats. The most common use of this type is to include images or reports in some report format such as PDF. However, it can be used for any data that has a MIME type.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
N | Element |
Content
in
a
format
defined
elsewhere
+ Rule: If the Attachment has data, it SHALL have a contentType Elements defined in Ancestors: id , extension |
|||||
|
Σ C | 0..1 | code |
Mime
type
of
the
content,
with
charset
etc.
Binding: Mime Types ( Required ) |
||||
|
Σ | 0..1 | code |
Human
language
of
the
content
(BCP-47)
Binding: All Languages ( Required )
|
||||
|
C | 0..1 | base64Binary |
Data
inline,
base64ed
|
||||
|
Σ | 0..1 | url |
Uri
where
the
data
can
be
found
|
||||
|
Σ | 0..1 | integer64 |
Number
of
bytes
of
content
(if
url
provided)
|
||||
|
Σ | 0..1 | base64Binary |
Hash
of
the
data
(sha-1,
base64ed)
|
||||
|
Σ T | 0..1 | string |
Label
to
display
in
place
of
the
data
|
||||
|
Σ | 0..1 | dateTime |
Date
attachment
was
first
created
|
||||
|
0..1 | positiveInt |
Height
of
the
image
in
pixels
(photo/video)
|
|||||
|
0..1 | positiveInt |
Width
of
the
image
in
pixels
(photo/video)
|
|||||
|
0..1 | positiveInt |
Number
of
frames
if
>
1
(photo)
|
|||||
|
0..1 | decimal |
Length
in
seconds
(audio
/
video)
|
|||||
|
0..1 | positiveInt |
Number
of
printed
pages
|
|||||
Documentation
for
this
format
|
||||||||
UML Diagram ( Legend )
XML Template
<Attachment xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <contentType value="[code]"/><!-- I 0..1 Mime type of the content, with charset etc. --> <language value="[code]"/><!-- 0..1 Human language of the content (BCP-47) --> <data value="[base64Binary]"/><!-- I 0..1 Data inline, base64ed --> <url value="[url]"/><!-- 0..1 Uri where the data can be found --> <size value="[integer64]"/><!-- 0..1 Number of bytes of content (if url provided) --> <hash value="[base64Binary]"/><!-- 0..1 Hash of the data (sha-1, base64ed) --> <title value="[string]"/><!-- 0..1 Label to display in place of the data --> <creation value="[dateTime]"/><!-- 0..1 Date attachment was first created --> <height value="[positiveInt]"/><!-- 0..1 Height of the image in pixels (photo/video) --> <width value="[positiveInt]"/><!-- 0..1 Width of the image in pixels (photo/video) --> <frames value="[positiveInt]"/><!-- 0..1 Number of frames if > 1 (photo) --> <duration value="[decimal]"/><!-- 0..1 Length in seconds (audio / video) --> <pages value="[positiveInt]"/><!-- 0..1 Number of printed pages --> </Attachment>
JSON Template
{
// from Element: extension
"contentType" : "<code>", // I Mime type of the content, with charset etc.
"language" : "<code>", // Human language of the content (BCP-47)
"data" : "<base64Binary>", // I Data inline, base64ed
"url" : "<url>", // Uri where the data can be found
"size" : "<integer64>", // Number of bytes of content (if url provided)
"hash" : "<base64Binary>", // Hash of the data (sha-1, base64ed)
"title" : "<string>", // Label to display in place of the data
"creation" : "<dateTime>", // Date attachment was first created
"height" : "<positiveInt>", // Height of the image in pixels (photo/video)
"width" : "<positiveInt>", // Width of the image in pixels (photo/video)
"frames" : "<positiveInt>", // Number of frames if > 1 (photo)
"duration" : <decimal>, // Length in seconds (audio / video)
"pages" : "<positiveInt>" // Number of printed pages
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:contentType [ code ] ; # 0..1 I Mime type of the content, with charset etc. fhir:language [ code ] ; # 0..1 Human language of the content (BCP-47) fhir:data [ base64Binary ] ; # 0..1 I Data inline, base64ed fhir:url [ url ] ; # 0..1 Uri where the data can be found fhir:size [ integer64 ] ; # 0..1 Number of bytes of content (if url provided) fhir:hash [ base64Binary ] ; # 0..1 Hash of the data (sha-1, base64ed) fhir:title [ string ] ; # 0..1 Label to display in place of the data fhir:creation [ dateTime ] ; # 0..1 Date attachment was first created fhir:height [ positiveInt ] ; # 0..1 Height of the image in pixels (photo/video) fhir:width [ positiveInt ] ; # 0..1 Width of the image in pixels (photo/video) fhir:frames [ positiveInt ] ; # 0..1 Number of frames if > 1 (photo) fhir:duration [ decimal ] ; # 0..1 Length in seconds (audio / video) fhir:pages [ positiveInt ] ; # 0..1 Number of printed pages ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| Attachment | |
| Attachment.language |
|
| Attachment.size |
|
| Attachment.height |
|
| Attachment.width |
|
| Attachment.frames |
|
| Attachment.duration |
|
| Attachment.pages |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
N | Element |
Content
in
a
format
defined
elsewhere
+ Rule: If the Attachment has data, it SHALL have a contentType Elements defined in Ancestors: id , extension |
|||||
|
Σ C | 0..1 | code |
Mime
type
of
the
content,
with
charset
etc.
Binding: Mime Types ( Required ) |
||||
|
Σ | 0..1 | code |
Human
language
of
the
content
(BCP-47)
Binding: All Languages ( Required )
|
||||
|
C | 0..1 | base64Binary |
Data
inline,
base64ed
|
||||
|
Σ | 0..1 | url |
Uri
where
the
data
can
be
found
|
||||
|
Σ | 0..1 | integer64 |
Number
of
bytes
of
content
(if
url
provided)
|
||||
|
Σ | 0..1 | base64Binary |
Hash
of
the
data
(sha-1,
base64ed)
|
||||
|
Σ T | 0..1 | string |
Label
to
display
in
place
of
the
data
|
||||
|
Σ | 0..1 | dateTime |
Date
attachment
was
first
created
|
||||
|
0..1 | positiveInt |
Height
of
the
image
in
pixels
(photo/video)
|
|||||
|
0..1 | positiveInt |
Width
of
the
image
in
pixels
(photo/video)
|
|||||
|
0..1 | positiveInt |
Number
of
frames
if
>
1
(photo)
|
|||||
|
0..1 | decimal |
Length
in
seconds
(audio
/
video)
|
|||||
|
0..1 | positiveInt |
Number
of
printed
pages
|
|||||
Documentation
for
this
format
|
||||||||
XML Template
<Attachment xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <contentType value="[code]"/><!-- I 0..1 Mime type of the content, with charset etc. --> <language value="[code]"/><!-- 0..1 Human language of the content (BCP-47) --> <data value="[base64Binary]"/><!-- I 0..1 Data inline, base64ed --> <url value="[url]"/><!-- 0..1 Uri where the data can be found --> <size value="[integer64]"/><!-- 0..1 Number of bytes of content (if url provided) --> <hash value="[base64Binary]"/><!-- 0..1 Hash of the data (sha-1, base64ed) --> <title value="[string]"/><!-- 0..1 Label to display in place of the data --> <creation value="[dateTime]"/><!-- 0..1 Date attachment was first created --> <height value="[positiveInt]"/><!-- 0..1 Height of the image in pixels (photo/video) --> <width value="[positiveInt]"/><!-- 0..1 Width of the image in pixels (photo/video) --> <frames value="[positiveInt]"/><!-- 0..1 Number of frames if > 1 (photo) --> <duration value="[decimal]"/><!-- 0..1 Length in seconds (audio / video) --> <pages value="[positiveInt]"/><!-- 0..1 Number of printed pages --> </Attachment>
JSON Template
{
// from Element: extension
"contentType" : "<code>", // I Mime type of the content, with charset etc.
"language" : "<code>", // Human language of the content (BCP-47)
"data" : "<base64Binary>", // I Data inline, base64ed
"url" : "<url>", // Uri where the data can be found
"size" : "<integer64>", // Number of bytes of content (if url provided)
"hash" : "<base64Binary>", // Hash of the data (sha-1, base64ed)
"title" : "<string>", // Label to display in place of the data
"creation" : "<dateTime>", // Date attachment was first created
"height" : "<positiveInt>", // Height of the image in pixels (photo/video)
"width" : "<positiveInt>", // Width of the image in pixels (photo/video)
"frames" : "<positiveInt>", // Number of frames if > 1 (photo)
"duration" : <decimal>, // Length in seconds (audio / video)
"pages" : "<positiveInt>" // Number of printed pages
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:contentType [ code ] ; # 0..1 I Mime type of the content, with charset etc. fhir:language [ code ] ; # 0..1 Human language of the content (BCP-47) fhir:data [ base64Binary ] ; # 0..1 I Data inline, base64ed fhir:url [ url ] ; # 0..1 Uri where the data can be found fhir:size [ integer64 ] ; # 0..1 Number of bytes of content (if url provided) fhir:hash [ base64Binary ] ; # 0..1 Hash of the data (sha-1, base64ed) fhir:title [ string ] ; # 0..1 Label to display in place of the data fhir:creation [ dateTime ] ; # 0..1 Date attachment was first created fhir:height [ positiveInt ] ; # 0..1 Height of the image in pixels (photo/video) fhir:width [ positiveInt ] ; # 0..1 Width of the image in pixels (photo/video) fhir:frames [ positiveInt ] ; # 0..1 Number of frames if > 1 (photo) fhir:duration [ decimal ] ; # 0..1 Length in seconds (audio / video) fhir:pages [ positiveInt ] ; # 0..1 Number of printed pages ]
Changes from both R4 and R4B
| Attachment | |
| Attachment.language |
|
| Attachment.size |
|
| Attachment.height |
|
| Attachment.width |
|
| Attachment.frames |
|
| Attachment.duration |
|
| Attachment.pages |
|
See the Full Difference for further information
The
actual
content
of
an
Attachment
can
be
conveyed
directly
using
the
data
element
or
a
URL
reference
can
be
provided.
If
both
are
provided,
the
reference
SHALL
point
to
the
same
content
as
found
in
the
data.
The
reference
can
never
be
reused
to
point
to
some
different
data
(i.e.
(i.e.,
the
reference
is
version
specific).
The
URL
reference
SHALL
point
to
a
location
that
resolves
to
actual
data;
some
URIs
such
as
cid:
meet
this
requirement.
If
the
URL
is
a
relative
reference,
it
is
interpreted
in
the
same
way
as
a
resource
reference
.
The
contentType
element
SHALL
always
be
populated
when
an
Attachment
contains
data
,
and
MAY
be
populated
when
there
is
a
url
.
It
can
include
charset
information
and
other
mime
type
extensions
as
appropriate.
If
there
is
no
character
set
in
the
contentType
then
the
correct
course
of
action
is
undefined,
though
some
media
types
may
define
a
default
character
set
and/or
the
correct
character
set
may
be
able
to
be
determined
by
inspection
of
the
content.
The
hash
is
included
so
that
applications
can
verify
that
the
content
returned
by
the
URL
has
not
changed.
The
hash
and
size
relate
to
the
data
before
it
is
represented
in
base64
form.
The
hash
is
not
intended
to
support
digital
signatures.
Where
protection
against
malicious
threats
a
digital
signature
should
be
considered,
see
Provenance.signature
for
mechanism
to
protect
a
resource
with
a
digital
signature.
Attachment
data
are
not
constrained,
and
therefore
can
be
of
any
content
type
and
encoding.
Therefore
extra
care
needs
to
be
taken
to
validate
the
content
against
malicious
or
malformed
content.
For
more
details
see
Security
of
Narrative
.
In
many
cases
where
Attachment
is
used,
the
cardinality
is
>1.
A
valid
use
of
repeats
is
to
convey
the
same
content
in
different
mime
types
and
languages.
Guidance
on
the
meaning
of
repeating
elements
SHALL
be
provided
in
the
definition
of
the
repeating
resource
element
or
extension
that
references
this
type.
The
language
element
describes
the
language
of
the
attachment
using
the
codes
defined
in
BCP
47
.
Constraints
| id | Level | Location | Description | Expression |
att-1
|
Rule | (base) | If the Attachment has data, it SHALL have a contentType | data.empty() or contentType.exists() |
If
neither
data
nor
a
URL
is
provided,
the
value
should
be
understood
as
an
assertion
that
no
content
for
the
specified
mimeType
and/or
language
is
available
for
the
combination
of
language
and
contentType
.
The context of use may frequently make rules about the kind of attachment (and therefore, the kind of mime types) that can be used.
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| Attachment.contentType |
MimeTypes
(a
valid
code
from
urn:ietf:bcp:13
)
|
Required |
This value set includes all possible codes from BCP-13 (see http://tools.ietf.org/html/bcp13) |
| Attachment.language |
AllLanguages
(a
valid
code
from
urn:ietf:bcp:47
)
|
Required |
This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47) |
| Common Languages | starter |
Attachment
is
used
in
the
following
places:
RelatedArtifact
,
AdministrableProductDefinition
,
ArtifactAssessment
,
BiologicallyDerivedProduct
,
BodyStructure
,
Citation
,
Claim
,
ClaimResponse
,
Communication
,
CommunicationRequest
,
Composition
,
Consent
,
Contract
,
Device
,
DeviceDefinition
,
DiagnosticReport
,
DocumentReference
,
Evidence
,
EvidenceVariable
,
ExplanationOfBenefit
,
HealthcareService
,
Library
,
ManufacturedItemDefinition
,
MedicationKnowledge
,
MedicinalProductDefinition
,
MolecularSequence
,
NutritionProduct
,
Observation
,
PackagedProductDefinition
,
Patient
,
Person
,
Practitioner
,
Questionnaire
,
QuestionnaireResponse
,
RelatedPerson
,
ResearchStudy
,
SubstanceDefinition
,
SubstanceNucleicAcid
,
SubstancePolymer
,
SubstanceProtein
,
TestPlan
and
TestReport
SubstanceDefinition
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A Coding is a representation of a defined concept using a symbol from a defined "code system" - see Using Codes in resources for more details.
This datatype can be bound to a ValueSet .
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
reference
to
a
code
defined
by
a
terminology
system
+ Warning: A Coding SHOULD NOT have a display unless a code is also present. Computation on Coding.display alone is generally unsafe. Consider using CodeableConcept.text Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | uri |
Identity
of
the
terminology
system
|
|
Σ | 0..1 | string |
Version
of
the
system
-
if
relevant
|
|
Σ C | 0..1 | code |
Symbol
in
syntax
defined
by
the
system
|
|
Σ T C | 0..1 | string |
Representation
defined
by
the
system
|
|
Σ | 0..1 | boolean |
If
this
coding
was
chosen
directly
by
the
user
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Coding xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[uri]"/><!-- 0..1 Identity of the terminology system --> <version value="[string]"/><!-- 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- I 0..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- I 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </Coding>
JSON Template
{
// from Element: extension
"system" : "<uri>", // Identity of the terminology system
"version" : "<string>", // Version of the system - if relevant
"code" : "<code>", // I Symbol in syntax defined by the system
"display" : "<string>", // I Representation defined by the system
"userSelected" : <boolean> // If this coding was chosen directly by the user
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:system [ uri ] ; # 0..1 Identity of the terminology system fhir:version [ string ] ; # 0..1 Version of the system - if relevant fhir:code [ code ] ; # 0..1 I Symbol in syntax defined by the system fhir:display [ string ] ; # 0..1 I Representation defined by the system fhir:userSelected [ boolean ] ; # 0..1 If this coding was chosen directly by the user ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
reference
to
a
code
defined
by
a
terminology
system
+ Warning: A Coding SHOULD NOT have a display unless a code is also present. Computation on Coding.display alone is generally unsafe. Consider using CodeableConcept.text Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | uri |
Identity
of
the
terminology
system
|
|
Σ | 0..1 | string |
Version
of
the
system
-
if
relevant
|
|
Σ C | 0..1 | code |
Symbol
in
syntax
defined
by
the
system
|
|
Σ T C | 0..1 | string |
Representation
defined
by
the
system
|
|
Σ | 0..1 | boolean |
If
this
coding
was
chosen
directly
by
the
user
|
Documentation
for
this
format
|
||||
XML Template
<Coding xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[uri]"/><!-- 0..1 Identity of the terminology system --> <version value="[string]"/><!-- 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- I 0..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- I 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </Coding>
JSON Template
{
// from Element: extension
"system" : "<uri>", // Identity of the terminology system
"version" : "<string>", // Version of the system - if relevant
"code" : "<code>", // I Symbol in syntax defined by the system
"display" : "<string>", // I Representation defined by the system
"userSelected" : <boolean> // If this coding was chosen directly by the user
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:system [ uri ] ; # 0..1 Identity of the terminology system fhir:version [ string ] ; # 0..1 Version of the system - if relevant fhir:code [ code ] ; # 0..1 I Symbol in syntax defined by the system fhir:display [ string ] ; # 0..1 I Representation defined by the system fhir:userSelected [ boolean ] ; # 0..1 If this coding was chosen directly by the user ]
The
meaning
of
the
Coding
is
defined
by
the
code.
The
system
provides
the
source
of
the
definition
of
the
code,
along
with
an
optional
version
reference.
The
display
is
a
human
display
for
the
text
defined
by
the
system
-
it
is
not
intended
for
computation.
The
system
is
an
absolute
URI
that
identifies
the
code
system
that
defines
the
code
.
Choosing
the
correct
system
is
important;
for
more
information
about
the
code
system
URI,
read
Managing
Terminology
System
URIs
.
If
the
code
is
taken
from
a
CodeSystem
resource,
CodeSystem.url
is
the
correct
value
for
the
system
element.
Resolvable
URLs
are
generally
preferred
by
implementers
over
non-resolvable
URNs,
particularly
opaque
URNs
such
as
OIDs
(urn:oid:)
or
UUIDs
(urn:uuid:).
The
system
URI
SHALL
NOT
contain
a
reference
to
a
value
set
(e.g.
(e.g.,
ValueSet.url
),
since
value
sets
just
define
the
set
of
codes
which
are
intended
for
use
in
a
specific
context,
not
the
meaning
of
the
codes
themselves.
A code system version may also be supplied. If the meaning of codes within the code system is consistent across releases, this is not required. The version SHOULD be exchanged when the system does not maintain consistent definitions across versions. Note that the following systems SHOULD always have a version specified:
More
generally,
any
classification
(e.g.
(e.g.,
a
code
system
that
includes
concepts
with
relative
definitions
such
as
"not
otherwise
coded"
will
require
a
version.
See
the
discussion
of
code
system
versions
in
the
Code
System
resource
for
further
discussion
on
versioning.
If
present,
the
code
SHALL
be
a
syntactically
correct
symbol
as
defined
by
the
system
.
In
some
code
systems
such
as
SNOMED
CT,
the
symbol
may
be
an
expression
composed
of
other
predefined
symbol
(e.g.
(e.g.,
post-coordination).
Note
that
codes
are
case
sensitive
unless
specified
otherwise
by
the
code
system.
The
display
is
a
text
representation
of
the
code
defined
by
the
system
and
is
used
to
display
the
meaning
of
the
code
by
an
application
that
is
not
aware
of
the
system
.
If
the
'display'
element
is
populated,
the
string
used
in
display
SHALL
be
one
of
the
display
strings
defined
for
that
code
by
the
code
system.
Code
systems
may
define
multiple
display
strings
for
a
single
code,
by
use
of:
CodeSystem.concept.display
CodeSystem.concept.designation.value
(including
in
supplements)
Note
that
displays
defined
in
value
sets
(
ValueSet.include.concept.display
and
ValueSet.include.concept.designation.value
)
are
not
allowed
in
Coding.display
.
If
one
of
the
available
display
strings
is
labeled
as
preferred,
it
SHOULD
be
used
(note
that
CodeSystem.concept.display
is
preferred
for
the
base
resource
language
if
it
is
populated,
but
other
display
strings
may
be
preferred
in
other
languages,
or
for
other
usages).
If
the
code
system
does
not
define
a
text
representation
for
display
(e.g.
(e.g.,
SNOMED
CT
Expressions)
then
the
'display'
element
cannot
be
populated,
and
the
meaning
of
the
code
won't
be
accessible
to
systems
that
don't
understand
the
code
expression.
In
some
cases,
the
system
might
not
be
known
-
only
the
code
is
known.
In
this
case,
no
useful
processing
of
the
code
may
be
performed
unless
the
system
is
known
implicitly
through
knowledge
of
the
context
(e.g.,
from
a
known
device/source).
This
practice
should
be
avoided
where
possible,
as
information
sharing
in
a
wider
context
is
very
likely
to
arise
eventually,
and
codes
cannot
be
used
in
the
absence
of
a
known
system.
Thus,
systems
SHOULD
populate
the
Coding.system
whenever
the
system
is
known.
If
the
system
is
present,
and
there
is
no
code,
then
this
is
understood
to
mean
that
there
is
no
suitable
code
in
the
system
in
which
to
represent
the
concept.
The
implication
of
this
is
that
implementers
SHOULD
never
provide
a
system
without
a
code
unless
this
is
the
intended
meaning
AND
it
is
appropriate
for
the
code
system
and
version.
(E.g.
(e.g.,
the
code
system
does
not
have
an
'OTHER'
concept.)
This
approach
cannot
be
used
if
an
appropriate
code
might
exist
within
the
code
system
but
does
not
exist
within
the
bound
ValueSet.
If
two
codings
have
the
same
system
,
version
and
code
then
they
have
the
same
meaning.
If
the
version
information
is
missing,
or
the
system
,
version
or
the
code
elements
differ,
then
how
the
codes
are
related
can
only
be
determined
by
consulting
the
definitions
of
the
system(s)
and
any
mappings
available.
A
coding
may
be
marked
as
a
"userSelected"
if
a
user
selected
the
particular
coded
value
in
a
user
interface
(e.g.
(e.g.,
the
user
selects
an
item
in
a
pick-list).
If
a
user
selected
coding
exists,
it
is
the
preferred
choice
for
performing
translations
etc.
Constraints
| id | Level | Location | Description | Expression |
cod-1
|
Warning | (base) | A Coding SHOULD NOT have a display unless a code is also present. Computation on Coding.display alone is generally unsafe. Consider using CodeableConcept.text | code.exists().not() implies display.exists().not() |
The context of use (as defined in the resource or applicable profile) usually makes rules about what codes and systems are allowed or required in a particular context by binding the element to a value set.
Coding
is
used
in
the
following
places:
Meta
,
DataRequirement
,
ElementDefinition
,
VirtualServiceDetail
,
UsageContext
,
Signature
,
CodeableConcept
,
ActivityDefinition
,
ActorDefinition
,
AdministrableProductDefinition
,
Appointment
,
AuditEvent
,
BiologicallyDerivedProduct
,
CanonicalResource
,
CapabilityStatement
,
ChargeItemDefinition
,
Citation
,
CodeSystem
,
CompartmentDefinition
,
ConceptMap
,
ConditionDefinition
,
Consent
,
Contract
,
DeviceAlert
,
DeviceDefinition
,
DocumentReference
,
Encounter
,
EventDefinition
,
Evidence
,
EvidenceVariable
,
ExampleScenario
,
ExplanationOfBenefit
,
GraphDefinition
,
Group
,
ImplementationGuide
,
InventoryItem
,
Library
,
Location
,
Measure
,
MedicinalProductDefinition
,
MessageDefinition
,
MessageHeader
,
NamingSystem
,
ObservationDefinition
,
OperationDefinition
,
Permission
,
PlanDefinition
,
Questionnaire
,
QuestionnaireResponse
,
Requirements
,
SearchParameter
,
SpecimenDefinition
,
StructureDefinition
,
StructureMap
,
Subscription
,
SubscriptionStatus
,
SubscriptionTopic
,
TerminologyCapabilities
,
TestPlan
,
TestScript
and
ValueSet
Implementation Note: This specification defines two types for representing coded values:
- Coding : a simple direct reference to a code defined by a code system
- CodeableConcept : a text description and/or a list of Codings
(i.e.(i.e., a list of references to codes defined by code systems)The
Codingdatatype corresponds to the simple case of selecting a single code from a code list. However, this type is rarely used in the FHIR specifications; long experience with exchanging coded values in HL7 shows that in the general case, systems need to able to exchange multiple translation codes, and/or an original text.The
Codingdatatype is used directly when there is certainty that the value must be selected directly from one of the available codes, and the list of possible codes is agreed to by all participants. This is not usually the case in the context of FHIR - general interoperability - so Coding is mostly used in extensions, which are usually intended to be defined for a well-controlled context of use.
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A CodeableConcept represents a value that is usually supplied by providing a reference to one or more terminologies or ontologies but may also be defined by the provision of text. This is a common pattern in healthcare data.
This datatype can be bound to a ValueSet .
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Concept
-
reference
to
a
terminology
or
just
text
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..* | Coding |
Code
defined
by
a
terminology
system
|
|
Σ T | 0..1 | string |
Plain
text
representation
of
the
concept
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<CodeableConcept xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <coding><!-- 0..* Coding Code defined by a terminology system --></coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </CodeableConcept>
JSON Template
{
// from Element: extension
"coding" : [{ Coding }], // Code defined by a terminology system
"text" : "<string>" // Plain text representation of the concept
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:coding ( [ Coding ] ... ) ; # 0..* Code defined by a terminology system fhir:text [ string ] ; # 0..1 Plain text representation of the concept ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| CodeableConcept |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Concept
-
reference
to
a
terminology
or
just
text
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..* | Coding |
Code
defined
by
a
terminology
system
|
|
Σ T | 0..1 | string |
Plain
text
representation
of
the
concept
|
Documentation
for
this
format
|
||||
XML Template
<CodeableConcept xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <coding><!-- 0..* Coding Code defined by a terminology system --></coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </CodeableConcept>
JSON Template
{
// from Element: extension
"coding" : [{ Coding }], // Code defined by a terminology system
"text" : "<string>" // Plain text representation of the concept
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:coding ( [ Coding ] ... ) ; # 0..* Code defined by a terminology system fhir:text [ string ] ; # 0..1 Plain text representation of the concept ]
Changes from both R4 and R4B
| CodeableConcept |
|
See the Full Difference for further information
Additional
Codes
Multiple
Codings
More
than
one
code
may
be
used
in
When
a
CodeableConcept
.
The
concept
may
be
coded
multiple
times
in
different
code
systems
(or
even
multiple
times
in
the
same
code
systems,
where
contains
multiple
forms
are
possible,
such
as
with
SNOMED
CT).
Each
codings,
each
coding
(also
referred
to
as
(sometimes
called
a
'translation')
is
a
representation
of
the
concept
as
described
above
above.
There
is
no
meaning
associated
with
the
ordering
of
coding
within
a
CodeableConcept
and
systems
should
not
expect
or
enforce
any
particular
order.
The
codes
in
the
codings
may
have
slightly
different
granularity
due
to
granularities,
whether
they
are
from
different
code
systems,
or
the
differences
in
same
code
system.
When
multiple
codes
are
present,
the
definitions
intersection
of
their
meanings
SHALL
NOT
be
empty.
(Strictly,
based
on
ISO
704,
the
underlying
codes.
There
intersection
of
their
'extensions'
is
no
meaning
associated
not
empty.)
This
rule
cannot,
in
general,
be
tested
in
a
computable
way
and
implementers
SHOULD
choose
the
granularities
used
with
care,
particularly
in
the
ordering
context
of
coding
within
negation.
For
instance,
a
CodeableConcept
.
A
typical
containing
two
codes,
the
LOINC
code
8867-4
(Heart
rate)
and
the
SNOMED
CT
code
364075005
(Heart
Rate)
is
a
combination,
suitable
for
use
of
by
consuming
applications
that
understand
either
LOINC
or
SNOMED
CT
(or
both).
On
the
other
hand,
a
CodeableConcept
containing
LOINC
9279-1
(Respiratory
Rate)
and
the
SNOMED
CT
code
364075005
(Heart
Rate)
is
not
valid
because
the
two
concepts
do
not
have
any
intersection
-
there's
no
concept
that
is
both
a
respiratory
rate
and
a
heart
rate.
Each coding stands alone in expressing the meaning of the concept. It is not appropriate to send a coding of "severe" with a coding of "rash" to convey the concept represents a "severe rash".
If
expressing
codes
with
differing
levels
of
granularity,
the
granularity
chosen
must
still
be
appropriate
for
the
definition
and
purpose
of
the
element.
For
example,
with
Observation.code,
it
would
not
be
appropriate
to
send
a
SNOMED
CT
code
of
138875005
(SNOMED
CT
Concept)
-
which
covers
procedures,
body
parts,
and
lots
of
other
things
that
aren't
observations.
That
is,
the
union
of
the
meanings
of
the
codes
(ISO
704
extensions)
SHALL
not
include
concepts
outside
the
scope
of
the
definition
of
the
element
in
which
the
local
code
is
found.
Note
that
this
also
is
not
suitable
for
computable
testing.
It
would
also
not
be
appropriate
to
send
a
code
like
SNOMED
CT
118227000
(Vital
Sign
Finding)
with
a
Quantity
value
because
the
concept
was
coded
with,
purpose
of
Observation.code
is
to
explain
the
meaning
of
the
Observation.value,
and
also
merely
knowing
that
the
Quantity
is
a
vital
sign
isn't
enough
to
have
any
useful
understanding
of
the
meaning
of
the
value.
On
the
other
hand,
having
one
or
coding
that
says
Body
Weight
(SCT
27113001)
and
another
that
says
Post-dialysis
body
weight
(SCT
1162420002)
would
be
fine.
Both
codes
are
sufficient
to
understand
what
the
value
means,
though
one
provides
more
translations
context
than
the
other.
Note
that
when
granularities
are
significantly
different,
interpretation
of
the
meaning
for
each
of
the
codes
will
result
in
differences
that
might
not
be
safe.
For
instance,
a
prescription
for
"APO
Amoxicillin
250
mg
capsule"
(needed
to
publicly
defined
fill
the
order)
could
safely
also
have
an
additional
coding
of
"Broad-spectrum
Penicillin"
(perhaps
needed
to
trigger
antibiotic
monitoring
protocols).
On
the
other
hand,
if
there
were
an
order
that
said
"Do
not
administer
APO
Amoxicillin
250
mg
capsule",
adding
a
translation
of
"broad-spectrum
Penicillin"
could
be
incorrectly
interpreted
as
a
prohibition
against
all
broad-spectrum
penicillins.
Multiple codings can be present for several reasons:
Typical
behavior
is
useful
to
expose
all
codings
known
that
some
portion
of
the
interface
clients
are
likely
to
have
uses
for.
Implementers
should
use
codes
obtained
from
the
various
codings
in
a
CodeableConcept
based
on
thorough
analysis
of
their
target
applications
and
important
for
real
world
use
cases,
noting
that
the
purposes
nature
of
debugging
FHIR
means
resources
are
often
distributed
far
beyond
the
original
trading
partners.
For
this
reason,
it
is
always
better
to
include
appropriate
codes
from
well
known
public
CodeSystems
whenever
possible.
This
specification
and
integrity
auditing.
other
applicable
IGs
may
make
specific
rules
requiring
the
presence
of
particular
combinations
of
codes
to
make
specific
uses
of
FHIR
Resources
possible
and/or
safer.
For
As
an
example,
many
qualitative
laboratory
test
results
values
are
typically
represented
with
coded
presence/absence
concepts.
Using
the
coded
value
for
'negative'
with
a
standard
SNOMED
CT
code
translation,
valueCodeableConcept
would
be:
"valueCodeableConcept": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "260385009",
"display": "Negative"
}, {
"system": "https://acme.lab/resultcodes",
"code": "NEG",
"display": "Negative"
}
],
"text": "Negative for Chlamydia Trachomatis rRNA"
}
Note
that
these
concepts
may
be
cross
mapped
using
the
ConceptMap
resource
instead
of
or
in
addition
to
being
represented
as
translations
directly
in
the
in
CodeableConcept
.
Using Text in CodeableConcept
The
text
is
the
representation
of
the
concept
as
entered
or
chosen
by
the
user,
and
which
most
closely
represents
the
intended
meaning
of
the
user
or
concept.
Very
often
the
text
is
the
same
as
a
display
of
one
of
the
codings.
One
or
more
of
the
codings
may
be
flagged
as
the
user
selected
code
-
the
code
or
concept
that
the
user
actually
selected
directly.
Note
that
in
all
but
a
few
cases,
only
one
of
the
codings
may
be
flagged
as
the
coding.userSelected
=
true
-
the
code
or
concept
that
the
user
actually
selected
directly.
If
more
than
one
code
is
marked
as
user
selected,
this
means
the
user
explicitly
chose
multiple
codes.
When
none
of
the
coding
elements
is
marked
as
user
selected,
the
text
(if
present)
is
the
preferred
source
of
meaning.
Even
if
a
coding
is
flagged
as
user-selected,
it
is
good
practice
to
put
the
specific
text
the
user
chose
in
CodeableConcept.text.
A
free
text
only
representation
of
the
concept
without
any
coding
elements
is
permitted
if
there
is
no
appropriate
code
and
only
free
text
is
available
(and
not
prohibited
by
the
implementation).
For
example,
using
text
only,
the
Observation.valueCodeableConcept
element
would
be:
"valueCodeableConcept": {
"text": "uncoded free text result"
}
Constraints
The context of use usually makes rules about what codes and systems are allowed or required in a particular context by binding the element to a value set.
CodeableConcept
is
used
in
the
following
places:
DataRequirement
,
Dosage
,
RelativeTime
,
MonetaryComponent
,
MarketingStatus
,
Identifier
,
TriggerDefinition
,
RelatedArtifact
,
ProductShelfLife
,
DosageCondition
,
UsageContext
,
CodeableReference
,
Timing
,
ExtendedContactDetail
,
Account
,
ActivityDefinition
,
ActorDefinition
,
AdministrableProductDefinition
,
AdverseEvent
,
AllergyIntolerance
,
Appointment
,
AppointmentResponse
,
ArtifactAssessment
,
AuditEvent
,
Basic
,
BiologicallyDerivedProduct
,
BiologicallyDerivedProductDispense
,
BodyStructure
,
CanonicalResource
,
CapabilityStatement
,
CarePlan
,
CareTeam
,
ChargeItem
,
ChargeItemDefinition
,
Citation
,
Claim
,
ClaimResponse
,
ClinicalAssessment
,
ClinicalUseDefinition
,
CodeSystem
,
Communication
,
CommunicationRequest
,
Composition
,
ConceptMap
,
Condition
,
ConditionDefinition
,
Consent
,
Contract
,
Coverage
,
CoverageEligibilityRequest
,
CoverageEligibilityResponse
,
DetectedIssue
,
Device
,
DeviceAlert
,
DeviceAssociation
,
DeviceDefinition
,
DeviceDispense
,
DeviceMetric
,
DeviceRequest
,
DeviceUsage
,
DiagnosticReport
,
DocumentReference
,
Encounter
,
EncounterHistory
,
Endpoint
,
EpisodeOfCare
,
EventDefinition
,
Evidence
,
EvidenceVariable
,
ExampleScenario
,
ExplanationOfBenefit
,
FamilyMemberHistory
,
Flag
,
FormularyItem
,
GenomicStudy
,
Goal
,
GraphDefinition
,
Group
,
GuidanceResponse
,
HealthcareService
,
ImagingSelection
,
ImagingStudy
,
Immunization
,
ImmunizationEvaluation
,
ImmunizationRecommendation
,
ImplementationGuide
,
Ingredient
,
InsurancePlan
,
InsuranceProduct
,
InventoryItem
,
InventoryReport
,
Invoice
,
Library
,
List
,
Location
,
ManufacturedItemDefinition
,
Measure
,
MeasureReport
,
Medication
,
MedicationAdministration
,
MedicationDispense
,
MedicationKnowledge
,
MedicationRequest
,
MedicationStatement
,
MedicinalProductDefinition
,
MessageDefinition
,
MessageHeader
,
MetadataResource
,
MolecularDefinition
,
MolecularSequence
,
NamingSystem
,
NutritionIntake
,
NutritionOrder
,
NutritionProduct
,
Observation
,
ObservationDefinition
,
OperationDefinition
,
OperationOutcome
,
Organization
,
OrganizationAffiliation
,
PackagedProductDefinition
,
Patient
,
PaymentNotice
,
PaymentReconciliation
,
Permission
,
Person
,
PersonalRelationship
,
PlanDefinition
,
Practitioner
,
PractitionerRole
,
Procedure
,
Provenance
,
Questionnaire
,
RegulatedAuthorization
,
RelatedPerson
,
RequestOrchestration
,
Requirements
,
ResearchStudy
,
ResearchSubject
,
RiskAssessment
,
Schedule
,
SearchParameter
,
ServiceRequest
,
Slot
,
Specimen
,
SpecimenDefinition
,
StructureDefinition
,
StructureMap
,
Subscription
,
SubscriptionStatus
,
SubscriptionTopic
,
Substance
,
SubstanceDefinition
,
SubstanceNucleicAcid
,
SubstancePolymer
,
SubstanceProtein
,
SubstanceReferenceInformation
,
SubstanceSourceMaterial
,
SupplyDelivery
,
SupplyRequest
,
Task
,
TerminologyCapabilities
,
TestPlan
,
TestScript
,
Transport
,
ValueSet
,
VerificationResult
and
VisionPrescription
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A measured amount (or an amount that can potentially be measured).
This datatype can be bound to a ValueSet .
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
measured
or
measurable
amount
+ Rule: If a code for the unit is present, the system SHALL also be present + Guideline: Processing UCUM codes with annotations ({..}) can be misleading. Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | decimal |
Numerical
value
(with
implicit
precision)
|
|
?! Σ | 0..1 | code |
<
|
<=
|
>=
|
>
|
ad
-
how
to
understand
the
value
Binding: QuantityComparator ( Required ) |
|
Σ T | 0..1 | string |
Unit
representation
|
|
Σ C | 0..1 | uri |
System
that
defines
coded
unit
form
|
|
Σ C | 0..1 | code |
Coded
form
of
the
unit
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Quantity xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > | ad - how to understand the value --> <unit value="[string]"/><!-- 0..1 Unit representation --> <system value="[uri]"/><!-- I 0..1 System that defines coded unit form --> <code value="[code]"/><!-- I 0..1 Coded form of the unit --> </Quantity>
JSON Template
{
// from Element: extension
"value" : <decimal>, // Numerical value (with implicit precision)
"comparator" : "<code>", // < | <= | >= | > | ad - how to understand the value
"unit" : "<string>", // Unit representation
"system" : "<uri>", // I System that defines coded unit form
"code" : "<code>" // I Coded form of the unit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:value [ decimal ] ; # 0..1 Numerical value (with implicit precision) fhir:comparator [ code ] ; # 0..1 < | <= | >= | > | ad - how to understand the value fhir:unit [ string ] ; # 0..1 Unit representation fhir:system [ uri ] ; # 0..1 I System that defines coded unit form fhir:code [ code ] ; # 0..1 I Coded form of the unit ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| Quantity | |
| Quantity.comparator |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
measured
or
measurable
amount
+ Rule: If a code for the unit is present, the system SHALL also be present + Guideline: Processing UCUM codes with annotations ({..}) can be misleading. Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | decimal |
Numerical
value
(with
implicit
precision)
|
|
?! Σ | 0..1 | code |
<
|
<=
|
>=
|
>
|
ad
-
how
to
understand
the
value
Binding: QuantityComparator ( Required ) |
|
Σ T | 0..1 | string |
Unit
representation
|
|
Σ C | 0..1 | uri |
System
that
defines
coded
unit
form
|
|
Σ C | 0..1 | code |
Coded
form
of
the
unit
|
Documentation
for
this
format
|
||||
XML Template
<Quantity xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > | ad - how to understand the value --> <unit value="[string]"/><!-- 0..1 Unit representation --> <system value="[uri]"/><!-- I 0..1 System that defines coded unit form --> <code value="[code]"/><!-- I 0..1 Coded form of the unit --> </Quantity>
JSON Template
{
// from Element: extension
"value" : <decimal>, // Numerical value (with implicit precision)
"comparator" : "<code>", // < | <= | >= | > | ad - how to understand the value
"unit" : "<string>", // Unit representation
"system" : "<uri>", // I System that defines coded unit form
"code" : "<code>" // I Coded form of the unit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:value [ decimal ] ; # 0..1 Numerical value (with implicit precision) fhir:comparator [ code ] ; # 0..1 < | <= | >= | > | ad - how to understand the value fhir:unit [ string ] ; # 0..1 Unit representation fhir:system [ uri ] ; # 0..1 I System that defines coded unit form fhir:code [ code ] ; # 0..1 I Coded form of the unit ]
Changes from both R4 and R4B
| Quantity | |
| Quantity.comparator |
|
See the Full Difference for further information
The
value
contains
the
numerical
value
of
the
quantity,
including
an
implicit
precision.
If
no
comparator
is
specified,
the
value
is
a
point
value
(i.e.
(i.e.,
'=').
The
comparator
element
can
never
be
ignored.
The
unit
element
contains
a
displayable
unit
that
defines
what
is
measured.
The
unit
may
additionally
be
coded
in
some
formal
way
using
the
code
and
the
system
(see
Coding
for
further
information
about
how
to
use
the
system
element).
If
the
unit
can
be
coded
in
UCUM
and
a
code
is
provided,
it
SHOULD
be
a
UCUM
code.
If
a
UCUM
unit
is
provided
in
the
code
,
then
a
canonical
value
can
be
generated
for
purposes
of
comparison
between
quantities.
Note
that
the
unit
element
will
often
contain
text
that
is
a
valid
UCUM
unit,
but
it
cannot
be
assumed
that
the
unit
actually
contains
a
valid
UCUM
unit.
If
there
is
a
need
to
convey
exceptional
values
such
as
Not
a
Number
(NaN),
'trace',
'sufficient
quantity',
etc.,
this
should
be
done
using
a
coded
data
type
such
as
CodeableConcept,
drawing
on
codes
from
code
systems
such
as
Data
Absent
Reason
or
Null
Flavor
,
and
appropriate
extensions
exist
for
this
purpose
(
here
and
here
).
Constraints
| id | Level | Location | Description | Expression |
qty-3
|
Rule | (base) | If a code for the unit is present, the system SHALL also be present | code.empty() or system.exists() |
qty-4
|
Guideline | (base) | Processing UCUM codes with annotations ({..}) can be misleading. |
code.exists()
implies
code.matches('\\{.*?\\}').not()
This is (only) a best practice guideline because:
|
The
context
of
use
may
frequently
define
what
kind
of
measured
quantity
this
is
and
therefore
what
kind
of
unit
can
be
used.
The
context
of
use
may
additionally
require
a
code
from
a
particular
system
,
or
a
value
set
-
see
Using
Terminologies
for
information
about
binding
a
Quantity
to
a
value
set
to
constrain
the
unit
codes.
The
context
of
use
may
also
restrict
the
values
for
the
value
or
comparator
.
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| Quantity.comparator | QuantityComparator | Required |
How the Quantity should be understood and represented. |
Quantity
is
used
in
the
following
places:
Count
,
DosageSafety
,
Ratio
,
ElementDefinition
,
Distance
,
Age
,
Duration
,
UsageContext
,
AdministrableProductDefinition
,
ArtifactAssessment
,
AuditEvent
,
BiologicallyDerivedProduct
,
BodyStructure
,
ChargeItem
,
Claim
,
ClaimResponse
,
ConceptMap
,
ConditionDefinition
,
Contract
,
Device
,
DeviceDefinition
,
DeviceMetric
,
DeviceRequest
,
Evidence
,
EvidenceVariable
,
ExplanationOfBenefit
,
Goal
,
Group
,
HealthcareService
,
Ingredient
,
InsurancePlan
,
InsuranceProduct
,
InventoryItem
,
InventoryReport
,
ManufacturedItemDefinition
,
Measure
,
MeasureReport
,
Medication
,
MedicationKnowledge
,
MedicinalProductDefinition
,
MolecularDefinition
,
NutritionIntake
,
NutritionOrder
,
NutritionProduct
,
Observation
,
PackagedProductDefinition
,
PlanDefinition
,
RiskAssessment
,
ServiceRequest
,
SubstanceDefinition
,
SubstancePolymer
,
SubstanceReferenceInformation
and
SupplyRequest
SubstanceDefinition
There are several additional datatypes that are specializations of Quantity that only introduce new restrictions on the existing elements defined as part of the Quantity datatype.
| Type Name | Rules | Formal Definitions | ||||||||||||||||||||||
| Distance |
Terminology Bindings
|
XML , JSON | ||||||||||||||||||||||
| Usage: (not used as yet) | ||||||||||||||||||||||||
|
||||||||||||||||||||||||
| Age |
Terminology Bindings
|
XML , JSON | ||||||||||||||||||||||
| Note: Age intentionally carries the semantics of a duration of time during which an organism (or a process) has existed. | ||||||||||||||||||||||||
| Usage: ActivityDefinition , AllergyIntolerance , Condition , FamilyMemberHistory , PlanDefinition , Procedure and RequestOrchestration | ||||||||||||||||||||||||
| Count |
|
XML , JSON | ||||||||||
| Usage: (not used as yet) | ||||||||||||
| Duration |
Terminology Bindings
|
XML , JSON | ||||||||||||||||||||||
| Note: Duration intentionally carries the semantics of a length of time. | ||||||||||||||||||||||||
|
Usage:
DataRequirement
,
RelativeTime
,
DosageSafety
,
ProductShelfLife
,
Timing
,
ActivityDefinition
,
AdministrableProductDefinition
,
Encounter
,
|
||||||||||||||||||||||||
In addition to the specializations, there is one constraint on Quantity used in several resources:
| Profile Name | Rules | Formal Definitions | ||||||||||
| Simple Quantity |
|
XML , JSON | ||||||||||
|
Usage:
Dosage
,
RatioRange
,
SampledData
,
Ratio
,
Range
,
Timing
,
Account
,
ActivityDefinition
,
|
||||||||||||
Note that the constraint is different from the other specializations of Quantity because it is not a type, just rules applied where the Quantity type is used. There's another constraint - see Money immediately below.
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
An amount of currency.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
amount
of
economic
utility
in
some
recognized
currency
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | decimal |
Numerical
value
(with
implicit
precision)
|
|
Σ | 0..1 | code |
ISO
4217
Currency
Code
Binding: Currencies ( Required ) |
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Money xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <currency value="[code]"/><!-- 0..1 ISO 4217 Currency Code --> </Money>
JSON Template
{
// from Element: extension
"value" : <decimal>, // Numerical value (with implicit precision)
"currency" : "<code>" // ISO 4217 Currency Code
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:value [ decimal ] ; # 0..1 Numerical value (with implicit precision) fhir:currency [ code ] ; # 0..1 ISO 4217 Currency Code ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
amount
of
economic
utility
in
some
recognized
currency
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 | decimal |
Numerical
value
(with
implicit
precision)
|
|
Σ | 0..1 | code |
ISO
4217
Currency
Code
Binding: Currencies ( Required ) |
Documentation
for
this
format
|
||||
XML Template
<Money xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <currency value="[code]"/><!-- 0..1 ISO 4217 Currency Code --> </Money>
JSON Template
{
// from Element: extension
"value" : <decimal>, // Numerical value (with implicit precision)
"currency" : "<code>" // ISO 4217 Currency Code
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:value [ decimal ] ; # 0..1 Numerical value (with implicit precision) fhir:currency [ code ] ; # 0..1 ISO 4217 Currency Code ]
The
value
contains
the
amount
of
the
currency,
including
an
implicit
precision.
Precision
is
always
important
for
financial
amounts.
The
currency
element
contains
an
ISO
4217
code
for
the
currency.
Money
is
used
in
the
following
places:
MonetaryComponent
,
Account
,
Claim
,
ClaimResponse
,
Contract
,
Coverage
,
CoverageEligibilityRequest
,
CoverageEligibilityResponse
,
ExplanationOfBenefit
,
InsurancePlan
,
Invoice
,
MedicationKnowledge
,
PaymentNotice
and
PaymentReconciliation
There
are
also
circumstances
where
a
financial
amount
must
be
represented
as
the
numerator
or
denominator
in
a
Ratio,
where
the
type
is
currency.
In
this
context,
the
Money
amount
is
represented
as
a
Quantity
,
using
the
MoneyQuantity
constraint:
| Profile Name | Rules | Formal Definitions | ||||||||||
| Money Quantity |
|
XML , JSON | ||||||||||
| Usage: (not used as yet) | ||||||||||||
Note that the profile is different from the other specializations because it is not a type, just rules applied where the Quantity type is used to represent Money amounts.
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A set of ordered Quantity values defined by a low and high limit.
A
Range
specifies
a
set
of
possible
values;
usually,
one
value
from
the
range
applies
(e.g.
(e.g.,
"give
the
patient
between
2
and
4
tablets").
Ranges
are
typically
used
in
instructions.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Set
of
values
bounded
by
low
and
high
+ Rule: If present, low SHALL have a lower value than high Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | SimpleQuantity |
Low
limit
|
|
Σ C | 0..1 | SimpleQuantity |
High
limit
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Range xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <low><!-- I 0..1 Quantity(SimpleQuantity) Low limit --></low> <high><!-- I 0..1 Quantity(SimpleQuantity) High limit --></high> </Range>
JSON Template
{
// from Element: extension
"low" : { Quantity(SimpleQuantity) }, // I Low limit
"high" : { Quantity(SimpleQuantity) } // I High limit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:low [ Quantity(SimpleQuantity) ] ; # 0..1 I Low limit fhir:high [ Quantity(SimpleQuantity) ] ; # 0..1 I High limit ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Set
of
values
bounded
by
low
and
high
+ Rule: If present, low SHALL have a lower value than high Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | SimpleQuantity |
Low
limit
|
|
Σ C | 0..1 | SimpleQuantity |
High
limit
|
Documentation
for
this
format
|
||||
XML Template
<Range xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <low><!-- I 0..1 Quantity(SimpleQuantity) Low limit --></low> <high><!-- I 0..1 Quantity(SimpleQuantity) High limit --></high> </Range>
JSON Template
{
// from Element: extension
"low" : { Quantity(SimpleQuantity) }, // I Low limit
"high" : { Quantity(SimpleQuantity) } // I High limit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:low [ Quantity(SimpleQuantity) ] ; # 0..1 I Low limit fhir:high [ Quantity(SimpleQuantity) ] ; # 0..1 I High limit ]
The
unit
and
code
/
system
elements
of
the
low
or
high
elements
SHALL
match.
If
the
low
or
high
elements
are
missing,
the
meaning
is
that
the
low
or
high
boundaries
are
not
known
and
therefore
neither
is
the
complete
range.
The
comparator
flag
on
the
low
or
high
elements
cannot
be
present.
Note
that
the
Range
type
should
not
be
used
to
represent
out
of
range
measurements:
A
quantity
type
with
the
comparator
element
should
be
used
instead.
The
low
and
the
high
values
are
inclusive
and
are
assumed
to
have
arbitrarily
high
precision;
e.g.
e.g.,
the
range
1.5
to
2.5
includes
1.50,
and
2.50
but
not
1.49
or
2.51.
Constraints
| id | Level | Location | Description | Expression |
rng-2
|
Rule | (base) | If present, low SHALL have a lower value than high | low.value.empty() or high.value.empty() or low.lowBoundary().comparable(high.highBoundary()).not() or (low.lowBoundary() <= high.highBoundary()) |
Range
is
used
in
the
following
places:
Dosage
,
RelativeTime
,
UsageContext
,
Timing
,
ActivityDefinition
,
AdministrableProductDefinition
,
AllergyIntolerance
,
AuditEvent
,
BiologicallyDerivedProduct
,
ClinicalUseDefinition
,
Condition
,
Device
,
DeviceAlert
,
DeviceDefinition
,
DeviceRequest
,
Evidence
,
EvidenceVariable
,
FamilyMemberHistory
,
Goal
,
Group
,
HealthcareService
,
InventoryItem
ManufacturedItemDefinition
,
MeasureReport
,
MedicationKnowledge
MedicationRequest
,
MolecularDefinition
MedicinalProductDefinition
,
Observation
,
ObservationDefinition
,
PlanDefinition
,
Procedure
,
RequestOrchestration
,
RiskAssessment
,
ServiceRequest
,
SpecimenDefinition
,
SubstanceReferenceInformation
and
SupplyRequest
SubstanceDefinition
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A relationship between two Quantity values expressed as a numerator and a denominator.
The Ratio datatype should only be used to express a relationship of two numbers if the relationship cannot be suitably expressed using a Quantity and a common unit. Where the denominator value is known to be fixed to "1", Quantity should be used instead of Ratio.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
ratio
of
two
Quantity
values
-
a
numerator
and
a
denominator
+ Rule: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | Quantity |
Numerator
value
|
|
Σ C | 0..1 | SimpleQuantity |
Denominator
value
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Ratio xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <numerator><!-- I 0..1 Quantity Numerator value --></numerator> <denominator><!-- I 0..1 Quantity(SimpleQuantity) Denominator value --></denominator> </Ratio>
JSON Template
{
// from Element: extension
"numerator" : { Quantity }, // I Numerator value
"denominator" : { Quantity(SimpleQuantity) } // I Denominator value
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:numerator [ Quantity ] ; # 0..1 I Numerator value fhir:denominator [ Quantity(SimpleQuantity) ] ; # 0..1 I Denominator value ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| Ratio | |
| Ratio.denominator |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
ratio
of
two
Quantity
values
-
a
numerator
and
a
denominator
+ Rule: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | Quantity |
Numerator
value
|
|
Σ C | 0..1 | SimpleQuantity |
Denominator
value
|
Documentation
for
this
format
|
||||
XML Template
<Ratio xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <numerator><!-- I 0..1 Quantity Numerator value --></numerator> <denominator><!-- I 0..1 Quantity(SimpleQuantity) Denominator value --></denominator> </Ratio>
JSON Template
{
// from Element: extension
"numerator" : { Quantity }, // I Numerator value
"denominator" : { Quantity(SimpleQuantity) } // I Denominator value
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:numerator [ Quantity ] ; # 0..1 I Numerator value fhir:denominator [ Quantity(SimpleQuantity) ] ; # 0..1 I Denominator value ]
Changes from both R4 and R4B
| Ratio | |
| Ratio.denominator |
|
See the Full Difference for further information
Examples
where
a
Quantity
is
typically
used
are
rates,
densities,
concentrations.
Examples
where
a
Ratio
is
used
are:
titers
(e.g.
(e.g.,
1:128);
concentration
ratios
where
the
denominator
is
significant
(e.g.
(e.g.,
5mg/10mL);
observed
frequencies
(e.g.
(e.g.,
2
repetitions/8
hr),
and
where
the
numerator
or
denominator
is
an
amount
of
a
currency
(no
UCUM
code
for
$
etc.).
Common
factors
in
the
numerator
and
denominator
are
not
automatically
cancelled
out.
Ratios
are
not
simply
"structured
numbers"
-
for
example,
blood
pressure
measurements
(e.g.
(e.g.,
"120/60")
are
not
ratios.
A proper ratio has both a numerator and a denominator; however, these are not mandatory in order to allow an invalid ratio with an extension with further information.
Constraints
| id | Level | Location | Description | Expression |
rat-1
|
Rule | (base) | Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present | (numerator.exists() and denominator.exists()) or (numerator.empty() and denominator.empty() and extension.exists()) |
The context of use may require particular types of Quantity for the numerator or denominator.
Ratio
is
used
in
the
following
places:
Dosage
,
AdministrableProductDefinition
,
AuditEvent
,
BiologicallyDerivedProduct
,
Goal
,
Ingredient
,
InventoryItem
MeasureReport
,
Medication
,
MedicationAdministration
,
MedicationKnowledge
,
NutritionIntake
,
NutritionOrder
,
NutritionProduct
,
Observation
,
PlanDefinition
,
ServiceRequest
and
SubstanceDefinition
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A range of ratios of two Quantity values expressed as a low numerator, a high numerator, and a denominator.
The RatioRange datatype should only be used to express a range of ratios if the relationship cannot be suitably expressed using a Range and a common unit. Where the denominator value is known to be fixed to "1", Range should be used instead of RatioRange.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ
|
Element |
Range
of
ratio
values
+ Rule: One of lowNumerator or highNumerator and denominator SHALL be present, or all are absent. If all are absent, there SHALL be some extension present + Rule: If present, lowNumerator SHALL have a lower value than highNumerator Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | SimpleQuantity |
Low
Numerator
limit
|
|
Σ C | 0..1 | SimpleQuantity |
High
Numerator
limit
|
|
Σ C | 0..1 | SimpleQuantity |
Denominator
value
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<RatioRange xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <lowNumerator><!-- I 0..1 Quantity(SimpleQuantity) Low Numerator limit --></lowNumerator> <highNumerator><!-- I 0..1 Quantity(SimpleQuantity) High Numerator limit --></highNumerator> <denominator><!-- I 0..1 Quantity(SimpleQuantity) Denominator value --></denominator> </RatioRange>
JSON Template
{
// from Element: extension
"lowNumerator" : { Quantity(SimpleQuantity) }, // I Low Numerator limit
"highNumerator" : { Quantity(SimpleQuantity) }, // I High Numerator limit
"denominator" : { Quantity(SimpleQuantity) } // I Denominator value
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:lowNumerator [ Quantity(SimpleQuantity) ] ; # 0..1 I Low Numerator limit fhir:highNumerator [ Quantity(SimpleQuantity) ] ; # 0..1 I High Numerator limit fhir:denominator [ Quantity(SimpleQuantity) ] ; # 0..1 I Denominator value ]
Changes
since
Release
3
4
Changes from both R4 and R4B
This complex-type did not exist in Release R4
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ
|
Element |
Range
of
ratio
values
+ Rule: One of lowNumerator or highNumerator and denominator SHALL be present, or all are absent. If all are absent, there SHALL be some extension present + Rule: If present, lowNumerator SHALL have a lower value than highNumerator Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | SimpleQuantity |
Low
Numerator
limit
|
|
Σ C | 0..1 | SimpleQuantity |
High
Numerator
limit
|
|
Σ C | 0..1 | SimpleQuantity |
Denominator
value
|
Documentation
for
this
format
|
||||
XML Template
<RatioRange xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <lowNumerator><!-- I 0..1 Quantity(SimpleQuantity) Low Numerator limit --></lowNumerator> <highNumerator><!-- I 0..1 Quantity(SimpleQuantity) High Numerator limit --></highNumerator> <denominator><!-- I 0..1 Quantity(SimpleQuantity) Denominator value --></denominator> </RatioRange>
JSON Template
{
// from Element: extension
"lowNumerator" : { Quantity(SimpleQuantity) }, // I Low Numerator limit
"highNumerator" : { Quantity(SimpleQuantity) }, // I High Numerator limit
"denominator" : { Quantity(SimpleQuantity) } // I Denominator value
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:lowNumerator [ Quantity(SimpleQuantity) ] ; # 0..1 I Low Numerator limit fhir:highNumerator [ Quantity(SimpleQuantity) ] ; # 0..1 I High Numerator limit fhir:denominator [ Quantity(SimpleQuantity) ] ; # 0..1 I Denominator value ]
Changes from both R4 and R4B
This complex-type did not exist in Release R4
See the Full Difference for further information
Common
factors
in
the
numerator
and
denominator
are
not
automatically
cancelled
out.
Ratios
are
not
simply
"structured
numbers"
-
for
example,
blood
pressure
measurements
(e.g.
(e.g.,
"120/60")
are
not
ratios.
A proper ratio range has one of the numerators and a denominator; however, these are not mandatory in order to allow an invalid ratio with an extension with further information.
Constraints
| id | Level | Location | Description | Expression |
ratrng-1
|
Rule | (base) | One of lowNumerator or highNumerator and denominator SHALL be present, or all are absent. If all are absent, there SHALL be some extension present | ((lowNumerator.exists() or highNumerator.exists()) and denominator.exists()) or (lowNumerator.empty() and highNumerator.empty() and denominator.empty() and extension.exists()) |
ratrng-2
|
Rule | (base) | If present, lowNumerator SHALL have a lower value than highNumerator | lowNumerator.hasValue().not() or highNumerator.hasValue().not() or (lowNumerator.lowBoundary() <= highNumerator.highBoundary()) |
The context of use may require particular types of Quantity for the numerators or denominator.
RatioRange is used in the following places: Ingredient
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A time period defined by a start and end date/time.
A
period
specifies
a
range
of
times.
The
context
of
use
will
specify
whether
the
entire
range
applies
(e.g.
(e.g.,
"the
patient
was
an
inpatient
of
the
hospital
for
this
time
range")
or
one
value
from
the
period
applies
(e.g.
(e.g.,
"give
to
the
patient
between
2
and
4
pm
on
24-Jun
2013").
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Time
range
defined
by
start
and
end
date/time
+ Rule: If present, start SHALL have a lower or equal value than end Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | dateTime |
Starting
time
with
inclusive
boundary
|
|
Σ C | 0..1 | dateTime |
End
time
with
inclusive
boundary,
if
not
ongoing
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Period xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <start value="[dateTime]"/><!-- I 0..1 Starting time with inclusive boundary --> <end value="[dateTime]"/><!-- I 0..1 End time with inclusive boundary, if not ongoing --> </Period>
JSON Template
{
// from Element: extension
"start" : "<dateTime>", // I Starting time with inclusive boundary
"end" : "<dateTime>" // I End time with inclusive boundary, if not ongoing
}
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Time
range
defined
by
start
and
end
date/time
+ Rule: If present, start SHALL have a lower or equal value than end Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | dateTime |
Starting
time
with
inclusive
boundary
|
|
Σ C | 0..1 | dateTime |
End
time
with
inclusive
boundary,
if
not
ongoing
|
Documentation
for
this
format
|
||||
XML Template
<Period xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <start value="[dateTime]"/><!-- I 0..1 Starting time with inclusive boundary --> <end value="[dateTime]"/><!-- I 0..1 End time with inclusive boundary, if not ongoing --> </Period>
JSON Template
{
// from Element: extension
"start" : "<dateTime>", // I Starting time with inclusive boundary
"end" : "<dateTime>" // I End time with inclusive boundary, if not ongoing
}
If
the
start
element
is
missing,
the
start
of
the
period
is
not
known.
If
the
end
element
is
missing,
it
means
that
the
period
is
ongoing.
Alternatively,
this
may
be
represented
by
having
an
explicit
end
in
the
future,
in
which
case
this
means
the
period
is
expected/planned
to
end
at
the
specified
time.
The end value includes any matching date/time. For example, the period 2011-05-23 to 2011-05-27 includes all the times from the start of the 23rd May through to the end of the 27th of May.
Constraints
| id | Level | Location | Description | Expression |
per-1
|
Rule | (base) | If present, start SHALL have a lower or equal value than end | start.hasValue().not() or end.hasValue().not() or (start.lowBoundary() <= end.highBoundary()) |
Period
is
used
in
the
following
places:
Address
,
DataRequirement
,
HumanName
,
ContactPoint
,
MarketingStatus
,
Identifier
,
Availability
,
Timing
,
ExtendedContactDetail
,
Account
,
ActivityDefinition
,
AdverseEvent
,
AllergyIntolerance
,
Appointment
,
AuditEvent
,
BiologicallyDerivedProduct
,
CarePlan
,
CareTeam
,
ChargeItem
,
ChargeItemDefinition
,
Citation
,
Claim
,
ClaimResponse
,
ClinicalAssessment
,
CodeSystem
,
CommunicationRequest
,
Composition
,
ConceptMap
,
Condition
,
Consent
,
Contract
,
Coverage
,
CoverageEligibilityRequest
,
CoverageEligibilityResponse
,
DetectedIssue
,
DeviceAlert
,
DeviceAssociation
,
DeviceDefinition
,
DeviceRequest
,
DeviceUsage
,
DiagnosticReport
,
DocumentReference
,
Encounter
,
EncounterHistory
,
Endpoint
,
EpisodeOfCare
,
EventDefinition
,
EvidenceVariable
,
ExplanationOfBenefit
,
FamilyMemberHistory
,
Flag
,
Group
,
HealthcareService
,
InsuranceProduct
,
InventoryReport
,
Invoice
,
Library
,
Measure
,
MeasureReport
,
MedicationAdministration
,
MedicationKnowledge
,
MedicationRequest
,
MedicationStatement
,
MedicinalProductDefinition
,
MetadataResource
,
NamingSystem
,
NutritionIntake
,
Observation
,
ObservationDefinition
,
Organization
,
OrganizationAffiliation
,
Patient
,
PaymentReconciliation
,
Permission
,
PersonalRelationship
,
PlanDefinition
,
Practitioner
,
PractitionerRole
,
Procedure
,
Provenance
,
Questionnaire
,
RegulatedAuthorization
,
RelatedPerson
,
RequestOrchestration
,
ResearchStudy
,
ResearchSubject
,
RiskAssessment
,
Schedule
,
ServiceRequest
,
Specimen
,
SpecimenDefinition
,
SubscriptionTopic
,
SupplyDelivery
,
SupplyRequest
,
Task
,
TestReport
,
Transport
and
ValueSet
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A SampledData provides a concise way to handle the data produced by devices that sample a particular physical state at a high frequency. A typical use for this is for the output of an ECG or EKG device. The datatype includes a series of raw decimal values (which are mostly simple integers) or codes, along with adjustments for scale and factor. These are interpreted such that
original measured value[i] = SampledData.data[i] * SampledData.factor + SampledData.origin.value
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
Element |
A
series
of
measurements
taken
by
a
device
+ Rule: A SampledData SHALL have either an interval and offsets but not both Elements defined in Ancestors: id , extension |
|
|
Σ | 1..1 | SimpleQuantity |
Zero
value
and
units
|
|
Σ C | 0..1 | decimal |
Number
of
intervalUnits
between
samples
|
|
Σ | 1..1 | code |
The
measurement
unit
of
the
interval
between
samples
Binding: UCUM Codes ( Required ) |
|
Σ | 0..1 | decimal |
Multiply
data
by
this
before
adding
to
origin
|
|
Σ | 0..1 | decimal |
Lower
limit
of
detection
|
|
Σ | 0..1 | decimal |
Upper
limit
of
detection
|
|
Σ | 1..1 | positiveInt |
Number
of
sample
points
at
each
time
point
|
|
0..1 | canonical ( ConceptMap ) |
Defines
the
codes
used
in
the
data
|
|
|
C | 0..1 | string |
Offsets,
typically
in
time,
at
which
data
values
were
taken
|
|
0..1 | string |
Decimal
values
with
spaces,
or
"E"
|
"U"
|
"L",
or
another
code
|
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<SampledData xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <origin><!-- 1..1 Quantity(SimpleQuantity) Zero value and units --></origin> <interval value="[decimal]"/><!-- I 0..1 Number of intervalUnits between samples --> <intervalUnit value="[code]"/><!-- 1..1 The measurement unit of the interval between samples --> <factor value="[decimal]"/><!-- 0..1 Multiply data by this before adding to origin --> <lowerLimit value="[decimal]"/><!-- 0..1 Lower limit of detection --> <upperLimit value="[decimal]"/><!-- 0..1 Upper limit of detection --> <dimensions value="[positiveInt]"/><!-- 1..1 Number of sample points at each time point --> <codeMap><!-- 0..1 canonical(ConceptMap) Defines the codes used in the data --></codeMap><<offsets value="[string]"/><!-- I 0..1 Offsets, typically in time, at which data values were taken --> <data value="[string]"/><!-- 0..1 Decimal values with spaces, or "E" | "U" | "L", or another code --> </SampledData>
JSON Template
{
// from Element: extension
"origin" : { Quantity(SimpleQuantity) }, // R! Zero value and units
"interval" : <decimal>, // I Number of intervalUnits between samples
"intervalUnit" : "<code>", // R! The measurement unit of the interval between samples
"factor" : <decimal>, // Multiply data by this before adding to origin
"lowerLimit" : <decimal>, // Lower limit of detection
"upperLimit" : <decimal>, // Upper limit of detection
"dimensions" : "<positiveInt>", // R! Number of sample points at each time point
"codeMap" : "<canonical(ConceptMap)>", // Defines the codes used in the data
"
"offsets" : "<string>", // I Offsets, typically in time, at which data values were taken
"data" : "<string>" // Decimal values with spaces, or "E" | "U" | "L", or another code
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:origin [ Quantity(SimpleQuantity) ] ; # 1..1 Zero value and units fhir:interval [ decimal ] ; # 0..1 I Number of intervalUnits between samples fhir:intervalUnit [ code ] ; # 1..1 The measurement unit of the interval between samples fhir:factor [ decimal ] ; # 0..1 Multiply data by this before adding to origin fhir:lowerLimit [ decimal ] ; # 0..1 Lower limit of detection fhir:upperLimit [ decimal ] ; # 0..1 Upper limit of detection fhir:dimensions [ positiveInt ] ; # 1..1 Number of sample points at each time point fhir:codeMap [ canonical(ConceptMap) ] ; # 0..1 Defines the codes used in the datafhir:fhir:offsets [ string ] ; # 0..1 I Offsets, typically in time, at which data values were taken fhir:data [ string ] ; # 0..1 Decimal values with spaces, or "E" | "U" | "L", or another code ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| SampledData | |
| SampledData.interval |
|
| SampledData.intervalUnit |
|
| SampledData.codeMap |
|
| SampledData.offsets |
|
| SampledData.period |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
Element |
A
series
of
measurements
taken
by
a
device
+ Rule: A SampledData SHALL have either an interval and offsets but not both Elements defined in Ancestors: id , extension |
|
|
Σ | 1..1 | SimpleQuantity |
Zero
value
and
units
|
|
Σ C | 0..1 | decimal |
Number
of
intervalUnits
between
samples
|
|
Σ | 1..1 | code |
The
measurement
unit
of
the
interval
between
samples
Binding: UCUM Codes ( Required ) |
|
Σ | 0..1 | decimal |
Multiply
data
by
this
before
adding
to
origin
|
|
Σ | 0..1 | decimal |
Lower
limit
of
detection
|
|
Σ | 0..1 | decimal |
Upper
limit
of
detection
|
|
Σ | 1..1 | positiveInt |
Number
of
sample
points
at
each
time
point
|
|
0..1 | canonical ( ConceptMap ) |
Defines
the
codes
used
in
the
data
|
|
|
C | 0..1 | string |
Offsets,
typically
in
time,
at
which
data
values
were
taken
|
|
0..1 | string |
Decimal
values
with
spaces,
or
"E"
|
"U"
|
"L",
or
another
code
|
|
Documentation
for
this
format
|
||||
XML Template
<SampledData xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <origin><!-- 1..1 Quantity(SimpleQuantity) Zero value and units --></origin> <interval value="[decimal]"/><!-- I 0..1 Number of intervalUnits between samples --> <intervalUnit value="[code]"/><!-- 1..1 The measurement unit of the interval between samples --> <factor value="[decimal]"/><!-- 0..1 Multiply data by this before adding to origin --> <lowerLimit value="[decimal]"/><!-- 0..1 Lower limit of detection --> <upperLimit value="[decimal]"/><!-- 0..1 Upper limit of detection --> <dimensions value="[positiveInt]"/><!-- 1..1 Number of sample points at each time point --> <codeMap><!-- 0..1 canonical(ConceptMap) Defines the codes used in the data --></codeMap><<offsets value="[string]"/><!-- I 0..1 Offsets, typically in time, at which data values were taken --> <data value="[string]"/><!-- 0..1 Decimal values with spaces, or "E" | "U" | "L", or another code --> </SampledData>
JSON Template
{
// from Element: extension
"origin" : { Quantity(SimpleQuantity) }, // R! Zero value and units
"interval" : <decimal>, // I Number of intervalUnits between samples
"intervalUnit" : "<code>", // R! The measurement unit of the interval between samples
"factor" : <decimal>, // Multiply data by this before adding to origin
"lowerLimit" : <decimal>, // Lower limit of detection
"upperLimit" : <decimal>, // Upper limit of detection
"dimensions" : "<positiveInt>", // R! Number of sample points at each time point
"codeMap" : "<canonical(ConceptMap)>", // Defines the codes used in the data
"
"offsets" : "<string>", // I Offsets, typically in time, at which data values were taken
"data" : "<string>" // Decimal values with spaces, or "E" | "U" | "L", or another code
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:origin [ Quantity(SimpleQuantity) ] ; # 1..1 Zero value and units fhir:interval [ decimal ] ; # 0..1 I Number of intervalUnits between samples fhir:intervalUnit [ code ] ; # 1..1 The measurement unit of the interval between samples fhir:factor [ decimal ] ; # 0..1 Multiply data by this before adding to origin fhir:lowerLimit [ decimal ] ; # 0..1 Lower limit of detection fhir:upperLimit [ decimal ] ; # 0..1 Upper limit of detection fhir:dimensions [ positiveInt ] ; # 1..1 Number of sample points at each time point fhir:codeMap [ canonical(ConceptMap) ] ; # 0..1 Defines the codes used in the datafhir:fhir:offsets [ string ] ; # 0..1 I Offsets, typically in time, at which data values were taken fhir:data [ string ] ; # 0..1 Decimal values with spaces, or "E" | "U" | "L", or another code ]
Changes from both R4 and R4B
| SampledData | |
| SampledData.interval |
|
| SampledData.intervalUnit |
|
| SampledData.codeMap |
|
| SampledData.offsets |
|
| SampledData.period |
|
See the Full Difference for further information
SampledData supports multi-dimensional data, where there is more than one measurement for each time point. If there is more than one dimension, the different dimensions are interlaced - all the data points for a particular time are represented together.
Data points are separated by by a single space (Unicode character u20). Each data point is either a decimal value or a code. Three special codes are defined:
E
:
error
-
no
valid
measurement
available
for
this
data
point
L
:
below
detection
point
-
the
value
was
below
the
device's
detection
limit
(
lowerLimit
,
which
must
be
provided
if
this
code
is
used)
U
:
above
detection
point
-
the
value
was
above
the
device's
detection
limit
(
upperLimit
,
which
must
be
provided
if
this
code
is
used)
Other
codes
may
be
used.
In
this
case,
the
meaning
of
the
codes
is
specified
by
the
codeMap
property
which
references
a
ConceptMap
that
defines
the
codes
used
in
the
data,
and
maps
the
codes
to
properly
defined
concepts
in
a
CodeSystem
.
Note
that
in
this
case,
source
system
defined
in
the
ConceptMap
is
not
used
in
the
SampledData
and
is
ignored.
There
SHALL
only
be
one
group
in
the
ConceptMap.
The
ConceptMap
cannot
define
meanings
for
any
numerical
values,
nor
for
the
codes
'E',
'U',
or
'L'
(nor,
for
safety,
'e',
'u',
or
'l'),
since
they
always
have
the
meaning
as
defined
above.
There
is
no
escape
sequences;
codes
cannot
contain
spaces.
Also,
to
make
parsing
simpler,
codes
cannot
start
with
numerals.
Constraints
| id | Level | Location | Description | Expression |
sdd-1
| Rule | (base) | A SampledData SHALL have either an interval and offsets but not both | interval.exists().not() xor offsets.exists().not() |
SampledData is used in the following places: Observation
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A string, typically numeric or alphanumeric, that is associated with a single object or entity within a given system. Typically, identifiers are used to connect content in resources to external content available in other frameworks or protocols. Identifiers are associated with objects and may be changed or retired due to human or system process and errors.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
identifier
intended
for
computation
+ Warning: Identifier with no value has limited utility. If communicating that an identifier value has been suppressed or missing, the value element SHOULD be present with an extension indicating the missing semantic - e.g. data-absent-reason Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
usual
|
official
|
temp
|
secondary
|
old
(If
known)
Binding: IdentifierUse ( Required ) |
|
Σ | 0..1 | CodeableConcept |
Description
of
identifier
Binding: Identifier Type Codes ( Extensible ) |
|
Σ | 0..1 | uri |
The
namespace
for
the
identifier
value
|
|
Σ C | 0..1 | string |
The
value
that
is
unique
|
|
Σ | 0..1 | Period |
Time
period
when
id
is/was
valid
for
use
|
|
Σ | 0..1 | Reference ( Organization ) |
Organization
that
issued
id
(may
be
just
text)
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Identifier xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | secondary | old (If known) --> <type><!-- 0..1 CodeableConcept Description of identifier --></type> <system value="[uri]"/><!-- 0..1 The namespace for the identifier value --> <value value="[string]"/><!-- I 0..1 The value that is unique --> <period><!-- 0..1 Period Time period when id is/was valid for use --></period> <assigner><!-- 0..1 Reference(Organization) Organization that issued id (may be just text) --></assigner> </Identifier>
JSON Template
{
// from Element: extension
"use" : "<code>", // usual | official | temp | secondary | old (If known)
"type" : { CodeableConcept }, // Description of identifier
"system" : "<uri>", // The namespace for the identifier value
"value" : "<string>", // I The value that is unique
"period" : { Period }, // Time period when id is/was valid for use
"assigner" : { Reference(Organization) } // Organization that issued id (may be just text)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 usual | official | temp | secondary | old (If known) fhir:type [ CodeableConcept ] ; # 0..1 Description of identifier fhir:system [ uri ] ; # 0..1 The namespace for the identifier value fhir:value [ string ] ; # 0..1 I The value that is unique fhir:period [ Period ] ; # 0..1 Time period when id is/was valid for use fhir:assigner [ Reference(Organization) ] ; # 0..1 Organization that issued id (may be just text) ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
identifier
intended
for
computation
+ Warning: Identifier with no value has limited utility. If communicating that an identifier value has been suppressed or missing, the value element SHOULD be present with an extension indicating the missing semantic - e.g. data-absent-reason Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
usual
|
official
|
temp
|
secondary
|
old
(If
known)
Binding: IdentifierUse ( Required ) |
|
Σ | 0..1 | CodeableConcept |
Description
of
identifier
Binding: Identifier Type Codes ( Extensible ) |
|
Σ | 0..1 | uri |
The
namespace
for
the
identifier
value
|
|
Σ C | 0..1 | string |
The
value
that
is
unique
|
|
Σ | 0..1 | Period |
Time
period
when
id
is/was
valid
for
use
|
|
Σ | 0..1 | Reference ( Organization ) |
Organization
that
issued
id
(may
be
just
text)
|
Documentation
for
this
format
|
||||
XML Template
<Identifier xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | secondary | old (If known) --> <type><!-- 0..1 CodeableConcept Description of identifier --></type> <system value="[uri]"/><!-- 0..1 The namespace for the identifier value --> <value value="[string]"/><!-- I 0..1 The value that is unique --> <period><!-- 0..1 Period Time period when id is/was valid for use --></period> <assigner><!-- 0..1 Reference(Organization) Organization that issued id (may be just text) --></assigner> </Identifier>
JSON Template
{
// from Element: extension
"use" : "<code>", // usual | official | temp | secondary | old (If known)
"type" : { CodeableConcept }, // Description of identifier
"system" : "<uri>", // The namespace for the identifier value
"value" : "<string>", // I The value that is unique
"period" : { Period }, // Time period when id is/was valid for use
"assigner" : { Reference(Organization) } // Organization that issued id (may be just text)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 usual | official | temp | secondary | old (If known) fhir:type [ CodeableConcept ] ; # 0..1 Description of identifier fhir:system [ uri ] ; # 0..1 The namespace for the identifier value fhir:value [ string ] ; # 0..1 I The value that is unique fhir:period [ Period ] ; # 0..1 Time period when id is/was valid for use fhir:assigner [ Reference(Organization) ] ; # 0..1 Organization that issued id (may be just text) ]
The
system
is
an
absolute
URI
that
defines
a
set
of
identifiers
(i.e.
(i.e.,
how
the
value
is
made
unique).
It
might
be
a
specific
application
or
a
recognized
standard/specification
for
a
set
of
identifiers
or
a
way
of
making
identifiers
unique.
FHIR
defines
some
useful
or
important
system
URIs
directly
.
Here
are
some
example
identifier
namespaces:
http://hl7.org/fhir/sid/us-ssn
for
United
States
Social
Security
Number
(SSN)
values
http://ns.electronichealth.net.au/id/hi/ihi/1.0
for
Australian
Individual
Healthcare
Identifier
(IHI)
numbers
urn:ietf:rfc:3986
for
when
the
value
of
the
identifier
is
itself
a
globally
unique
URI
If
the
system
is
a
URL,
it
SHOULD
resolve.
Resolution
might
be
to
a
web
page
that
describes
the
identifier
system
and/or
supports
look-up
of
identifiers.
Alternatively,
it
could
be
to
a
NamingSystem
resource
instance.
Resolvable
URLs
are
generally
preferred
by
implementers
over
non-resolvable
URNs,
particularly
opaque
URNs
such
as
OIDs
(urn:oid:)
or
UUIDs
(urn:uuid:).
If
used,
being
exchanged
across
institutional
boundaries,
OIDs
and
UUIDs
may
SHOULD
be
registered
available
to
communicating
participants
in
the
a
shared
registry.
The
HL7
OID
registry
and
SHOULD
may
be
registered
if
the
content
is
shared
used
for
this
purpose
for
OIDs.
terminology.hl7.org
may
also
be
used
to
register
NamingSystems
for
identifiers
of
broad
international
or
exchanged
across
institutional
boundaries.
national
interest.
It is up to the implementer organization to determine an appropriate URL or URN structure that will avoid collisions and to manage that space (and the resolvability of URLs) over time.
Note that the scope of a given identifier system may extend beyond identifiers that might be captured by a single resource. For example, some systems might draw all "order" identifiers from a single namespace, though some might be used on MedicationRequest while others would appear on ServiceRequest .
The
value
SHALL
be
unique
within
the
defined
system
and
have
a
consistent
meaning
wherever
it
appears.
Identifier.system
is
always
case
sensitive.
Identifier.value
is
to
be
treated
as
case
sensitive
unless
knowledge
of
the
Identifier.system
allows
the
processer
to
be
confident
that
non-case-sensitive
processing
is
safe.
If
Identifiers
are
expected
to
be
globally
unique
by
nature
of
the
identifier
value
itself
combination
of
system
and
value.
In
some
cases,
the
'value'
element
is
naturally
a
already
globally
unique
URI
(e.g.
independent
of
Identifier.system.
Typically,
these
are
absolute
URIs
of
some
kind
(e.g.,
an
OID,
a
UUID,
or
a
URI
with
no
trailing
local
part),
part).
In
such
a
case,
an
Identifier.system
value
may
be
established
by
the
assigner
or
community
to
identify
that
collection
of
identifiers
When
using
globally
unique
identifiers
that
are
expressible
as
URIs
as
a
value,
a
system
SHALL
be
provided.
If
there
is
no
assigned
system,
then
the
system
SHALL
be
"
urn:ietf:rfc:3986
",
and
the
URI
is
in
the
value
is
expressed
as
a
URI
(OIDs
and
UUIDs
using
urn:oid:
and
urn:uuid:
-
see
note
on
the
V3
mapping
and
the
examples
).
Naturally
globally
unique
identifiers
are
those
for
which
no
other
system
has
been
assigned
and
where
the
value
of
the
identifier
is
reasonably
expected
to
not
be
re-used.
Typically,
these
are
absolute
URIs
of
some
kind.
.
In
some
cases,
the
system
might
not
be
known
-
only
the
value
is
known
(e.g.
(e.g.,
a
simple
device
that
scans
a
barcode),
or
the
system
is
known
implicitly
(simple
exchange
in
a
limited
context,
often
driven
by
barcode
readers).
In
this
case,
no
useful
matching
may
be
performed
using
the
value
unless
the
system
can
be
safely
inferred
by
the
context.
Applications
should
provide
a
system
wherever
possible,
as
information
sharing
in
a
wider
context
is
very
likely
to
arise
eventually,
and
values
without
a
system
are
inherently
limited
in
use.
Whether
or
not
the
proper
Identifier.system
is
known,
the
human-readable
label
for
the
Identifier.value
typically
appears
in
Identifier.type.text
.
E.g.
e.g.,
'BC
provincial
health
number'.
In
addition
to
the
system
(which
provides
a
uniqueness
scope)
and
the
value
,
identifiers
may
also
have
a
type
,
which
may
be
useful
when
a
system
encounters
identifiers
with
unknown
system
values.
Note,
however,
that
the
type
of
an
identifier
is
not
a
well-controlled
vocabulary
with
wide
variations
in
practice.
The
type
deals
only
with
general
categories
of
identifiers
and
SHOULD
not
be
used
for
codes
that
correspond
1..1
with
the
Identifier.system.
Some
identifiers
may
fall
into
multiple
categories
due
to
variations
in
common
usage.
The
assigner
is
used
to
indicate
what
registry/state/facility/etc.
assigned
the
identifier.
As
a
Reference
,
the
assigner
can
include
just
a
text
description
in
the
display
.
Constraints
| id | Level | Location | Description | Expression |
ident-1
|
Warning | (base) | Identifier with no value has limited utility. If communicating that an identifier value has been suppressed or missing, the value element SHOULD be present with an extension indicating the missing semantic - e.g. data-absent-reason | value.exists() |
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| Identifier.use | IdentifierUse | Required |
Identifies the purpose for this identifier, if known . |
| Identifier.type | IdentifierTypeCodes | Extensible |
A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
Identifier
is
used
in
the
following
places:
Reference
,
Account
,
ActivityDefinition
,
ActorDefinition
,
AdministrableProductDefinition
,
AdverseEvent
,
AllergyIntolerance
,
Appointment
,
AppointmentResponse
,
ArtifactAssessment
,
Basic
,
BiologicallyDerivedProduct
,
BiologicallyDerivedProductDispense
,
BodyStructure
,
Bundle
,
CanonicalResource
,
CapabilityStatement
,
CarePlan
,
CareTeam
,
ChargeItem
,
ChargeItemDefinition
,
Citation
,
Claim
,
ClaimResponse
,
ClinicalAssessment
,
ClinicalUseDefinition
,
CodeSystem
,
Communication
,
CommunicationRequest
,
Composition
,
ConceptMap
,
Condition
,
ConditionDefinition
,
Consent
,
Contract
,
Coverage
,
CoverageEligibilityRequest
,
CoverageEligibilityResponse
,
DetectedIssue
,
Device
,
DeviceAlert
,
DeviceAssociation
,
DeviceDefinition
,
DeviceDispense
,
DeviceMetric
,
DeviceRequest
,
DeviceUsage
,
DiagnosticReport
,
DocumentReference
,
Encounter
,
EncounterHistory
,
Endpoint
,
EnrollmentRequest
,
EnrollmentResponse
,
EpisodeOfCare
,
EventDefinition
,
Evidence
,
EvidenceVariable
,
ExampleScenario
,
ExplanationOfBenefit
,
FamilyMemberHistory
,
Flag
,
FormularyItem
,
GenomicStudy
,
Goal
,
GraphDefinition
,
Group
,
GuidanceResponse
,
HealthcareService
,
ImagingSelection
,
ImagingStudy
,
Immunization
,
ImmunizationEvaluation
,
ImmunizationRecommendation
,
ImplementationGuide
,
Ingredient
,
InsurancePlan
,
InsuranceProduct
,
InventoryItem
,
InventoryReport
,
Invoice
,
Library
,
List
,
Location
,
ManufacturedItemDefinition
,
Measure
,
MeasureReport
,
Medication
,
MedicationAdministration
,
MedicationDispense
,
MedicationKnowledge
,
MedicationRequest
,
MedicationStatement
,
MedicinalProductDefinition
,
MessageDefinition
,
MessageHeader
,
MolecularDefinition
,
MolecularSequence
,
NamingSystem
,
NutritionIntake
,
NutritionOrder
,
NutritionProduct
,
Observation
,
ObservationDefinition
,
OperationDefinition
,
Organization
,
OrganizationAffiliation
,
PackagedProductDefinition
,
Patient
,
PaymentNotice
,
PaymentReconciliation
,
Permission
,
Person
,
PlanDefinition
,
Practitioner
,
PractitionerRole
,
Procedure
,
Questionnaire
,
QuestionnaireResponse
,
RegulatedAuthorization
,
RelatedPerson
,
RequestOrchestration
,
Requirements
,
ResearchStudy
,
ResearchSubject
,
RiskAssessment
,
Schedule
,
SearchParameter
,
ServiceRequest
,
Slot
,
Specimen
,
SpecimenDefinition
,
StructureDefinition
,
StructureMap
,
Subscription
,
SubscriptionTopic
,
Substance
,
SubstanceDefinition
,
SubstanceNucleicAcid
,
SubstancePolymer
,
SubstanceProtein
,
SubstanceReferenceInformation
,
SubstanceSourceMaterial
,
SupplyDelivery
,
SupplyRequest
,
Task
,
TerminologyCapabilities
,
TestPlan
,
TestReport
,
TestScript
,
Transport
,
ValueSet
and
VisionPrescription
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A name of a human with text, parts and usage information.
Names may be changed or repudiated. People may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts is not always significant. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems SHALL care about name parts around the world varies widely.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Name
of
a
human
or
other
living
entity
-
parts
and
usage
Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
usual
|
official
|
temp
|
nickname
|
anonymous
|
old
|
maiden
Binding: NameUse ( Required ) |
|
Σ | 0..1 | string |
Text
representation
of
the
full
name
|
|
Σ | 0..1 | string |
Family
name
(often
called
'Surname')
|
|
Σ | 0..* | string |
Given
names
(not
always
'first').
Includes
middle
names
This repeating element order: Given Names appear in the correct order for presenting the name |
|
Σ | 0..* | string |
Parts
that
come
before
the
name
This repeating element order: Prefixes appear in the correct order for presenting the name |
|
Σ | 0..* | string |
Parts
that
come
after
the
name
This repeating element order: Suffixes appear in the correct order for presenting the name |
|
Σ | 0..1 | Period |
Time
period
when
name
was/is
in
use
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<HumanName xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | nickname | anonymous | old | maiden --> <text value="[string]"/><!-- 0..1 Text representation of the full name --> <family value="[string]"/><!-- 0..1 Family name (often called 'Surname') --> <given value="[string]"/><!-- 0..* Given names (not always 'first'). Includes middle names --> <prefix value="[string]"/><!-- 0..* Parts that come before the name --> <suffix value="[string]"/><!-- 0..* Parts that come after the name --> <period><!-- 0..1 Period Time period when name was/is in use --></period> </HumanName>
JSON Template
{
// from Element: extension
"use" : "<code>", // usual | official | temp | nickname | anonymous | old | maiden
"text" : "<string>", // Text representation of the full name
"family" : "<string>", // Family name (often called 'Surname')
"given" : ["<string>"], // Given names (not always 'first'). Includes middle names
"prefix" : ["<string>"], // Parts that come before the name
"suffix" : ["<string>"], // Parts that come after the name
"period" : { Period } // Time period when name was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 usual | official | temp | nickname | anonymous | old | maiden fhir:text [ string ] ; # 0..1 Text representation of the full name fhir:family [ string ] ; # 0..1 Family name (often called 'Surname') fhir:given ( [ string ] ... ) ; # 0..* Given names (not always 'first'). Includes middle names fhir:prefix ( [ string ] ... ) ; # 0..* Parts that come before the name fhir:suffix ( [ string ] ... ) ; # 0..* Parts that come after the name fhir:period [ Period ] ; # 0..1 Time period when name was/is in use ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| HumanName | |
| HumanName.use |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Name
of
a
human
or
other
living
entity
-
parts
and
usage
Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
usual
|
official
|
temp
|
nickname
|
anonymous
|
old
|
maiden
Binding: NameUse ( Required ) |
|
Σ | 0..1 | string |
Text
representation
of
the
full
name
|
|
Σ | 0..1 | string |
Family
name
(often
called
'Surname')
|
|
Σ | 0..* | string |
Given
names
(not
always
'first').
Includes
middle
names
This repeating element order: Given Names appear in the correct order for presenting the name |
|
Σ | 0..* | string |
Parts
that
come
before
the
name
This repeating element order: Prefixes appear in the correct order for presenting the name |
|
Σ | 0..* | string |
Parts
that
come
after
the
name
This repeating element order: Suffixes appear in the correct order for presenting the name |
|
Σ | 0..1 | Period |
Time
period
when
name
was/is
in
use
|
Documentation
for
this
format
|
||||
XML Template
<HumanName xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 usual | official | temp | nickname | anonymous | old | maiden --> <text value="[string]"/><!-- 0..1 Text representation of the full name --> <family value="[string]"/><!-- 0..1 Family name (often called 'Surname') --> <given value="[string]"/><!-- 0..* Given names (not always 'first'). Includes middle names --> <prefix value="[string]"/><!-- 0..* Parts that come before the name --> <suffix value="[string]"/><!-- 0..* Parts that come after the name --> <period><!-- 0..1 Period Time period when name was/is in use --></period> </HumanName>
JSON Template
{
// from Element: extension
"use" : "<code>", // usual | official | temp | nickname | anonymous | old | maiden
"text" : "<string>", // Text representation of the full name
"family" : "<string>", // Family name (often called 'Surname')
"given" : ["<string>"], // Given names (not always 'first'). Includes middle names
"prefix" : ["<string>"], // Parts that come before the name
"suffix" : ["<string>"], // Parts that come after the name
"period" : { Period } // Time period when name was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 usual | official | temp | nickname | anonymous | old | maiden fhir:text [ string ] ; # 0..1 Text representation of the full name fhir:family [ string ] ; # 0..1 Family name (often called 'Surname') fhir:given ( [ string ] ... ) ; # 0..* Given names (not always 'first'). Includes middle names fhir:prefix ( [ string ] ... ) ; # 0..* Parts that come before the name fhir:suffix ( [ string ] ... ) ; # 0..* Parts that come after the name fhir:period [ Period ] ; # 0..1 Time period when name was/is in use ]
Changes from both R4 and R4B
| HumanName | |
| HumanName.use |
|
See the Full Difference for further information
This table summarizes where common parts of a person's name are found.
| Name | Example | Destination / Comments |
| Surname | Smith | Family Name |
| First name | John | Given Name |
| Title | Mr. | Prefix |
| Middle Name | Samuel | Subsequent Given Names |
| Patronymic | bin Osman | Family Name |
| Multiple family names | Carreño Quiñones | Family Name. See note below about decomposition of family name |
| Initials | Q. | Given Name as initial ("." recommended) |
| Nick Name | Jock | Given name, with Use = nickname |
| Qualifications | PhD | Suffix |
| Honorifics | Senior | Suffix |
| Voorvoegsel / Nobility | van Beethoven | Family Name. See note below about decomposition of family name |
For
further
information,
including
all
W3C
International
Examples
,
consult
the
examples
.
Note:
Implementers
should
read
the
name
examples
for
a
full
understanding
of
how
name
works.
The
multiple
given
parts
and
family
name
combine
to
form
a
single
name.
Where
a
person
has
alternate
names
that
may
be
used
in
place
of
each
other
(e.g.
(e.g.,
Nicknames,
Aliases),
these
are
different
instances
of
HumanName
.
The
text
element
specifies
the
entire
name
as
it
should
be
displayed
e.g.
e.g.,
in
an
application
UI.
This
may
be
provided
instead
of
or
as
well
as
the
specific
parts.
Applications
updating
a
name
SHALL
ensure
that
when
both
text
and
parts
are
present,
no
content
is
included
in
the
text
that
isn't
found
in
a
part.
The
correct
order
of
assembly
of
the
parts
is
culture
dependent:
the
order
of
the
parts
within
a
given
part
type
has
significance
and
SHALL
be
observed.
The
appropriate
order
between
family
name
and
given
names
depends
on
culture
and
context
of
use.
Note
that
there
is
an
extension
for
the
few
times
name
assembly
order
is
not
fixed
by
the
culture.
The given name parts may contain whitespace, though generally they don't. Initials may be used in place of the full name if that is all that is recorded. Systems that operate across cultures should generally rely on the text form for presentation and use the parts for index/search functionality. For this reason, applications SHOULD populate the text element for future robustness.
In
some
cultures
(e.g.
(e.g.,
German,
Dutch,
Spanish,
Portuguese),
family
names
are
complex
and
composed
of
various
parts
that
may
need
to
be
managed
separately,
e.g.
e.g.,
they
have
differing
significance
for
searching.
In
these
cases,
the
full
family
name
is
populated
in
family
,
and
a
decomposition
of
the
name
can
be
provided
using
the
family
extensions
own-name
,
own-prefix
,
partner-name
,
partner-prefix
,
fathers-family
and
mothers-family
.
For
robust
search,
servers
should
search
the
parts
of
a
family
name
independently.
E.g.
e.g.,
Searching
either
Carreno
or
Quinones
should
match
a
family
name
of
"Carreno
Quinones".
HL7
affiliates,
and
others
producing
implementation
guides,
may
make
more
specific
recommendations
about
how
search
should
work
in
specific
cultures
or
environments.
Constraints
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| HumanName.use | NameUse | Required |
The use of a human name. |
HumanName is used in the following places: ExtendedContactDetail , Patient , Person , Practitioner and RelatedPerson
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
An address expressed using postal conventions (as opposed to GPS or other location definition formats). This datatype may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
address
expressed
using
postal
conventions
(as
opposed
to
GPS
or
other
location
definition
formats)
Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
home
|
work
|
temp
|
old
|
billing
-
purpose
of
this
address
Binding: AddressUse ( Required ) |
|
Σ | 0..1 | code |
postal
|
physical
|
both
Binding: AddressType ( Required ) |
|
Σ | 0..1 | string |
Text
representation
of
the
address
|
|
Σ | 0..* | string |
Street
name,
number,
direction
&
P.O.
Box
etc.
This repeating element order: The order in which lines should appear in an address label |
|
Σ | 0..1 | string |
Name
of
city,
town
etc.
|
|
Σ | 0..1 | string |
District
name
(aka
county)
|
|
Σ | 0..1 | string |
Sub-unit
of
country
(abbreviations
ok)
|
|
Σ | 0..1 | string |
Postal
code
for
area
|
|
Σ | 0..1 | string |
Country
(e.g.
may
be
ISO
3166
2
or
3
letter
code)
|
|
Σ | 0..1 | Period |
Time
period
when
address
was/is
in
use
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<<a href="datatypes-definitions.html#Address" title="An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.<Address xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 home | work | temp | old | billing - purpose of this address --> <type value="[code]"/><!-- 0..1 postal | physical | both --><<text value="[string]"/><!-- 0..1 Text representation of the address --> <line value="[string]"/><!-- 0..* Street name, number, direction & P.O. Box etc. --> <city value="[string]"/><!-- 0..1 Name of city, town etc. --> <district value="[string]"/><!-- 0..1 District name (aka county) --> <state value="[string]"/><!-- 0..1 Sub-unit of country (abbreviations ok) --> <postalCode value="[string]"/><!-- 0..1 Postal code for area --> <country value="[string]"/><!-- 0..1 Country (e.g. may be ISO 3166 2 or 3 letter code) --> <period><!-- 0..1 Period Time period when address was/is in use --></period> </Address>
JSON Template
{
// from Element: extension
"use" : "<code>", // home | work | temp | old | billing - purpose of this address
"type" : "<code>", // postal | physical | both
"
"text" : "<string>", // Text representation of the address
"line" : ["<string>"], // Street name, number, direction & P.O. Box etc.
"city" : "<string>", // Name of city, town etc.
"district" : "<string>", // District name (aka county)
"state" : "<string>", // Sub-unit of country (abbreviations ok)
"postalCode" : "<string>", // Postal code for area
"country" : "<string>", // Country (e.g. may be ISO 3166 2 or 3 letter code)
"period" : { Period } // Time period when address was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 home | work | temp | old | billing - purpose of this address fhir:type [ code ] ; # 0..1 postal | physical | bothfhir:fhir:text [ string ] ; # 0..1 Text representation of the address fhir:line ( [ string ] ... ) ; # 0..* Street name, number, direction & P.O. Box etc. fhir:city [ string ] ; # 0..1 Name of city, town etc. fhir:district [ string ] ; # 0..1 District name (aka county) fhir:state [ string ] ; # 0..1 Sub-unit of country (abbreviations ok) fhir:postalCode [ string ] ; # 0..1 Postal code for area fhir:country [ string ] ; # 0..1 Country (e.g. may be ISO 3166 2 or 3 letter code) fhir:period [ Period ] ; # 0..1 Time period when address was/is in use ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
An
address
expressed
using
postal
conventions
(as
opposed
to
GPS
or
other
location
definition
formats)
Elements defined in Ancestors: id , extension |
|
|
?! Σ | 0..1 | code |
home
|
work
|
temp
|
old
|
billing
-
purpose
of
this
address
Binding: AddressUse ( Required ) |
|
Σ | 0..1 | code |
postal
|
physical
|
both
Binding: AddressType ( Required ) |
|
Σ | 0..1 | string |
Text
representation
of
the
address
|
|
Σ | 0..* | string |
Street
name,
number,
direction
&
P.O.
Box
etc.
This repeating element order: The order in which lines should appear in an address label |
|
Σ | 0..1 | string |
Name
of
city,
town
etc.
|
|
Σ | 0..1 | string |
District
name
(aka
county)
|
|
Σ | 0..1 | string |
Sub-unit
of
country
(abbreviations
ok)
|
|
Σ | 0..1 | string |
Postal
code
for
area
|
|
Σ | 0..1 | string |
Country
(e.g.
may
be
ISO
3166
2
or
3
letter
code)
|
|
Σ | 0..1 | Period |
Time
period
when
address
was/is
in
use
|
Documentation
for
this
format
|
||||
XML Template
<<a href="datatypes-definitions.html#Address" title="An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.<Address xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <use value="[code]"/><!-- 0..1 home | work | temp | old | billing - purpose of this address --> <type value="[code]"/><!-- 0..1 postal | physical | both --><<text value="[string]"/><!-- 0..1 Text representation of the address --> <line value="[string]"/><!-- 0..* Street name, number, direction & P.O. Box etc. --> <city value="[string]"/><!-- 0..1 Name of city, town etc. --> <district value="[string]"/><!-- 0..1 District name (aka county) --> <state value="[string]"/><!-- 0..1 Sub-unit of country (abbreviations ok) --> <postalCode value="[string]"/><!-- 0..1 Postal code for area --> <country value="[string]"/><!-- 0..1 Country (e.g. may be ISO 3166 2 or 3 letter code) --> <period><!-- 0..1 Period Time period when address was/is in use --></period> </Address>
JSON Template
{
// from Element: extension
"use" : "<code>", // home | work | temp | old | billing - purpose of this address
"type" : "<code>", // postal | physical | both
"
"text" : "<string>", // Text representation of the address
"line" : ["<string>"], // Street name, number, direction & P.O. Box etc.
"city" : "<string>", // Name of city, town etc.
"district" : "<string>", // District name (aka county)
"state" : "<string>", // Sub-unit of country (abbreviations ok)
"postalCode" : "<string>", // Postal code for area
"country" : "<string>", // Country (e.g. may be ISO 3166 2 or 3 letter code)
"period" : { Period } // Time period when address was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:use [ code ] ; # 0..1 home | work | temp | old | billing - purpose of this address fhir:type [ code ] ; # 0..1 postal | physical | bothfhir:fhir:text [ string ] ; # 0..1 Text representation of the address fhir:line ( [ string ] ... ) ; # 0..* Street name, number, direction & P.O. Box etc. fhir:city [ string ] ; # 0..1 Name of city, town etc. fhir:district [ string ] ; # 0..1 District name (aka county) fhir:state [ string ] ; # 0..1 Sub-unit of country (abbreviations ok) fhir:postalCode [ string ] ; # 0..1 Postal code for area fhir:country [ string ] ; # 0..1 Country (e.g. may be ISO 3166 2 or 3 letter code) fhir:period [ Period ] ; # 0..1 Time period when address was/is in use ]
Address.line can include names of departments, 'care-of' instructions, and other types of information that involve the names of entities. Address.line SHOULD NOT include the 'name' of the entity on which the address appears, as this will often result in redundant appearance of the name when printing envelopes. For example, if an address appears on a Patient resource with name "Jane Smith", then "Jane Smith" ought not to appear on an address line. However "XYZ Retirement Home" would be acceptable to appear on the address line, as that is not found in the Patient.name.
The
text
element
specifies
Specifies
the
entire
address
as
it
should
be
displayed
e.g.
e.g.,
on
a
postal
label.
label,
using
a
newline
delimiter
for
each
line
(e.g.,
\n).
This
may
be
provided
instead
of
or
as
well
as
the
specific
parts.
Applications
updating
an
address
SHALL
ensure
that
when
both
text
and
parts
are
present,
no
content
is
included
in
the
text
that
isn't
found
in
a
part.
Constraints
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| Address.use | AddressUse | Required |
The use of an address. |
| Address.type | AddressType | Required |
The type of an address (physical / postal). |
Address
is
used
in
the
following
places:
ExtendedContactDetail
,
Claim
,
ClaimResponse
,
ExplanationOfBenefit
,
InventoryItem
,
Location
,
Patient
,
Person
,
Practitioner
and
RelatedPerson
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
Details for all kinds of technology-mediated contact points for a person or organization, including telephone, email, etc.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Details
of
a
Technology
mediated
contact
point
(phone,
fax,
email,
etc.)
+ Rule: A system is required if a value is provided. Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | code |
phone
|
fax
|
email
|
pager
|
url
|
sms
|
other
Binding: ContactPointSystem ( Required ) |
|
Σ C | 0..1 | string |
The
actual
contact
point
details
|
|
?! Σ | 0..1 | code |
home
|
work
|
temp
|
old
|
mobile
-
purpose
of
this
contact
point
Binding: ContactPointUse ( Required ) |
|
Σ | 0..1 | positiveInt |
Specify
preferred
order
of
use
(1
=
highest)
|
|
Σ | 0..1 | Period |
Time
period
when
the
contact
point
was/is
in
use
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<ContactPoint xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[code]"/><!-- I 0..1 phone | fax | email | pager | url | sms | other --> <value value="[string]"/><!-- I 0..1 The actual contact point details --> <use value="[code]"/><!-- 0..1 home | work | temp | old | mobile - purpose of this contact point --> <rank value="[positiveInt]"/><!-- 0..1 Specify preferred order of use (1 = highest) --> <period><!-- 0..1 Period Time period when the contact point was/is in use --></period> </ContactPoint>
JSON Template
{
// from Element: extension
"system" : "<code>", // I phone | fax | email | pager | url | sms | other
"value" : "<string>", // I The actual contact point details
"use" : "<code>", // home | work | temp | old | mobile - purpose of this contact point
"rank" : "<positiveInt>", // Specify preferred order of use (1 = highest)
"period" : { Period } // Time period when the contact point was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:system [ code ] ; # 0..1 I phone | fax | email | pager | url | sms | other fhir:value [ string ] ; # 0..1 I The actual contact point details fhir:use [ code ] ; # 0..1 home | work | temp | old | mobile - purpose of this contact point fhir:rank [ positiveInt ] ; # 0..1 Specify preferred order of use (1 = highest) fhir:period [ Period ] ; # 0..1 Time period when the contact point was/is in use ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| ContactPoint |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
Details
of
a
Technology
mediated
contact
point
(phone,
fax,
email,
etc.)
+ Rule: A system is required if a value is provided. Elements defined in Ancestors: id , extension |
|
|
Σ C | 0..1 | code |
phone
|
fax
|
email
|
pager
|
url
|
sms
|
other
Binding: ContactPointSystem ( Required ) |
|
Σ C | 0..1 | string |
The
actual
contact
point
details
|
|
?! Σ | 0..1 | code |
home
|
work
|
temp
|
old
|
mobile
-
purpose
of
this
contact
point
Binding: ContactPointUse ( Required ) |
|
Σ | 0..1 | positiveInt |
Specify
preferred
order
of
use
(1
=
highest)
|
|
Σ | 0..1 | Period |
Time
period
when
the
contact
point
was/is
in
use
|
Documentation
for
this
format
|
||||
XML Template
<ContactPoint xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <system value="[code]"/><!-- I 0..1 phone | fax | email | pager | url | sms | other --> <value value="[string]"/><!-- I 0..1 The actual contact point details --> <use value="[code]"/><!-- 0..1 home | work | temp | old | mobile - purpose of this contact point --> <rank value="[positiveInt]"/><!-- 0..1 Specify preferred order of use (1 = highest) --> <period><!-- 0..1 Period Time period when the contact point was/is in use --></period> </ContactPoint>
JSON Template
{
// from Element: extension
"system" : "<code>", // I phone | fax | email | pager | url | sms | other
"value" : "<string>", // I The actual contact point details
"use" : "<code>", // home | work | temp | old | mobile - purpose of this contact point
"rank" : "<positiveInt>", // Specify preferred order of use (1 = highest)
"period" : { Period } // Time period when the contact point was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:system [ code ] ; # 0..1 I phone | fax | email | pager | url | sms | other fhir:value [ string ] ; # 0..1 I The actual contact point details fhir:use [ code ] ; # 0..1 home | work | temp | old | mobile - purpose of this contact point fhir:rank [ positiveInt ] ; # 0..1 Specify preferred order of use (1 = highest) fhir:period [ Period ] ; # 0..1 Time period when the contact point was/is in use ]
Changes from both R4 and R4B
| ContactPoint |
|
See the Full Difference for further information
If
capturing
a
phone,
fax
or
similar
contact
point,
the
value
should
be
a
properly
formatted
telephone
number
according
to
ITU-T
E.123
.
However,
this
is
frequently
not
possible
due
to
legacy
data
and/or
clerical
practices
when
recording
contact
details.
For
this
reason,
phone,
fax,
pager,
and
email
addresses
are
not
handled
as
formal
URLs.
For
other
kinds
of
contact
points,
the
system
is
"other"
and
the
value
SHOULD
be
a
URL
so
that
its
use
can
be
determined
automatically.
Typical
URL
schemes
used
in
the
value
are
http{s}:
for
web
addresses,
and
URL
schemes
for
various
kinds
of
messaging
systems.
If
the
value
is
not
a
URL,
then
human
interpretation
will
be
required.
Constraints
| id | Level | Location | Description | Expression |
cpt-2
|
Rule | (base) | A system is required if a value is provided. | value.empty() or system.exists() |
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
| ContactPoint.system | ContactPointSystem | Required |
Telecommunications form for contact point. |
| ContactPoint.use | ContactPointUse | Required |
Use of contact point. |
ContactPoint is used in the following places: VirtualServiceDetail , ContactDetail , ExtendedContactDetail , CareTeam , Device , Endpoint , MessageHeader , Patient , Person , Practitioner , RelatedPerson and Subscription
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
Describes the occurrence of an event that may occur multiple times. Timing schedules are used for specifying when events are expected or requested to occur and may also be used to represent the summary of a past or ongoing event. For simplicity, the definitions of Timing components are expressed as 'future' events, but such components can also be used to describe historic or ongoing events.
A Timing schedule can be a list of events and/or criteria for when the event happens, which can be expressed in a structured form and/or as a code. When both event and a repeating specification are provided, the list of events should be understood as an interpretation of the information in the repeat structure.
Note:
The
Timing
datatype
allows
modifier
extensions
.
(though
Timing.repeat
does
not).
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
timing
schedule
that
specifies
an
event
that
may
occur
multiple
times
Elements defined in Ancestors: id , extension , modifierExtension |
|
|
Σ | 0..* | dateTime |
When
the
event
occurs
|
|
Σ C | 0..1 | Element |
When
the
event
is
to
occur
+ Rule: if there's a duration, there needs to be duration units + Rule: if there's a period, there needs to be period units + Rule: duration SHALL be a non-negative value + Rule: period SHALL be a non-negative value + Rule: If there's a periodMax, there must be a period + Rule: If there's a durationMax, there must be a duration + Rule: If there's a countMax, there must be a count + Rule: If there's an offset, there must be a when (and not C, CM, CD, CV) + Rule: If there's a timeOfDay, there cannot be a when, or vice versa + Rule: Only use startOffset when frequency is present and > 1 + Rule: Only use endOffset when frequency is present and > 1 |
|
Σ | 0..1 |
Length/Range
of
lengths,
or
(Start
and/or
end)
limits
|
|
|
Duration | |||
|
Range | |||
|
Period | |||
|
Σ C | 0..1 | positiveInt |
Number
of
times
to
repeat
|
|
Σ C | 0..1 | positiveInt |
Maximum
number
of
times
to
repeat
|
|
Σ C | 0..1 | decimal |
How
long
when
it
happens
|
|
Σ C | 0..1 | decimal |
How
long
when
it
happens
(Max)
|
|
Σ C | 0..1 | code |
s
|
min
|
h
|
d
|
wk
|
mo
|
a
-
unit
of
time
(UCUM)
Binding: UnitsOfTime ( Required ) |
|
Σ | 0..1 | positiveInt |
Indicates
the
number
of
repetitions
that
should
occur
within
a
period.
I.e.
Event
occurs
frequency
times
per
period
|
|
Σ | 0..1 | positiveInt |
Event
occurs
up
to
frequencyMax
times
per
period
|
|
Σ C | 0..1 | decimal |
The
duration
to
which
the
frequency
applies.
I.e.
Event
occurs
frequency
times
per
period
|
|
Σ C | 0..1 | decimal |
Upper
limit
of
period
(3-4
hours)
|
|
Σ C | 0..1 | code |
s
|
min
|
h
|
d
|
wk
|
mo
|
a
-
unit
of
time
(UCUM)
Binding: UnitsOfTime ( Required ) |
| Σ | 0..1 | SimpleQuantity |
Events
within
the
repeat
period
do
not
start
until
startOffset
has
elapsed
|
![]() ![]() ![]() | Σ | 0..1 | SimpleQuantity |
Events
within
the
repeat
period
step
once
endOffset
before
the
end
of
the
period
|
|
Σ | 0..* | code |
mon
|
tue
|
wed
|
thu
|
fri
|
sat
|
sun
Binding: Days Of Week ( Required ) |
|
Σ C | 0..* | time |
Time
of
day
for
action
|
|
Σ C | 0..* | code |
Code
for
time
period
of
occurrence
Binding: EventTiming ( Required ) |
|
Σ C | 0..1 | unsignedInt |
Minutes
from
event
(before
or
after)
|
|
Σ | 0..1 | CodeableConcept |
C
|
BID
|
TID
|
QID
|
AM
|
PM
|
QD
|
QOD
|
+
Binding: TimingAbbreviation ( Preferred ) |
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Timing xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <event value="[dateTime]"/><!-- 0..* When the event occurs --> <repeat> <!-- 0..1 When the event is to occur --> <bounds[x]><!-- 0..1 Duration|Range|Period Length/Range of lengths, or (Start and/or end) limits --></bounds[x]> <count value="[positiveInt]"/><!-- I 0..1 Number of times to repeat --> <countMax value="[positiveInt]"/><!-- I 0..1 Maximum number of times to repeat --> <duration value="[decimal]"/><!-- I 0..1 How long when it happens --> <durationMax value="[decimal]"/><!-- I 0..1 How long when it happens (Max) --><<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM units<durationUnit value="[code]"/><!-- I 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <frequency value="[positiveInt]"/><!-- 0..1 Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period --> <frequencyMax value="[positiveInt]"/><!-- 0..1 Event occurs up to frequencyMax times per period --> <period value="[decimal]"/><!-- I 0..1 The duration to which the frequency applies. I.e. Event occurs frequency times per period --> <periodMax value="[decimal]"/><!-- I 0..1 Upper limit of period (3-4 hours) --><<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM units<periodUnit value="[code]"/><!-- I 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <startOffset><!-- 0..1 Quantity(SimpleQuantity) Events within the repeat period do not start until startOffset has elapsed --></startOffset> <endOffset><!-- 0..1 Quantity(SimpleQuantity) Events within the repeat period step once endOffset before the end of the period --></endOffset> <dayOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun --> <timeOfDay value="[time]"/><!-- I 0..* Time of day for action --> <when value="[code]"/><!-- I 0..* Code for time period of occurrence --> <offset value="[unsignedInt]"/><!-- I 0..1 Minutes from event (before or after) --> </repeat> <code><!-- 0..1 CodeableConcept C | BID | TID | QID | AM | PM | QD | QOD | + --></code> </Timing>
JSON Template
{
// from Element: extension
"event" : ["<dateTime>"], // When the event occurs
"repeat" : { // When the event is to occur
// bounds[x]: Length/Range of lengths, or (Start and/or end) limits. One of these 3:
"boundsDuration" : { Duration },
"boundsRange" : { Range },
"boundsPeriod" : { Period },
"count" : "<positiveInt>", // I Number of times to repeat
"countMax" : "<positiveInt>", // I Maximum number of times to repeat
"duration" : <decimal>, // I How long when it happens
"durationMax" : <decimal>, // I How long when it happens (Max)
"<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM units
"durationUnit" : "<code>", // I s | min | h | d | wk | mo | a - unit of time (UCUM)
"frequency" : "<positiveInt>", // Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
"frequencyMax" : "<positiveInt>", // Event occurs up to frequencyMax times per period
"period" : <decimal>, // I The duration to which the frequency applies. I.e. Event occurs frequency times per period
"periodMax" : <decimal>, // I Upper limit of period (3-4 hours)
"<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM units
"periodUnit" : "<code>", // I s | min | h | d | wk | mo | a - unit of time (UCUM)
"startOffset" : { Quantity(SimpleQuantity) }, // Events within the repeat period do not start until startOffset has elapsed
"endOffset" : { Quantity(SimpleQuantity) }, // Events within the repeat period step once endOffset before the end of the period
"dayOfWeek" : ["<code>"], // mon | tue | wed | thu | fri | sat | sun
"timeOfDay" : ["<time>"], // I Time of day for action
"when" : ["<code>"], // I Code for time period of occurrence
"offset" : "<unsignedInt>" // I Minutes from event (before or after)
},
"code" : { CodeableConcept } // C | BID | TID | QID | AM | PM | QD | QOD | +
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:event ( [ dateTime ] ... ) ; # 0..* When the event occurs fhir:repeat [ # 0..1 When the event is to occur # bounds[x] : 0..1 Length/Range of lengths, or (Start and/or end) limits. One of these 3 fhir:bounds [ a fhir:Duration ; Duration ] fhir:bounds [ a fhir:Range ; Range ] fhir:bounds [ a fhir:Period ; Period ] fhir:count [ positiveInt ] ; # 0..1 I Number of times to repeat fhir:countMax [ positiveInt ] ; # 0..1 I Maximum number of times to repeat fhir:duration [ decimal ] ; # 0..1 I How long when it happens fhir:durationMax [ decimal ] ; # 0..1 I How long when it happens (Max)fhir:<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM unitsfhir:durationUnit [ code ] ; # 0..1 I s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:frequency [ positiveInt ] ; # 0..1 Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period fhir:frequencyMax [ positiveInt ] ; # 0..1 Event occurs up to frequencyMax times per period fhir:period [ decimal ] ; # 0..1 I The duration to which the frequency applies. I.e. Event occurs frequency times per period fhir:periodMax [ decimal ] ; # 0..1 I Upper limit of period (3-4 hours)fhir:<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM unitsfhir:periodUnit [ code ] ; # 0..1 I s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:startOffset [ Quantity(SimpleQuantity) ] ; # 0..1 Events within the repeat period do not start until startOffset has elapsed fhir:endOffset [ Quantity(SimpleQuantity) ] ; # 0..1 Events within the repeat period step once endOffset before the end of the period fhir:dayOfWeek ( [ code ] ... ) ; # 0..* mon | tue | wed | thu | fri | sat | sun fhir:timeOfDay ( [ time ] ... ) ; # 0..* I Time of day for action fhir:when ( [ code ] ... ) ; # 0..* I Code for time period of occurrence fhir:offset [ unsignedInt ] ; # 0..1 I Minutes from event (before or after) ] ; fhir:code [ CodeableConcept ] ; # 0..1 C | BID | TID | QID | AM | PM | QD | QOD | + ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| Timing | |
| Timing.repeat.startOffset |
|
| Timing.repeat.endOffset |
|
| Timing.repeat.when |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ N | Element |
A
timing
schedule
that
specifies
an
event
that
may
occur
multiple
times
Elements defined in Ancestors: id , extension , modifierExtension |
|
|
Σ | 0..* | dateTime |
When
the
event
occurs
|
|
Σ C | 0..1 | Element |
When
the
event
is
to
occur
+ Rule: if there's a duration, there needs to be duration units + Rule: if there's a period, there needs to be period units + Rule: duration SHALL be a non-negative value + Rule: period SHALL be a non-negative value + Rule: If there's a periodMax, there must be a period + Rule: If there's a durationMax, there must be a duration + Rule: If there's a countMax, there must be a count + Rule: If there's an offset, there must be a when (and not C, CM, CD, CV) + Rule: If there's a timeOfDay, there cannot be a when, or vice versa + Rule: Only use startOffset when frequency is present and > 1 + Rule: Only use endOffset when frequency is present and > 1 |
|
Σ | 0..1 |
Length/Range
of
lengths,
or
(Start
and/or
end)
limits
|
|
|
Duration | |||
|
Range | |||
|
Period | |||
|
Σ C | 0..1 | positiveInt |
Number
of
times
to
repeat
|
|
Σ C | 0..1 | positiveInt |
Maximum
number
of
times
to
repeat
|
|
Σ C | 0..1 | decimal |
How
long
when
it
happens
|
|
Σ C | 0..1 | decimal |
How
long
when
it
happens
(Max)
|
|
Σ C | 0..1 | code |
s
|
min
|
h
|
d
|
wk
|
mo
|
a
-
unit
of
time
(UCUM)
Binding: UnitsOfTime ( Required ) |
|
Σ | 0..1 | positiveInt |
Indicates
the
number
of
repetitions
that
should
occur
within
a
period.
I.e.
Event
occurs
frequency
times
per
period
|
|
Σ | 0..1 | positiveInt |
Event
occurs
up
to
frequencyMax
times
per
period
|
|
Σ C | 0..1 | decimal |
The
duration
to
which
the
frequency
applies.
I.e.
Event
occurs
frequency
times
per
period
|
|
Σ C | 0..1 | decimal |
Upper
limit
of
period
(3-4
hours)
|
|
Σ C | 0..1 | code |
s
|
min
|
h
|
d
|
wk
|
mo
|
a
-
unit
of
time
(UCUM)
Binding: UnitsOfTime ( Required ) |
| Σ | 0..1 | SimpleQuantity |
Events
within
the
repeat
period
do
not
start
until
startOffset
has
elapsed
|
![]() ![]() ![]() | Σ | 0..1 | SimpleQuantity |
Events
within
the
repeat
period
step
once
endOffset
before
the
end
of
the
period
|
|
Σ | 0..* | code |
mon
|
tue
|
wed
|
thu
|
fri
|
sat
|
sun
Binding: Days Of Week ( Required ) |
|
Σ C | 0..* | time |
Time
of
day
for
action
|
|
Σ C | 0..* | code |
Code
for
time
period
of
occurrence
Binding: EventTiming ( Required ) |
|
Σ C | 0..1 | unsignedInt |
Minutes
from
event
(before
or
after)
|
|
Σ | 0..1 | CodeableConcept |
C
|
BID
|
TID
|
QID
|
AM
|
PM
|
QD
|
QOD
|
+
Binding: TimingAbbreviation ( Preferred ) |
Documentation
for
this
format
|
||||
XML Template
<Timing xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <event value="[dateTime]"/><!-- 0..* When the event occurs --> <repeat> <!-- 0..1 When the event is to occur --> <bounds[x]><!-- 0..1 Duration|Range|Period Length/Range of lengths, or (Start and/or end) limits --></bounds[x]> <count value="[positiveInt]"/><!-- I 0..1 Number of times to repeat --> <countMax value="[positiveInt]"/><!-- I 0..1 Maximum number of times to repeat --> <duration value="[decimal]"/><!-- I 0..1 How long when it happens --> <durationMax value="[decimal]"/><!-- I 0..1 How long when it happens (Max) --><<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM units<durationUnit value="[code]"/><!-- I 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <frequency value="[positiveInt]"/><!-- 0..1 Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period --> <frequencyMax value="[positiveInt]"/><!-- 0..1 Event occurs up to frequencyMax times per period --> <period value="[decimal]"/><!-- I 0..1 The duration to which the frequency applies. I.e. Event occurs frequency times per period --> <periodMax value="[decimal]"/><!-- I 0..1 Upper limit of period (3-4 hours) --><<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM units<periodUnit value="[code]"/><!-- I 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <startOffset><!-- 0..1 Quantity(SimpleQuantity) Events within the repeat period do not start until startOffset has elapsed --></startOffset> <endOffset><!-- 0..1 Quantity(SimpleQuantity) Events within the repeat period step once endOffset before the end of the period --></endOffset> <dayOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun --> <timeOfDay value="[time]"/><!-- I 0..* Time of day for action --> <when value="[code]"/><!-- I 0..* Code for time period of occurrence --> <offset value="[unsignedInt]"/><!-- I 0..1 Minutes from event (before or after) --> </repeat> <code><!-- 0..1 CodeableConcept C | BID | TID | QID | AM | PM | QD | QOD | + --></code> </Timing>
JSON Template
{
// from Element: extension
"event" : ["<dateTime>"], // When the event occurs
"repeat" : { // When the event is to occur
// bounds[x]: Length/Range of lengths, or (Start and/or end) limits. One of these 3:
"boundsDuration" : { Duration },
"boundsRange" : { Range },
"boundsPeriod" : { Period },
"count" : "<positiveInt>", // I Number of times to repeat
"countMax" : "<positiveInt>", // I Maximum number of times to repeat
"duration" : <decimal>, // I How long when it happens
"durationMax" : <decimal>, // I How long when it happens (Max)
"<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM units
"durationUnit" : "<code>", // I s | min | h | d | wk | mo | a - unit of time (UCUM)
"frequency" : "<positiveInt>", // Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
"frequencyMax" : "<positiveInt>", // Event occurs up to frequencyMax times per period
"period" : <decimal>, // I The duration to which the frequency applies. I.e. Event occurs frequency times per period
"periodMax" : <decimal>, // I Upper limit of period (3-4 hours)
"<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM units
"periodUnit" : "<code>", // I s | min | h | d | wk | mo | a - unit of time (UCUM)
"startOffset" : { Quantity(SimpleQuantity) }, // Events within the repeat period do not start until startOffset has elapsed
"endOffset" : { Quantity(SimpleQuantity) }, // Events within the repeat period step once endOffset before the end of the period
"dayOfWeek" : ["<code>"], // mon | tue | wed | thu | fri | sat | sun
"timeOfDay" : ["<time>"], // I Time of day for action
"when" : ["<code>"], // I Code for time period of occurrence
"offset" : "<unsignedInt>" // I Minutes from event (before or after)
},
"code" : { CodeableConcept } // C | BID | TID | QID | AM | PM | QD | QOD | +
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:event ( [ dateTime ] ... ) ; # 0..* When the event occurs fhir:repeat [ # 0..1 When the event is to occur # bounds[x] : 0..1 Length/Range of lengths, or (Start and/or end) limits. One of these 3 fhir:bounds [ a fhir:Duration ; Duration ] fhir:bounds [ a fhir:Range ; Range ] fhir:bounds [ a fhir:Period ; Period ] fhir:count [ positiveInt ] ; # 0..1 I Number of times to repeat fhir:countMax [ positiveInt ] ; # 0..1 I Maximum number of times to repeat fhir:duration [ decimal ] ; # 0..1 I How long when it happens fhir:durationMax [ decimal ] ; # 0..1 I How long when it happens (Max)fhir:<a href="datatypes-definitions.html#Timing.repeat.durationUnit" title="The units of time for the duration, in UCUM unitsfhir:durationUnit [ code ] ; # 0..1 I s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:frequency [ positiveInt ] ; # 0..1 Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period fhir:frequencyMax [ positiveInt ] ; # 0..1 Event occurs up to frequencyMax times per period fhir:period [ decimal ] ; # 0..1 I The duration to which the frequency applies. I.e. Event occurs frequency times per period fhir:periodMax [ decimal ] ; # 0..1 I Upper limit of period (3-4 hours)fhir:<a href="datatypes-definitions.html#Timing.repeat.periodUnit" title="The units of time for the period in UCUM unitsfhir:periodUnit [ code ] ; # 0..1 I s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:startOffset [ Quantity(SimpleQuantity) ] ; # 0..1 Events within the repeat period do not start until startOffset has elapsed fhir:endOffset [ Quantity(SimpleQuantity) ] ; # 0..1 Events within the repeat period step once endOffset before the end of the period fhir:dayOfWeek ( [ code ] ... ) ; # 0..* mon | tue | wed | thu | fri | sat | sun fhir:timeOfDay ( [ time ] ... ) ; # 0..* I Time of day for action fhir:when ( [ code ] ... ) ; # 0..* I Code for time period of occurrence fhir:offset [ unsignedInt ] ; # 0..1 I Minutes from event (before or after) ] ; fhir:code [ CodeableConcept ] ; # 0..1 C | BID | TID | QID | AM | PM | QD | QOD | + ]
Changes from both R4 and R4B
| Timing | |
| Timing.repeat.startOffset |
|
| Timing.repeat.endOffset |
|
| Timing.repeat.when |
|
See the Full Difference for further information
If the timing schedule has repeating criteria, the repeat can occur a given number of times per the specified duration or in relation to some repeating real-world event.
Unless
the
Timing.repeat
specifies
a
boundsPeriod
,
the
bounds
of
the
repeating
cycle
are
at
a
time
specified
in
the
context
where
the
Timing
is
used,
or
the
cycle
starts
immediately.
If
no
end
condition
the
repeat
is
specified,
not
limited
by
providing
bounds[x]
or
schedule
will
terminate
on
some
criteria
that
bounds
of
the
repeating
cycle
are
expressed
elsewhere.
in
some
criteria
elsewhere,
either
explicitly
or
implicitly.
Many
systems
avoid
the
complexity
of
the
Timing
structure
by
using
a
text
field
for
timing
instructions.
This
maps
to
Timing.code.text
.
For
example,
the
text
instruction
"take
medication
in
the
morning
on
weekends
and
days
off
work'
would
be
represented
as:
"timing": {
"code" : {
"text" : "Take medication in the morning on weekends and days off work"
}
}
Note,
though,
that
some
systems
include
timing
details
in
something
like
'Dosage
instructions'
which
is
wider
than
just
Timing;
those
systems
do
not
use
the
Timing
datatype.
Other
systems
use
a
set
of
'common'
codes
-
including,
but
usually
not
limited
to,
widely
understood
acronyms
such
as
"BID".
If
a
Timing.code
is
provided,
the
code
is
understood
to
be
a
complete
statement
of
whatever
is
specified
in
the
structured
timing
data
(except
for
Timing.repeat.bounds
,
which
applies
to
the
code),
and
either
the
code
or
the
data
may
be
used
to
interpret
the
Timing
.
A
structured
timing
specification
SHOULD
be
provided
whenever
possible,
unless
the
code
is
BID,
TID,
QID,
AM
or
PM,
which
have
a
ubiquitous
meaning.
This table summarizes some common uses of the Timing Datatype criteria.
| description | duration | durationUnit | frequency | frequencyMax | period | periodUnit | periodMax | Day of Week | Time Of Day | when | offset | startOffset | bounds[x] | count |
| Every 8 hours | 1 | 8 | h | |||||||||||
| Every 7 days | 1 | 7 | d | |||||||||||
| 3 times a day | 3 | 1 | d | |||||||||||
| 3-4 times a day | 3 | 4 | 1 | d | ||||||||||
| Every 4-6 hours | 1 | 4 | h | 6 | ||||||||||
| Every 21 days for 1 hour | 1 | hr | 1 | 21 | d | |||||||||
| Every second day | 1 | 1 | d | |||||||||||
| Every second day starting on Day 2 | 1 | 1 | d | 1 d | ||||||||||
| Three times a week for ½ hour | 0.5 | hr | 3 | 1 | wk | |||||||||
| With breakfast | CM | |||||||||||||
| For 5 minutes, 10 minutes before meals | 5 | min | AC | 10 | ||||||||||
| 1 tablet 3 times daily, 30 minutes before meals | 3 | 1 | d | AC | 30 | |||||||||
| BID, 30 mins before meal, for next 10 days | 2 | 1 | d | AC | 30 | Duration = 10 days | ||||||||
| TID, for 14 days | 3 | 1 | d | Duration = 14 days | ||||||||||
| BID, start on 7/1/2015 at 1:00 PM | 2 | 1 | d | Period.start = 2015-07-01T13:00:00 | ||||||||||
| Mon, Wed, Fri Morning | 1 | 1 | d | mon | wed | fri | MORN | |||||||||
| Every day at 10am | 1 | 1 | d | 10:00 | ||||||||||
| Take once, at any time | 1 | |||||||||||||
| Take every second day, in the morning, until 20 have been taken | 1 | 2 | d | MORN | 20 |
Note
that
there
are
two
offsets
here:
offset
which
specifies
the
offset
from
event
,
where
the
event
property
relates
to
a
regular
event,
such
as
before
meals.
The
other
kind
of
offset
is
startOffset
and
endOffset
which
relate
to
the
regular
events
within
the
repeat
window:
if
they
occur
with
frequency
>
1,
the
start
and
end
offsets
impose
a
gap
in
the
schedule
-
see
Dosage
Examples
for
usage.
This table shows the relationship between the codes provided as part of the base specification , and the structured data portions of the Timing type:
| description | duration | durationUnit | frequency | frequencyMax | period | periodUnit | periodMax | when | bounds[x] |
| QOD | 1 | 2 | d | ||||||
| QD | 1 | 1 | d | ||||||
| BID | 2 | 1 | d | ||||||
| TID | 3 | 1 | d | ||||||
| QID | 4 | 1 | d | ||||||
| Q4H | 1 | 4 | h | ||||||
| Q6H | 1 | 6 | h | ||||||
| AM | 1 | 1 | d | MORN | |||||
| PM | 1 | 1 | d | AFT or EVE |
These
codes
SHALL
be
understood
as
having
the
formal
meanings
documented
in
this
table.
Note
that
BID,
etc.
are
defined
as
'at
institutionally
specified
times'.
For
example,
an
institution
may
choose
that
BID
is
"always
at
7am
and
6pm".
If
it
is
inappropriate
for
this
choice
to
be
made,
the
code
BID
should
not
be
used.
Instead,
a
distinct
organization-specific
code
should
be
used
in
place
of
the
HL7-defined
BID
code
and/or
a
structured
representation
should
be
used
(in
this
case,
timeOfDay
).
Constraints
| id | Level | Location | Description | Expression |
tim-1
|
Rule | Timing.repeat | if there's a duration, there needs to be duration units | duration.empty() or durationUnit.exists() |
tim-2
|
Rule | Timing.repeat | if there's a period, there needs to be period units | period.empty() or periodUnit.exists() |
tim-4
|
Rule | Timing.repeat | duration SHALL be a non-negative value | duration.exists() implies duration >= 0 |
tim-5
|
Rule | Timing.repeat | period SHALL be a non-negative value | period.exists() implies period >= 0 |
tim-6
|
Rule | Timing.repeat | If there's a periodMax, there must be a period | periodMax.empty() or period.exists() |
tim-7
|
Rule | Timing.repeat | If there's a durationMax, there must be a duration | durationMax.empty() or duration.exists() |
tim-8
|
Rule | Timing.repeat | If there's a countMax, there must be a count | countMax.empty() or count.exists() |
tim-9
|
Rule | Timing.repeat | If there's an offset, there must be a when (and not C, CM, CD, CV) | offset.empty() or (when.exists() and when.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse()) |
tim-10
|
Rule | Timing.repeat | If there's a timeOfDay, there cannot be a when, or vice versa | timeOfDay.empty() or when.empty() |
tim-11
| Rule | Timing.repeat | Only use startOffset when frequency is present and > 1 | startOffset.exists() implies (frequency > 1) |
tim-12
| Rule | Timing.repeat | Only use endOffset when frequency is present and > 1 | endOffset.exists() implies (frequency > 1) |
Note
that
these
constraints
still
allow
for
nonsensical
timing
specifications
such
as
"Once
per
day
at
2:00
and
4:00"
or
"every
3
days
on
Friday".
Implementers
must
take
care
to
ensure
that
their
configuration
and
data
collection
designs
do
not
lead
to
these
non-interpretable
timing
specifications.
The
elements
dayOfWeek
,
timeOfDay
,
and
when
are
particularly
likely
to
be
at
issue
here.
Terminology Bindings
| Path | ValueSet | Type | Documentation |
|---|---|---|---|
|
Timing.repeat.durationUnit
Timing.repeat.periodUnit |
UnitsOfTime | Required |
A unit of time (units from UCUM). |
| Timing.repeat.dayOfWeek | DaysOfWeek | Required |
The days of the week. |
| Timing.repeat.when | EventTiming | Required |
Real-world event relating to the schedule. |
| Timing.code | TimingAbbreviation | Preferred |
Code for a known / defined timing pattern. |
Timing
is
used
in
the
following
places:
Dosage
,
TriggerDefinition
,
ActivityDefinition
,
CareTeam
,
ChargeItem
Claim
,
ClaimResponse
,
Contract
,
DetectedIssue
,
DeviceRequest
,
DeviceUsage
ExplanationOfBenefit
,
MedicationAdministration
,
MedicationStatement
,
NutritionIntake
,
NutritionOrder
,
Observation
,
PlanDefinition
,
Procedure
,
RequestOrchestration
,
ServiceRequest
,
SupplyDelivery
,
SupplyRequest
and
VerificationResult
ServiceRequest
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
RelativeTime
is
used
to
express
expresses
a
point
in
time
or
an
interval
of
time
period
as
relative
to
the
time
of
an
event
defined
in
data
types
other
than
dateTime.
For
example,
"within
30
days
of
hospital
discharge"
is
an
interval
of
time
(from
0
days
to
30
days)
and
it
is
described
as
occurring
after
an
event
(hospital
discharge).
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ
|
Element |
Expresses
a
time
or
+ Rule: A RelativeTime can have either a contextReference or contextDefinition but not both + Rule: If RelativeTime has a contextPath, it SHALL have either a contextReference or a contextDefinition Elements defined in Ancestors: id , extension , modifierExtension |
|
|
Σ C | 0..1 | Reference ( Any ) |
The
specific
event
occurrence
or
resource
context
used
as
a
base
point
(reference
point)
in
time
|
|
Σ C | 0..1 | canonical ( ActivityDefinition | EventDefinition | PlanDefinition | ObservationDefinition ) |
The
type
of
event
used
as
a
base
point
|
|
Σ C | 0..1 | string |
Path
to
the
element
defining
the
|
|
Σ | 0..1 | CodeableConcept |
Coded
representation
of
the
event
used
as
a
base
point
(reference
point)
in
time
Binding: |
|
Σ | 0..1 |
An
offset
or
offset
range
before
(negative
values)
or
after
(positive
values)
the
event
|
|
|
Duration | |||
|
Range | |||
|
Σ | 0..1 | string |
Free-text
description
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
< xmlns="http://hl7.org/fhir"><RelativeTime xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <contextReference><!-- I 0..1 Reference(Any) The specific event occurrence or resource context used as a base point (reference point) in time --></contextReference><| </contextDefinition> < <</contextCode><contextDefinition><!-- I 0..1 canonical(ActivityDefinition|EventDefinition| ObservationDefinition|PlanDefinition) The type of event used as a base point --></contextDefinition> <contextPath value="[string]"/><!-- I 0..1 Path to the element defining the basis for the relative time --> <contextCode><!-- 0..1 CodeableConcept Coded representation of the event used as a base point (reference point) in time --></contextCode> <offset[x]><!-- 0..1 Duration|Range An offset or offset range before (negative values) or after (positive values) the event --></offset[x]> <text value="[string]"/><!-- 0..1 Free-text description --> </RelativeTime>
JSON Template
{
// from Element: extension
"contextReference" : { Reference(Any) }, // I The specific event occurrence or resource context used as a base point (reference point) in time
"
"
"
"contextDefinition" : "<canonical(ActivityDefinition|EventDefinition|PlanDefinition|ObservationDefinition)>", // I The type of event used as a base point
"contextPath" : "<string>", // I Path to the element defining the basis for the relative time
"contextCode" : { CodeableConcept }, // Coded representation of the event used as a base point (reference point) in time
// offset[x]: An offset or offset range before (negative values) or after (positive values) the event. One of these 2:
"offsetDuration" : { Duration },
"offsetRange" : { Range },
"text" : "<string>" // Free-text description
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:contextReference [ Reference(Any) ] ; # 0..1 I The specific event occurrence or resource context used as a base point (reference point) in timefhir: fhir:fhir:contextDefinition [ canonical(ActivityDefinition|EventDefinition|ObservationDefinition|PlanDefinition) ] ; # 0..1 I The type of event used as a base point fhir:contextPath [ string ] ; # 0..1 I Path to the element defining the basis for the relative time fhir:contextCode [ CodeableConcept ] ; # 0..1 Coded representation of the event used as a base point (reference point) in time # offset[x] : 0..1 An offset or offset range before (negative values) or after (positive values) the event. One of these 2 fhir:offset [ a fhir:Duration ; Duration ] fhir:offset [ a fhir:Range ; Range ] fhir:text [ string ] ; # 0..1 Free-text description ]
Changes
since
Release
3
4
Changes from both R4 and R4B
This complex-type did not exist in Release R4
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
Σ
|
Element |
Expresses
a
time
or
+ Rule: A RelativeTime can have either a contextReference or contextDefinition but not both + Rule: If RelativeTime has a contextPath, it SHALL have either a contextReference or a contextDefinition Elements defined in Ancestors: id , extension , modifierExtension |
|
|
Σ C | 0..1 | Reference ( Any ) |
The
specific
event
occurrence
or
resource
context
used
as
a
base
point
(reference
point)
in
time
|
|
Σ C | 0..1 | canonical ( ActivityDefinition | EventDefinition | PlanDefinition | ObservationDefinition ) |
The
type
of
event
used
as
a
base
point
|
|
Σ C | 0..1 | string |
Path
to
the
element
defining
the
|
|
Σ | 0..1 | CodeableConcept |
Coded
representation
of
the
event
used
as
a
base
point
(reference
point)
in
time
Binding: |
|
Σ | 0..1 |
An
offset
or
offset
range
before
(negative
values)
or
after
(positive
values)
the
event
|
|
|
Duration | |||
|
Range | |||
|
Σ | 0..1 | string |
Free-text
description
|
Documentation
for
this
format
|
||||
XML Template
< xmlns="http://hl7.org/fhir"><RelativeTime xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <contextReference><!-- I 0..1 Reference(Any) The specific event occurrence or resource context used as a base point (reference point) in time --></contextReference><| </contextDefinition> < <</contextCode><contextDefinition><!-- I 0..1 canonical(ActivityDefinition|EventDefinition| ObservationDefinition|PlanDefinition) The type of event used as a base point --></contextDefinition> <contextPath value="[string]"/><!-- I 0..1 Path to the element defining the basis for the relative time --> <contextCode><!-- 0..1 CodeableConcept Coded representation of the event used as a base point (reference point) in time --></contextCode> <offset[x]><!-- 0..1 Duration|Range An offset or offset range before (negative values) or after (positive values) the event --></offset[x]> <text value="[string]"/><!-- 0..1 Free-text description --> </RelativeTime>
JSON Template
{
// from Element: extension
"contextReference" : { Reference(Any) }, // I The specific event occurrence or resource context used as a base point (reference point) in time
"
"
"
"contextDefinition" : "<canonical(ActivityDefinition|EventDefinition|PlanDefinition|ObservationDefinition)>", // I The type of event used as a base point
"contextPath" : "<string>", // I Path to the element defining the basis for the relative time
"contextCode" : { CodeableConcept }, // Coded representation of the event used as a base point (reference point) in time
// offset[x]: An offset or offset range before (negative values) or after (positive values) the event. One of these 2:
"offsetDuration" : { Duration },
"offsetRange" : { Range },
"text" : "<string>" // Free-text description
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:contextReference [ Reference(Any) ] ; # 0..1 I The specific event occurrence or resource context used as a base point (reference point) in timefhir: fhir:fhir:contextDefinition [ canonical(ActivityDefinition|EventDefinition|ObservationDefinition|PlanDefinition) ] ; # 0..1 I The type of event used as a base point fhir:contextPath [ string ] ; # 0..1 I Path to the element defining the basis for the relative time fhir:contextCode [ CodeableConcept ] ; # 0..1 Coded representation of the event used as a base point (reference point) in time # offset[x] : 0..1 An offset or offset range before (negative values) or after (positive values) the event. One of these 2 fhir:offset [ a fhir:Duration ; Duration ] fhir:offset [ a fhir:Range ; Range ] fhir:text [ string ] ; # 0..1 Free-text description ]
Changes from both R4 and R4B
This complex-type did not exist in Release R4
See the Full Difference for further information
Methods to express the "event" or "context" that is reference point for time relative to that point include any of:
Methods
to
express
the
point
in
time
or
interval
in
time
("offset")
relative
to
the
"event"
include
any
of:
The method to express a natural language description of the RelativeTime value is to use the text element.
RelativeTime is used in the following places: DosageDetails , ActivityDefinition , EvidenceVariable , Group , PlanDefinition and RequestOrchestration
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A
Signature
holds
an
electronic
representation
of
a
signature
and
its
supporting
context
in
a
FHIR
accessible
form.
The
signature
may
either
be
a
cryptographic
type
(XML
(e.g.,
XML
DigSig
or
a
JWS),
which
is
able
to
provide
non-repudiation
proof,
or
it
may
be
a
graphical
image
that
represents
a
signature
or
a
digital-signature
process.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
N | Element |
A
Signature
-
XML
DigSig,
JWS,
Graphical
image
of
signature,
etc.
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..* | Coding |
Indication
of
the
reason
the
entity
signed
the
object(s)
Binding: Signature Type Codes ( Preferred ) |
|
Σ | 0..1 | instant |
When
the
signature
was
created
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization ) |
Who
signed
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization ) |
The
party
represented
|
|
0..1 | code |
The
technical
format
of
the
signed
resources
Binding: Mime Types ( Required ) |
|
|
0..1 | code |
The
technical
format
of
the
signature
Binding: Mime Types ( Required ) |
|
|
0..1 | base64Binary |
The
actual
signature
content
(XML
Signature,
JSON
Jose,
picture,
etc.)
|
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Signature xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type><!-- 0..* Coding Indication of the reason the entity signed the object(s) --></type> <when value="[instant]"/><!-- 0..1 When the signature was created --> <who><!-- 0..1 Reference(Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who signed --></who> <onBehalfOf><!-- 0..1 Reference(Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) The party represented --></onBehalfOf> <targetFormat value="[code]"/><!-- 0..1 The technical format of the signed resources --> <sigFormat value="[code]"/><!-- 0..1 The technical format of the signature --> <data value="[base64Binary]"/><!-- 0..1 The actual signature content (XML Signature, JSON Jose, picture, etc.) --> </Signature>
JSON Template
{
// from Element: extension
"type" : [{ Coding }], // Indication of the reason the entity signed the object(s)
"when" : "<instant>", // When the signature was created
"who" : { Reference(Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // Who signed
"onBehalfOf" : { Reference(Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // The party represented
"targetFormat" : "<code>", // The technical format of the signed resources
"sigFormat" : "<code>", // The technical format of the signature
"data" : "<base64Binary>" // The actual signature content (XML Signature, JSON Jose, picture, etc.)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:type ( [ Coding ] ... ) ; # 0..* Indication of the reason the entity signed the object(s) fhir:when [ instant ] ; # 0..1 When the signature was created fhir:who [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who signed fhir:onBehalfOf [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 The party represented fhir:targetFormat [ code ] ; # 0..1 The technical format of the signed resources fhir:sigFormat [ code ] ; # 0..1 The technical format of the signature fhir:data [ base64Binary ] ; # 0..1 The actual signature content (XML Signature, JSON Jose, picture, etc.) ]
Changes
since
Release
3
4
Changes from both R4 and R4B
| Signature | |
| Signature.type |
|
| Signature.when |
|
| Signature.who |
|
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
N | Element |
A
Signature
-
XML
DigSig,
JWS,
Graphical
image
of
signature,
etc.
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..* | Coding |
Indication
of
the
reason
the
entity
signed
the
object(s)
Binding: Signature Type Codes ( Preferred ) |
|
Σ | 0..1 | instant |
When
the
signature
was
created
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization ) |
Who
signed
|
|
Σ | 0..1 | Reference ( Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization ) |
The
party
represented
|
|
0..1 | code |
The
technical
format
of
the
signed
resources
Binding: Mime Types ( Required ) |
|
|
0..1 | code |
The
technical
format
of
the
signature
Binding: Mime Types ( Required ) |
|
|
0..1 | base64Binary |
The
actual
signature
content
(XML
Signature,
JSON
Jose,
picture,
etc.)
|
|
Documentation
for
this
format
|
||||
XML Template
<Signature xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <type><!-- 0..* Coding Indication of the reason the entity signed the object(s) --></type> <when value="[instant]"/><!-- 0..1 When the signature was created --> <who><!-- 0..1 Reference(Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) Who signed --></who> <onBehalfOf><!-- 0..1 Reference(Device|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) The party represented --></onBehalfOf> <targetFormat value="[code]"/><!-- 0..1 The technical format of the signed resources --> <sigFormat value="[code]"/><!-- 0..1 The technical format of the signature --> <data value="[base64Binary]"/><!-- 0..1 The actual signature content (XML Signature, JSON Jose, picture, etc.) --> </Signature>
JSON Template
{
// from Element: extension
"type" : [{ Coding }], // Indication of the reason the entity signed the object(s)
"when" : "<instant>", // When the signature was created
"who" : { Reference(Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // Who signed
"onBehalfOf" : { Reference(Device|Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) }, // The party represented
"targetFormat" : "<code>", // The technical format of the signed resources
"sigFormat" : "<code>", // The technical format of the signature
"data" : "<base64Binary>" // The actual signature content (XML Signature, JSON Jose, picture, etc.)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension fhir:type ( [ Coding ] ... ) ; # 0..* Indication of the reason the entity signed the object(s) fhir:when [ instant ] ; # 0..1 When the signature was created fhir:who [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Who signed fhir:onBehalfOf [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 The party represented fhir:targetFormat [ code ] ; # 0..1 The technical format of the signed resources fhir:sigFormat [ code ] ; # 0..1 The technical format of the signature fhir:data [ base64Binary ] ; # 0..1 The actual signature content (XML Signature, JSON Jose, picture, etc.) ]
Changes from both R4 and R4B
| Signature | |
| Signature.type |
|
| Signature.when |
|
| Signature.who |
|
See the Full Difference for further information
Constraints
Notes:
There
are
three
levels
of
signature
verification:
Verifying
that
the
Digital
Signature
block
itself
has
integrity
through
verifying
the
signature
across
the
JWS-Signature.
Confirming
that
the
signer
was
authentic,
not
revoked,
and
appropriate
to
the
signature
purpose.
Confirming
that
the
signed
content
of
interest
is
unmodified
using
the
hash
algorithm.
Deviations
from
these
guidelines
would
need
to
be
expressed
in
site
policy
and
would
be
enumerated
in
the
JWS-Signature
block.
For
example,
some
environments
may
choose
a
different
hashing
algorithm,
policy
identifier,
or
signature
purpose
vocabulary.
Signature
is
used
in
the
following
places:
Bundle
,
Contract
,
and
Provenance
,
and
VerificationResult
also
there
is
an
extension:
[[[http://hl7.org/fhir/StructureDefinition/questionnaireresponse-signature]]].
See also Examples , Detailed Descriptions , Mappings , Profiles and Extensions
A text note which also contains information about who made the statement and when.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
N | Element |
Text
node
with
attribution
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 |
Individual
responsible
for
the
annotation
|
|
|
Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Organization ) | |||
|
string | |||
|
Σ | 0..1 | dateTime |
When
the
annotation
was
made
|
|
Σ | 1..1 | markdown |
The
annotation
-
text
content
(as
markdown)
|
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<Annotation xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <author[x]><!-- 0..1 Reference(Organization|Patient|Practitioner| PractitionerRole|RelatedPerson)|string Individual responsible for the annotation --></author[x]> <time value="[dateTime]"/><!-- 0..1 When the annotation was made --> <text value="[markdown]"/><!-- 1..1 The annotation - text content (as markdown) --> </Annotation>
JSON Template
{
// from Element: extension
// author[x]: Individual responsible for the annotation. One of these 2:
"authorReference" : { Reference(Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) },
"authorString" : "<string>",
"time" : "<dateTime>", // When the annotation was made
"text" : "<markdown>" // R! The annotation - text content (as markdown)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension # author[x] : 0..1 Individual responsible for the annotation. One of these 2 fhir:author [ a fhir:Reference ; Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]fhir: ]fhir:author [ a fhir:String ; string ] fhir:time [ dateTime ] ; # 0..1 When the annotation was made fhir:text [ markdown ] ; # 1..1 The annotation - text content (as markdown) ]
Changes
since
Release
3
4
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
N | Element |
Text
node
with
attribution
Elements defined in Ancestors: id , extension |
|
|
Σ | 0..1 |
Individual
responsible
for
the
annotation
|
|
|
Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Organization ) | |||
|
string | |||
|
Σ | 0..1 | dateTime |
When
the
annotation
was
made
|
|
Σ | 1..1 | markdown |
The
annotation
-
text
content
(as
markdown)
|
Documentation
for
this
format
|
||||
XML Template
<Annotation xmlns="http://hl7.org/fhir"> <!-- from Element: extension --> <author[x]><!-- 0..1 Reference(Organization|Patient|Practitioner| PractitionerRole|RelatedPerson)|string Individual responsible for the annotation --></author[x]> <time value="[dateTime]"/><!-- 0..1 When the annotation was made --> <text value="[markdown]"/><!-- 1..1 The annotation - text content (as markdown) --> </Annotation>
JSON Template
{
// from Element: extension
// author[x]: Individual responsible for the annotation. One of these 2:
"authorReference" : { Reference(Organization|Patient|Practitioner|
PractitionerRole|RelatedPerson) },
"authorString" : "<string>",
"time" : "<dateTime>", // When the annotation was made
"text" : "<markdown>" // R! The annotation - text content (as markdown)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [# from Element:# from Element: fhir:extension # author[x] : 0..1 Individual responsible for the annotation. One of these 2 fhir:author [ a fhir:Reference ; Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]fhir: ]fhir:author [ a fhir:String ; string ] fhir:time [ dateTime ] ; # 0..1 When the annotation was made fhir:text [ markdown ] ; # 1..1 The annotation - text content (as markdown) ]
Notes:
Annotation.authorReference.display
instead
of
the
the
anti-pattern
Annotation.authorString
(
authorString
cannot
be
removed
because
this
datatype
is
Normative).
Annotation
is
used
in
the
following
places:
AdverseEvent
,
AllergyIntolerance
,
Appointment
,
BiologicallyDerivedProductDispense
,
CarePlan
,
CareTeam
,
ChargeItem
,
Citation
,
ClinicalAssessment
,
Communication
,
CommunicationRequest
,
Composition
,
Condition
,
Contract
,
DetectedIssue
,
Device
,
DeviceDefinition
,
DeviceDispense
,
DeviceRequest
,
DeviceUsage
,
DiagnosticReport
,
Evidence
,
EvidenceVariable
,
FamilyMemberHistory
,
GenomicStudy
,
Goal
,
GuidanceResponse
,
ImagingStudy
,
Immunization
,
InventoryItem
,
InventoryReport
,
Invoice
,
List
,
MedicationAdministration
,
MedicationDispense
,
MedicationKnowledge
,
MedicationRequest
,
MedicationStatement
,
NutritionIntake
,
NutritionOrder
,
NutritionProduct
,
Observation
,
Procedure
,
RequestOrchestration
,
ResearchStudy
,
RiskAssessment
,
ServiceRequest
,
Specimen
,
SubstanceDefinition
,
Task
,
Transport
and
VisionPrescription
Some elements do not have a specified type. The type is represented by the wildcard symbol "*". In these cases, the element type may be one of the following:
Primitive TypesThe element name ends with "[x]", and this is replaced with the Title cased name of the datatype.
Open
types
are
used
in
the
following
places:
ElementDefinition
,
DosageCondition
,
Claim
,
ClaimResponse
,
ExplanationOfBenefit
,
Parameters
,
Task
and
Transport
Task
This table presents the type characteristics for the different data types. These are used when designing to profiles to know what characteristics can be set for a particular type. Types that are not listed have no characteristics.
| Type | Is-a-Target | Be-a-Target | Has-Range | Is-Continuous | Has-Length | Has-Size | Bindable | Has-Units | Translatable |
|---|---|---|---|---|---|---|---|---|---|
| base64Binary | Y | ||||||||
| canonical | Y | Y | |||||||
| code | Y | Y | |||||||
| date | Y | Y | |||||||
| dateTime | Y | Y | Y | ||||||
| decimal | Y | Y | Y | ||||||
| id | Y | ||||||||
| instant | Y | Y | Y | ||||||
| integer | Y | Y | |||||||
| integer64 | Y | Y | |||||||
| markdown | Y | Y | |||||||
| oid | Y | ||||||||
| positiveInt | Y | Y | |||||||
| string | Y | Y | Y | ||||||
| time | Y | Y | Y | ||||||
| unsignedInt | Y | Y | |||||||
| uri | Y | Y | |||||||
| url | Y | Y | |||||||
| uuid | Y | ||||||||
| Age | Y | Y | Y | ||||||
| Annotation | Y | ||||||||
| Attachment | Y | ||||||||
| CodeableConcept | Y | Y | |||||||
| CodeableReference | Y | Y | Y | ||||||
| Coding | Y | Y | |||||||
| Count | Y | ||||||||
| Distance | Y | Y | Y | ||||||
| Duration | Y | Y | Y | ||||||
| MonetaryComponent | Y | Y | Y | ||||||
| Money | Y | Y | Y | ||||||
| Quantity | Y | Y | Y | Y | |||||
| Range | Y | ||||||||
| RatioRange | Y | ||||||||
| Reference | Y | ||||||||
| Extension | Y | ||||||||
| Resource | Y |
The following types are defined as part of the datatypes, but are documented elsewhere in the specification: