This page is part of the FHIR Specification (v1.6.0:
STU
3 Ballot 4). The current version which supercedes this version is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
. For a full list of available versions, see the
Directory of published versions
.
Page
versions:
. Page versions:
R5
R4B
R4
R3
R2
|
|
|
The FHIR specification defines a set of data types that are used for the resource elements. There are two categories of data types: simple / primitive types, which are single elements, and complex types, which are re-usable clusters of elements. This page describes the common reusable data types. See also the
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
.
Table
of
Contents
Table of Contents
|
|
|
Legend: White = abstract type. Light blue = concrete types. Light Pink = Profile on Type.
The following table describes the primitive types that are used in this specification. Primitive types are those with only a value, and no additional elements as children (though, like all types, they have
extensions
).
).
|
| |||
| FHIR Name | Value Domain | XML Representation | JSON representation |
|---|---|---|---|
|
boolean
| true | false |
xs:boolean, except that
0 and 1 are not valid values
| JSON boolean (true or false) |
|
integer
| A signed 32-bit integer (for larger values, use decimal) |
xs:int, except that
leading 0 digits are not allowed
| JSON number (with no decimal point) |
|
string
| A sequence of Unicode characters |
xs:string
| JSON String |
| Note that strings SHALL NOT exceed 1MB in size. String should not contain Unicode character points below 32, except for u0009 (horizontal tab), u0010 (carriage return) and u0013 (line feed) | |||
|
| |||
|
decimal
| Rational numbers that have a decimal representation. See below about the precision of the number |
xs:decimal, except that
decimals may not use exponents, and leading 0 digits are not allowed
| A JSON number, except that exponents are not allowed |
|
uri
|
A Uniform Resource Identifier Reference (
|
xs:anyURI
| A JSON string - a URI |
| URIs can be absolute or relative, and may have an optional fragment identifier | |||
|
base64Binary
|
A stream of bytes, base64 encoded (
)
|
xs:base64Binary
| A JSON string - base64 content |
|
| |||
|
instant
|
An instant in time -
known at least to the second and always includes a time zone
. Note: This is intended for precisely observed times (typically system logs etc.), and not human-reported times - for them, use date and dateTime.
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). | |||
|
date
| A date, or partial date (e.g. just year or year + month) as used in human communication. There is no time zone . Dates SHALL be valid dates | union of xs:date, xs:gYearMonth, xs:gYear | A JSON string - a union of xs:date, xs:gYearMonth, xs:gYear |
| Regex: -?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1]))?)? | |||
|
dateTime
|
A date, date-time or partial date (e.g. just year or year + month) as used in human communication. If hours and minutes are specified, a time zone SHALL be populated. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.
The time "24:00" is not allowed
| 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]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)? | |||
|
time
|
A time during the day, with no date specified (can be converted to a
Duration
|
xs:time
| A JSON string - an xs:time |
| Regex: ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)? | |||
|
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]?[^\s]+)* | |||
| oid |
An OID represented as a URI (
RFC 3001
| xs:anyURI | JSON string - uri |
| Regex: urn:oid:[0-2](\.[1-9]\d*)+ | |||
|
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} | |||
| markdown | A string that may contain markdown syntax for optional processing by a markdown presentation engine | xs:string | JSON string |
| unsignedInt | Any non-negative integer (e.g. >= 0) | xs:nonNegativeInteger | JSON number |
| Regex: [0]|([1-9][0-9]*) | |||
|
positiveInt
| Any positive integer (e.g. >= 1) | xs:positiveInteger | JSON number |
| Regex: [1-9][0-9]* | |||
Notes:
, but also includes other identifier formats as well, and is not case insensitive like ISO 18232.
http://example.com/fhir/Patient/
1234
uri
id
string
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.)
regex:
[A-Za-z0-9\-\.]{1,64}
markdown
. UUIDs in URIs SHALL also be represented in lowercase (urn:uuid:59bf0ef4-e89c-4628-9b51-12ae3fdbe22b)
DSTU Note: CommonMark
![]()
unsignedIntis a new arrival but may gain sufficient impetus to be preferred in a future version.Feedback is welcome here
![]()
int.
All elements using these primitive types may have one or more of a value as described above, an internal identity (e.g. xml:id), and extensions. For an example, take an element of name "count" and type "integer".
Some
additional
notes
about
the
id
datatype:
Ids
are
case
sensitive.
UUIDs
SHALL
be
sent
using
lowercase
letters
The
ID
type
includes
identifiers
consistent
with
ISO
18232
XML
,
but
also
includes
other
identifier
formats
as
well,
and
is
not
case
insensitive
like
ISO
18232.
In
a
typical
FHIR
URL,
like
http://example.com/fhir/Patient/
1234
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>
,
the
last
part
"1234"
(highlighted
in
red)
is
the
part
that
is
an
id
datatype
A
full
UUID
is
a
uri
,
not
an
id
.
UUIDs
in
URIs
SHALL
also
be
represented
in
lowercase
(urn:uuid:59bf0ef4-e89c-4628-9b51-12ae3fdbe22b)
Some
additional
notes
about
the
markdown
datatype:
Systems
are
not
required
to
have
markdown
support,
and
there
is
considerable
variation
in
markdown
syntax,
so
the
content
of
a
string
should
be
readable
without
markdown
processing,
per
markdown
philosophy
The
preferred
markdown
syntax
is
described
at
http://daringfireball.net/projects/markdown/syntax
JSON
(see
tests
here:
http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip
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" : "...."
}]
}
)
DSTU
Note:
RDF
CommonMark
is
a
new
arrival
but
may
gain
sufficient
impetus
to
be
preferred
in
a
future
version.
Feedback
is
welcome
here
.
The value is represented in RDF as an relationship with the URI "http://h;7.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 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 data type 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
JSON
representation.
Complex
data
types
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.
has an additional explicit JSON representation.
Complex data types 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
Data
types
UML Diagrams of the Data types
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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.
.
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 |
|
|---|---|---|---|---|
|
|
Element |
|
|
|
Σ | 0..1 | code |
|
|
Σ | 0..1 | code |
|
|
0..1 | base64Binary |
|
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | unsignedInt |
|
|
Σ | 0..1 | base64Binary |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | dateTime |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < < <<contentType value="[code]"/><!-- 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]"/><!-- 0..1 Data inline, base64ed --> <url value="[uri]"/><!-- 0..1 Uri where the data can be found --> <size value="[unsignedInt]"/><!-- 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 --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"
"
"contentType" : "<code>", // Mime type of the content, with charset etc.
"language" : "<code>", // Human language of the content (BCP-47)
"data" : "<base64Binary>", // Data inline, base64ed
"url" : "<uri>", // Uri where the data can be found
"size" : "<unsignedInt>", // 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
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Attachment.contentType [ code ]; # 0..1 Mime type of the content, with charset etc. fhir:Attachment.language [ code ]; # 0..1 Human language of the content (BCP-47) fhir:Attachment.data [ base64Binary ]; # 0..1 Data inline, base64ed fhir:Attachment.url [ uri ]; # 0..1 Uri where the data can be found fhir:Attachment.size [ unsignedInt ]; # 0..1 Number of bytes of content (if url provided) fhir:Attachment.hash [ base64Binary ]; # 0..1 Hash of the data (sha-1, base64ed) fhir:Attachment.title [ string ]; # 0..1 Label to display in place of the data fhir:Attachment.creation [ dateTime ]; # 0..1 Date attachment was first created ]
Changes since DSTU2
| Attachment | |
| Attachment.language | Change binding strength from required to extensible, Change value set from http://tools.ietf.org/html/bcp47 to http://hl7.org/fhir/ValueSet/languages |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
|
Element |
|
|
|
Σ | 0..1 | code |
|
|
Σ | 0..1 | code |
|
|
0..1 | base64Binary |
|
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | unsignedInt |
|
|
Σ | 0..1 | base64Binary |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | dateTime |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < < <<contentType value="[code]"/><!-- 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]"/><!-- 0..1 Data inline, base64ed --> <url value="[uri]"/><!-- 0..1 Uri where the data can be found --> <size value="[unsignedInt]"/><!-- 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 --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"
"
"contentType" : "<code>", // Mime type of the content, with charset etc.
"language" : "<code>", // Human language of the content (BCP-47)
"data" : "<base64Binary>", // Data inline, base64ed
"url" : "<uri>", // Uri where the data can be found
"size" : "<unsignedInt>", // 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
}
The
actual
content
of
an
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Attachment.contentType [ code ]; # 0..1 Mime type of the content, with charset etc. fhir:Attachment.language [ code ]; # 0..1 Human language of the content (BCP-47) fhir:Attachment.data [ base64Binary ]; # 0..1 Data inline, base64ed fhir:Attachment.url [ uri ]; # 0..1 Uri where the data can be found fhir:Attachment.size [ unsignedInt ]; # 0..1 Number of bytes of content (if url provided) fhir:Attachment.hash [ base64Binary ]; # 0..1 Hash of the data (sha-1, base64ed) fhir:Attachment.title [ string ]; # 0..1 Label to display in place of the data fhir:Attachment.creation [ dateTime ]; # 0..1 Date attachment was first created ]
Changes since DSTU2
|
Attachment
| |
| Attachment.language | Change binding strength from required to extensible, Change value set from http://tools.ietf.org/html/bcp47 to http://hl7.org/fhir/ValueSet/languages |
See the Full Difference for further information
The actual content of an Attachment can be conveyed directly using the
data
element or a (i.e.
the
reference
is
version
specific).
The
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. the reference is version specific). The reference
SHALL
point
to
a
location
that
resolves
to
actual
data;
some
URIs
such
as
cid:
meet
this
requirement.
If
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
. is
a
relative
reference,
it
is
interpreted
in
the
same
way
as
a
resource
reference
.
The
The
contentType
element SHALL always be populated when an Attachment contains element
SHALL
always
be
populated
when
an
Attachment
contains
data
, and MAY be populated when there is a ,
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 .
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. 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
The
hash
is included so that applications can verify that the content returned by the URL has not changed. is
included
so
that
applications
can
verify
that
the
content
returned
by
the
URL
has
not
changed.
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
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
:
data.empty() or contentType.exists()
)
If neither
data
nor a nor
a
URL
is provided, the value should be understood as an assertion that no content for the specified is
provided,
the
value
should
be
understood
as
an
assertion
that
no
content
for
the
specified
mimeType
and/or and/or
language
is available for the combination of is
available
for
the
combination
of
language
and 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.
Attachment
is
used
in
the
following
places:
The context of use may frequently make rules about the kind of attachment (and therefore, the kind of mime types) that can be used.
Attachment is used in the following places:
BodySite
,
,
Communication
,
,
CommunicationRequest
,
,
Consent
,
Contract
,
,
DiagnosticReport
,
,
DocumentManifest
,
,
DocumentReference
,
,
HealthcareService
,
ImagingStudy
,
,
Library
,
Media
,
,
Observation
,
,
Patient
,
,
Person
,
,
Practitioner
,
,
Questionnaire
,
QuestionnaireResponse
and
and
RelatedPerson
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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.
.
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.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | code |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | boolean |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] 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]"/><!-- 0..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"system" : "<uri>", // Identity of the terminology system
"version" : "<string>", // Version of the system - if relevant
"code" : "<code>", // Symbol in syntax defined by the system
"display" : "<string>", // 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: Element.extension fhir:Coding.system [ uri ]; # 0..1 Identity of the terminology system fhir:Coding.version [ string ]; # 0..1 Version of the system - if relevant fhir:Coding.code [ code ]; # 0..1 Symbol in syntax defined by the system fhir:Coding.display [ string ]; # 0..1 Representation defined by the system fhir:Coding.userSelected [ boolean ]; # 0..1 If this coding was chosen directly by the user ]
Changes since DSTU2
| Coding | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | code |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | boolean |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] 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]"/><!-- 0..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"system" : "<uri>", // Identity of the terminology system
"version" : "<string>", // Version of the system - if relevant
"code" : "<code>", // Symbol in syntax defined by the system
"display" : "<string>", // Representation defined by the system
"userSelected" : <boolean> // If this coding was chosen directly by the user
}
The
meaning
of
the
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Coding.system [ uri ]; # 0..1 Identity of the terminology system fhir:Coding.version [ string ]; # 0..1 Version of the system - if relevant fhir:Coding.code [ code ]; # 0..1 Symbol in syntax defined by the system fhir:Coding.display [ string ]; # 0..1 Representation defined by the system fhir:Coding.userSelected [ boolean ]; # 0..1 If this coding was chosen directly by the user ]
Changes since DSTU2
|
Coding
| No Changes |
See the Full Difference for further information
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 adds no other value. versions
in
the
Value
Set
resource
for
further
discussion
on
versioning.
If
present,
the
code
SHALL
be
a
syntactically
correct
symbol
as
defined
by
the
The
system
is a URI that references the code system that defines the .
In
some
code
systems
such
as
SNOMED
CT,
the
symbol
may
be
an
expression
composed
of
other
predefined
symbol
(e.g.
post-coordination).
Note
that
codes
are
case
sensitive
unless
specified
otherwise
by
the
code
. Choosing the correct system is important; for more information about the code system URI, read
Managing Terminology System URIs
. The system URI SHALL NOT contain a reference to a value set (e.g. ValueSet.url). If the code is taken from a CodeSystem resource, system.
The
display
is
a
text
representation
of
the
CodeSystem.url
is the correct value for the system uri. Resolvable URLs are generally preferred by implementers over non-resolvable URNs, particularly opaque URNs such as OIDs (urn:oid:) or UUIDs (urn:uuid:).
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. 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 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. post-coordination). Note that codes are case sensitive unless specified otherwise by the code system. The and
is
used
to
display
is a text representation of the code defined by the the
meaning
of
the
code
by
an
application
that
is
not
aware
of
the
system
and is used to display the meaning of the code by an application that is not aware of the .
Where
the
code
system
. defines
multiple
possible
display
strings,
one
of
these
SHALL
be
used
in
Where the code system defines multiple possible display strings, one of these SHALL be used in
display
. If one is labeled as preferred, it SHOULD be used. If the code system does not define a text representation (e.g. SNOMED CT Expressions) then .
If
one
is
labeled
as
preferred,
it
SHOULD
be
used.
If
the
code
system
does
not
define
a
text
representation
(e.g.
SNOMED
CT
Expressions)
then
display
cannot be populated, and the meaning of the code won't be accessible to systems that don't understand the code expression. 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
may
not
be
known
-
only
the
code
is
known.
In
this
case,
no
useful
processing
of
the
code
may
be
performed
unless
the
system
can
be
safely
inferred
by
the
context.
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.
If
the
system
is
present,
and
there
is
no
code,
then
this
is
understood
to
mean
that
there
is
no
suitable
code
in
the
In some cases, the
system
may not be known - only the code is known. In this case, no useful processing of the code may be performed unless the system can be safely inferred by the context. 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. in
which
to
represent
the
code.
If
two
codings
have
the
same
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 code.
If two codings have the same
system
, ,
version
and and
code
then they have the same meaning. If the version information is missing, or the then
they
have
the
same
meaning.
If
the
version
information
is
missing,
or
the
system
, ,
version
or the 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
elements
differ,
then
how
the
codes
are
related
can
only
be
determined
by
consulting
the
definitions
of
the
system(s)
and
any
available.
A
coding
may
be
marked
as
a
"userSelected"
if
a
user
selected
the
particular
coded
value
in
a
user
interface
(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.
available.
A coding may be marked as a "userSelected" if a user selected the particular coded value in a user interface (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
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
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:
CodeableConcept
,
the element to a value set.
Coding is used in the following places:
Signature
,
,
CodeableConcept
,
Account
,
,
AuditEvent
,
,
Claim
,
,
ClaimResponse
,
,
CodeSystem
,
Conformance
,
,
Consent
,
Contract
,
,
Coverage
,
,
DocumentReference
,
,
EligibilityRequest
,
,
EligibilityResponse
,
,
Encounter
,
Endpoint
,
EnrollmentRequest
,
,
EnrollmentResponse
,
,
ExpansionProfile
,
ExplanationOfBenefit
,
,
GuidanceResponse
,
ImagingManifest
,
ImagingStudy
,
,
MessageHeader
,
,
PaymentNotice
,
,
PaymentReconciliation
,
,
PlanDefinition
,
ProcessRequest
,
,
ProcessResponse
,
,
Provenance
,
,
Questionnaire
,
,
QuestionnaireResponse
,
,
StructureDefinition
,
,
Subscription
,
,
TestScript
,
,
ValueSet
and
and
VisionPrescription
Design
Note
:
This
specification
defines
two
types
for
representing
coded
values:
Design Note : This specification defines two types for representing coded values:
- Coding
: a simple direct reference to a code defined by a code system: a simple direct reference to a code defined by a code system- CodeableConcept
: a text description and/or a list of Codings (i.e. a list of references to codes defined by code systems) The Coding data type 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: a text description and/or a list of Codings (i.e. a list of references to codes defined by code systems)The
Codingdata type 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.data type 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 - soThe
Codingdata type 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.is mostly used in extensions, which are usually intended to be defined for a well-controlled context of use.
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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.
.
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.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..* | Coding |
|
|
Σ | 0..1 | string |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</coding> <<coding><!-- 0..* Coding Code defined by a terminology system --></coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </[name]>
JSON
Template
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: Element.extension fhir:CodeableConcept.coding [ Coding ], ... ; # 0..* Code defined by a terminology system fhir:CodeableConcept.text [ string ]; # 0..1 Plain text representation of the concept ]
Changes since DSTU2
| CodeableConcept | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..* | Coding |
|
|
Σ | 0..1 | string |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</coding> <<coding><!-- 0..* Coding Code defined by a terminology system --></coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"coding" : [{ Coding }], // Code defined by a terminology system
"text" : "<string>" // Plain text representation of the concept
}
Each
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:CodeableConcept.coding [ Coding ], ... ; # 0..* Code defined by a terminology system fhir:CodeableConcept.text [ string ]; # 0..1 Plain text representation of the concept ]
Each
coding
is a representation of the concept as described above. The concept may be coded multiple times in different code systems (or even multiple times in the same code systems, where multiple forms are possible, such as with SNOMED CT). The different codings may have slightly different granularity due to the differences in the definitions of the underlying codes. There is no meaning associated with the ordering of is
a
representation
of
the
concept
as
described
above.
The
concept
may
be
coded
multiple
times
in
different
code
systems
(or
even
multiple
times
in
the
same
code
systems,
where
multiple
forms
are
possible,
such
as
with
SNOMED
CT).
The
different
codings
may
have
slightly
different
granularity
due
to
the
differences
in
the
definitions
of
the
underlying
codes.
There
is
no
meaning
associated
with
the
ordering
of
coding
within a within
a
CodeableConcept
. A typical use of .
A
typical
use
of
CodeableConcept
is to send the local code that the concept was coded with, and also one or more translations to publicly defined code systems such as LOINC or SNOMED CT. Sending local codes is useful and important for the purposes of debugging and integrity auditing. is
to
send
the
local
code
that
the
concept
was
coded
with,
and
also
one
or
more
translations
to
publicly
defined
code
systems
such
as
LOINC
or
SNOMED
CT.
Sending
local
codes
is
useful
and
important
for
the
purposes
of
debugging
and
integrity
auditing.
Whether
or
not
Whether or not
coding
elements are present, the elements
are
present,
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 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 is
the
same
as
a
display
of one of the codings. One of the codings may be flagged as the userSelected - the code or concept that the user actually selected directly. When none of the of
one
of
the
codings.
One
of
the
codings
may
be
flagged
as
the
userSelected
-
the
code
or
concept
that
the
user
actually
selected
directly.
When
none
of
the
coding
elements is marked as userSelected, the text (if present) is the preferred source of meaning. elements
is
marked
as
userSelected,
the
text
(if
present)
is
the
preferred
source
of
meaning.
Constraints
The
context
of
use
usually
makes
rules
about
what
codes
and
systems
are
allowed
or
required
in
a
particular
context
by
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:
the element to a value set.
CodeableConcept is used in the following places:
Identifier
,
,
Account
,
,
ActivityDefinition
,
AllergyIntolerance
,
,
Appointment
,
,
AppointmentResponse
,
,
AuditEvent
,
,
Basic
,
,
BodySite
,
,
CarePlan
,
,
CareTeam
,
ClinicalImpression
,
,
CodeSystem
,
Communication
,
,
CommunicationRequest
,
,
Composition
,
,
ConceptMap
,
,
Condition
,
,
Conformance
,
,
Consent
,
Contract
,
,
DataElement
,
,
DecisionSupportServiceModule
,
DetectedIssue
,
,
Device
,
,
DeviceComponent
,
,
DeviceMetric
,
,
DeviceUseRequest
,
,
DeviceUseStatement
,
DiagnosticOrder
,
,
DiagnosticReport
,
,
DiagnosticRequest
,
DocumentManifest
,
,
DocumentReference
,
,
Encounter
,
,
Endpoint
,
EpisodeOfCare
,
,
FamilyMemberHistory
,
,
Flag
,
,
Goal
,
,
Group
,
,
GuidanceResponse
,
HealthcareService
,
ImagingObjectSelection
,
,
ImagingManifest
,
ImagingStudy
,
Immunization
,
,
ImmunizationRecommendation
,
,
ImplementationGuide
,
,
Library
,
List
,
,
Location
,
,
Measure
,
Media
,
,
Medication
,
,
MedicationAdministration
,
,
MedicationDispense
,
,
MedicationOrder
,
,
MedicationStatement
,
,
MessageHeader
,
,
NamingSystem
,
NutritionOrder
,
,
NutritionRequest
,
Observation
,
,
OperationDefinition
,
OperationOutcome
,
Order
,
,
Organization
,
,
Patient
,
,
PlanDefinition
,
Practitioner
,
,
PractitionerRole
,
Procedure
,
,
ProcedureRequest
,
,
Provenance
,
,
Questionnaire
,
ReferralRequest
,
,
RelatedPerson
,
,
RiskAssessment
,
,
Schedule
,
,
SearchParameter
,
Sequence
,
Slot
,
,
Specimen
,
,
StructureDefinition
,
,
StructureMap
,
Substance
,
,
SupplyDelivery
,
,
SupplyRequest
,
,
Task
,
TestScript
,
,
ValueSet
and
and
VisionPrescription
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
A
measured
amount
(or
an
amount
that
can
potentially
be
measured).
.
A measured amount (or an amount that can potentially be measured).
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ | 0..1 | decimal |
|
|
?! Σ | 0..1 | code |
QuantityComparator |
|
Σ | 0..1 | string |
|
|
Σ I | 0..1 | uri |
|
|
Σ | 0..1 | code |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < <<value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 0..1 Unit representation --> <system value="[uri]"/><!--0..1 System that defines coded unit form --> <code value="[code]"/><!-- 0..1 Coded form of the unit --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"value" : <decimal>, // Numerical value (with implicit precision)
"comparator" : "<code>", // < | <= | >= | > - how to understand the value
"unit" : "<string>", // Unit representation
"system" : "<uri>", // C? System that defines coded unit form
"code" : "<code>" // Coded form of the unit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Quantity.value [ decimal ]; # 0..1 Numerical value (with implicit precision) fhir:Quantity.comparator [ code ]; # 0..1 < | <= | >= | > - how to understand the value fhir:Quantity.unit [ string ]; # 0..1 Unit representation fhir:Quantity.system [ uri ]; # 0..1 System that defines coded unit form fhir:Quantity.code [ code ]; # 0..1 Coded form of the unit ]
Changes since DSTU2
| Quantity | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ | 0..1 | decimal |
|
|
?! Σ | 0..1 | code |
QuantityComparator |
|
Σ | 0..1 | string |
|
|
Σ I | 0..1 | uri |
|
|
Σ | 0..1 | code |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < <<value value="[decimal]"/><!-- 0..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 0..1 Unit representation --> <system value="[uri]"/><!--0..1 System that defines coded unit form --> <code value="[code]"/><!-- 0..1 Coded form of the unit --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"value" : <decimal>, // Numerical value (with implicit precision)
"comparator" : "<code>", // < | <= | >= | > - how to understand the value
"unit" : "<string>", // Unit representation
"system" : "<uri>", // C? System that defines coded unit form
"code" : "<code>" // Coded form of the unit
}
The
value
contains
the
numerical
value
of
the
quantity,
including
an
implicit
precision.
If
no
comparator
is
specified,
the
value
is
a
point
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Quantity.value [ decimal ]; # 0..1 Numerical value (with implicit precision) fhir:Quantity.comparator [ code ]; # 0..1 < | <= | >= | > - how to understand the value fhir:Quantity.unit [ string ]; # 0..1 Unit representation fhir:Quantity.system [ uri ]; # 0..1 System that defines coded unit form fhir:Quantity.code [ code ]; # 0..1 Coded form of the unit ]
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. '='). The (i.e.
'=').
The
comparator
element can never be ignored. element
can
never
be
ignored.
The
unit
element
contains
a
displayable
unit
that
defines
what
is
measured.
The
The
unit
element contains a displayable unit that defines what is measured. The unit may additionally be coded in some formal way using the may
additionally
be
coded
in
some
formal
way
using
the
code
and the and
the
system
(see
Coding
(see
for
further
information
about
how
to
use
the
for further information about how to use the
system
element). element).
If
the
unit
is
able
to
be
coded
in
UCUM
and
a
code
is
provided,
it
SHOULD
be
a
UCUM
code.
If
a
UCUM
unit
is
provided
in
the
If the unit is able to 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 then
a
canonical
value
can
be
generated
for
purposes
of
comparison
between
quantities.
Note
that
the
unit
element
will
often
contain
text
that
is
actually
a
valid
UCUM
unit,
but
it
cannot
be
assumed
that
the
unit
element will often contain text that is actually a valid UCUM unit, but it cannot be assumed that the unit actually contains a valid UCUM unit. actually
contains
a
valid
UCUM
unit.
Constraints
:
code.empty() or system.exists()
)
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 from
a
particular
system
. The context of use may also restrict the values for the .
The
context
of
use
may
also
restrict
the
values
for
the
value
or or
range
. .
Quantity
is
used
in
the
following
places:
Quantity is used in the following places:
Duration
,
Count
,
Money
,
Ratio
,
,
Distance
,
Age
,
Claim
,
ExplanationOfBenefit
,
Group
,
,
Observation
and
,
Questionnaire
,
QuestionnaireResponse
and
Sequence
There are several additional data types that are specializations of Quantity that only introduce new restrictions on the existing elements defined as part of the Quantity data type:
| Type Name | Rules | Formal Definitions |
|
Age
|
|
|
|
Usage:
Condition
| ||
| Count |
|
|
| Usage: (not used as yet) | ||
|
Distance
|
|
|
| Usage: (not used as yet) | ||
| Duration |
|
|
|
Usage:
Encounter
| ||
| Money |
|
XML
|
| Usage: Account , Claim , ClaimResponse , Contract , EligibilityResponse , ExplanationOfBenefit and PaymentReconciliation | ||
In addition to the specializations, there is one profile on Quantity used in several resources: | ||
| Profile Name | Rules | Formal Definitions |
| Simple Quantity |
| XML , JSON |
|
Usage:
Range
| ||
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.
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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.
"give
the
patient
between
2
and
4
tablets").
Ranges
are
typically
used
in
instructions.
.
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. "give the patient between 2 and 4 tablets"). Ranges are typically used in instructions.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | SimpleQuantity |
|
|
Σ I | 0..1 | SimpleQuantity |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</low> <</high><low><!--0..1 Quantity(SimpleQuantity) Low limit --></low> <high><!--
0..1 Quantity(SimpleQuantity) High limit --></high> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"low" : { Quantity(SimpleQuantity) }, // C? Low limit
"high" : { Quantity(SimpleQuantity) } // C? High limit
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Range.low [ Quantity(SimpleQuantity) ]; # 0..1 Low limit fhir:Range.high [ Quantity(SimpleQuantity) ]; # 0..1 High limit ]
Changes since DSTU2
| Range | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | SimpleQuantity |
|
|
Σ I | 0..1 | SimpleQuantity |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</low> <</high><low><!--0..1 Quantity(SimpleQuantity) Low limit --></low> <high><!--
0..1 Quantity(SimpleQuantity) High limit --></high> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"low" : { Quantity(SimpleQuantity) }, // C? Low limit
"high" : { Quantity(SimpleQuantity) } // C? High limit
}
The
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Range.low [ Quantity(SimpleQuantity) ]; # 0..1 Low limit fhir:Range.high [ Quantity(SimpleQuantity) ]; # 0..1 High limit ]
The
unit
and and
code
/
system
elements of the elements
of
the
low
or
high
elements
SHALL
match.
If
the
low
or
high
elements
are
missing,
the
meaning
is
that
the
low
or or
high
elements SHALL match. If the boundaries
are
not
known
and
therefore
neither
is
the
complete
range.
The
comparator
flag
on
the
low
or or
high
elements are missing, the meaning is that the low or high boundaries are not known and therefore neither is the complete range. elements
cannot
be
present.
Note
that
the
Range
type
should
not
be
used
to
represent
out
of
range
measurements:
A
quantity
type
with
the
The
comparator
flag on the element
should
be
used
instead.
The
low
or and
the
high
values
are
inclusive,
and
are
assumed
to
have
arbitrarily
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. precision;
e.g.
the
range
1.5
to
2.5
includes
1.50,
and
2.50
but
not
1.49
or
2.51.
The low and the high values are inclusive, and are assumed to have arbitrarily high precision; e.g. the range 1.5 to 2.5 includes 1.50, and 2.50 but not 1.49 or 2.51.
Constraints
:
low.empty() or high.empty() or (low <= high)
)
Range is used in the following places:
Condition
,
,
FamilyMemberHistory
,
,
Group
,
MedicationAdministration
,
,
GuidanceResponse
,
MedicationDispense
,
,
MedicationOrder
,
,
MedicationStatement
,
,
Observation
and
,
PlanDefinition
and
RiskAssessment
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
A
relationship
between
two
Quantity
values
expressed
as
a
numerator
and
a
denominator.
.
A relationship between two Quantity values expressed as a numerator and a denominator.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ | 0..1 | Quantity |
|
|
Σ | 0..1 | Quantity |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</numerator> <</denominator><numerator><!-- 0..1 Quantity Numerator value --></numerator> <denominator><!-- 0..1 Quantity Denominator value --></denominator> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"numerator" : { Quantity }, // Numerator value
"denominator" : { Quantity } // Denominator value
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Ratio.numerator [ Quantity ]; # 0..1 Numerator value fhir:Ratio.denominator [ Quantity ]; # 0..1 Denominator value ]
Changes since DSTU2
| Ratio | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ | 0..1 | Quantity |
|
|
Σ | 0..1 | Quantity |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</numerator> <</denominator><numerator><!-- 0..1 Quantity Numerator value --></numerator> <denominator><!-- 0..1 Quantity Denominator value --></denominator> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"numerator" : { Quantity }, // Numerator value
"denominator" : { Quantity } // Denominator value
}
Common
factors
in
the
numerator
and
denominator
are
not
automatically
cancelled
out.
The
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Ratio.numerator [ Quantity ]; # 0..1 Numerator value fhir:Ratio.denominator [ Quantity ]; # 0..1 Denominator value ]
Changes since DSTU2
|
Ratio
| No Changes |
See the Full Difference for further information
Common factors in the numerator and denominator are not automatically cancelled out. The Ratio data type is used for titers (e.g. "1:128") and other quantities produced by laboratories that truly represent ratios. Ratios are not simply "structured numbers" - for example blood pressure measurements (e.g. "120/60") are not ratios. In addition, ratios are used where common factors in the numerator and denominator do not cancel out. The most common example of this is where the ratio represents a unit cost, and the numerator is a currency (e.g. 50/$10).
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
:
(numerator.exists() and denominator.exists()) or extension.exists()
)
The context of use may require particular types of Quantity for the numerator or denominator.
Ratio is used in the following places:
Medication
,
,
MedicationAdministration
,
,
MedicationDispense
,
,
MedicationOrder
,
,
MedicationStatement
,
NutritionOrder
,
,
NutritionRequest
,
Observation
and
and
Substance
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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.
"the
patient
was
an
inpatient
of
the
hospital
for
this
time
range")
or
one
value
from
the
period
applies
(e.g.
"give
to
the
patient
between
2
and
4
pm
on
24-Jun
2013").
.
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. "the patient was an inpatient of the hospital for this time range") or one value from the period applies (e.g. "give to the patient between 2 and 4 pm on 24-Jun 2013").
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | dateTime |
|
|
Σ I | 0..1 | dateTime |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< <<start value="[dateTime]"/><!--0..1 Starting time with inclusive boundary --> <end value="[dateTime]"/><!--
0..1 End time with inclusive boundary, if not ongoing --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"start" : "<dateTime>", // C? Starting time with inclusive boundary
"end" : "<dateTime>" // C? End time with inclusive boundary, if not ongoing
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Period.start [ dateTime ]; # 0..1 Starting time with inclusive boundary fhir:Period.end [ dateTime ]; # 0..1 End time with inclusive boundary, if not ongoing ]
Changes since DSTU2
| Period | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | dateTime |
|
|
Σ I | 0..1 | dateTime |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< <<start value="[dateTime]"/><!--0..1 Starting time with inclusive boundary --> <end value="[dateTime]"/><!--
0..1 End time with inclusive boundary, if not ongoing --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"start" : "<dateTime>", // C? Starting time with inclusive boundary
"end" : "<dateTime>" // C? 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,
or
the
start
may
be
in
the
past,
and
the
end
date
in
the
future,
which
means
that
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
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Period.start [ dateTime ]; # 0..1 Starting time with inclusive boundary fhir:Period.end [ dateTime ]; # 0..1 End time with inclusive boundary, if not ongoing ]
If the
start
element is missing, the start of the period is not known. If the of
the
23rd
May
through
to
the
end
element is missing, it means that the period is ongoing, or the start may be in the past, and the end date in the future, which means that period is expected/planned to end at the specified time of
the
27th
of
May.
Period
is
used
in
the
following
places:
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.
Period is used in the following places:
Identifier
,
,
Account
,
,
ActivityDefinition
,
CarePlan
,
,
CareTeam
,
Claim
,
ClinicalImpression
,
CommunicationRequest
,
,
Composition
,
,
Condition
,
,
Consent
,
Contract
,
,
Coverage
,
,
DecisionSupportServiceModule
,
DeviceUseRequest
,
,
DeviceUseStatement
,
,
DiagnosticReport
,
,
DiagnosticRequest
,
DocumentReference
,
,
EligibilityRequest
,
Encounter
,
,
Endpoint
,
EpisodeOfCare
,
,
ExplanationOfBenefit
,
FamilyMemberHistory
,
,
Flag
,
,
Group
,
,
GuidanceResponse
,
HealthcareService
,
,
Library
,
Measure
,
MeasureReport
,
MedicationAdministration
,
,
MedicationOrder
,
,
MedicationStatement
,
,
NamingSystem
,
,
Observation
,
,
Patient
,
,
PaymentReconciliation
,
,
PlanDefinition
,
Practitioner
,
,
PractitionerRole
,
Procedure
,
,
ProcedureRequest
,
,
ProcessRequest
,
,
Provenance
,
,
ReferralRequest
,
,
RelatedPerson
,
,
RiskAssessment
,
,
Schedule
,
,
Specimen
and
,
SupplyDelivery
and
Task
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
Data
that
comes
from
a
series
of
measurements
taken
by
a
device,
with
upper
and
lower
limits.
There
may
be
more
than
one
dimension
in
the
data.
A
SampledData
provides
a
concise
way
to
handle
the
data
produced
by
devices
that
sample
a
physical
particular
state
at
a
high
frequency.
A
typical
use
for
this
is
for
the
output
of
an
ECG
or
EKG
device.
.
Data that comes from a series of measurements taken by a device, with upper and lower limits. There may be more than one dimension in the data.
A SampledData provides a concise way to handle the data produced by devices that sample a physical particular state at a high frequency. A typical use for this is for the output of an ECG or EKG device.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 1..1 | SimpleQuantity |
|
|
Σ | 1..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 1..1 | positiveInt |
|
|
1..1 | string |
|
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</origin> < < < < < <<origin><!-- 1..1 Quantity(SimpleQuantity) Zero value and units --></origin> <period value="[decimal]"/><!-- 1..1 Number of milliseconds 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 --> <data value="[string]"/><!-- 1..1 Decimal values with spaces, or "E" | "U" | "L" --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"
"origin" : { Quantity(SimpleQuantity) }, // R! Zero value and units
"period" : <decimal>, // R! Number of milliseconds 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
"data" : "<string>" // R! Decimal values with spaces, or "E" | "U" | "L"
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:SampledData.origin [ Quantity(SimpleQuantity) ]; # 1..1 Zero value and units fhir:SampledData.period [ decimal ]; # 1..1 Number of milliseconds between samples fhir:SampledData.factor [ decimal ]; # 0..1 Multiply data by this before adding to origin fhir:SampledData.lowerLimit [ decimal ]; # 0..1 Lower limit of detection fhir:SampledData.upperLimit [ decimal ]; # 0..1 Upper limit of detection fhir:SampledData.dimensions [ positiveInt ]; # 1..1 Number of sample points at each time point fhir:SampledData.data [ string ]; # 1..1 Decimal values with spaces, or "E" | "U" | "L" ]
Changes since DSTU2
| SampledData | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 1..1 | SimpleQuantity |
|
|
Σ | 1..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 1..1 | positiveInt |
|
|
1..1 | string |
|
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</origin> < < < < < <<origin><!-- 1..1 Quantity(SimpleQuantity) Zero value and units --></origin> <period value="[decimal]"/><!-- 1..1 Number of milliseconds 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 --> <data value="[string]"/><!-- 1..1 Decimal values with spaces, or "E" | "U" | "L" --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"
"origin" : { Quantity(SimpleQuantity) }, // R! Zero value and units
"period" : <decimal>, // R! Number of milliseconds 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
"data" : "<string>" // R! Decimal values with spaces, or "E" | "U" | "L"
}
The
digits
are
a
set
of
decimal
values
separated
by
a
single
space
(Unicode
character
u20).
In
addition
to
decimal
values,
the
special
values
"E"
(error),
"L"
(below
detection
limit)
and
"U"
(above
detection
limit)
can
also
be
used.
If
there
is
more
than
one
dimension,
the
different
dimensions
are
interlaced
-
all
the
data
points
for
a
particular
time
are
represented
together.
The
default
value
for
factor
is
1.
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:SampledData.origin [ Quantity(SimpleQuantity) ]; # 1..1 Zero value and units fhir:SampledData.period [ decimal ]; # 1..1 Number of milliseconds between samples fhir:SampledData.factor [ decimal ]; # 0..1 Multiply data by this before adding to origin fhir:SampledData.lowerLimit [ decimal ]; # 0..1 Lower limit of detection fhir:SampledData.upperLimit [ decimal ]; # 0..1 Upper limit of detection fhir:SampledData.dimensions [ positiveInt ]; # 1..1 Number of sample points at each time point fhir:SampledData.data [ string ]; # 1..1 Decimal values with spaces, or "E" | "U" | "L" ]
Changes since DSTU2
|
SampledData
| No Changes |
See the Full Difference for further information
The digits are a set of decimal values separated by a single space (Unicode character u20). In addition to decimal values, the special values "E" (error), "L" (below detection limit) and "U" (above detection limit) can also be used. If there is more than one dimension, the different dimensions are interlaced - all the data points for a particular time are represented together. The default value for
factor
is 1.
SampledData is used in the following places: Observation
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
A
numeric
or
alphanumeric
string
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.
.
A numeric or alphanumeric string 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 |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
IdentifierUse |
|
Σ | 0..1 | CodeableConcept |
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | Period |
|
|
Σ | 0..1 | Reference ( Organization ) |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< <</type> < < <</period> <</assigner><use value="[code]"/><!-- 0..1 usual | official | temp | secondary (If known) --> <type><!-- 0..1 CodeableConcept Description of identifier --></type> <system value="[uri]"/><!-- 0..1 The namespace for the identifier --> <value value="[string]"/><!-- 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> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"use" : "<code>", // usual | official | temp | secondary (If known)
"type" : { CodeableConcept }, // Description of identifier
"system" : "<uri>", // The namespace for the identifier
"value" : "<string>", // 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: Element.extension fhir:Identifier.use [ code ]; # 0..1 usual | official | temp | secondary (If known) fhir:Identifier.type [ CodeableConcept ]; # 0..1 Description of identifier fhir:Identifier.system [ uri ]; # 0..1 The namespace for the identifier fhir:Identifier.value [ string ]; # 0..1 The value that is unique fhir:Identifier.period [ Period ]; # 0..1 Time period when id is/was valid for use fhir:Identifier.assigner [ Reference(Organization) ]; # 0..1 Organization that issued id (may be just text) ]
Changes since DSTU2
| Identifier | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
IdentifierUse |
|
Σ | 0..1 | CodeableConcept |
|
|
Σ | 0..1 | uri |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | Period |
|
|
Σ | 0..1 | Reference ( Organization ) |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< <</type> < < <</period> <</assigner><use value="[code]"/><!-- 0..1 usual | official | temp | secondary (If known) --> <type><!-- 0..1 CodeableConcept Description of identifier --></type> <system value="[uri]"/><!-- 0..1 The namespace for the identifier --> <value value="[string]"/><!-- 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> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
"
"
"
"
"use" : "<code>", // usual | official | temp | secondary (If known)
"type" : { CodeableConcept }, // Description of identifier
"system" : "<uri>", // The namespace for the identifier
"value" : "<string>", // 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)
}
The
system
referred
to
by
means
of
a
URI
defines
how
the
identifier
is
defined
(i.e.
how
the
value
is
made
unique).
It
might
be
a
specific
application
or
a
recognized
standard/specification
for
a
set
or
identifiers
or
a
way
of
making
identifiers
unique.
The
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Identifier.use [ code ]; # 0..1 usual | official | temp | secondary (If known) fhir:Identifier.type [ CodeableConcept ]; # 0..1 Description of identifier fhir:Identifier.system [ uri ]; # 0..1 The namespace for the identifier fhir:Identifier.value [ string ]; # 0..1 The value that is unique fhir:Identifier.period [ Period ]; # 0..1 Time period when id is/was valid for use fhir:Identifier.assigner [ Reference(Organization) ]; # 0..1 Organization that issued id (may be just text) ]
The
value
SHALL be unique within the defined SHALL
be
unique
within
the
defined
system
and
have
a
consistent
meaning
wherever
it
appears.
Both
system
and have a consistent meaning wherever it appears. Both and
value
are
always
case
sensitive.
In
addition
to
the
system
and (which
provides
a
uniqueness
scope)
and
the
value
are always case sensitive. ,
identifiers
may
also
have
a
type
,
which
may
be
useful
when
a
system
encounters
identifiers
with
unknown
The
system
referred to by means of a URI defines how the identifier is defined (i.e. how the value is made unique). It might be a specific application or a recognized standard/specification for a set or identifiers or a way of making identifiers unique. FHIR defines
some useful or important URIs directly
. 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.
FHIR
defines
some
useful
URIs
directly
.
OIDs
(urn:oid:)
and
UUIDs
(urn:uuid:)
may
be
registered
in
the
HL7
OID
registry
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, OIDs and UUIDs may be registered in the
HL7 OID registry
and
should
be
if
the
content
is
shared
or
exchanged
across
institutional
boundaries.
If
the
identifier
itself
is
naturally
globally
unique
(e.g.
an
OID,
a
UUID,
or
a
URI
with
no
trailing
local
part),
then
the
system
SHALL
be
"urn:ietf:rfc:3986",
and
the
URI
is
in
the
value
.
In
some
cases,
the
and SHOULD be registered if the content is shared or exchanged across institutional boundaries.
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 MedicationOrder while others would appear on ProcedureRequest or DiagnosticRequest .
If the identifier itself is naturally globally unique (e.g. an OID, a UUID, or a URI with no trailing local part), then the
system
SHALL be "urn:ietf:rfc:3986", and the URI is in the may
not
be
known
-
only
the
value
(OIDs and UUIDs using urn:oid: and urn:uuid: - see
examples
). In some cases, the system may not be known - only the value is known (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. This practice should be avoided where possible, as information sharing in a wider context is very likely to arise eventually, and values without a system are inherently limited in use. is
known
(e.g.
a
simple
device
that
scans
a
barcode),
or
the
In addition to the
system
(which provides a uniqueness scope) and the 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
, identifiers may also have a unless
the
system
can
be
safely
inferred
by
the
context.
This
practice
should
be
avoided
where
possible,
as
information
sharing
in
a
wider
context
is
very
likely
to
arise
eventually,
and
values
without
a
system
are
inherently
limited
in
use.
The
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 is
used
to
indicate
what
registry/state/facility/etc.
assigned
the
identifier.
Identifier
is
used
in
the
following
places:
display
.
Identifier is used in the following places:
Account
,
,
ActivityDefinition
,
AllergyIntolerance
,
,
Appointment
,
,
AppointmentResponse
,
,
AuditEvent
,
,
Basic
,
,
BodySite
,
,
CarePlan
,
,
CareTeam
,
Claim
,
,
ClaimResponse
,
,
ClinicalImpression
,
CodeSystem
,
Communication
,
,
CommunicationRequest
,
,
Composition
,
,
ConceptMap
,
,
Condition
,
,
Consent
,
Contract
,
,
Coverage
,
,
DataElement
,
,
DecisionSupportServiceModule
,
DetectedIssue
,
,
Device
,
,
DeviceComponent
,
,
DeviceMetric
,
,
DeviceUseRequest
,
,
DeviceUseStatement
,
DiagnosticOrder
,
,
DiagnosticReport
,
,
DiagnosticRequest
,
DocumentManifest
,
,
DocumentReference
,
,
EligibilityRequest
,
,
EligibilityResponse
,
,
Encounter
,
,
Endpoint
,
EnrollmentRequest
,
,
EnrollmentResponse
,
,
EpisodeOfCare
,
,
ExpansionProfile
,
ExplanationOfBenefit
,
,
FamilyMemberHistory
,
,
Flag
,
,
Goal
,
,
Group
,
,
GuidanceResponse
,
HealthcareService
,
,
ImagingStudy
,
,
Immunization
,
,
ImmunizationRecommendation
,
,
Library
,
List
,
,
Location
,
,
Measure
,
MeasureReport
,
Media
,
,
MedicationAdministration
,
,
MedicationDispense
,
,
MedicationOrder
,
,
MedicationStatement
,
NutritionOrder
,
,
NutritionRequest
,
Observation
,
Order
,
OrderResponse
,
,
Organization
,
,
Patient
,
,
PaymentNotice
,
,
PaymentReconciliation
,
,
Person
,
,
PlanDefinition
,
Practitioner
,
,
PractitionerRole
,
Procedure
,
,
ProcedureRequest
,
,
ProcessRequest
,
,
ProcessResponse
,
,
Provenance
,
,
Questionnaire
,
,
QuestionnaireResponse
,
,
ReferralRequest
,
,
RelatedPerson
,
,
RiskAssessment
,
,
Schedule
,
,
Sequence
,
Slot
,
,
Specimen
,
,
StructureDefinition
,
,
StructureMap
,
Substance
,
,
SupplyDelivery
,
,
SupplyRequest
,
,
Task
,
TestScript
,
,
ValueSet
and
and
VisionPrescription
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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
may
or
may
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.
.
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 may or may 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 |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
NameUse |
|
Σ | 0..1 | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < <</period><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..* 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> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "HumanName",
// 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: Element.extension fhir:HumanName.use [ code ]; # 0..1 usual | official | temp | nickname | anonymous | old | maiden fhir:HumanName.text [ string ]; # 0..1 Text representation of the full name fhir:HumanName.family [ string ], ... ; # 0..* Family name (often called 'Surname') fhir:HumanName.given [ string ], ... ; # 0..* Given names (not always 'first'). Includes middle names fhir:HumanName.prefix [ string ], ... ; # 0..* Parts that come before the name fhir:HumanName.suffix [ string ], ... ; # 0..* Parts that come after the name fhir:HumanName.period [ Period ]; # 0..1 Time period when name was/is in use ]
Changes since DSTU2
| HumanName | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
NameUse |
|
Σ | 0..1 | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < <</period><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..* 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> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "HumanName",
// 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
}
This
table
summarizes
where
common
parts
of
a
person's
name
are
found.
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:HumanName.use [ code ]; # 0..1 usual | official | temp | nickname | anonymous | old | maiden fhir:HumanName.text [ string ]; # 0..1 Text representation of the full name fhir:HumanName.family [ string ], ... ; # 0..* Family name (often called 'Surname') fhir:HumanName.given [ string ], ... ; # 0..* Given names (not always 'first'). Includes middle names fhir:HumanName.prefix [ string ], ... ; # 0..* Parts that come before the name fhir:HumanName.suffix [ string ], ... ; # 0..* Parts that come after the name fhir:HumanName.period [ Period ]; # 0..1 Time period when name was/is in use ]
This table summarizes where common parts of a person's name are found.
| Name | Example |
|
| Surname | Smith |
|
|
|
John |
|
| Title | Mr | Prefix |
|
|
Samuel |
|
| Patronymic |
|
|
|
|
|
|
| Initials | Q. |
|
|
|
Jock |
|
| Qualifications | PhD | Suffix |
| Honorifics | Senior | Suffix |
For further information, including all
W3C International Examples
,
consult
the
, consult the
examples
.
The
multiple
given
and
family
name
parts
combine
to
form
a
single
name.
Multiple
given
and
family
names
are
for
when
a
person's
name
has
multiple
given
names
(relatively
common
across
cultures)
and
multiple
surnames
(less
common).
Where
a
person
has
alternate
names
that
may
be
used
in
place
of
each
other,
these
are
different
instances
of
.
The multiple given and family name parts combine to form a single name. Multiple given and family names are for when a person's name has multiple given names (relatively common across cultures) and multiple surnames (less common). Where a person has alternate names that may be used in place of each other, these are different instances of
HumanName
. .
The
text
element
specifies
the
entire
name
as
it
should
be
represented.
This
may
be
provided
instead
of
or
as
well
as
specific
parts,
and
can
be
built
from
the
parts,
though
the
correct
order
of
assembly
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.
The
parts
of
a
name
SHOULD
NOT
contain
whitespace.
For
family
name,
hyphenated
names
such
as
"Smith-Jones"
are
a
single
name,
but
names
with
spaces
such
as
"Smith
Jones"
are
broken
into
multiple
parts.
For
given
names,
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
reasons,
applications
SHOULD
populate
the
text
element
for
future
robustness.
Applications
updating
a
name
SHALL
ensure
either
that
the
The
text
element specifies the entire name as it should be represented. This may be provided instead of or as well as specific parts, and can be built from the parts, though the correct order of assembly 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. and
the
parts
are
in
agreement,
or
that
only
one
of
the
two
is
present.
Systems
that
do
not
support
as
many
name
parts
as
are
provided
in
an
instance
may
wish
to
append
some
of
the
parts
together
using
spaces
HumanName
is
used
in
the
following
places:
The parts of a name SHOULD NOT contain whitespace. For family name, hyphenated names such as "Smith-Jones" are a single name, but names with spaces such as "Smith Jones" are broken into multiple parts. For given names, 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 reasons, applications SHOULD populate the text element for future robustness.
Applications updating a name SHALL ensure either that the text and the parts are in agreement, or that only one of the two is present. Systems that do not support as many name parts as are provided in an instance may wish to append some of the parts together using spaces
HumanName is used in the following places:
Organization
,
,
Patient
,
,
Person
,
,
Practitioner
and
and
RelatedPerson
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
A
postal
address.
There
are
a
variety
of
postal
address
formats
defined
around
the
world.
Postal
addresses
are
often
also
used
to
record
a
location
that
can
be
visited
to
find
a
patient
or
person.
.
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 and 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 |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
AddressUse |
|
Σ | 0..1 | code |
AddressType |
|
Σ | 0..1 | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < < < < <</period><use value="[code]"/><!-- 0..1 home | work | temp | old - 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 (can be ISO 3166 3 letter code) --> <period><!-- 0..1 Period Time period when address was/is in use --></period> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "Address",
// from Element: extension
"
"
"
"
"
"
"
"
"
"
"use" : "<code>", // home | work | temp | old - 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 (can be ISO 3166 3 letter code)
"period" : { Period } // Time period when address was/is in use
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Address.use [ code ]; # 0..1 home | work | temp | old - purpose of this address fhir:Address.type [ code ]; # 0..1 postal | physical | both fhir:Address.text [ string ]; # 0..1 Text representation of the address fhir:Address.line [ string ], ... ; # 0..* Street name, number, direction & P.O. Box etc. fhir:Address.city [ string ]; # 0..1 Name of city, town etc. fhir:Address.district [ string ]; # 0..1 District name (aka county) fhir:Address.state [ string ]; # 0..1 Sub-unit of country (abbreviations ok) fhir:Address.postalCode [ string ]; # 0..1 Postal code for area fhir:Address.country [ string ]; # 0..1 Country (can be ISO 3166 3 letter code) fhir:Address.period [ Period ]; # 0..1 Time period when address was/is in use ]
Changes since DSTU2
| Address | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
?! Σ | 0..1 | code |
AddressUse |
|
Σ | 0..1 | code |
AddressType |
|
Σ | 0..1 | string |
|
|
Σ | 0..* | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | string |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < < < < < < <</period><use value="[code]"/><!-- 0..1 home | work | temp | old - 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 (can be ISO 3166 3 letter code) --> <period><!-- 0..1 Period Time period when address was/is in use --></period> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "Address",
// from Element: extension
"
"
"
"
"
"
"
"
"
"
"use" : "<code>", // home | work | temp | old - 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 (can be ISO 3166 3 letter code)
"period" : { Period } // Time period when address was/is in use
}
The
text
element
specifies
the
entire
address
as
it
should
be
represented.
This
may
be
provided
instead
of
or
as
well
as
the
specific
parts.
Applications
updating
an
address
SHALL
ensure
either
that
the
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Address.use [ code ]; # 0..1 home | work | temp | old - purpose of this address fhir:Address.type [ code ]; # 0..1 postal | physical | both fhir:Address.text [ string ]; # 0..1 Text representation of the address fhir:Address.line [ string ], ... ; # 0..* Street name, number, direction & P.O. Box etc. fhir:Address.city [ string ]; # 0..1 Name of city, town etc. fhir:Address.district [ string ]; # 0..1 District name (aka county) fhir:Address.state [ string ]; # 0..1 Sub-unit of country (abbreviations ok) fhir:Address.postalCode [ string ]; # 0..1 Postal code for area fhir:Address.country [ string ]; # 0..1 Country (can be ISO 3166 3 letter code) fhir:Address.period [ Period ]; # 0..1 Time period when address was/is in use ]
The
text
element specifies the entire address as it should be represented. This may be provided instead of or as well as the specific parts. Applications updating an address SHALL ensure either that the text and the parts are in agreement, or that only one of the two is present. and
the
parts
are
in
agreement,
or
that
only
one
of
the
two
is
present.
Constraints
Address
is
used
in
the
following
places:
Address is used in the following places:
Claim
,
ExplanationOfBenefit
,
Location
,
,
Organization
,
,
Patient
,
,
Person
,
,
Practitioner
and
and
RelatedPerson
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
Details
for
all
kinds
of
technology-mediated
contact
points
for
a
person
or
organization,
including
telephone,
email,
etc.
.
Details for all kinds of technology-mediated contact points for a person or organization, including telephone, email, etc.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | code |
ContactPointSystem |
|
Σ | 0..1 | string |
|
|
?! Σ | 0..1 | code |
ContactPointUse |
|
Σ | 0..1 | positiveInt |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < <</period><system value="[code]"/><!--0..1 phone | fax | email | pager | other --> <value value="[string]"/><!-- 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> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "ContactPoint",
// from Element: extension
"
"
"
"
"
"system" : "<code>", // C? phone | fax | email | pager | other
"value" : "<string>", // 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: Element.extension fhir:ContactPoint.system [ code ]; # 0..1 phone | fax | email | pager | other fhir:ContactPoint.value [ string ]; # 0..1 The actual contact point details fhir:ContactPoint.use [ code ]; # 0..1 home | work | temp | old | mobile - purpose of this contact point fhir:ContactPoint.rank [ positiveInt ]; # 0..1 Specify preferred order of use (1 = highest) fhir:ContactPoint.period [ Period ]; # 0..1 Time period when the contact point was/is in use ]
Changes since DSTU2
| ContactPoint | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ I | Element |
|
|
|
Σ I | 0..1 | code |
ContactPointSystem |
|
Σ | 0..1 | string |
|
|
?! Σ | 0..1 | code |
ContactPointUse |
|
Σ | 0..1 | positiveInt |
|
|
Σ | 0..1 | Period |
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < < < <</period><system value="[code]"/><!--0..1 phone | fax | email | pager | other --> <value value="[string]"/><!-- 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> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "ContactPoint",
// from Element: extension
"
"
"
"
"
"system" : "<code>", // C? phone | fax | email | pager | other
"value" : "<string>", // 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
}
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,
page
and
email
addresses
are
not
handled
as
formal
URLs.
For
other
kinds
of
contacts,
the
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:ContactPoint.system [ code ]; # 0..1 phone | fax | email | pager | other fhir:ContactPoint.value [ string ]; # 0..1 The actual contact point details fhir:ContactPoint.use [ code ]; # 0..1 home | work | temp | old | mobile - purpose of this contact point fhir:ContactPoint.rank [ positiveInt ]; # 0..1 Specify preferred order of use (1 = highest) fhir:ContactPoint.period [ Period ]; # 0..1 Time period when the contact point was/is in use ]
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, page and email addresses are not handled as formal URLs. For other kinds of contacts, the
system
is "other" and the 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
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. is
not
a
URL,
then
human
interpretation
will
be
required.
The
The
rank
element can be used to specify a preference for the order in which a set of contacts is used. Contacts are ranked with lower values coming before higher values. Note that element
can
be
used
to
specify
a
preference
for
the
order
in
which
a
set
of
contacts
is
used.
Contacts
are
ranked
with
lower
values
coming
before
higher
values.
Note
that
rank
does not necessarily follow the order in which the contacts are represented in the instance. does
not
necessarily
follow
the
order
in
which
the
contacts
are
represented
in
the
instance.
Constraints
:
value.empty() or system.exists()
)
ContactPoint is used in the following places:
CodeSystem
,
CompartmentDefinition
,
ConceptMap
,
,
Conformance
,
,
DataElement
,
,
Device
,
,
Endpoint
,
ExpansionProfile
,
HealthcareService
,
,
ImplementationGuide
,
,
Location
,
,
MessageHeader
,
,
NamingSystem
,
,
OperationDefinition
,
,
Organization
,
,
Patient
,
,
Person
,
,
Practitioner
,
,
PractitionerRole
,
Questionnaire
,
,
RelatedPerson
,
,
SearchParameter
,
,
StructureDefinition
,
,
StructureMap
,
Subscription
,
,
TestScript
and
and
ValueSet
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
Specifies
an
event
that
may
occur
multiple
times.
Timing
schedules
are
not
used
for
recording
when
things
did
happen,
but
when
they
are
expected
or
requested
to
occur.
A
Timing
schedule
can
be
a
list
of
events
and/or
criteria
for
when
the
event
is
to
happen,
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.
Many
systems
avoid
the
complexity
of
the
Timing
structure
by
using
a
text
field
for
these
things
(e.g.
"Dosage
Text").
Those
systems
do
not
use
the
Timing
data
type.
Other
systems
use
a
set
of
'common'
codes
-
including,
but
usually
not
limited
to,
widely
understood
acronyms
such
as
"BID".
A
structured
timing
specification
SHOULD
be
provided
whenever
possible,
unless
the
code
is
BID,
TID,
QID,
AM
or
PM,
which
have
a
ubiquitous
meaning.
.
Specifies an event that may occur multiple times. Timing schedules are not used for recording when things did happen, but when they are expected or requested to occur. A Timing schedule can be a list of events and/or criteria for when the event is to happen, 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.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..* | dateTime |
|
|
Σ I | 0..1 | Element |
if there's a duration, there needs to be duration units if there's a period, there needs to be period units Either frequency or when can exist, not both duration SHALL be a non-negative value |
|
Σ | 0..1 |
|
|
|
Duration | |||
|
Range | |||
|
Period | |||
|
Σ | 0..1 | integer |
|
|
Σ
|
0..1 |
|
|
|
Σ | 0..1 | decimal | How long when it happens |
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | code |
UnitsOfTime |
|
Σ | 0..1 | integer |
|
|
Σ | 0..1 | integer |
|
|
Σ
|
0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | code |
UnitsOfTime |
|
Σ | 0..1 | code |
EventTiming |
| Σ | 0..1 | unsignedInt | Minutes from event (before or after) |
|
Σ | 0..1 | CodeableConcept |
TimingAbbreviation |
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < <</bounds[x]> < < < < < < < < < <<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="[integer]"/><!-- 0..1 Number of times to repeat --> <countMax value="[integer]"/><!-- 0..1 Maximum number of times to repeat --> <duration value="[decimal]"/><!-- 0..1 How long when it happens --> <durationMax value="[decimal]"/><!-- 0..1 How long when it happens (Max) --> <durationUnit value="[code]"/><!-- 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <frequency value="[integer]"/><!-- 0..1 Event occurs frequency times per period --> <frequencyMax value="[integer]"/><!-- 0..1 Event occurs up to frequencyMax times per period --> <period value="[decimal]"/><!-- 0..1 Event occurs frequency times per period --> <periodMax value="[decimal]"/><!-- 0..1 Upper limit of period (3-4 hours) --> <periodUnit value="[code]"/><!-- 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <when value="[code]"/><!-- 0..1 Regular life events the event is tied to --> <offset value="[unsignedInt]"/><!-- 0..1 Minutes from event (before or after) --> </repeat><</code><code><!-- 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H + --></code> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "Timing",
// 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" : <integer>, // Number of times to repeat
"countMax" : <integer>, // Maximum number of times to repeat
"duration" : <decimal>, // How long when it happens
"durationMax" : <decimal>, // How long when it happens (Max)
"durationUnit" : "<code>", // s | min | h | d | wk | mo | a - unit of time (UCUM)
"frequency" : <integer>, // Event occurs frequency times per period
"frequencyMax" : <integer>, // Event occurs up to frequencyMax times per period
"period" : <decimal>, // Event occurs frequency times per period
"periodMax" : <decimal>, // Upper limit of period (3-4 hours)
"periodUnit" : "<code>", // s | min | h | d | wk | mo | a - unit of time (UCUM)
"when" : "<code>", // Regular life events the event is tied to
"offset" : "<unsignedInt>" // Minutes from event (before or after)
},
"
"code" : { CodeableConcept } // BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H +
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Timing.event [ dateTime ], ... ; # 0..* When the event occurs fhir:Timing.repeat [ # 0..1 When the event is to occur # Timing.repeat.bounds[x] : 0..1 Length/Range of lengths, or (Start and/or end) limits. One of these 3 fhir:Timing.repeat.boundsDuration [ Duration ] fhir:Timing.repeat.boundsRange [ Range ] fhir:Timing.repeat.boundsPeriod [ Period ] fhir:Timing.repeat.count [ integer ]; # 0..1 Number of times to repeat fhir:Timing.repeat.countMax [ integer ]; # 0..1 Maximum number of times to repeat fhir:Timing.repeat.duration [ decimal ]; # 0..1 How long when it happens fhir:Timing.repeat.durationMax [ decimal ]; # 0..1 How long when it happens (Max) fhir:Timing.repeat.durationUnit [ code ]; # 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:Timing.repeat.frequency [ integer ]; # 0..1 Event occurs frequency times per period fhir:Timing.repeat.frequencyMax [ integer ]; # 0..1 Event occurs up to frequencyMax times per period fhir:Timing.repeat.period [ decimal ]; # 0..1 Event occurs frequency times per period fhir:Timing.repeat.periodMax [ decimal ]; # 0..1 Upper limit of period (3-4 hours) fhir:Timing.repeat.periodUnit [ code ]; # 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:Timing.repeat.when [ code ]; # 0..1 Regular life events the event is tied to fhir:Timing.repeat.offset [ unsignedInt ]; # 0..1 Minutes from event (before or after) ]; fhir:Timing.code [ CodeableConcept ]; # 0..1 BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H + ]
Changes since DSTU2
| Timing | |
| Timing.repeat.bounds[x] | Remove Quantity{http://hl7.org/fhir/StructureDefinition/Duration}, Add Duration |
| Timing.repeat.countMax | added |
| Timing.repeat.durationUnit | added |
| Timing.repeat.periodUnit | added |
| Timing.repeat.offset | added |
| Timing.repeat.durationUnits | deleted |
| Timing.repeat.periodUnits | deleted |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Σ | Element |
|
|
|
Σ | 0..* | dateTime |
|
|
Σ I | 0..1 | Element |
if there's a duration, there needs to be duration units if there's a period, there needs to be period units Either frequency or when can exist, not both duration SHALL be a non-negative value |
|
Σ | 0..1 |
|
|
|
Duration | |||
|
Range | |||
|
Period | |||
|
Σ | 0..1 | integer |
|
|
Σ
|
0..1 |
|
|
|
Σ | 0..1 | decimal | How long when it happens |
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | code |
UnitsOfTime |
|
Σ | 0..1 | integer |
|
|
Σ | 0..1 | integer |
|
|
Σ
|
0..1 | decimal |
|
|
Σ | 0..1 | decimal |
|
|
Σ | 0..1 | code |
UnitsOfTime |
|
Σ | 0..1 | code |
EventTiming |
| Σ | 0..1 | unsignedInt | Minutes from event (before or after) |
|
Σ | 0..1 | CodeableConcept |
TimingAbbreviation |
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
< < <</bounds[x]> < < < < < < < < < <<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="[integer]"/><!-- 0..1 Number of times to repeat --> <countMax value="[integer]"/><!-- 0..1 Maximum number of times to repeat --> <duration value="[decimal]"/><!-- 0..1 How long when it happens --> <durationMax value="[decimal]"/><!-- 0..1 How long when it happens (Max) --> <durationUnit value="[code]"/><!-- 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <frequency value="[integer]"/><!-- 0..1 Event occurs frequency times per period --> <frequencyMax value="[integer]"/><!-- 0..1 Event occurs up to frequencyMax times per period --> <period value="[decimal]"/><!-- 0..1 Event occurs frequency times per period --> <periodMax value="[decimal]"/><!-- 0..1 Upper limit of period (3-4 hours) --> <periodUnit value="[code]"/><!-- 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) --> <when value="[code]"/><!-- 0..1 Regular life events the event is tied to --> <offset value="[unsignedInt]"/><!-- 0..1 Minutes from event (before or after) --> </repeat><</code><code><!-- 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H + --></code> </[name]>
JSON
Template
JSON Template
{
"resourceType" : "",
{
"resourceType" : "Timing",
// 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" : <integer>, // Number of times to repeat
"countMax" : <integer>, // Maximum number of times to repeat
"duration" : <decimal>, // How long when it happens
"durationMax" : <decimal>, // How long when it happens (Max)
"durationUnit" : "<code>", // s | min | h | d | wk | mo | a - unit of time (UCUM)
"frequency" : <integer>, // Event occurs frequency times per period
"frequencyMax" : <integer>, // Event occurs up to frequencyMax times per period
"period" : <decimal>, // Event occurs frequency times per period
"periodMax" : <decimal>, // Upper limit of period (3-4 hours)
"periodUnit" : "<code>", // s | min | h | d | wk | mo | a - unit of time (UCUM)
"when" : "<code>", // Regular life events the event is tied to
"offset" : "<unsignedInt>" // Minutes from event (before or after)
},
"
"code" : { CodeableConcept } // BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H +
}
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
real
world
event.
If
no
end
condition
is
specified,
the
schedule
will
terminate
on
some
criteria
that
are
expressed
elsewhere.
If
duration
is
provided
as
a
Range
,
the
unit
in
the
Range
SHALL
be
a
UCUM
unit
of
time
.
This
table
summarises
some
common
uses
of
the
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Timing.event [ dateTime ], ... ; # 0..* When the event occurs fhir:Timing.repeat [ # 0..1 When the event is to occur # Timing.repeat.bounds[x] : 0..1 Length/Range of lengths, or (Start and/or end) limits. One of these 3 fhir:Timing.repeat.boundsDuration [ Duration ] fhir:Timing.repeat.boundsRange [ Range ] fhir:Timing.repeat.boundsPeriod [ Period ] fhir:Timing.repeat.count [ integer ]; # 0..1 Number of times to repeat fhir:Timing.repeat.countMax [ integer ]; # 0..1 Maximum number of times to repeat fhir:Timing.repeat.duration [ decimal ]; # 0..1 How long when it happens fhir:Timing.repeat.durationMax [ decimal ]; # 0..1 How long when it happens (Max) fhir:Timing.repeat.durationUnit [ code ]; # 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:Timing.repeat.frequency [ integer ]; # 0..1 Event occurs frequency times per period fhir:Timing.repeat.frequencyMax [ integer ]; # 0..1 Event occurs up to frequencyMax times per period fhir:Timing.repeat.period [ decimal ]; # 0..1 Event occurs frequency times per period fhir:Timing.repeat.periodMax [ decimal ]; # 0..1 Upper limit of period (3-4 hours) fhir:Timing.repeat.periodUnit [ code ]; # 0..1 s | min | h | d | wk | mo | a - unit of time (UCUM) fhir:Timing.repeat.when [ code ]; # 0..1 Regular life events the event is tied to fhir:Timing.repeat.offset [ unsignedInt ]; # 0..1 Minutes from event (before or after) ]; fhir:Timing.code [ CodeableConcept ]; # 0..1 BID | TID | QID | AM | PM | QD | QOD | Q4H | Q6H + ]
Changes since DSTU2
|
Timing
| |
| Timing.repeat.bounds[x] | Remove Quantity{http://hl7.org/fhir/StructureDefinition/Duration}, Add Duration |
| Timing.repeat.countMax | added |
| Timing.repeat.durationUnit | added |
| Timing.repeat.periodUnit | added |
| Timing.repeat.offset | added |
| Timing.repeat.durationUnits | deleted |
| Timing.repeat.periodUnits | deleted |
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 real world event. If no end condition is specified, the schedule will terminate on some criteria that are expressed elsewhere.
This table summarises some common uses of the Timing Data Type criteria.
| description | duration |
| frequency | frequencyMax | period |
| periodMax | when | offset | bounds[x] |
|
| 1 | 8 | h | |||||||
| Every 7 days | 1 | 7 | d | |||||||
|
| 3 | 1 | d | |||||||
|
| 3 | 4 | 1 | d | ||||||
|
|
1
| 4 | h | 6 | ||||||
|
|
1
| hr | 1 | 21 | d | |||||
|
| 0.5 | hr | 3 |
1
| wk | |||||
|
| CM | |||||||||
|
| 5 | min | AC | 10 | ||||||
| 1 tablet 3 times daily, 30 minutes before meals | 3 | 1 | d | AC | 30 | |||||
|
| 2 | 1 | d | AC | 30 | Duration = 10 days | ||||
| TID, for 14 days |
3
| 1 | d | Duration = 14 days | ||||||
|
| 2 | 1 | d | Period, low = 2015-07-01T13:00:00 |
Many systems avoid the complexity of the Timing structure by using a text field for these things (e.g. "Dosage Text"). Those systems do not use the Timing data type. Other systems use a set of 'common' codes - including, but usually not limited to, widely understood acronyms such as "BID". If a
code
is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, 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 shows the relationship between the codes provided as part of the base specification , and the structured data portions of the Timing type:
|
| duration | durationUnit | frequency | frequencyMax | period | periodUnit | periodMax | when | bounds[x] |
|
|
1
| 2 | d | ||||||
| QD |
1
|
1
| d | ||||||
|
| 2 | 1 | d | ||||||
| TID | 3 |
1
| d | ||||||
|
| 4 | 1 | d | ||||||
|
| 1 | 4 | h | ||||||
|
| 1 | 6 | h | ||||||
| AM | 1 | 1 |
d
| ||||||
|
| 1 | 1 |
d
|
These codes SHALL be understood as having the formal meanings documented in this table.
Additional Notes:
Constraints
on Timing.repeat:
duration.empty() or durationUnit.exists()
)
on Timing.repeat:
period.empty() or periodUnit.exists()
)
on Timing.repeat:
((period or frequency) and when).not()
)
on Timing.repeat:
duration.exists() implies duration >= 0
)
on Timing.repeat:
period.exists() implies period >= 0
)
on Timing.repeat:
periodMax.empty() or period.exists()
)
on Timing.repeat:
durationMax.empty() or duration.exists()
)
on Timing.repeat:
countMax.empty() or count.exists()
)
on Timing.repeat:
offset.empty() or when.exists()
)
Timing is used in the following places:
ActivityDefinition
,
CarePlan
,
,
DeviceMetric
,
,
DeviceUseRequest
,
,
DeviceUseStatement
,
,
DiagnosticRequest
,
MedicationDispense
,
,
MedicationOrder
,
,
MedicationStatement
,
NutritionOrder
,
Order
,
,
NutritionRequest
,
PlanDefinition
,
ProcedureRequest
and
and
SupplyRequest
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
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
DigSig
or
a
JWT),
which
is
able
to
provide
non-repudiation
proof,
or
it
may
be
a
graphical
image
that
represents
a
signature
or
a
signature
process.
.
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 DigSig or a JWT), which is able to provide non-repudiation proof, or it may be a graphical image that represents a signature or a signature process.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 1..* | Coding |
|
|
Σ | 1..1 | instant |
|
|
Σ | 1..1 |
|
|
|
uri | |||
|
Reference
(
Practitioner
| |||
![]() ![]() | Σ | 0..1 | The party represented | |
![]() ![]() ![]() | uri | |||
![]() ![]() ![]() | Reference ( Practitioner | RelatedPerson | Patient | Device | Organization ) | |||
|
Σ |
|
code |
|
|
|
base64Binary |
|
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</type> < <| </who[x]> < <<type><!-- 1..* Coding Indication of the reason the entity signed the object(s) --></type> <when value="[instant]"/><!-- 1..1 When the signature was created --> <who[x]><!-- 1..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device| Organization) Who signed --></who[x]> <onBehalfOf[x]><!-- 0..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device| Organization) The party represented --></onBehalfOf[x]> <contentType value="[code]"/><!-- 0..1 The technical format of the signature--> <blob value="[base64Binary]"/><!-- 0..1 The actual signature content (XML DigSig. JWT, picture, etc.) --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
">",
"|
"type" : [{ Coding }], // R! Indication of the reason the entity signed the object(s)
"when" : "<instant>", // R! When the signature was created
// who[x]: Who signed. One of these 2:
"whoUri" : "<uri>",
"whoReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
Organization) },
"
"
// onBehalfOf[x]: The party represented. One of these 2:
"onBehalfOfUri" : "<uri>",
"onBehalfOfReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
Organization) },
"contentType" : "<code>", // The technical format of the signature
"blob" : "<base64Binary>" // The actual signature content (XML DigSig. JWT, picture, etc.)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Signature.type [ Coding ], ... ; # 1..* Indication of the reason the entity signed the object(s) fhir:Signature.when [ instant ]; # 1..1 When the signature was created # Signature.who[x] : 1..1 Who signed. One of these 2 fhir:Signature.whoUri [ uri ] fhir:Signature.whoReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ] # Signature.onBehalfOf[x] : 0..1 The party represented. One of these 2 fhir:Signature.onBehalfOfUri [ uri ] fhir:Signature.onBehalfOfReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ] fhir:Signature.contentType [ code ]; # 0..1 The technical format of the signature fhir:Signature.blob [ base64Binary ]; # 0..1 The actual signature content (XML DigSig. JWT, picture, etc.) ]
Changes since DSTU2
| Signature | |
| Signature.onBehalfOf[x] | added |
| Signature.contentType | Min Cardinality changed from 1 to 0 |
| Signature.blob | Min Cardinality changed from 1 to 0 |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 1..* | Coding |
|
|
Σ | 1..1 | instant |
|
|
Σ | 1..1 |
|
|
|
uri | |||
|
Reference
(
Practitioner
| |||
![]() ![]() | Σ | 0..1 | The party represented | |
![]() ![]() ![]() | uri | |||
![]() ![]() ![]() | Reference ( Practitioner | RelatedPerson | Patient | Device | Organization ) | |||
|
Σ |
|
code |
|
|
|
base64Binary |
|
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</type> < <| </who[x]> < <<type><!-- 1..* Coding Indication of the reason the entity signed the object(s) --></type> <when value="[instant]"/><!-- 1..1 When the signature was created --> <who[x]><!-- 1..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device| Organization) Who signed --></who[x]> <onBehalfOf[x]><!-- 0..1 uri|Reference(Practitioner|RelatedPerson|Patient|Device| Organization) The party represented --></onBehalfOf[x]> <contentType value="[code]"/><!-- 0..1 The technical format of the signature--> <blob value="[base64Binary]"/><!-- 0..1 The actual signature content (XML DigSig. JWT, picture, etc.) --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
"
"
">",
"|
"type" : [{ Coding }], // R! Indication of the reason the entity signed the object(s)
"when" : "<instant>", // R! When the signature was created
// who[x]: Who signed. One of these 2:
"whoUri" : "<uri>",
"whoReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
Organization) },
"
"
// onBehalfOf[x]: The party represented. One of these 2:
"onBehalfOfUri" : "<uri>",
"onBehalfOfReference" : { Reference(Practitioner|RelatedPerson|Patient|Device|
Organization) },
"contentType" : "<code>", // The technical format of the signature
"blob" : "<base64Binary>" // The actual signature content (XML DigSig. JWT, picture, etc.)
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension fhir:Signature.type [ Coding ], ... ; # 1..* Indication of the reason the entity signed the object(s) fhir:Signature.when [ instant ]; # 1..1 When the signature was created # Signature.who[x] : 1..1 Who signed. One of these 2 fhir:Signature.whoUri [ uri ] fhir:Signature.whoReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ] # Signature.onBehalfOf[x] : 0..1 The party represented. One of these 2 fhir:Signature.onBehalfOfUri [ uri ] fhir:Signature.onBehalfOfReference [ Reference(Practitioner|RelatedPerson|Patient|Device|Organization) ] fhir:Signature.contentType [ code ]; # 0..1 The technical format of the signature fhir:Signature.blob [ base64Binary ]; # 0..1 The actual signature content (XML DigSig. JWT, picture, etc.) ]
Changes since DSTU2
| Signature | |
| Signature.onBehalfOf[x] | added |
| Signature.contentType | Min Cardinality changed from 1 to 0 |
| Signature.blob | Min Cardinality changed from 1 to 0 |
See the Full Difference for further information
Constraints
Note:
One
consequence
of
signing
the
document
is
that
URLs,
identifiers
and
internal
references
are
frozen
and
cannot
be
changed.
This
might
be
a
desired
feature,
but
it
may
also
cripple
interoperability
between
closed
ecosystems
where
Note: One consequence of signing the document is that URLs, identifiers and internal references are frozen and cannot be changed. This might be a desired feature, but it may also cripple interoperability between closed ecosystems where
re-identification
frequently
occurs.
For
this
reason,
it
is
recommended
that
systems
consider
carefully
the
impact
of
any
signature
processes.
The
impact
of
signatures
on
Document
bundles
and
their
related
processes
is
the
most
well
understood
use
of
digital
signatures.
frequently occurs. For this reason, it is recommended that systems consider carefully the impact of any signature processes. The impact of signatures on
Document bundles
and their related processes is the most well understood use of digital signatures.
When the signature is an XML Digital Signature (contentType = application/signature+xml), the following rules apply:
There are three levels of signature verification:
Deviations from these guidelines would need to be expressed in site policy, and would be enumerated in the XML-Signature block. For example some environments may choose a different XAdES profile, hashing algorithm, policy identifier, or signature purpose vocabulary.
Signature is used in the following places:
Bundle
and
,
Contract
and
Provenance
See also
Examples
,
Detailed
Descriptions
and
,
Detailed Descriptions
and
Mappings
.
A
text
note
which
also
contains
information
about
who
made
the
statement
and
when.
.
A text note which also contains information about who made the statement and when.
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 0..1 |
|
|
|
Reference
(
Practitioner
|
|||
|
string | |||
|
Σ | 0..1 | dateTime |
|
|
1..1 | string |
|
|
Documentation for this format
|
||||
UML
Diagram
UML Diagram
(
Legend
)
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</author[x]> < <<author[x]><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson)|string Individual responsible for the annotation --></author[x]> <time value="[dateTime]"/><!-- 0..1 When the annotation was made --> <text value="[string]"/><!-- 1..1 The annotation - text content --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
// author[x]: Individual responsible for the annotation. One of these 2:
" },
">",
"
"
"authorReference" : { Reference(Practitioner|Patient|RelatedPerson) },
"authorString" : "<string>",
"time" : "<dateTime>", // When the annotation was made
"text" : "<string>" // R! The annotation - text content
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension # Annotation.author[x] : 0..1 Individual responsible for the annotation. One of these 2 fhir:Annotation.authorReference [ Reference(Practitioner|Patient|RelatedPerson) ] fhir:Annotation.authorString [ string ] fhir:Annotation.time [ dateTime ]; # 0..1 When the annotation was made fhir:Annotation.text [ string ]; # 1..1 The annotation - text content ]
Changes since DSTU2
| Annotation | No Changes |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
|
|---|---|---|---|---|
|
Element |
|
||
|
Σ | 0..1 |
|
|
|
Reference
(
Practitioner
|
|||
|
string | |||
|
Σ | 0..1 | dateTime |
|
|
1..1 | string |
|
|
Documentation for this format
|
||||
XML
Template
XML Template
<
<[name] xmlns="http://hl7.org/fhir"><!-- from Element: extension -->
<</author[x]> < <<author[x]><!-- 0..1 Reference(Practitioner|Patient|RelatedPerson)|string Individual responsible for the annotation --></author[x]> <time value="[dateTime]"/><!-- 0..1 When the annotation was made --> <text value="[string]"/><!-- 1..1 The annotation - text content --> </[name]>
JSON
Template
JSON Template
{
{
// from Element: extension
// author[x]: Individual responsible for the annotation. One of these 2:
" },
">",
"
"
"authorReference" : { Reference(Practitioner|Patient|RelatedPerson) },
"authorString" : "<string>",
"time" : "<dateTime>", // When the annotation was made
"text" : "<string>" // R! The annotation - text content
}
Systems
that
do
not
have
structured
annotations
simply
communicate
a
single
annotation
with
no
author
or
time.
This
element
may
need
to
be
included
in
narrative
because
of
the
potential
for
modifying
information.
Annotations
SHOULD
NOT
Turtle Template
be
used
to
communicate
"modifying"
information
that
could
be
computable
(this
is
a
SHOULD
because
enforcing
user
behavior
is
nearly
impossible).
@prefix fhir: <http://hl7.org/fhir/> . [ # from Element: Element.extension # Annotation.author[x] : 0..1 Individual responsible for the annotation. One of these 2 fhir:Annotation.authorReference [ Reference(Practitioner|Patient|RelatedPerson) ] fhir:Annotation.authorString [ string ] fhir:Annotation.time [ dateTime ]; # 0..1 When the annotation was made fhir:Annotation.text [ string ]; # 1..1 The annotation - text content ]
Changes since DSTU2
|
Annotation
| No Changes |
See the Full Difference for further information
Systems that do not have structured annotations simply communicate a single annotation with no author or time.
This element may need to be included in narrative because of the potential for modifying information.
Annotations SHOULD NOT be used to communicate "modifying" information that could be computable (this is a SHOULD because enforcing user behavior is nearly impossible).
Annotation is used in the following places:
AllergyIntolerance
,
,
CarePlan
,
,
ClinicalImpression
,
Communication
,
Condition
,
Device
,
DiagnosticOrder
,
,
DeviceUseRequest
,
DiagnosticRequest
,
FamilyMemberHistory
,
,
Goal
,
,
GuidanceResponse
,
Immunization
,
,
List
,
MedicationAdministration
,
MedicationDispense
,
MedicationOrder
,
MedicationStatement
,
Procedure
and
,
ProcedureRequest
,
RiskAssessment
,
Specimen
and
Task
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:
The element name ends with "[x]", and this is replaced with the Title cased name of the data type.
Open references are used in the following places: Parameters and Task
The following types are defined as part of the data types, but are documented elsewhere in the specification: