Vocabulary
![]() |
Maturity
Level
:
| Normative (from v4.0.0) | Security Category : Anonymous | Compartments : Not linked to any defined compartments |
![]() |
This
page
![]() |
A
ValueSet
resource
instance
specifies
a
set
of
codes
drawn
from
one
or
more
code
systems,
intended
for
use
in
a
particular
context.
Value
sets
link
between
[[[CodeSystem]]]
CodeSystem
definitions
and
their
use
in
[coded
elements](terminologies.html).
coded
elements
.
The
FHIR
terminology
specification
is
based
on
two
key
concepts,
originally
defined
in
HL7
v3
Core
Principles
:
CodeSystem
-
declares
the
existence
of
and
describes
a
code
system
or
code
system
supplement
and
its
key
properties,
and
optionally
defines
a
ValueSet
-
Value sets have 2 aspects:
.compose
:
A
definition
of
which
codes
are
intended
to
be
in
the
value
set
("intension")
.expansion
:
The
list
of
codes
that
are
actually
in
the
value
set
under
a
given
set
of
conditions
("extension")
-
see
Value
Set
Expansion
The
ValueSet
resource
can
carry
either
the
.compose
or
the
.expansion
,
both
of
them,
or
both.
neither
of
them
(if
only
the
metadata
is
being
represented).
There
is
an
"$expand"
operation
which
can
be
used
to
ask
a
server
to
generate
an
expansion
given
the
composition
rules.
rules,
in
a
particular
context,
and
a
"$validate-code"
operation
which
can
be
used
to
ask
a
server
to
check
whether
a
given
code
or
concept
is
in
the
value
set
in
a
particular
context.
Value Sets are used by many resources:
For a full list of uses, see below.
The
Characteristics
of
the
ValueSet
resource
are
derived
from
Formal
Value
Set
Definitions:
compose
element
is
the
VSD
"Content
Logical
definition".
When using value sets, proper differentiation between a code system and a value set is important. This is one very common area where significant clinical safety risks occur in practice. Implementers should be familiar with the content in Using Codes in Resources .
A value set has 3 identifiers:
ValueSet.id
:
the
logical
id
on
the
system
that
holds
the
value
set
-
this
changes
as
it
moves
from
server
to
server
(this
id,
with
the
server
address
prepended,
is
called
the
'literal
identity'
of
the
resource)
ValueSet.url
:
the
canonical
url
rather
than
uri
for
legacy
reasons
and
ValueSet.identifier
:
A
system/value
pair
that
is
used
to
identify
the
value
set
in
other
contexts
(such
as
an
OID
in
an
HL7
v3
In
addition,
any
expansion
for
the
value
set
also
has
ValueSet.expansion.identifier
which
uniquely
identifies
each
expansion.
For
further
information
regarding
resource
identification,
see
Resource
Identity
.
This
means
that
each
value
set
has
2
different
URLs
that
can
be
used
to
reference
it
-
its
canonical
URI
URL
(the
url
element),
and
its
local
location
from
which
it
may
be
retrieved
(which
includes
the
id
element).
Because
it
is
common
practice
to
copy
(cache)
value
sets
locally,
most
references
to
value
sets
use
the
canonical
URI.
URL.
For example, the value sets published as part of FHIR all have a location ("literal") URI which is the URL where they may be accessed in the FHIR specification itself. Note, though, that while a new version of the FHIR Specification is being prepared, value sets that are published in the drafts will not be found in the current published FHIR specification at their canonical
URI.URL.
Alternatively,
the
identifier
and
version
elements
may
be
used
to
reference
this
value
set
in
a
design,
a
profile,
a
CDA
template
or
HL7
v3
message
(in
the
CD
data
type
valueSet
and
valueSetVersion
properties).
These
different
contexts
may
make
additional
restrictions
on
the
possible
values
of
these
elements.
The
identifier
is
generally
not
needed
when
using
value
sets
in
a
FHIR
context,
where
the
canonical
URI
(or
"canonical
URL")
URL
is
always
the
focus.
A value set may be described as intensional or extensional. The terms intensional and extensional come from the fields of mathematical logic and set theory.
An intensional value set is typically algorithmically defined. That is, the code group is defined as a rule e.g. all codes with the word diabetes in their description). The key benefit of intensional code groups is that they can be dynamically updated. Dynamic updating helps healthcare organizations keep current when new drugs (and their associated codes) become available or codes for diseases and other clinical concepts change. An intensional value set designed to contain all of the drugs in the beta blocker category can automatically receive a new beta blocker’s code as soon as it hits the market.
Extensional value sets, meanwhile, are enumerated lists of codes where each code is listed individually. This gives the author and user of the value set more control over the which codes are in the value set, but there is a greater maintenance burden to ensure that the value set is kept up to date.
This
resource
is
referenced
by
DataRequirement
,
ElementDefinition
,
CodeSystem
,
ConceptMap
,
ObservationDefinition
,
OperationDefinition
and
,
Questionnaire
and
itself.
This resource does not implement any patterns.
Structure
Name | Flags | Card. | Type |
Description
&
Constraints
![]() |
---|---|---|---|---|
![]() ![]() |
|
|
A
set
of
codes
drawn
from
one
or
more
code
systems
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension , url , identifier , version , name , title , status , experimental , date , publisher , contact , description , useContext , jurisdiction , purpose , copyright | |
![]() ![]() ![]() | Σ | 0..1 | uri | Canonical identifier for this value set, represented as a URI (globally unique) |
![]() ![]() ![]() | Σ | 0..* | Identifier |
Additional
identifier
for
the
value
set
(business
identifier)
|
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the value set |
![]() ![]() ![]() | Σ I | 0..1 | string | Name for this value set (computer friendly) |
![]() ![]() ![]() | Σ | 0..1 | string | Name for this value set (human friendly) |
![]() ![]() ![]() |
?!
Σ
| 1..1 | code |
draft
|
active
|
retired
|
unknown
PublicationStatus ( Required ) |
![]() ![]() ![]() | Σ | 0..1 | boolean | For testing purposes, not real usage |
![]() ![]() ![]() | Σ | 0..1 | dateTime | Date last changed |
![]() ![]() ![]() | Σ | 0..1 | string | Name of the publisher (organization or individual) |
![]() ![]() ![]() | Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
![]() ![]() ![]() | 0..1 | markdown | Natural language description of the value set | |
![]() ![]() ![]() | Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
![]() ![]() ![]() | Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
value
set
(if
applicable)
Jurisdiction |
![]() ![]() ![]() | Σ | 0..1 | boolean | Indicates whether or not any change to the content logical definition may occur |
![]() ![]() ![]() | 0..1 | markdown | Why this value set is defined | |
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |
![]() ![]() ![]() | 0..1 |
BackboneElement
| Content logical definition of the value set (CLD) | |
![]() ![]() ![]() ![]() | Σ | 0..1 | date |
Fixed
date
for
|
![]() ![]() ![]() ![]() | Σ | 0..1 | boolean | Whether inactive codes are in the value set |
![]() ![]() ![]() ![]() | Σ I | 1..* | BackboneElement |
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
+ Rule: A value set include/exclude SHALL have a value set or a system + Rule: A value set with concepts or filters SHALL include a system + Rule: Cannot have both concept and filter |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..1 | uri | The system the codes come from |
![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Specific version of the code system referred to |
![]() ![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
A
concept
defined
in
the
system
|
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code | Code or expression from system | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Text to display for this code for this value set in this valueset | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Additional
representations
for
this
concept
| |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code |
Human
language
of
the
designation
Common Languages ( | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | Coding |
Designation Use ( Extensible ) | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | The text value for this designation | |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..* | BackboneElement |
Select
codes/concepts
by
their
properties
(including
relationships)
|
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | code |
A
|
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | string | Code from the system, or regex criteria, or boolean value for exists |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..* | canonical ( ValueSet ) |
Select
the
contents
included
in
this
value
set
|
![]() ![]() ![]() ![]() | I | 0..* | see include |
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
|
![]() ![]() ![]() ![]() |
| 0..* | string |
Property
to
return
if
client
doesn't
override
|
![]() ![]() ![]() | 0..1 | BackboneElement | Used when the value set is "expanded" | |
![]() ![]() ![]() ![]() | 0..1 | uri |
| |
![]() ![]() ![]() ![]() | 1..1 | dateTime | Time ValueSet expansion happened | |
![]() ![]() ![]() ![]() | 0..1 | integer | Total number of codes in the expansion | |
![]() ![]() ![]() ![]() | 0..1 | integer | Offset at which this resource starts | |
![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Parameter
that
controlled
the
expansion
process
| |
![]() ![]() ![]() ![]() ![]() | 1..1 | string | Name as assigned by the client or server | |
![]() ![]() ![]() ![]() ![]() | 0..1 | Value of the named parameter | ||
![]() ![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||
![]() ![]() ![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() ![]() ![]() | code | |||
![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Additional
information
supplied
about
each
concept
| |
![]() ![]() ![]() ![]() ![]() | 1..1 | code | Identifies the property on the concepts, and when referred to in operations | |
![]() ![]() ![]() ![]() ![]() | 0..1 | uri | Formal identifier for the property | |
![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
Codes
in
the
value
set
+ Rule: SHALL have a code or a display + Rule: Must have a code if not abstract + Rule: Must have a system if a code is present |
![]() ![]() ![]() ![]() ![]() | 0..1 | uri | System value for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If user cannot select this entry | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If concept is inactive in the code system | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Version in which this code/display is defined | |
![]() ![]() ![]() ![]() ![]() | I | 0..1 | code | Code - if blank, this is not a selectable code |
![]() ![]() ![]() ![]() ![]() | I | 0..1 | string | User display for the concept |
![]() ![]() ![]() ![]() ![]() | 0..* | see designation |
Additional
representations
for
this
item
| |
![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Property
value
for
the
concept
| |
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code | Reference to ValueSet.expansion.property.code | |
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | Value of the property for this concept | ||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | code | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Coding | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||
![]() ![]() ![]() ![]() ![]() | 0..* | see contains |
Codes
contained
under
this
entry
| |
![]() |
UML Diagram ( Legend )
XML Template
<ValueSet xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language -->
<!-- from --> <<url value="[uri]"/><!-- 0..1 Canonical identifier for this value set, represented as a URI (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the value set (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the value set --><<name value="[string]"/><!--0..1 Name for this value set (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this value set (human friendly) -->
< < <<status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>< <</useContext><description value="[markdown]"/><!-- 0..1 Natural language description of the value set --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for value set (if applicable) --></jurisdiction> <immutable value="[boolean]"/><!-- 0..1 Indicates whether or not any change to the content logical definition may occur --> <purpose value="[markdown]"/><!-- 0..1 Why this value set is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->< < < <<compose> <!-- 0..1 Content logical definition of the value set (CLD) --> <lockedDate value="[date]"/><!-- 0..1 Fixed date for references with no specified version (transitive) --> <inactive value="[boolean]"/><!-- 0..1 Whether inactive codes are in the value set --> <include> <!-- 1..* Include one or more codes from a code system or other value set(s) --> <system value="[uri]"/><!--0..1 The system the codes come from -->
<<version value="[string]"/><!-- 0..1 Specific version of the code system referred to --> <concept> <!--0..* A concept defined in the system --> <code value="[code]"/><!-- 1..1 Code or expression from system --> <display value="[string]"/><!-- 0..1 Text to display for this code for this value set in this valueset --> <designation> <!-- 0..* Additional representations for this concept --> <language value="[code]"/><!-- 0..1 Human language of the designation -->
<</use><use><!-- 0..1 Coding Types of uses of designations --></use> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> </concept>< <<filter> <!--0..* Select codes/concepts by their properties (including relationships) --> <property value="[code]"/><!-- 1..1 A property/filter defined by the code system --> <op value="[code]"/><!-- 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists -->
<<value value="[string]"/><!-- 1..1 Code from the system, or regex criteria, or boolean value for exists --> </filter> <valueSet><!--0..* canonical(ValueSet) Select the contents included in this value set --></valueSet> </include> <exclude><!--
0..* Content as for ValueSet.compose.include Explicitly exclude codes from a code system or other value sets --></exclude> <property value="[string]"/><!-- 0..* Property to return if client doesn't override --> </compose>
< <<expansion> <!-- 0..1 Used when the value set is "expanded" --> <identifier value="[uri]"/><!-- 0..1 Identifies the value set expansion (business identifier) --> <timestamp value="[dateTime]"/><!-- 1..1 Time ValueSet expansion happened --> <total value="[integer]"/><!-- 0..1 Total number of codes in the expansion --><<offset value="[integer]"/><!-- 0..1 Offset at which this resource starts --> <parameter> <!-- 0..* Parameter that controlled the expansion process -->< <</value[x]><name value="[string]"/><!-- 1..1 Name as assigned by the client or server --> <value[x]><!-- 0..1 string|boolean|integer|decimal|uri|code|dateTime Value of the named parameter --></value[x]> </parameter> <property> <!-- 0..* Additional information supplied about each concept --> <code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations --> <uri value="[uri]"/><!-- 0..1 Formal identifier for the property --> </property> <contains> <!-- 0..* Codes in the value set --> <system value="[uri]"/><!-- 0..1 System value for the code --> <abstract value="[boolean]"/><!-- 0..1 If user cannot select this entry --> <inactive value="[boolean]"/><!-- 0..1 If concept is inactive in the code system --><<version value="[string]"/><!-- 0..1 Version in which this code/display is defined --> <code value="[code]"/><!--0..1 Code - if blank, this is not a selectable code --> <display value="[string]"/><!--
0..1 User display for the concept --> <designation><!-- 0..* Content as for ValueSet.compose.include.concept.designation Additional representations for this item --></designation> <property> <!-- 0..* Property value for the concept --> <code value="[code]"/><!-- 1..1 Reference to ValueSet.expansion.property.code --> <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime|decimal Value of the property for this concept --></value[x]> </property> <contains><!-- 0..* Content as for ValueSet.expansion.contains Codes contained under this entry --></contains> </contains> </expansion> </ValueSet>
JSON Template
{![]()
"resourceType" : "","resourceType" : "ValueSet", // from Resource: id, meta, implicitRules, and language// from ""url" : "<uri>", // Canonical identifier for this value set, represented as a URI (globally unique) "identifier" : [{ Identifier }], // Additional identifier for the value set (business identifier) "version" : "<string>", // Business version of the value set""name" : "<string>", // C? Name for this value set (computer friendly) "title" : "<string>", // Name for this value set (human friendly)" " ""status" : "<code>", // R! draft | active | retired | unknown "experimental" : <boolean>, // For testing purposes, not real usage "date" : "<dateTime>", // Date last changed "publisher" : "<string>", // Name of the publisher (organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher" ""description" : "<markdown>", // Natural language description of the value set "useContext" : [{ UsageContext }], // The context that the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for value set (if applicable) "immutable" : <boolean>, // Indicates whether or not any change to the content logical definition may occur "purpose" : "<markdown>", // Why this value set is defined "copyright" : "<markdown>", // Use and/or publishing restrictions" " " ""compose" : { // Content logical definition of the value set (CLD) "lockedDate" : "<date>", // Fixed date for references with no specified version (transitive) "inactive" : <boolean>, // Whether inactive codes are in the value set "include" : [{ // R! Include one or more codes from a code system or other value set(s) "system" : "<uri>", // C? The system the codes come from""version" : "<string>", // Specific version of the code system referred to "concept" : [{ // C? A concept defined in the system "code" : "<code>", // R! Code or expression from system "display" : "<string>", // Text to display for this code for this value set in this valueset "designation" : [{ // Additional representations for this concept "language" : "<code>", // Human language of the designation""use" : { Coding }, // Types of uses of designations "value" : "<string>" // R! The text value for this designation }] }]," ""filter" : [{ // C? Select codes/concepts by their properties (including relationships) "property" : "<code>", // R! A property/filter defined by the code system "op" : "<code>", // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists""value" : "<string>" // R! Code from the system, or regex criteria, or boolean value for exists }],""valueSet" : [{ canonical(ValueSet) }] // C? Select the contents included in this value set }],""exclude" : [{ Content as for ValueSet.compose.include }], // C? Explicitly exclude codes from a code system or other value sets "property" : ["<string>"] // Property to return if client doesn't override }," ""expansion" : { // Used when the value set is "expanded" "identifier" : "<uri>", // Identifies the value set expansion (business identifier) "timestamp" : "<dateTime>", // R! Time ValueSet expansion happened "total" : <integer>, // Total number of codes in the expansion""offset" : <integer>, // Offset at which this resource starts "parameter" : [{ // Parameter that controlled the expansion process""name" : "<string>", // R! Name as assigned by the client or server // value[x]: Value of the named parameter. One of these 7: "valueString" : "<string>" "valueBoolean" : <boolean> "valueInteger" : <integer> "valueDecimal" : <decimal> "valueUri" : "<uri>" "valueCode" : "<code>" "valueDateTime" : "<dateTime>" }], "property" : [{ // Additional information supplied about each concept "code" : "<code>", // R! Identifies the property on the concepts, and when referred to in operations "uri" : "<uri>" // Formal identifier for the property }], "contains" : [{ // Codes in the value set "system" : "<uri>", // System value for the code "abstract" : <boolean>, // If user cannot select this entry "inactive" : <boolean>, // If concept is inactive in the code system""version" : "<string>", // Version in which this code/display is defined "code" : "<code>", // C? Code - if blank, this is not a selectable code "display" : "<string>", // C? User display for the concept "designation" : [{ Content as for ValueSet.compose.include.concept.designation }], // Additional representations for this item "property" : [{ // Property value for the concept "code" : "<code>", // R! Reference to ValueSet.expansion.property.code // value[x]: Value of the property for this concept. One of these 7: "valueCode" : "<code>" "valueCoding" : { Coding } "valueString" : "<string>" "valueInteger" : <integer> "valueBoolean" : <boolean> "valueDateTime" : "<dateTime>" "valueDecimal" : <decimal> }], "contains" : [{ Content as for ValueSet.expansion.contains }] // Codes contained under this entry }] } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:ValueSet; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language# from fhir:fhir:ValueSet.url [ uri ]; # 0..1 Canonical identifier for this value set, represented as a URI (globally unique) fhir:ValueSet.identifier [ Identifier ], ... ; # 0..* Additional identifier for the value set (business identifier) fhir:ValueSet.version [ string ]; # 0..1 Business version of the value set fhir:ValueSet.name [ string ]; # 0..1 Name for this value set (computer friendly) fhir:ValueSet.title [ string ]; # 0..1 Name for this value set (human friendly)fhir: fhir: fhir:fhir:ValueSet.status [ code ]; # 1..1 draft | active | retired | unknown fhir:ValueSet.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ValueSet.date [ dateTime ]; # 0..1 Date last changed fhir:ValueSet.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:ValueSet.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisherfhir: fhir:fhir:ValueSet.description [ markdown ]; # 0..1 Natural language description of the value set fhir:ValueSet.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ValueSet.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for value set (if applicable) fhir:ValueSet.immutable [ boolean ]; # 0..1 Indicates whether or not any change to the content logical definition may occur fhir:ValueSet.purpose [ markdown ]; # 0..1 Why this value set is defined fhir:ValueSet.copyright [ markdown ]; # 0..1 Use and/or publishing restrictionsfhir: fhir: fhir: fhir:fhir:ValueSet.compose [ # 0..1 Content logical definition of the value set (CLD) fhir:ValueSet.compose.lockedDate [ date ]; # 0..1 Fixed date for references with no specified version (transitive) fhir:ValueSet.compose.inactive [ boolean ]; # 0..1 Whether inactive codes are in the value set fhir:ValueSet.compose.include [ # 1..* Include one or more codes from a code system or other value set(s) fhir:ValueSet.compose.include.system [ uri ]; # 0..1 The system the codes come fromfhir:fhir:ValueSet.compose.include.version [ string ]; # 0..1 Specific version of the code system referred to fhir:ValueSet.compose.include.concept [ # 0..* A concept defined in the system fhir:ValueSet.compose.include.concept.code [ code ]; # 1..1 Code or expression from system fhir:ValueSet.compose.include.concept.display [ string ]; # 0..1 Text to display for this code for this value set in this valueset fhir:ValueSet.compose.include.concept.designation [ # 0..* Additional representations for this concept fhir:ValueSet.compose.include.concept.designation.language [ code ]; # 0..1 Human language of the designationfhir:fhir:ValueSet.compose.include.concept.designation.use [ Coding ]; # 0..1 Types of uses of designations fhir:ValueSet.compose.include.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; ], ...;fhir: fhir:fhir:ValueSet.compose.include.filter [ # 0..* Select codes/concepts by their properties (including relationships) fhir:ValueSet.compose.include.filter.property [ code ]; # 1..1 A property/filter defined by the code system fhir:ValueSet.compose.include.filter.op [ code ]; # 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | existsfhir:fhir:ValueSet.compose.include.filter.value [ string ]; # 1..1 Code from the system, or regex criteria, or boolean value for exists ], ...; fhir:ValueSet.compose.include.valueSet [ canonical(ValueSet) ], ... ; # 0..* Select the contents included in this value set ], ...; fhir:ValueSet.compose.exclude [ See ValueSet.compose.include ], ... ; # 0..* Explicitly exclude codes from a code system or other value sets fhir:ValueSet.compose.property [ string ], ... ; # 0..* Property to return if client doesn't override ]; fhir:ValueSet.expansion [ # 0..1 Used when the value set is "expanded"fhir:fhir:ValueSet.expansion.identifier [ uri ]; # 0..1 Identifies the value set expansion (business identifier) fhir:ValueSet.expansion.timestamp [ dateTime ]; # 1..1 Time ValueSet expansion happened fhir:ValueSet.expansion.total [ integer ]; # 0..1 Total number of codes in the expansionfhir:fhir:ValueSet.expansion.offset [ integer ]; # 0..1 Offset at which this resource starts fhir:ValueSet.expansion.parameter [ # 0..* Parameter that controlled the expansion processfhir: # . One of these 6fhir:ValueSet.expansion.parameter.name [ string ]; # 1..1 Name as assigned by the client or server # ValueSet.expansion.parameter.value[x] : 0..1 Value of the named parameter. One of these 7 fhir:ValueSet.expansion.parameter.valueString [ string ] fhir:ValueSet.expansion.parameter.valueBoolean [ boolean ] fhir:ValueSet.expansion.parameter.valueInteger [ integer ] fhir:ValueSet.expansion.parameter.valueDecimal [ decimal ] fhir:ValueSet.expansion.parameter.valueUri [ uri ] fhir:ValueSet.expansion.parameter.valueCode [ code ] fhir:ValueSet.expansion.parameter.valueDateTime [ dateTime ] ], ...; fhir:ValueSet.expansion.property [ # 0..* Additional information supplied about each concept fhir:ValueSet.expansion.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:ValueSet.expansion.property.uri [ uri ]; # 0..1 Formal identifier for the property ], ...; fhir:ValueSet.expansion.contains [ # 0..* Codes in the value set fhir:ValueSet.expansion.contains.system [ uri ]; # 0..1 System value for the code fhir:ValueSet.expansion.contains.abstract [ boolean ]; # 0..1 If user cannot select this entry fhir:ValueSet.expansion.contains.inactive [ boolean ]; # 0..1 If concept is inactive in the code systemfhir:fhir:ValueSet.expansion.contains.version [ string ]; # 0..1 Version in which this code/display is defined fhir:ValueSet.expansion.contains.code [ code ]; # 0..1 Code - if blank, this is not a selectable code fhir:ValueSet.expansion.contains.display [ string ]; # 0..1 User display for the concept fhir:ValueSet.expansion.contains.designation [ See ValueSet.compose.include.concept.designation ], ... ; # 0..* Additional representations for this item fhir:ValueSet.expansion.contains.property [ # 0..* Property value for the concept fhir:ValueSet.expansion.contains.property.code [ code ]; # 1..1 Reference to ValueSet.expansion.property.code # ValueSet.expansion.contains.property.value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:ValueSet.expansion.contains.property.valueCode [ code ] fhir:ValueSet.expansion.contains.property.valueCoding [ Coding ] fhir:ValueSet.expansion.contains.property.valueString [ string ] fhir:ValueSet.expansion.contains.property.valueInteger [ integer ] fhir:ValueSet.expansion.contains.property.valueBoolean [ boolean ] fhir:ValueSet.expansion.contains.property.valueDateTime [ dateTime ] fhir:ValueSet.expansion.contains.property.valueDecimal [ decimal ] ], ...; fhir:ValueSet.expansion.contains.contains [ See ValueSet.expansion.contains ], ... ; # 0..* Codes contained under this entry ], ...; ]; ]
Changes since R3
ValueSet | |
|
|
|
|
|
|
|
|
|
|
|
|
ValueSet.expansion.contains.property |
|
ValueSet.expansion.contains.property.code |
|
ValueSet.expansion.contains.property.value[x] |
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
11
8
tests
that
all
execute
ok.
5
fail
All
tests
pass
round-trip
testing
and
4
8
r3
resources
are
invalid
(4
(0
errors).
).
Note:
these
have
note
yet
been
updated
to
be
R3
to
R4
)
Structure
Name | Flags | Card. | Type |
Description
&
Constraints
![]() |
---|---|---|---|---|
![]() ![]() |
|
|
A
set
of
codes
drawn
from
one
or
more
code
systems
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension , url , identifier , version , name , title , status , experimental , date , publisher , contact , description , useContext , jurisdiction , purpose , copyright | |
![]() ![]() ![]() | Σ | 0..1 | uri | Canonical identifier for this value set, represented as a URI (globally unique) |
![]() ![]() ![]() | Σ | 0..* | Identifier |
Additional
identifier
for
the
value
set
(business
identifier)
|
![]() ![]() ![]() | Σ | 0..1 | string | Business version of the value set |
![]() ![]() ![]() | Σ I | 0..1 | string | Name for this value set (computer friendly) |
![]() ![]() ![]() | Σ | 0..1 | string | Name for this value set (human friendly) |
![]() ![]() ![]() |
?!
Σ
| 1..1 | code |
draft
|
active
|
retired
|
unknown
PublicationStatus ( Required ) |
![]() ![]() ![]() | Σ | 0..1 | boolean | For testing purposes, not real usage |
![]() ![]() ![]() | Σ | 0..1 | dateTime | Date last changed |
![]() ![]() ![]() | Σ | 0..1 | string | Name of the publisher (organization or individual) |
![]() ![]() ![]() | Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
![]() ![]() ![]() | 0..1 | markdown | Natural language description of the value set | |
![]() ![]() ![]() | Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
![]() ![]() ![]() | Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
value
set
(if
applicable)
Jurisdiction |
![]() ![]() ![]() | Σ | 0..1 | boolean | Indicates whether or not any change to the content logical definition may occur |
![]() ![]() ![]() | 0..1 | markdown | Why this value set is defined | |
![]() ![]() ![]() | 0..1 | markdown | Use and/or publishing restrictions | |
![]() ![]() ![]() | 0..1 |
BackboneElement
| Content logical definition of the value set (CLD) | |
![]() ![]() ![]() ![]() | Σ | 0..1 | date |
Fixed
date
for
|
![]() ![]() ![]() ![]() | Σ | 0..1 | boolean | Whether inactive codes are in the value set |
![]() ![]() ![]() ![]() | Σ I | 1..* | BackboneElement |
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
+ Rule: A value set include/exclude SHALL have a value set or a system + Rule: A value set with concepts or filters SHALL include a system + Rule: Cannot have both concept and filter |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..1 | uri | The system the codes come from |
![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Specific version of the code system referred to |
![]() ![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
A
concept
defined
in
the
system
|
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code | Code or expression from system | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | string | Text to display for this code for this value set in this valueset | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Additional
representations
for
this
concept
| |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | code |
Human
language
of
the
designation
Common Languages ( | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | Coding |
Designation Use ( Extensible ) | |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | string | The text value for this designation | |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..* | BackboneElement |
Select
codes/concepts
by
their
properties
(including
relationships)
|
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | code |
A
|
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 1..1 | string | Code from the system, or regex criteria, or boolean value for exists |
![]() ![]() ![]() ![]() ![]() | Σ I | 0..* | canonical ( ValueSet ) |
Select
the
contents
included
in
this
value
set
|
![]() ![]() ![]() ![]() | I | 0..* | see include |
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
|
![]() ![]() ![]() ![]() |
| 0..* | string |
Property
to
return
if
client
doesn't
override
|
![]() ![]() ![]() | 0..1 | BackboneElement | Used when the value set is "expanded" | |
![]() ![]() ![]() ![]() | 0..1 | uri |
| |
![]() ![]() ![]() ![]() | 1..1 | dateTime | Time ValueSet expansion happened | |
![]() ![]() ![]() ![]() | 0..1 | integer | Total number of codes in the expansion | |
![]() ![]() ![]() ![]() | 0..1 | integer | Offset at which this resource starts | |
![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Parameter
that
controlled
the
expansion
process
| |
![]() ![]() ![]() ![]() ![]() | 1..1 | string | Name as assigned by the client or server | |
![]() ![]() ![]() ![]() ![]() | 0..1 | Value of the named parameter | ||
![]() ![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||
![]() ![]() ![]() ![]() ![]() ![]() | uri | |||
![]() ![]() ![]() ![]() ![]() ![]() | code | |||
![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Additional
information
supplied
about
each
concept
| |
![]() ![]() ![]() ![]() ![]() | 1..1 | code | Identifies the property on the concepts, and when referred to in operations | |
![]() ![]() ![]() ![]() ![]() | 0..1 | uri | Formal identifier for the property | |
![]() ![]() ![]() ![]() | I | 0..* | BackboneElement |
Codes
in
the
value
set
+ Rule: SHALL have a code or a display + Rule: Must have a code if not abstract + Rule: Must have a system if a code is present |
![]() ![]() ![]() ![]() ![]() | 0..1 | uri | System value for the code | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If user cannot select this entry | |
![]() ![]() ![]() ![]() ![]() | 0..1 | boolean | If concept is inactive in the code system | |
![]() ![]() ![]() ![]() ![]() | 0..1 | string | Version in which this code/display is defined | |
![]() ![]() ![]() ![]() ![]() | I | 0..1 | code | Code - if blank, this is not a selectable code |
![]() ![]() ![]() ![]() ![]() | I | 0..1 | string | User display for the concept |
![]() ![]() ![]() ![]() ![]() | 0..* | see designation |
Additional
representations
for
this
item
| |
![]() ![]() ![]() ![]() ![]() | 0..* | BackboneElement |
Property
value
for
the
concept
| |
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code | Reference to ValueSet.expansion.property.code | |
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | Value of the property for this concept | ||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | code | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Coding | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||
![]() ![]() ![]() ![]() ![]() | 0..* | see contains |
Codes
contained
under
this
entry
| |
![]() |
XML Template
<ValueSet xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language -->
<!-- from --> <<url value="[uri]"/><!-- 0..1 Canonical identifier for this value set, represented as a URI (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the value set (business identifier) --></identifier> <version value="[string]"/><!-- 0..1 Business version of the value set --><<name value="[string]"/><!--0..1 Name for this value set (computer friendly) --> <title value="[string]"/><!-- 0..1 Name for this value set (human friendly) -->
< < <<status value="[code]"/><!-- 1..1 draft | active | retired | unknown --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>< <</useContext><description value="[markdown]"/><!-- 0..1 Natural language description of the value set --> <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for value set (if applicable) --></jurisdiction> <immutable value="[boolean]"/><!-- 0..1 Indicates whether or not any change to the content logical definition may occur --> <purpose value="[markdown]"/><!-- 0..1 Why this value set is defined --> <copyright value="[markdown]"/><!-- 0..1 Use and/or publishing restrictions -->< < < <<compose> <!-- 0..1 Content logical definition of the value set (CLD) --> <lockedDate value="[date]"/><!-- 0..1 Fixed date for references with no specified version (transitive) --> <inactive value="[boolean]"/><!-- 0..1 Whether inactive codes are in the value set --> <include> <!-- 1..* Include one or more codes from a code system or other value set(s) --> <system value="[uri]"/><!--0..1 The system the codes come from -->
<<version value="[string]"/><!-- 0..1 Specific version of the code system referred to --> <concept> <!--0..* A concept defined in the system --> <code value="[code]"/><!-- 1..1 Code or expression from system --> <display value="[string]"/><!-- 0..1 Text to display for this code for this value set in this valueset --> <designation> <!-- 0..* Additional representations for this concept --> <language value="[code]"/><!-- 0..1 Human language of the designation -->
<</use><use><!-- 0..1 Coding Types of uses of designations --></use> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> </concept>< <<filter> <!--0..* Select codes/concepts by their properties (including relationships) --> <property value="[code]"/><!-- 1..1 A property/filter defined by the code system --> <op value="[code]"/><!-- 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists -->
<<value value="[string]"/><!-- 1..1 Code from the system, or regex criteria, or boolean value for exists --> </filter> <valueSet><!--0..* canonical(ValueSet) Select the contents included in this value set --></valueSet> </include> <exclude><!--
0..* Content as for ValueSet.compose.include Explicitly exclude codes from a code system or other value sets --></exclude> <property value="[string]"/><!-- 0..* Property to return if client doesn't override --> </compose>
< <<expansion> <!-- 0..1 Used when the value set is "expanded" --> <identifier value="[uri]"/><!-- 0..1 Identifies the value set expansion (business identifier) --> <timestamp value="[dateTime]"/><!-- 1..1 Time ValueSet expansion happened --> <total value="[integer]"/><!-- 0..1 Total number of codes in the expansion --><<offset value="[integer]"/><!-- 0..1 Offset at which this resource starts --> <parameter> <!-- 0..* Parameter that controlled the expansion process -->< <</value[x]><name value="[string]"/><!-- 1..1 Name as assigned by the client or server --> <value[x]><!-- 0..1 string|boolean|integer|decimal|uri|code|dateTime Value of the named parameter --></value[x]> </parameter> <property> <!-- 0..* Additional information supplied about each concept --> <code value="[code]"/><!-- 1..1 Identifies the property on the concepts, and when referred to in operations --> <uri value="[uri]"/><!-- 0..1 Formal identifier for the property --> </property> <contains> <!-- 0..* Codes in the value set --> <system value="[uri]"/><!-- 0..1 System value for the code --> <abstract value="[boolean]"/><!-- 0..1 If user cannot select this entry --> <inactive value="[boolean]"/><!-- 0..1 If concept is inactive in the code system --><<version value="[string]"/><!-- 0..1 Version in which this code/display is defined --> <code value="[code]"/><!--0..1 Code - if blank, this is not a selectable code --> <display value="[string]"/><!--
0..1 User display for the concept --> <designation><!-- 0..* Content as for ValueSet.compose.include.concept.designation Additional representations for this item --></designation> <property> <!-- 0..* Property value for the concept --> <code value="[code]"/><!-- 1..1 Reference to ValueSet.expansion.property.code --> <value[x]><!-- 1..1 code|Coding|string|integer|boolean|dateTime|decimal Value of the property for this concept --></value[x]> </property> <contains><!-- 0..* Content as for ValueSet.expansion.contains Codes contained under this entry --></contains> </contains> </expansion> </ValueSet>
JSON Template
{![]()
"resourceType" : "","resourceType" : "ValueSet", // from Resource: id, meta, implicitRules, and language// from ""url" : "<uri>", // Canonical identifier for this value set, represented as a URI (globally unique) "identifier" : [{ Identifier }], // Additional identifier for the value set (business identifier) "version" : "<string>", // Business version of the value set""name" : "<string>", // C? Name for this value set (computer friendly) "title" : "<string>", // Name for this value set (human friendly)" " ""status" : "<code>", // R! draft | active | retired | unknown "experimental" : <boolean>, // For testing purposes, not real usage "date" : "<dateTime>", // Date last changed "publisher" : "<string>", // Name of the publisher (organization or individual) "contact" : [{ ContactDetail }], // Contact details for the publisher" ""description" : "<markdown>", // Natural language description of the value set "useContext" : [{ UsageContext }], // The context that the content is intended to support "jurisdiction" : [{ CodeableConcept }], // Intended jurisdiction for value set (if applicable) "immutable" : <boolean>, // Indicates whether or not any change to the content logical definition may occur "purpose" : "<markdown>", // Why this value set is defined "copyright" : "<markdown>", // Use and/or publishing restrictions" " " ""compose" : { // Content logical definition of the value set (CLD) "lockedDate" : "<date>", // Fixed date for references with no specified version (transitive) "inactive" : <boolean>, // Whether inactive codes are in the value set "include" : [{ // R! Include one or more codes from a code system or other value set(s) "system" : "<uri>", // C? The system the codes come from""version" : "<string>", // Specific version of the code system referred to "concept" : [{ // C? A concept defined in the system "code" : "<code>", // R! Code or expression from system "display" : "<string>", // Text to display for this code for this value set in this valueset "designation" : [{ // Additional representations for this concept "language" : "<code>", // Human language of the designation""use" : { Coding }, // Types of uses of designations "value" : "<string>" // R! The text value for this designation }] }]," ""filter" : [{ // C? Select codes/concepts by their properties (including relationships) "property" : "<code>", // R! A property/filter defined by the code system "op" : "<code>", // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists""value" : "<string>" // R! Code from the system, or regex criteria, or boolean value for exists }],""valueSet" : [{ canonical(ValueSet) }] // C? Select the contents included in this value set }],""exclude" : [{ Content as for ValueSet.compose.include }], // C? Explicitly exclude codes from a code system or other value sets "property" : ["<string>"] // Property to return if client doesn't override }," ""expansion" : { // Used when the value set is "expanded" "identifier" : "<uri>", // Identifies the value set expansion (business identifier) "timestamp" : "<dateTime>", // R! Time ValueSet expansion happened "total" : <integer>, // Total number of codes in the expansion""offset" : <integer>, // Offset at which this resource starts "parameter" : [{ // Parameter that controlled the expansion process""name" : "<string>", // R! Name as assigned by the client or server // value[x]: Value of the named parameter. One of these 7: "valueString" : "<string>" "valueBoolean" : <boolean> "valueInteger" : <integer> "valueDecimal" : <decimal> "valueUri" : "<uri>" "valueCode" : "<code>" "valueDateTime" : "<dateTime>" }], "property" : [{ // Additional information supplied about each concept "code" : "<code>", // R! Identifies the property on the concepts, and when referred to in operations "uri" : "<uri>" // Formal identifier for the property }], "contains" : [{ // Codes in the value set "system" : "<uri>", // System value for the code "abstract" : <boolean>, // If user cannot select this entry "inactive" : <boolean>, // If concept is inactive in the code system""version" : "<string>", // Version in which this code/display is defined "code" : "<code>", // C? Code - if blank, this is not a selectable code "display" : "<string>", // C? User display for the concept "designation" : [{ Content as for ValueSet.compose.include.concept.designation }], // Additional representations for this item "property" : [{ // Property value for the concept "code" : "<code>", // R! Reference to ValueSet.expansion.property.code // value[x]: Value of the property for this concept. One of these 7: "valueCode" : "<code>" "valueCoding" : { Coding } "valueString" : "<string>" "valueInteger" : <integer> "valueBoolean" : <boolean> "valueDateTime" : "<dateTime>" "valueDecimal" : <decimal> }], "contains" : [{ Content as for ValueSet.expansion.contains }] // Codes contained under this entry }] } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .![]()
[ a fhir:;[ a fhir:ValueSet; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language# from fhir:fhir:ValueSet.url [ uri ]; # 0..1 Canonical identifier for this value set, represented as a URI (globally unique) fhir:ValueSet.identifier [ Identifier ], ... ; # 0..* Additional identifier for the value set (business identifier) fhir:ValueSet.version [ string ]; # 0..1 Business version of the value set fhir:ValueSet.name [ string ]; # 0..1 Name for this value set (computer friendly) fhir:ValueSet.title [ string ]; # 0..1 Name for this value set (human friendly)fhir: fhir: fhir:fhir:ValueSet.status [ code ]; # 1..1 draft | active | retired | unknown fhir:ValueSet.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:ValueSet.date [ dateTime ]; # 0..1 Date last changed fhir:ValueSet.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:ValueSet.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisherfhir: fhir:fhir:ValueSet.description [ markdown ]; # 0..1 Natural language description of the value set fhir:ValueSet.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:ValueSet.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for value set (if applicable) fhir:ValueSet.immutable [ boolean ]; # 0..1 Indicates whether or not any change to the content logical definition may occur fhir:ValueSet.purpose [ markdown ]; # 0..1 Why this value set is defined fhir:ValueSet.copyright [ markdown ]; # 0..1 Use and/or publishing restrictionsfhir: fhir: fhir: fhir:fhir:ValueSet.compose [ # 0..1 Content logical definition of the value set (CLD) fhir:ValueSet.compose.lockedDate [ date ]; # 0..1 Fixed date for references with no specified version (transitive) fhir:ValueSet.compose.inactive [ boolean ]; # 0..1 Whether inactive codes are in the value set fhir:ValueSet.compose.include [ # 1..* Include one or more codes from a code system or other value set(s) fhir:ValueSet.compose.include.system [ uri ]; # 0..1 The system the codes come fromfhir:fhir:ValueSet.compose.include.version [ string ]; # 0..1 Specific version of the code system referred to fhir:ValueSet.compose.include.concept [ # 0..* A concept defined in the system fhir:ValueSet.compose.include.concept.code [ code ]; # 1..1 Code or expression from system fhir:ValueSet.compose.include.concept.display [ string ]; # 0..1 Text to display for this code for this value set in this valueset fhir:ValueSet.compose.include.concept.designation [ # 0..* Additional representations for this concept fhir:ValueSet.compose.include.concept.designation.language [ code ]; # 0..1 Human language of the designationfhir:fhir:ValueSet.compose.include.concept.designation.use [ Coding ]; # 0..1 Types of uses of designations fhir:ValueSet.compose.include.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; ], ...;fhir: fhir:fhir:ValueSet.compose.include.filter [ # 0..* Select codes/concepts by their properties (including relationships) fhir:ValueSet.compose.include.filter.property [ code ]; # 1..1 A property/filter defined by the code system fhir:ValueSet.compose.include.filter.op [ code ]; # 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | existsfhir:fhir:ValueSet.compose.include.filter.value [ string ]; # 1..1 Code from the system, or regex criteria, or boolean value for exists ], ...; fhir:ValueSet.compose.include.valueSet [ canonical(ValueSet) ], ... ; # 0..* Select the contents included in this value set ], ...; fhir:ValueSet.compose.exclude [ See ValueSet.compose.include ], ... ; # 0..* Explicitly exclude codes from a code system or other value sets fhir:ValueSet.compose.property [ string ], ... ; # 0..* Property to return if client doesn't override ]; fhir:ValueSet.expansion [ # 0..1 Used when the value set is "expanded"fhir:fhir:ValueSet.expansion.identifier [ uri ]; # 0..1 Identifies the value set expansion (business identifier) fhir:ValueSet.expansion.timestamp [ dateTime ]; # 1..1 Time ValueSet expansion happened fhir:ValueSet.expansion.total [ integer ]; # 0..1 Total number of codes in the expansionfhir:fhir:ValueSet.expansion.offset [ integer ]; # 0..1 Offset at which this resource starts fhir:ValueSet.expansion.parameter [ # 0..* Parameter that controlled the expansion processfhir: # . One of these 6fhir:ValueSet.expansion.parameter.name [ string ]; # 1..1 Name as assigned by the client or server # ValueSet.expansion.parameter.value[x] : 0..1 Value of the named parameter. One of these 7 fhir:ValueSet.expansion.parameter.valueString [ string ] fhir:ValueSet.expansion.parameter.valueBoolean [ boolean ] fhir:ValueSet.expansion.parameter.valueInteger [ integer ] fhir:ValueSet.expansion.parameter.valueDecimal [ decimal ] fhir:ValueSet.expansion.parameter.valueUri [ uri ] fhir:ValueSet.expansion.parameter.valueCode [ code ] fhir:ValueSet.expansion.parameter.valueDateTime [ dateTime ] ], ...; fhir:ValueSet.expansion.property [ # 0..* Additional information supplied about each concept fhir:ValueSet.expansion.property.code [ code ]; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:ValueSet.expansion.property.uri [ uri ]; # 0..1 Formal identifier for the property ], ...; fhir:ValueSet.expansion.contains [ # 0..* Codes in the value set fhir:ValueSet.expansion.contains.system [ uri ]; # 0..1 System value for the code fhir:ValueSet.expansion.contains.abstract [ boolean ]; # 0..1 If user cannot select this entry fhir:ValueSet.expansion.contains.inactive [ boolean ]; # 0..1 If concept is inactive in the code systemfhir:fhir:ValueSet.expansion.contains.version [ string ]; # 0..1 Version in which this code/display is defined fhir:ValueSet.expansion.contains.code [ code ]; # 0..1 Code - if blank, this is not a selectable code fhir:ValueSet.expansion.contains.display [ string ]; # 0..1 User display for the concept fhir:ValueSet.expansion.contains.designation [ See ValueSet.compose.include.concept.designation ], ... ; # 0..* Additional representations for this item fhir:ValueSet.expansion.contains.property [ # 0..* Property value for the concept fhir:ValueSet.expansion.contains.property.code [ code ]; # 1..1 Reference to ValueSet.expansion.property.code # ValueSet.expansion.contains.property.value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:ValueSet.expansion.contains.property.valueCode [ code ] fhir:ValueSet.expansion.contains.property.valueCoding [ Coding ] fhir:ValueSet.expansion.contains.property.valueString [ string ] fhir:ValueSet.expansion.contains.property.valueInteger [ integer ] fhir:ValueSet.expansion.contains.property.valueBoolean [ boolean ] fhir:ValueSet.expansion.contains.property.valueDateTime [ dateTime ] fhir:ValueSet.expansion.contains.property.valueDecimal [ decimal ] ], ...; fhir:ValueSet.expansion.contains.contains [ See ValueSet.expansion.contains ], ... ; # 0..* Codes contained under this entry ], ...; ]; ]
Changes
since
DSTU2
Release
3
ValueSet | |
|
|
|
|
|
|
|
|
|
|
|
|
ValueSet.expansion.contains.property |
|
ValueSet.expansion.contains.property.code |
|
ValueSet.expansion.contains.property.value[x] |
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
11
8
tests
that
all
execute
ok.
5
fail
All
tests
pass
round-trip
testing
and
4
8
r3
resources
are
invalid
(4
(0
errors).
).
Note:
these
have
note
yet
been
updated
to
be
R3
to
R4
)
Alternate
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
,
the
extensions
spreadsheet
version
&
the
dependency
analysis
a
Path | Definition | Type | Reference |
---|---|---|---|
ValueSet.status | The lifecycle status of an artifact. | Required | PublicationStatus |
ValueSet.jurisdiction |
Countries
and
regions
within
which
this
artifact
is
targeted
for
| Extensible | Jurisdiction ValueSet |
ValueSet.compose.include.concept.designation.language | A human language. |
|
|
ValueSet.compose.include.concept.designation.use | Details of how a designation would be used. | Extensible |
|
ValueSet.compose.include.filter.op | The kind of operation to perform as a part of a property based filter. | Required | FilterOperator |
id | Level | Location | Description | Expression |
cnl-0 | Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation | name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
vsd-1
| Rule | ValueSet.compose.include |
A
value
set
include/exclude
SHALL
have
a
value
set
or
a
system
|
|
|
| ValueSet.compose.include |
A
value
set
with
concepts
or
filters
SHALL
include
a
system
|
|
vsd-3
| Rule | ValueSet.compose.include |
Cannot
have
both
concept
and
filter
|
|
vsd-6
| Rule | ValueSet.expansion.contains |
SHALL
have
a
code
or
a
display
|
|
vsd-9
| Rule | ValueSet.expansion.contains |
Must
have
a
code
if
not
abstract
|
|
vsd-10 | Rule | ValueSet.expansion.contains | Must have a system if a code is present | code.empty() or system.exists() |
A
value
set
can
be
a
simple
list
of
included
codes,
or
it
can
be
some
kind
of
general
selection
criteria
using
the
facilities
provided
by
the
code
system.
system
.
For
these
value
sets:
include
statements
are
cumulative
-
e.g.
the
value
set
contains
the
union
of
all
the
includes
include
,
all
the
criterion
apply
-e.g.
the
value
set
contains
the
intersection
of
the
criterion
include
,
a
single
system
with
selection
criteria
may
be
listed,
and/or
one
or
more
value
sets
may
be
valueSet
(s)
only
:
Codes
are
'selected'
for
inclusion
if
they
are
in
all
the
referenced
value
sets
System
concept
or
filter
:
All
codes
in
the
system
are
included
concept
:
Only
the
enumerated
codes
are
selected
filter
:
Any
codes
meeting
the
filter
criteria
are
selected
valueSet
and
System
:
Codes
are
'selected'
for
inclusion
if
they
are
selected
by
the
code
system
selection
(after
checking
for
concept
and
filter
)
and
if
they
are
in
all
the
referenced
value
sets
*
',
which
indicates
that
the
value
set
includes
codes
from
all
versions
of
the
code
system.
how
to
handle
provision
of
the
required
versions
and
generation
of
expansions
is
at
server
discretion,
including
for
poorly
behaved
code
systems
where
a
code
changes
in
meaning).
Implementation Note: Use of this capability is subject to future clarification and conformance requirements based on implementation experience .
Concepts
used
in
ValueSets
can
have
a
display
,
which
is
a
short
text
that
represents
the
meaning
of
the
concept
to
human
users
in
the
context
of
the
value
set
(which
often
has
narrower
meaning
and
therefore
is
amenable
to
shorter
displays.
If
a
display
is
not
provided,
the
value
set
uses
the
display
from
the
code
system
(which
is
the
preferred
approach,
because
overriding
the
display
can
lead
to
very
unsafe
outcomes).
When a value set enumerates codes, it is sometimes useful to define an alternative display for the code that is to be used wherever the value set is expanded and used in a UI. This facility is provided to cover the following circumstances:
Note that care must be taken in order to avoid "changing the meaning" of the concept by implying that it means something other than the explicit definition of the concept in the underlying code system (e.g., in the case above, using a display of "Glucose Concentration at 10pm"). For this reason, some contexts of use do not allow a display to be associated with a specific code in a value set.
Any
display
name
for
a
concept
provided
in
the
value
set
is
only
used
in
the
UI.
for
display
to
a
human
user.
The
display
in
a
the
Coding
that
results
from
a
user
selecting
a
concept
from
the
expansion
must
be
taken
from
the
underlying
code
system
definition,
even
if
a
value
set
is
referenced
explicitly
in
the
Coding
(e.g.
by
an
extension).
extension
).
The
correct
display
for
a
code
can
be
determined
by
a
$lookup
operation
.
Any
alternative
display
specified
in
the
value
set
would
go
in
CodeableConcept
.text,
perhaps
appended
to
the
UI
label
for
the
matching
data
element.
As
an
example,
the
LOINC
code
55423-8
has
a
display
value
of
"Number
of
steps
in
unspecified
time
Pedometer".
A
value
set
for
a
pick
list
in
a
patient
generated
data
form
might
choose
a
simpler
name:
{ "resourceType" : "ValueSet", "compose" : { "include" : [{ "system" : "http://loinc.org", "concept" : [{ "code" : "55423-8", "display" : "Step Count" }] }] } }
The expansion generated by a terminology server will have this:
{ "resourceType" : "ValueSet", "expansion" : { "contains" : [{ "system" : "http://loinc.org", "code" : "55423-8", "display" : "Step Count" }] } }
The expansion display is taken from the value set, and this is what is displayed in the pick list. Once the user picks the code, it will appear in the Observation.code like this:
{ "resourceType" : "Observation", "code" : { "coding" : [{ "system" : "http://loinc.org", "code" : "55423-8", "display" : "Number of steps in unspecified time Pedometer" }], "text" : "Step Count" } }
Note that the correct value for the display is not in the expansion above. The client can either omit the display, look it up using $lookup , or the server might pre-populate it in the expansion:
{ "resourceType" : "ValueSet", "expansion" : { "contains" : [{ "system" : "http://loinc.org", "code" : "55423-8", "display" : "Step Count", "designation" : [{ "use" : { "system" : "http://snomed.info/sct", "code" : "900000000000003001" }, "value" : "Number of steps in unspecified time Pedometer" }] }] } }
Irrespective of this, the display in the expansion always goes in CodeableConcept.text .
In
addition
to
the
display,
a
concept
can
have
one
or
more
designation
elements.
The
display
is
equivalent
to
a
special
designation
with
an
implied
designation.use
of
"primary
code"
and
a
language
equal
to
the
Resource
Language
.
The
designations
can
provide
additional
displays
for
other
languages,
as
well
as
designations
for
other
purposes.
When
using
concepts,
applications
use
the
display
unless
the
language
or
usage
in
context
provides
a
reason
to
use
one
of
the
designations.
Value sets may select codes from multiple code systems - either by including codes from different systems, or importing other value sets that include them. A typical use for crossing code systems is when including a set of codes, and adding a few additional codes to cover cases not catered to by the included codes (e.g. Data missing or workflow error codes).
Best Practice Note: Mixing definitional systems offers the potential for confusing, overlapping, and inconsistent definitions. Creating value sets that cross code systems should be done with care to avoid creating definitional confusion.
Value sets should only include well differentiated concepts, but many value sets and code systems do not have well differentiated concepts because of various real world constraints.
Each
Code
System
defines
which
filters
can
be
used
in
ValueSet.compose.include.filter
.
All
code
systems
have
base
filters
and
any
additional
filters
defined
in
(
CodeSystem.filter)
.
This specification also defines filters for various published code systems:
A value set can be "expanded", where the definition of the value set is used to create a simple collection of codes suitable for use for data entry or validation. There is a defined operation $expand to ask a server to perform this expansion. Expansions are most useful when a value set includes all the codes in a code system, or a set of codes by filter.
A
resource
that
represents
a
value
set
expansion
includes
the
same
identification
details
as
the
definition
of
the
value
set,
and
MAY
include
the
definition
of
the
value
set
(
.compose
).
In
addition,
it
has
an
.expansion
element
which
contains
the
list
of
codes
that
constitute
the
value
set
expansion.
If
the
expansion
has
Each
contained
code
can
include
nested
contains
elements,
there
is
no
implication
about
the
logical
relationship
between
them,
and
the
structure
cannot
be
used
for
logical
inferencing.
The
structure
exists
to
provide
navigational
assistance
for
helping
human
users
to
locate
contained
codes
in
the
expansion.
-
see
below
for
further
discussion
.
When a request for an expansion is received (e.g., for the $expand operation), the following process should be followed:
.compose
),
return
an
error
valueSet
,
find
the
referenced
value
set
by
ValueSet.url,
expand
that
(e.g.,
using
the
$expand
operation:
GET
[base]/ValueSet/$expand$url=[compose.include.valueSet]),
and
add
it
to
the
result
set.
This
means
that
expansion
across
imports
is
a
recursive
process.
The
final
"result
set"
is
then
represented
in
expansion
.
Note
that
the
expansion
structure
is
inherently
ordered,
and
also
provides
support
for
a
hierarchical
tree
of
items.
This
ordered;
this
specification
does
not
fix
the
meaning
of
use
of
either
the
order
or
the
hierarchy,
and
the
order.
The
conceptual
approach
described
should
not
be
understood
to
prohibit
any
implementation
approach
in
these
regards.
In
addition,
note
that
the
method
described
above
is
a
conceptual
approach;
individual
servers
may
choose
to
follow
alternative
approaches
that
are
more
efficient,
as
long
as
the
outcome
is
the
same.
The impact of Code System supplements on value set expansion - and therefore value set validation - is subject to ongoing experimentation and implementation testing, and further clarification and additional rules might be proposed in future versions of this specification.
The
expansion
MAY
be
hierarchical
-
that
is,
it
may
have
contains
element
that
contain
their
own
sub-elements,
to
any
level
of
depth.
This
specification
does
not
fix
the
meaning
of
the
hierarchy:
there
is
no
implication
about
the
logical
relationship
between
the
nested
contain
elements,
and
the
structure
cannot
be
used
for
logical
inferencing.
The
structure
exists
to
provide
navigational
assistance
for
helping
human
users
to
locate
codes
in
the
expansion.
There
is
an
example
of
use
of
a
hierarchical
expansion
.
Note
that
the
CodeSystem
resource
and
ValueSet.compose
offer
no
direct
support
for
defining
hierarchies
and
groups;
applications
may
want
to
take
advantage
of
the
expand-rules
and
expand-group
extensions
as
an
implementation
feature.
An
expansion
may
include
entries
in
the
expansion
that
only
serve
an
arbitrary
grouping
purpose,
to
make
it
easier
for
a
human
to
use
the
list.
These
entries
have
no
system
or
code,
and
must
be
marked
as
abstract.
Value
set
definitions
may
lead
to
more
than
one
instruction
to
include
a
given
concept
in
the
value
set
across
the
includes
and
imports.
No
matter
how
many
times
the
definitions
include
a
concept,
it
is
only
present
in
the
value
set
once,
and
will
only
appear
once
in
a
flat
expansion
of
the
value
set.
Note,
however,
that
a
concept
may
appear
more
than
once
in
a
nested
hierarchy
when
the
expansion
is
prepared
for
UI
use
(irrespective
of
how
many
times
it
is
included
in
the
definitions).
Note
that
uniqueness
is
based
on
system/version/code;
it
is
possible
to
include
the
CodeSystem
resource
and
ValueSet.compose
offer
no
support
same
concept
from
different
versions
of
a
code
system
in
the
same
expansion,
though
this
is
generally
confusing
for
defining
hierarchies
users
and
groups,
but
this
does
not
exclude
servers
from
using
extensions
or
other
knowledge
to
introduce
such
groups
as
an
implementation
feature.
should
be
avoided.
The codes in the expansion should be treated as case sensitive - implementers should use the correct case. Implementers can consult the definition of the underlying code systems to determine whether the code system that defines the code is case sensitive or not.
It
is
important
that
expansions
be
identified
properly.
Any
value
set
definition
may
produce
an
infinite
number
of
expansions,
depending
on
the
expansion
profile
and
$expand
operation
parameters.
Any
expansions
produced
must
be
clearly
identified
so
that
there
is
no
confusion.
The
following
rules
apply:
ValueSet.expansion.identifier
The
expansion
contains
a
set
of
parameters
in
ValueSet.expansion.parameter
that
record
what
controlled
the
expansion
process.
These
parameters
may
be
used
by
users
of
expanded
value
sets
to
check
whether
the
expansion
is
suitable
for
a
particular
purpose,
or
to
pick
the
correct
expansion.
The
server
decides
which
parameters
to
include
here,
but
at
a
minimum,
the
list
SHOULD
include
all
of
the
date,
filter,
and
profile
parameters
passed
to
that
affect
the
$expand
operation
(if
any).
operation.
If
the
expansion
will
be
persisted
all
of
these
parameters
SHALL
be
included.
If
the
codeSystem
on
the
server
has
a
specified
version
then
this
version
SHALL
be
provided
as
a
parameter
in
the
expansion
(note
that
not
all
code
systems
have
a
version).
The following parameters are predefined by the $expand operation, and are suitable for use in the expansion parameters:
filter
| A text filter that is applied to restrict the codes that are returned (this is useful in a UI context). The interpretation of this is delegated to the server in order to allow to determine the most optimal search approach for the context. The server can document the way this parameter works in TerminologyCapabilities ..expansion.textFilter. Typical usage of this parameter includes functionality like:
Text Search engines such as Lucene or Solr, long with their considerable functionality, might also be used. The optional text search might also be code system specific, and servers might have different implementations for different code systems |
date
| The date for which the expansion should be generated. if a date is provided, it means that the server should use the value set / code system definitions as they were on the given date, or return an error if this is not possible. Normally, the date is the current conditions (which is the default value) but under some circumstances, systems need to generate an expansion as it would have been in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy. |
offset
| Paging support - where to start if a subset is desired (default = 0). Offset is number of records (not number of pages) |
count
| Paging support - how many codes should be provided in a partial page view. Paging only applies to flat expansions - servers ignore paging if the expansion is not flat. If count = 0, the client is asking how large the expansion is. Servers SHOULD honor this request for hierarchical expansions as well, and simply return the overall count |
includeDesignations
| Controls whether concept designations are to be included or excluded in value set expansions |
designation
| A token that specifies a system+code that is either a use or a language. Designations that match by language or use are included in the expansion. If no designation is specified, it is at the server discretion which designations to return |
includeDefinition
| Controls whether the value set definition is included or excluded in value set expansions |
activeOnly
| Controls whether inactive concepts are included or excluded in value set expansions. Note that if the value set explicitly specifies that inactive codes are included, this parameter can still remove them from a specific expansion, but this parameter cannot include them if the value set excludes them |
excludeNested
| Controls whether or not the value set expansion nests codes or not (i.e. ValueSet.expansion.contains.contains) |
excludeNotForUI
| Controls whether or not the value set expansion is assembled for a user interface use or not. Value sets intended for User Interface might include 'abstract' codes or have nested contains with items with no code or abstract = true, with the sole purpose of helping a user navigate through the list efficiently, where as a value set not generated for UI use might be flat, and only contain the selectable codes in the value set. The exact implications of 'for UI' depend on the code system, and what properties it exposes for a terminology server to use. In the FHIR Specification itself, the value set expansions are generated with excludeNotForUI = false, and the expansions used when generated schema / code etc, or performing validation, are all excludeNotForUI = true. |
excludePostCoordinated
| Controls whether or not the value set expansion includes post coordinated codes |
displayLanguage
| Specifies the language to be used for description in the expansions i.e. the language to be used for ValueSet.expansion.contains.display |
exclude-system
| Code system, or a particular version of a code system to be excluded from the value set expansion. The format is the same as a canonical URL: [system]|[version] - e.g. http://loinc.org|2.56 |
system-version
| Specifies a version to use for a system, if the value set does not specify which one to use. The format is the same as a canonical URL: [system]|[version] - e.g. http://loinc.org|2.56 |
check-system-version
| Edge Case: Specifies a version to use for a system. If a value set specifies a different version, an error is returned instead of the expansion. The format is the same as a canonical URL: [system]|[version] - e.g. http://loinc.org|2.56 |
force-system-version
| Edge Case: Specifies a version to use for a system. This parameter overrides any specified version in the value set (and any it depends on). The format is the same as a canonical URL: [system]|[version] - e.g. http://loinc.org|2.56. Note that this has obvious safety issues, in that it may result in a value set expansion giving a different list of codes that is both wrong and unsafe, and implementers should only use this capability reluctantly. It primarily exists to deal with situations where specifications have fallen into decay as time passes. If the value is override, the version used SHALL explicitly be represented in the expansion parameters |
The count and offset parameters are important. If the expansion is a page out of the whole expansion, the offset and count parameters SHALL be populated. Clients can reliably use the count/offset parameters to determine whether the whole expansion is returned.
Other parameters that servers may be required to use:
[canonical]#CodeSystem.content
| [content] : The content value for the code system for the canonical URL. Applications generating expansions SHALL use this parameter if the CodeSystem.content value is "fragment" or " |
[canonical1]#supplement
| [canonical2] : Indicates that the specified supplement (canonical2) contributed to the content of the expansion for the code system canonical1 (by influencing selection, or providing designations). Applications generating expansions SHALL use this parameter to record that a supplement was used during the expansion process |
Beyond this, servers MAY define their own parameters, though Terminology server authors are requested to bring additional parameters to HL7 (via 'Propose a change' link below) in the interests of interoperability.
Servers can also create and store Provenance statements about the expansion, or AuditEvent records of the expansion process if further transparency is required. These resources can contain considerable detail about the various inputs to the process, and any significant decisions by the expansion engine. Further details around this (and profiles on the relevant resources) may be provided in future versions of this specification or related implementation guides.
Request for Feedback: The existing set of parameters are intended to cover the vast majority of use cases, but there are some cases where the parameters do not provide enough control to a client, particularly with regard to combinations of parameters, and the interplay between code system versions and other parameters. Implementers may need to define their own value sets to meet these requirements.
Ongoing feedback is welcome at [link to be provided]
Whether
to
store
expanded
value
sets,
or
simply
to
store
their
definitions
and
expand
on
the
fly
is
a
matter
for
system
deployment.
Some
servers,
including
public
value
sets
servers,
only
store
expansions.
However
However,
any
system
that
stores
an
expansion
must
be
concerned
with
how
to
determine
whether
the
expansion
is
still
current,
and
this
requires
deep
knowledge
of
how
the
expansion
was
created.
A
system
with
a
dedicated
terminology
server
that
returns
expansions
on
demand
avoids
this
problem,
but
leaves
open
the
question
of
how
to
audit
the
specific
expansion
that
was
used
for
a
particular
case.
One
solution
to
this
is
to
use
a
dedicated
terminology
server,
and
have
the
clients
ask
for
expansions
on
demand
based
on
the
value
set
definitions,
and
for
the
server
to
store
(and
reuse
as
appropriate)
the
returned
expansion
(when
it
reuses
the
expansion,
ValueSet.expansion.identifier
will
be
the
same).
If
expansions
are
shared,
users
need
to
be
aware
of
how
expansion
identifiers
(which
may
be
server
specific)
work.
The
search
parameters
defined
on
ValueSet
include
the
code
parameter.
This
is
intended
to
allow
a
consumer
to
find
all
the
value
sets
that
include
a
particular
code.
However,
fully
evaluating
this
search
parameter
is
extremely
onerous
for
a
server.
Further,
whether
a
code
is
in
a
value
set
depends
on
the
context
in
which
expansions
are
performed
(see
ExpansionProfile
the
$expand
).
operation).
For
this
reason,
the
degree
to
which
the
search
parameter
is
supported
can
be
declared
in
the
Terminology
Capability
statement.
Use cases for the different combinations:
.compose
only:
Provides
the
value
set
definition
(CLD).
This
is
the
expected
format
from
the
value
set
publisher.
.expansion
only:
Provides
the
value
set
expansion,
which
might
or
might
not
be
persisted
(see
4.8.7
Value
Set
Expansion
above).
The
"expansion
only"
format
may
be
returned
in
the
$expand
operation
output
(at
the
terminology
server's
discretion).
.compose
and
.expansion
:
The
terminology
server
often
may
include
the
definition
as
well
as
the
expansion
in
the
$expand
operation
output.
The
resource
instance
including
the
expansion
might
or
might
not
be
persisted.
.compose
nor
.expansion
:
This
is
a
valid
format
for
ValueSet
resource
instances.
A
primary
use
case
is
the
return
from
a
summary
search
(i.e.
_summary=true).
This
may
be
especially
useful
to
reduce
the
performance
overhead
when
returning
a
summary
of
extensionally
defined
value
sets
(which
may
include
a
large
number
of
concepts
in
the
value
set
definition).
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Expression | In Common |
code | token | This special parameter searches for codes in the value set. See additional notes on the ValueSet resource | ValueSet.expansion.contains.code | ValueSet.compose.include.concept.code | |
context TU | token | A use context assigned to the value set | (ValueSet.useContext.value as CodeableConcept) | |
context-quantity TU | quantity | A quantity- or range-valued use context assigned to the value set | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range) | |
context-type TU | token | A type of use context assigned to the value set | ValueSet.useContext.code | |
context-type-quantity TU | composite | A use context type and quantity- or range-based value assigned to the value set |
On
ValueSet.useContext:
context-type: code context-quantity: value.as(Quantity) | value.as(Range) | |
context-type-value TU | composite | A use context type and value assigned to the value set |
On
ValueSet.useContext:
context-type: code context: value.as(CodeableConcept) | |
date | date | The value set publication date | ValueSet.date | |
description | string | The description of the value set | ValueSet.description | |
expansion | uri |
| ValueSet.expansion.identifier | |
identifier TU | token | External identifier for the value set | ValueSet.identifier | |
jurisdiction TU | token | Intended jurisdiction for the value set | ValueSet.jurisdiction | |
name | string | Computationally friendly name of the value set | ValueSet.name | |
publisher | string | Name of the publisher of the value set | ValueSet.publisher | |
reference | uri | A code system included or excluded in the value set or an imported value set | ValueSet.compose.include.system | |
status | token | The current status of the value set | ValueSet.status | |
title | string | The human-friendly name of the value set | ValueSet.title | |
url | uri | The uri that identifies the value set | ValueSet.url | |
version | token | The business version of the value set | ValueSet.version |