This
page
is
part
of
the
FHIR
Specification
(v1.8.0:
STU
3
Draft).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Vocabulary
Work
Group
|
Maturity Level : 3 | Compartments : Not linked to any defined compartments |
A value set specifies a set of codes drawn from one or more code systems.
The
FHIR
terminology
specification
is
based
two
key
concepts,
originally
defined
in
HL7
v3
Core
Principles
:
CodeSystem
-
defines
a
set
of
codes
with
meanings
(also
known
as
enumeration,
terminology,
classification,
and/or
ontology)
-
e.g.
define
which
codes
(symbols
and/or
expressions)
exist,
and
how
they
are
understood
ValueSet
-
selects
a
set
of
codes
from
those
defined
by
one
or
more
code
systems
to
specify
which
codes
can
be
used
in
a
particular
context
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")
The
ValueSet
resource
can
carry
either
the
.compose
or
the
.expansion
,
or
both.
There
is
a
"$expand"
operation
which
can
be
used
to
ask
a
server
to
generate
an
expansion
given
the
composition
rules.
specification,
along
with
metadata
in
the
HL7
Value
Set
Definition
specification.
Value
set
resources
can
be
converted
to
CTS2
value
set
and
code
system
resources.
(VSD)
project.
Not
all
of
the
elements
defined
by
the
VSD
are
part
of
the
base
resource
-
some
are
defined
as
part
of
the
ValueSet
Extensions
.
In
the
ValueSet
resource,
the
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
that
never
changes
for
this
value
set
-
it
is
the
same
in
every
copy.
Ideally,
the
URL
should
also
be
the
location
of
the
master
version
of
the
value
set,
though
this
is
not
always
possible
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
specification)
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
url
,
and
its
local
location
from
which
it
may
be
retrieved.
Because
it
is
common
practice
to
copy
(cache)
value
sets
locally,
most
references
to
value
sets
use
the
canonical
URL.
For example, the value sets published as part of FHIR all have a canonical URL which is also a location by which 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 published FHIR specification at their canonical 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
URL
is
always
the
focus.
This resource is referenced by ConceptMap , OperationDefinition and Questionnaire
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I | DomainResource |
A
set
of
codes
drawn
from
one
or
more
code
systems
Value set SHALL contain at least one of a a compose, or an expansion element |
|
|
Σ | 0..1 | uri | Logical uri to reference this value set (globally unique) |
|
Σ | 0..* | Identifier | Additional identifier for the value set |
|
Σ | 0..1 | string | Business version of the value set |
|
Σ | 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
PublicationStatus ( Required ) |
|
?! Σ | 0..1 | boolean | If for testing purposes, not real usage |
|
Σ | 0..1 | string | Name of the publisher (Organization or individual) |
|
Σ | 0..* | ContactDetail | Contact details for the publisher |
|
Σ | 0..1 | dateTime | Date this was last changed |
|
0..1 | markdown | Natural language description of the value set | |
|
Σ | 0..* | UsageContext | Content intends to support these contexts |
|
Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
value
set
(if
applicable)
Jurisdiction ValueSet ( Extensible ) |
|
Σ | 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 | boolean | Whether this is intended to be used with an extensible binding |
|
I | 0..1 | BackboneElement | Definition of the content of the value set (CLD) |
|
Σ | 0..1 | date | Fixed date for version-less references (transitive) |
|
Σ | 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)
A value set with concepts or filters SHALL include a system Cannot have both concept and filter A value set include/exclude SHALL have a value set or a system |
|
Σ 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 | |
|
0..* | BackboneElement | Additional representations for this concept | |
|
0..1 | code |
Human
language
of
the
designation
Common Languages ( Extensible but limited to All Languages ) |
|
|
0..1 | Coding |
Details
how
this
designation
would
be
used
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 property defined by the code system | |
|
?! | 1..1 | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
|
1..1 | code | Code from the system, or regex criteria | |
|
Σ I | 0..* | uri | Select only contents included in this value set |
|
I | 0..* | see include | Explicitly exclude codes from a code system or other value sets |
|
I | 0..1 | BackboneElement | Used when the value set is "expanded" |
|
1..1 | uri | Uniquely identifies this expansion | |
|
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 server | |
|
0..1 | Value of the named parameter | ||
|
string | |||
|
boolean | |||
|
integer | |||
|
decimal | |||
|
uri | |||
|
code | |||
|
I | 0..* | BackboneElement |
Codes
in
the
value
set
SHALL have a code or a display Must have a code if not abstract 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..* | see contains | Codes contained under this entry | |
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<ValueSet xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 0..1 Logical uri to reference this value set (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the value set --></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 --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <description value="[markdown]"/><!-- 0..1 Natural language description of the value set --> <useContext><!-- 0..* UsageContext Content intends to support these contexts --></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 --> <extensible value="[boolean]"/><!-- 0..1 Whether this is intended to be used with an extensible binding --> <compose> <!--
0..1 Definition of the content of the value set (CLD) --> <lockedDate value="[date]"/><!-- 0..1 Fixed date for version-less references (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 --> <designation> <!-- 0..* Additional representations for this concept --> <language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- 0..1 Coding Details how this designation would be used --></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 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="[code]"/><!-- 1..1 Code from the system, or regex criteria --> </filter> <valueSet value="[uri]"/><!--
0..* Select only contents included in this value set --> </include> <exclude><!--
0..* Content as for ValueSet.compose.include Explicitly exclude codes from a code system or other value sets --></exclude> </compose> <expansion> <!--
0..1 Used when the value set is "expanded" --> <identifier value="[uri]"/><!-- 1..1 Uniquely identifies this expansion --> <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 --> <name value="[string]"/><!-- 1..1 Name as assigned by the server --> <value[x]><!-- 0..1 string|boolean|integer|decimal|uri|code Value of the named parameter --></value[x]> </parameter> <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> <contains><!-- 0..* Content as for ValueSet.expansion.contains Codes contained under this entry --></contains> </contains> </expansion> </ValueSet>
JSON Template
{
"resourceType" : "ValueSet",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"url" : "<uri>", // Logical uri to reference this value set (globally unique)
"identifier" : [{ Identifier }], // Additional identifier for the value set
"version" : "<string>", // Business version of the value set
"name" : "<string>", // Name for this value set (Computer friendly)
"title" : "<string>", // Name for this value set (Human friendly)
"status" : "<code>", // R! draft | active | retired
"experimental" : <boolean>, // If for testing purposes, not real usage
"publisher" : "<string>", // Name of the publisher (Organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"date" : "<dateTime>", // Date this was last changed
"description" : "<markdown>", // Natural language description of the value set
"useContext" : [{ UsageContext }], // Content intends to support these contexts
"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
"extensible" : <boolean>, // Whether this is intended to be used with an extensible binding
"compose" : { // C? Definition of the content of the value set (CLD)
"lockedDate" : "<date>", // Fixed date for version-less references (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
"designation" : [{ // Additional representations for this concept
"language" : "<code>", // Human language of the designation
"use" : { Coding }, // Details how this designation would be used
"value" : "<string>" // R! The text value for this designation
}]
}],
"filter" : [{ // C? Select codes/concepts by their properties (including relationships)
"property" : "<code>", // R! A property defined by the code system
"op" : "<code>", // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists
"value" : "<code>" // R! Code from the system, or regex criteria
}],
"valueSet" : ["<uri>"] // C? Select only 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
},
"expansion" : { // C? Used when the value set is "expanded"
"identifier" : "<uri>", // R! Uniquely identifies this expansion
"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 server
// value[x]: Value of the named parameter. One of these 6:
"valueString" : "<string>"
"valueBoolean" : <boolean>
"valueInteger" : <integer>
"valueDecimal" : <decimal>
"valueUri" : "<uri>"
"valueCode" : "<code>"
}],
"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
"contains" : [{ Content as for ValueSet.expansion.contains }] // Codes contained under this entry
}]
}
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:ValueSet; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:ValueSet.url [ uri ]; # 0..1 Logical uri to reference this value set (globally unique) fhir:ValueSet.identifier [ Identifier ], ... ; # 0..* Additional identifier for the value set 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:ValueSet.status [ code ]; # 1..1 draft | active | retired fhir:ValueSet.experimental [ boolean ]; # 0..1 If for testing purposes, not real usage fhir:ValueSet.publisher [ string ]; # 0..1 Name of the publisher (Organization or individual) fhir:ValueSet.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ValueSet.date [ dateTime ]; # 0..1 Date this was last changed fhir:ValueSet.description [ markdown ]; # 0..1 Natural language description of the value set fhir:ValueSet.useContext [ UsageContext ], ... ; # 0..* Content intends to support these contexts 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 restrictions fhir:ValueSet.extensible [ boolean ]; # 0..1 Whether this is intended to be used with an extensible binding fhir:ValueSet.compose [ # 0..1 Definition of the content of the value set (CLD) fhir:ValueSet.compose.lockedDate [ date ]; # 0..1 Fixed date for version-less references (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 from 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 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 designation fhir:ValueSet.compose.include.concept.designation.use [ Coding ]; # 0..1 Details how this designation would be used fhir:ValueSet.compose.include.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; ], ...; 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 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 | exists fhir:ValueSet.compose.include.filter.value [ code ]; # 1..1 Code from the system, or regex criteria ], ...; fhir:ValueSet.compose.include.valueSet [ uri ], ... ; # 0..* Select only 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.expansion [ # 0..1 Used when the value set is "expanded" fhir:ValueSet.expansion.identifier [ uri ]; # 1..1 Uniquely identifies this expansion fhir:ValueSet.expansion.timestamp [ dateTime ]; # 1..1 Time ValueSet expansion happened fhir:ValueSet.expansion.total [ integer ]; # 0..1 Total number of codes in the expansion fhir:ValueSet.expansion.offset [ integer ]; # 0..1 Offset at which this resource starts fhir:ValueSet.expansion.parameter [ # 0..* Parameter that controlled the expansion process fhir:ValueSet.expansion.parameter.name [ string ]; # 1..1 Name as assigned by the server # ValueSet.expansion.parameter.value[x] : 0..1 Value of the named parameter. One of these 6 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.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 system 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.contains [ See ValueSet.expansion.contains ], ... ; # 0..* Codes contained under this entry ], ...; ]; ]
Changes since DSTU2
| ValueSet | |
| ValueSet.identifier | Max Cardinality changed from 1 to * |
| ValueSet.title | added Element |
| ValueSet.status | Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status |
| ValueSet.experimental | Now marked as Modifier |
| ValueSet.contact | Type changed from BackboneElement to ContactDetail |
| ValueSet.description | Type changed from string to markdown |
| ValueSet.useContext |
Type
changed
from
CodeableConcept
to
UsageContext
Remove Binding http://hl7.org/fhir/ValueSet/use-context (extensible) |
| ValueSet.jurisdiction | added Element |
| ValueSet.purpose | added Element |
| ValueSet.copyright | Type changed from string to markdown |
| ValueSet.compose.lockedDate | added Element |
| ValueSet.compose.inactive | added Element |
| ValueSet.compose.include | Min Cardinality changed from 0 to 1 |
| ValueSet.compose.include.system | Min Cardinality changed from 1 to 0 |
| ValueSet.compose.include.concept.designation.language | added Element |
| ValueSet.compose.include.concept.designation.use | added Element |
| ValueSet.compose.include.concept.designation.value | added Element |
| ValueSet.compose.include.filter.op | Now marked as Modifier |
| ValueSet.compose.include.valueSet | added Element |
| ValueSet.expansion.contains.abstract | Default Value "false" added |
| ValueSet.expansion.contains.inactive | added Element |
| ValueSet.expansion.contains.designation | added Element |
| ValueSet.contact.name | deleted |
| ValueSet.contact.telecom | deleted |
| ValueSet.lockedDate | deleted |
| ValueSet.requirements | deleted |
| ValueSet.codeSystem | deleted |
| ValueSet.compose.import | deleted |
See the Full Difference for further information
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I | DomainResource |
A
set
of
codes
drawn
from
one
or
more
code
systems
Value set SHALL contain at least one of a a compose, or an expansion element |
|
|
Σ | 0..1 | uri | Logical uri to reference this value set (globally unique) |
|
Σ | 0..* | Identifier | Additional identifier for the value set |
|
Σ | 0..1 | string | Business version of the value set |
|
Σ | 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
PublicationStatus ( Required ) |
|
?! Σ | 0..1 | boolean | If for testing purposes, not real usage |
|
Σ | 0..1 | string | Name of the publisher (Organization or individual) |
|
Σ | 0..* | ContactDetail | Contact details for the publisher |
|
Σ | 0..1 | dateTime | Date this was last changed |
|
0..1 | markdown | Natural language description of the value set | |
|
Σ | 0..* | UsageContext | Content intends to support these contexts |
|
Σ | 0..* | CodeableConcept |
Intended
jurisdiction
for
value
set
(if
applicable)
Jurisdiction ValueSet ( Extensible ) |
|
Σ | 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 | boolean | Whether this is intended to be used with an extensible binding |
|
I | 0..1 | BackboneElement | Definition of the content of the value set (CLD) |
|
Σ | 0..1 | date | Fixed date for version-less references (transitive) |
|
Σ | 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)
A value set with concepts or filters SHALL include a system Cannot have both concept and filter A value set include/exclude SHALL have a value set or a system |
|
Σ 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 | |
|
0..* | BackboneElement | Additional representations for this concept | |
|
0..1 | code |
Human
language
of
the
designation
Common Languages ( Extensible but limited to All Languages ) |
|
|
0..1 | Coding |
Details
how
this
designation
would
be
used
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 property defined by the code system | |
|
?! | 1..1 | code |
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
|
exists
FilterOperator ( Required ) |
|
1..1 | code | Code from the system, or regex criteria | |
|
Σ I | 0..* | uri | Select only contents included in this value set |
|
I | 0..* | see include | Explicitly exclude codes from a code system or other value sets |
|
I | 0..1 | BackboneElement | Used when the value set is "expanded" |
|
1..1 | uri | Uniquely identifies this expansion | |
|
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 server | |
|
0..1 | Value of the named parameter | ||
|
string | |||
|
boolean | |||
|
integer | |||
|
decimal | |||
|
uri | |||
|
code | |||
|
I | 0..* | BackboneElement |
Codes
in
the
value
set
SHALL have a code or a display Must have a code if not abstract 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..* | see contains | Codes contained under this entry | |
Documentation
for
this
format
|
||||
XML Template
<ValueSet xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <url value="[uri]"/><!-- 0..1 Logical uri to reference this value set (globally unique) --> <identifier><!-- 0..* Identifier Additional identifier for the value set --></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 --> <experimental value="[boolean]"/><!-- 0..1 If for testing purposes, not real usage --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (Organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <date value="[dateTime]"/><!-- 0..1 Date this was last changed --> <description value="[markdown]"/><!-- 0..1 Natural language description of the value set --> <useContext><!-- 0..* UsageContext Content intends to support these contexts --></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 --> <extensible value="[boolean]"/><!-- 0..1 Whether this is intended to be used with an extensible binding --> <compose> <!--
0..1 Definition of the content of the value set (CLD) --> <lockedDate value="[date]"/><!-- 0..1 Fixed date for version-less references (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 --> <designation> <!-- 0..* Additional representations for this concept --> <language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- 0..1 Coding Details how this designation would be used --></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 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="[code]"/><!-- 1..1 Code from the system, or regex criteria --> </filter> <valueSet value="[uri]"/><!--
0..* Select only contents included in this value set --> </include> <exclude><!--
0..* Content as for ValueSet.compose.include Explicitly exclude codes from a code system or other value sets --></exclude> </compose> <expansion> <!--
0..1 Used when the value set is "expanded" --> <identifier value="[uri]"/><!-- 1..1 Uniquely identifies this expansion --> <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 --> <name value="[string]"/><!-- 1..1 Name as assigned by the server --> <value[x]><!-- 0..1 string|boolean|integer|decimal|uri|code Value of the named parameter --></value[x]> </parameter> <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> <contains><!-- 0..* Content as for ValueSet.expansion.contains Codes contained under this entry --></contains> </contains> </expansion> </ValueSet>
JSON Template
{
"resourceType" : "ValueSet",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"url" : "<uri>", // Logical uri to reference this value set (globally unique)
"identifier" : [{ Identifier }], // Additional identifier for the value set
"version" : "<string>", // Business version of the value set
"name" : "<string>", // Name for this value set (Computer friendly)
"title" : "<string>", // Name for this value set (Human friendly)
"status" : "<code>", // R! draft | active | retired
"experimental" : <boolean>, // If for testing purposes, not real usage
"publisher" : "<string>", // Name of the publisher (Organization or individual)
"contact" : [{ ContactDetail }], // Contact details for the publisher
"date" : "<dateTime>", // Date this was last changed
"description" : "<markdown>", // Natural language description of the value set
"useContext" : [{ UsageContext }], // Content intends to support these contexts
"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
"extensible" : <boolean>, // Whether this is intended to be used with an extensible binding
"compose" : { // C? Definition of the content of the value set (CLD)
"lockedDate" : "<date>", // Fixed date for version-less references (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
"designation" : [{ // Additional representations for this concept
"language" : "<code>", // Human language of the designation
"use" : { Coding }, // Details how this designation would be used
"value" : "<string>" // R! The text value for this designation
}]
}],
"filter" : [{ // C? Select codes/concepts by their properties (including relationships)
"property" : "<code>", // R! A property defined by the code system
"op" : "<code>", // R! = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists
"value" : "<code>" // R! Code from the system, or regex criteria
}],
"valueSet" : ["<uri>"] // C? Select only 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
},
"expansion" : { // C? Used when the value set is "expanded"
"identifier" : "<uri>", // R! Uniquely identifies this expansion
"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 server
// value[x]: Value of the named parameter. One of these 6:
"valueString" : "<string>"
"valueBoolean" : <boolean>
"valueInteger" : <integer>
"valueDecimal" : <decimal>
"valueUri" : "<uri>"
"valueCode" : "<code>"
}],
"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
"contains" : [{ Content as for ValueSet.expansion.contains }] // Codes contained under this entry
}]
}
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:ValueSet; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:ValueSet.url [ uri ]; # 0..1 Logical uri to reference this value set (globally unique) fhir:ValueSet.identifier [ Identifier ], ... ; # 0..* Additional identifier for the value set 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:ValueSet.status [ code ]; # 1..1 draft | active | retired fhir:ValueSet.experimental [ boolean ]; # 0..1 If for testing purposes, not real usage fhir:ValueSet.publisher [ string ]; # 0..1 Name of the publisher (Organization or individual) fhir:ValueSet.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:ValueSet.date [ dateTime ]; # 0..1 Date this was last changed fhir:ValueSet.description [ markdown ]; # 0..1 Natural language description of the value set fhir:ValueSet.useContext [ UsageContext ], ... ; # 0..* Content intends to support these contexts 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 restrictions fhir:ValueSet.extensible [ boolean ]; # 0..1 Whether this is intended to be used with an extensible binding fhir:ValueSet.compose [ # 0..1 Definition of the content of the value set (CLD) fhir:ValueSet.compose.lockedDate [ date ]; # 0..1 Fixed date for version-less references (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 from 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 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 designation fhir:ValueSet.compose.include.concept.designation.use [ Coding ]; # 0..1 Details how this designation would be used fhir:ValueSet.compose.include.concept.designation.value [ string ]; # 1..1 The text value for this designation ], ...; ], ...; 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 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 | exists fhir:ValueSet.compose.include.filter.value [ code ]; # 1..1 Code from the system, or regex criteria ], ...; fhir:ValueSet.compose.include.valueSet [ uri ], ... ; # 0..* Select only 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.expansion [ # 0..1 Used when the value set is "expanded" fhir:ValueSet.expansion.identifier [ uri ]; # 1..1 Uniquely identifies this expansion fhir:ValueSet.expansion.timestamp [ dateTime ]; # 1..1 Time ValueSet expansion happened fhir:ValueSet.expansion.total [ integer ]; # 0..1 Total number of codes in the expansion fhir:ValueSet.expansion.offset [ integer ]; # 0..1 Offset at which this resource starts fhir:ValueSet.expansion.parameter [ # 0..* Parameter that controlled the expansion process fhir:ValueSet.expansion.parameter.name [ string ]; # 1..1 Name as assigned by the server # ValueSet.expansion.parameter.value[x] : 0..1 Value of the named parameter. One of these 6 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.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 system 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.contains [ See ValueSet.expansion.contains ], ... ; # 0..* Codes contained under this entry ], ...; ]; ]
Changes since DSTU2
| ValueSet | |
| ValueSet.identifier | Max Cardinality changed from 1 to * |
| ValueSet.title | added Element |
| ValueSet.status | Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status |
| ValueSet.experimental | Now marked as Modifier |
| ValueSet.contact | Type changed from BackboneElement to ContactDetail |
| ValueSet.description | Type changed from string to markdown |
| ValueSet.useContext |
Type
changed
from
CodeableConcept
to
UsageContext
Remove Binding http://hl7.org/fhir/ValueSet/use-context (extensible) |
| ValueSet.jurisdiction | added Element |
| ValueSet.purpose | added Element |
| ValueSet.copyright | Type changed from string to markdown |
| ValueSet.compose.lockedDate | added Element |
| ValueSet.compose.inactive | added Element |
| ValueSet.compose.include | Min Cardinality changed from 0 to 1 |
| ValueSet.compose.include.system | Min Cardinality changed from 1 to 0 |
| ValueSet.compose.include.concept.designation.language | added Element |
| ValueSet.compose.include.concept.designation.use | added Element |
| ValueSet.compose.include.concept.designation.value | added Element |
| ValueSet.compose.include.filter.op | Now marked as Modifier |
| ValueSet.compose.include.valueSet | added Element |
| ValueSet.expansion.contains.abstract | Default Value "false" added |
| ValueSet.expansion.contains.inactive | added Element |
| ValueSet.expansion.contains.designation | added Element |
| ValueSet.contact.name | deleted |
| ValueSet.contact.telecom | deleted |
| ValueSet.lockedDate | deleted |
| ValueSet.requirements | deleted |
| ValueSet.codeSystem | deleted |
| ValueSet.compose.import | deleted |
See the Full Difference for further information
Alternate definitions: Master Definition ( XML , JSON ), XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ), JSON-LD (for RDF as JSON-LD ),
| Path | Definition | Type | Reference |
|---|---|---|---|
| ValueSet.status | The lifecycle status of a Value Set or Concept Map. | Required | PublicationStatus |
| ValueSet.jurisdiction | Countries and regions within which this artifact is targeted for use | Extensible | Jurisdiction ValueSet |
| ValueSet.compose.include.concept.designation.language | A human language. | Extensible , but limited to All Languages | Common Languages |
| ValueSet.compose.include.concept.designation.use | Details of how a designation would be used. | Extensible | Designation Use |
| ValueSet.compose.include.filter.op | The kind of operation to perform as a part of a property based filter. | Required | FilterOperator |
on
ValueSet.compose.include:
valueSet.exists()
or
system.exists()
)
on
ValueSet.expansion.contains:
code.empty()
or
system.exists()
)
on
ValueSet.compose.include:
(concept.exists()
or
filter.exists())
implies
system.exists()
)
on
ValueSet.compose.include:
concept.empty()
or
filter.empty()
)
:
compose.exists()
or
expansion.exists()
)
on
ValueSet.expansion.contains:
code.exists()
or
display.exists()
)
on
ValueSet.expansion.contains:
code.exists()
or
abstract
=
true
)
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. 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
listed.
Rules
for
interpretation:
System
only
:
Codes
are
'selected'
for
inclusion
if
they
are
selected
by
the
code
system
selection
(see
next
point)
valueSet
only
:
Codes
are
'selected'
for
inclusion
if
they
are
in
all
the
referenced
value
sets
System
and
valueSet
:
Codes
are
'selected'
for
inclusion
if
they
are
selected
by
the
code
system
selection
and
if
they
are
in
all
the
referenced
value
sets
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
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. The display in a Coding 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). The alternative display specified in the value set would go in CodeableConcept .text, perhaps appended to the UI label for the matching data element.
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.
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
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
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
codes
in
the
expansion.
When a request for an expansion is received (e.g., for the $expand operation), the following process should be followed:
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 specification does not fix the meaning of use of either the order or the heirarchy, and 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.
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.
Note
that
the
value
set
codeSystem
and
compose
offer
no
support
for
defining
these,
but
this
does
not
exclude
servers
from
using
extensions
or
other
knowledge
to
introduce
such
groups
as
an
implementation
feature.
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.
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 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).
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 | Paths | In Common |
| date | date | The value set publication date | ValueSet.date | |
| description | string | Text search against the description of the value set | ValueSet.description | |
| expansion | uri | Uniquely identifies this expansion | ValueSet.expansion.identifier | |
| identifier | token | External identifiers for the value set | ValueSet.identifier | |
| jurisdiction | token | Intended jurisdiction for value set | ValueSet.jurisdiction | |
| name | string | 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 | Text search against the title of the value set | ValueSet.title | |
| url | uri | The uri that identifies the value set | ValueSet.url | |
| version | token | The version identifier of the value set | ValueSet.version |