This
page
is
part
of
the
FHIR
Specification
(v3.3.0:
R4
Ballot
2).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
Continuous
Integration
Build
of
available
versions,
see
FHIR
(will
be
incorrect/inconsistent
at
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Responsible
Owner:
Work
Group
|
| Security Category : Anonymous |
Compartments
:
|
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,
the
concepts
of
code
system
and
value
set
originally
defined
in
HL7
v3
Core
Principles
:
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:
specification,
along
with
metadata
in
the
HL7
Value
Set
Definition
specification.
Value
set
resources
can
be
converted
to
CTS2
value
set
(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
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
specification)
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
intensionally
defined
value
set
may
be
algorithmically
defined
e.g.
all
codes
with
the
word
diabetes
in
the
description.
A
key
benefit
of
intensionally
defined
value
sets
is
that
their
expansion
can
be
dynamically
updated
without
changing
the
value
set
definition.
This
resource
helps
healthcare
organizations
keep
current
for
example,
when
new
drugs
(and
their
associated
codes)
become
available
or
codes
for
diseases
and
other
clinical
concepts
are
added.
Extensional
value
sets,
meanwhile,
are
enumerated
lists
of
codes
where
each
code
is
referenced
by
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.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
|
DomainResource |
A
set
of
codes
drawn
from
one
or
more
code
systems
+ Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: MetadataResource |
|||||
|
Σ C | 0..1 | uri |
Canonical
identifier
for
this
value
set,
represented
as
a
URI
(globally
unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
value
set
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
value
set
|
||||
|
Σ | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) | |||||
![]() ![]() ![]() | string | |||||||
| Coding | |||||||
![]() ![]() | Σ C | 0..1 | string |
Name
for
this
value
set
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
value
set
(human
friendly)
|
||||
|
?!
Σ
|
1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
|
0..1 | boolean |
For
testing
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
T | 0..1 | markdown |
Natural
language
description
of
the
value
set
|
||||
|
Σ
|
0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ | 0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
value
set
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
||||
|
Σ | 0..1 | boolean |
Indicates
whether
or
not
any
change
to
the
content
logical
definition
may
occur
|
||||
|
T | 0..1 | markdown |
Why
this
value
set
is
defined
|
||||
|
T | 0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
||||
|
T
|
0..1 | string |
Copyright
holder
and
year(s)
|
||||
| 0..1 |
date
|
When
the
ValueSet
was
approved
by
publisher
| |||||
![]() ![]() |
|
0..1 | date |
When
the
ValueSet
was
last
reviewed
by
the
publisher
| ||||
![]() ![]() | Σ | 0..1 | Period |
When
the
ValueSet
is
|
||||
|
0..* |
|
E.g.
Education,
Treatment,
Assessment,
etc
Binding: Definition Topic ( Example ) |
|||||
|
|
0..* | ContactDetail |
Who
authored
the
| ||||
![]() ![]() | 0..* | ContactDetail |
Who
edited
the
ValueSet
| |||||
![]() ![]() | 0..* | ContactDetail |
Who
reviewed
the
ValueSet
| |||||
![]() ![]() | 0..* | ContactDetail |
Who
endorsed
the
ValueSet
| |||||
![]() ![]() | C | 0..* | RelatedArtifact |
Additional
documentation,
citations,
etc
+ Rule: Related artifact can't be depends-on or composed-of | ||||
![]() ![]() | 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
|
||||
|
Σ
|
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 |
||||
|
Σ
|
0..1 | uri |
The
system
the
codes
come
from
|
||||
|
Σ | 0..1 | string |
Specific
version
of
the
code
system
referred
to
|
||||
|
|
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
|
|||||
|
C | 0..* | BackboneElement |
Additional
representations
for
this
concept
+ Rule: Must have a value for concept.designation.use if concept.designation.additionalUse is present |
||||
|
0..1 | code |
Human
language
of
the
designation
Binding: All Languages ( Required )
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | C | 0..1 | Coding |
Types
of
uses
of
designations
Binding: Designation Use ( Extensible |
||||
|
C | 0..* | Coding |
Additional
ways
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
1..1 | string |
The
text
value
for
this
designation
|
|||||
|
Σ
|
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
|
child-of
|
descendent-leaf
|
exists
|
||||
|
Σ | 1..1 | string |
Code
from
the
system,
or
regex
criteria,
or
boolean
value
for
exists
|
||||
|
Σ
|
0..* | canonical ( ValueSet ) |
Select
the
contents
included
in
this
value
set
|
||||
|
0..1 |
|
A
copyright
statement
for
the
specific
code
system
included
in
the
value
set
|
|||||
| 0..* | see include |
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
|
|||||
|
0..* |
|
Property
to
return
if
client
doesn't
override
|
|||||
|
0..1 | BackboneElement |
Used
when
the
value
set
is
"expanded"
|
|||||
|
0..1 | uri |
Identifies
the
value
set
expansion
(business
identifier)
|
|||||
|
0..1 | uri |
Opaque
urls
for
paging
through
expansion
results
|
|||||
|
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 |
|
Formal
identifier
for
the
property
|
|||||
|
C | 0..* | BackboneElement |
Codes
in
the
value
set
+ Rule: SHALL have a code or a display + + |
||||
|
C | 0..1 | uri |
System
value
for
the
code
|
||||
|
C | 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
|
|||||
|
|
0..1 | code |
Code
-
if
blank,
this
is
not
a
selectable
code
|
||||
|
|
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..* |
|
SubProperty
value
for
the
concept
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code |
Reference
to
ValueSet.expansion.property.code
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 |
Value
of
the
subproperty
for
this
concept
| ||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | code | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Coding | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||||||
![]() ![]() ![]() ![]() |
0..* | see contains |
Codes
contained
under
this
entry
|
|||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
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 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 --><<versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 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 only - never for real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>< <</useContext> <</jurisdiction><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 Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <approvalDate value="[date]"/><!-- 0..1 When the ValueSet was approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 When the ValueSet was last reviewed by the publisher --> <effectivePeriod><!-- 0..1 Period When the ValueSet is expected to be used --></effectivePeriod> <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc --></topic> <author><!-- 0..* ContactDetail Who authored the ValueSet --></author> <editor><!-- 0..* ContactDetail Who edited the ValueSet --></editor> <reviewer><!-- 0..* ContactDetail Who reviewed the ValueSet --></reviewer> <endorser><!-- 0..* ContactDetail Who endorsed the ValueSet --></endorser> <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations, etc --></relatedArtifact> <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]"/><!-- I 0..1 The system the codes come from --> <version value="[string]"/><!-- 0..1 Specific version of the code system referred to --> <concept> <!-- I 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 -->< <</use><language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- I 0..1 Coding Types of uses of designations --></use> <additionalUse><!-- I 0..* Coding Additional ways how this designation would be used --></additionalUse> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> </concept>< < < <<filter> <!-- I 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 | child-of | descendent-leaf | exists --> <value value="[string]"/><!-- 1..1 Code from the system, or regex criteria, or boolean value for exists --> </filter><</valueSet><valueSet><!-- I 0..* canonical(ValueSet) Select the contents included in this value set --></valueSet> <copyright value="[markdown]"/><!-- 0..1 A copyright statement for the specific code system included in the value set --> </include><</exclude><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) --> <next value="[uri]"/><!-- 0..1 Opaque urls for paging through expansion results --> <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]"/><!-- I 0..1 System value for the code --> <abstract value="[boolean]"/><!-- I 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]"/><!-- I 0..1 Code - if blank, this is not a selectable code --> <display value="[string]"/><!-- I 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]> <subProperty> <!-- 0..* SubProperty 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 subproperty for this concept --></value[x]> </subProperty> </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 DomainResource: text, contained, extension, and modifierExtension
"
"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
"
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I 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 only - never for real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher/steward (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 }], // Jurisdiction of the authority that maintains the 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>", // Notice about intellectual property ownership, can include restrictions on use
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"approvalDate" : "<date>", // When the ValueSet was approved by publisher
"lastReviewDate" : "<date>", // When the ValueSet was last reviewed by the publisher
"effectivePeriod" : { Period }, // When the ValueSet is expected to be used
"topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment, etc
"author" : [{ ContactDetail }], // Who authored the ValueSet
"editor" : [{ ContactDetail }], // Who edited the ValueSet
"reviewer" : [{ ContactDetail }], // Who reviewed the ValueSet
"endorser" : [{ ContactDetail }], // Who endorsed the ValueSet
"relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations, etc
"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>", // I The system the codes come from
"version" : "<string>", // Specific version of the code system referred to
"concept" : [{ // I 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 }, // I Types of uses of designations
"additionalUse" : [{ Coding }], // I Additional ways how this designation would be used
"value" : "<string>" // R! The text value for this designation
}]
}],
"
"
"
"
"filter" : [{ // I 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 | child-of | descendent-leaf | exists
"value" : "<string>" // R! Code from the system, or regex criteria, or boolean value for exists
}],
"
"valueSet" : ["<canonical(ValueSet)>"], // I Select the contents included in this value set
"copyright" : "<markdown>" // A copyright statement for the specific code system included in the value set
}],
"
"exclude" : [{ Content as for ValueSet.compose.include }], // 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)
"next" : "<uri>", // Opaque urls for paging through expansion results
"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>", // I System value for the code
"abstract" : <boolean>, // I 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>", // I Code - if blank, this is not a selectable code
"display" : "<string>", // I 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>,
"subProperty" : [{ // SubProperty value for the concept
"code" : "<code>", // R! Reference to ValueSet.expansion.property.code
// value[x]: Value of the subproperty 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 # from fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; ], ...; fhir: fhir: fhir: fhir: ], ...; fhir: ], ...; fhir: ]; fhir: fhir: fhir: fhir: fhir: fhir: fhir: # . One of these 6 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] ], ...; fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; ];# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:url [ uri ] ; # 0..1 Canonical identifier for this value set, represented as a URI (globally unique) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the value set (business identifier) fhir:version [ string ] ; # 0..1 Business version of the value set # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:versionAlgorithm [ a fhir:String ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 0..1 I Name for this value set (computer friendly) fhir:title [ string ] ; # 0..1 Name for this value set (human friendly) fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage fhir:date [ dateTime ] ; # 0..1 Date last changed fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 0..1 Natural language description of the value set fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the value set (if applicable) fhir:immutable [ boolean ] ; # 0..1 Indicates whether or not any change to the content logical definition may occur fhir:purpose [ markdown ] ; # 0..1 Why this value set is defined fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:approvalDate [ date ] ; # 0..1 When the ValueSet was approved by publisher fhir:lastReviewDate [ date ] ; # 0..1 When the ValueSet was last reviewed by the publisher fhir:effectivePeriod [ Period ] ; # 0..1 When the ValueSet is expected to be used fhir:topic ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment, etc fhir:author ( [ ContactDetail ] ... ) ; # 0..* Who authored the ValueSet fhir:editor ( [ ContactDetail ] ... ) ; # 0..* Who edited the ValueSet fhir:reviewer ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the ValueSet fhir:endorser ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the ValueSet fhir:relatedArtifact ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations, etc fhir:compose [ # 0..1 Content logical definition of the value set (CLD) fhir:lockedDate [ date ] ; # 0..1 Fixed date for references with no specified version (transitive) fhir:inactive [ boolean ] ; # 0..1 Whether inactive codes are in the value set fhir:include ( [ # 1..* Include one or more codes from a code system or other value set(s) fhir:system [ uri ] ; # 0..1 I The system the codes come from fhir:version [ string ] ; # 0..1 Specific version of the code system referred to fhir:concept ( [ # 0..* I A concept defined in the system fhir:code [ code ] ; # 1..1 Code or expression from system fhir:display [ string ] ; # 0..1 Text to display for this code for this value set in this valueset fhir:designation ( [ # 0..* Additional representations for this concept fhir:language [ code ] ; # 0..1 Human language of the designation fhir:use [ Coding ] ; # 0..1 I Types of uses of designations fhir:additionalUse ( [ Coding ] ... ) ; # 0..* I Additional ways how this designation would be used fhir:value [ string ] ; # 1..1 The text value for this designation ] ... ) ; ] ... ) ; fhir:filter ( [ # 0..* I Select codes/concepts by their properties (including relationships) fhir:property [ code ] ; # 1..1 A property/filter defined by the code system fhir:op [ code ] ; # 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists fhir:value [ string ] ; # 1..1 Code from the system, or regex criteria, or boolean value for exists ] ... ) ; fhir:valueSet ( [ canonical(ValueSet) ] ... ) ; # 0..* I Select the contents included in this value set fhir:copyright [ markdown ] ; # 0..1 A copyright statement for the specific code system included in the value set ] ... ) ; fhir:exclude ( [ See ValueSet.compose.include ] ... ) ; # 0..* Explicitly exclude codes from a code system or other value sets fhir:property ( [ string ] ... ) ; # 0..* Property to return if client doesn't override ] ; fhir:expansion [ # 0..1 Used when the value set is "expanded" fhir:identifier [ uri ] ; # 0..1 Identifies the value set expansion (business identifier) fhir:next [ uri ] ; # 0..1 Opaque urls for paging through expansion results fhir:timestamp [ dateTime ] ; # 1..1 Time ValueSet expansion happened fhir:total [ integer ] ; # 0..1 Total number of codes in the expansion fhir:offset [ integer ] ; # 0..1 Offset at which this resource starts fhir:parameter ( [ # 0..* Parameter that controlled the expansion process fhir:name [ string ] ; # 1..1 Name as assigned by the client or server # value[x] : 0..1 Value of the named parameter. One of these 7 fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Decimal ; decimal ] fhir:value [ a fhir:Uri ; uri ] fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:DateTime ; dateTime ] ] ... ) ; fhir:property ( [ # 0..* Additional information supplied about each concept fhir:code [ code ] ; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:uri [ uri ] ; # 0..1 Formal identifier for the property ] ... ) ; fhir:contains ( [ # 0..* Codes in the value set fhir:system [ uri ] ; # 0..1 I System value for the code fhir:abstract [ boolean ] ; # 0..1 I If user cannot select this entry fhir:inactive [ boolean ] ; # 0..1 If concept is inactive in the code system fhir:version [ string ] ; # 0..1 Version in which this code/display is defined fhir:code [ code ] ; # 0..1 I Code - if blank, this is not a selectable code fhir:display [ string ] ; # 0..1 I User display for the concept fhir:designation ( [ See ValueSet.compose.include.concept.designation ] ... ) ; # 0..* Additional representations for this item fhir:property ( [ # 0..* Property value for the concept fhir:code [ code ] ; # 1..1 Reference to ValueSet.expansion.property.code # value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Decimal ; decimal ] fhir:subProperty ( [ # 0..* SubProperty value for the concept fhir:code [ code ] ; # 1..1 Reference to ValueSet.expansion.property.code # value[x] : 1..1 Value of the subproperty for this concept. One of these 7 fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Decimal ; decimal ] ] ... ) ; ] ... ) ; fhir:contains ( [ See ValueSet.expansion.contains ] ... ) ; # 0..* Codes contained under this entry ] ... ) ; ] ; ]
Changes
since
R3
from
both
R4
and
R4B
| ValueSet | |
|
|
|
|
|
|
|
|
|
| ValueSet.approvalDate |
|
| ValueSet.lastReviewDate |
|
| ValueSet.effectivePeriod |
|
| ValueSet.topic |
|
| ValueSet.author |
|
| ValueSet.editor |
|
| ValueSet.reviewer |
|
| ValueSet.endorser |
|
| ValueSet.relatedArtifact |
|
|
|
|
|
|
|
|
|
|
| ValueSet.compose.include.copyright |
|
| ValueSet.compose.property |
|
| ValueSet.expansion.next |
|
| ValueSet.expansion.property |
|
| ValueSet.expansion.property.code |
|
| ValueSet.expansion.property.uri |
|
| ValueSet.expansion.contains.property |
|
| ValueSet.expansion.contains.property.code |
|
| ValueSet.expansion.contains.property.value[x] |
|
| ValueSet.expansion.contains.property.subProperty |
|
| ValueSet.expansion.contains.property.subProperty.code |
|
| ValueSet.expansion.contains.property.subProperty.value[x] |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R2
<-->
R3
Conversion
Maps
(status
=
11
tests
that
all
execute
ok.
5
fail
round-trip
testing
and
4
r3
resources
are
invalid
(4
errors).
).
Note:
these
have
note
yet
been
updated
to
be
R3
to
R4
for
R4B
as
XML
or
JSON
.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
||||
|---|---|---|---|---|---|---|---|---|
|
|
DomainResource |
A
set
of
codes
drawn
from
one
or
more
code
systems
+ Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension Interfaces Implemented: MetadataResource |
|||||
|
Σ C | 0..1 | uri |
Canonical
identifier
for
this
value
set,
represented
as
a
URI
(globally
unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic |
||||
|
Σ | 0..* | Identifier |
Additional
identifier
for
the
value
set
(business
identifier)
|
||||
|
Σ | 0..1 | string |
Business
version
of
the
value
set
|
||||
|
Σ | 0..1 |
How
to
compare
versions
Binding: Version Algorithm ( Extensible ) | |||||
![]() ![]() ![]() | string | |||||||
| Coding | |||||||
![]() ![]() | Σ C | 0..1 | string |
Name
for
this
value
set
(computer
friendly)
|
||||
|
Σ T | 0..1 | string |
Name
for
this
value
set
(human
friendly)
|
||||
|
?!
Σ
|
1..1 | code |
draft
|
active
|
retired
|
unknown
Binding: PublicationStatus ( Required ) |
||||
|
|
0..1 | boolean |
For
testing
|
||||
|
Σ | 0..1 | dateTime |
Date
last
changed
|
||||
|
Σ T | 0..1 | string |
Name
of
the
|
||||
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
||||
|
T | 0..1 | markdown |
Natural
language
description
of
the
value
set
|
||||
|
Σ
|
0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
||||
|
Σ | 0..* | CodeableConcept |
Jurisdiction
of
the
authority
that
maintains
the
value
set
(if
applicable)
Binding: Jurisdiction ValueSet
(
Extensible
)
|
||||
|
Σ | 0..1 | boolean |
Indicates
whether
or
not
any
change
to
the
content
logical
definition
may
occur
|
||||
|
T | 0..1 | markdown |
Why
this
value
set
is
defined
|
||||
|
T | 0..1 | markdown |
Notice
about
intellectual
property
ownership,
can
include
restrictions
on
use
|
||||
|
T
|
0..1 | string |
Copyright
holder
and
year(s)
|
||||
| 0..1 |
date
|
When
the
ValueSet
was
approved
by
publisher
| |||||
![]() ![]() |
|
0..1 | date |
When
the
ValueSet
was
last
reviewed
by
the
publisher
| ||||
![]() ![]() | Σ | 0..1 | Period |
When
the
ValueSet
is
|
||||
|
0..* |
|
E.g.
Education,
Treatment,
Assessment,
etc
Binding: Definition Topic ( Example ) |
|||||
|
|
0..* | ContactDetail |
Who
authored
the
| ||||
![]() ![]() | 0..* | ContactDetail |
Who
edited
the
ValueSet
| |||||
![]() ![]() | 0..* | ContactDetail |
Who
reviewed
the
ValueSet
| |||||
![]() ![]() | 0..* | ContactDetail |
Who
endorsed
the
ValueSet
| |||||
![]() ![]() | C | 0..* | RelatedArtifact |
Additional
documentation,
citations,
etc
+ Rule: Related artifact can't be depends-on or composed-of | ||||
![]() ![]() | 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
|
||||
|
Σ
|
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 |
||||
|
Σ
|
0..1 | uri |
The
system
the
codes
come
from
|
||||
|
Σ | 0..1 | string |
Specific
version
of
the
code
system
referred
to
|
||||
|
|
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
|
|||||
|
C | 0..* | BackboneElement |
Additional
representations
for
this
concept
+ Rule: Must have a value for concept.designation.use if concept.designation.additionalUse is present |
||||
|
0..1 | code |
Human
language
of
the
designation
Binding: All Languages ( Required )
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | C | 0..1 | Coding |
Types
of
uses
of
designations
Binding: Designation Use ( Extensible |
||||
|
C | 0..* | Coding |
Additional
ways
how
this
designation
would
be
used
Binding: Designation Use ( Extensible ) |
||||
|
1..1 | string |
The
text
value
for
this
designation
|
|||||
|
Σ
|
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
|
child-of
|
descendent-leaf
|
exists
|
||||
|
Σ | 1..1 | string |
Code
from
the
system,
or
regex
criteria,
or
boolean
value
for
exists
|
||||
|
Σ
|
0..* | canonical ( ValueSet ) |
Select
the
contents
included
in
this
value
set
|
||||
|
0..1 |
|
A
copyright
statement
for
the
specific
code
system
included
in
the
value
set
|
|||||
| 0..* | see include |
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
|
|||||
|
0..* |
|
Property
to
return
if
client
doesn't
override
|
|||||
|
0..1 | BackboneElement |
Used
when
the
value
set
is
"expanded"
|
|||||
|
0..1 | uri |
Identifies
the
value
set
expansion
(business
identifier)
|
|||||
|
0..1 | uri |
Opaque
urls
for
paging
through
expansion
results
|
|||||
| 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 |
|
Formal
identifier
for
the
property
|
|||||
|
C | 0..* | BackboneElement |
Codes
in
the
value
set
+ Rule: SHALL have a code or a display + + |
||||
|
C | 0..1 | uri |
System
value
for
the
code
|
||||
|
C | 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
|
|||||
|
|
0..1 | code |
Code
-
if
blank,
this
is
not
a
selectable
code
|
||||
|
|
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..* |
|
SubProperty
value
for
the
concept
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 | code |
Reference
to
ValueSet.expansion.property.code
| |||||
![]() ![]() ![]() ![]() ![]() ![]() | 1..1 |
Value
of
the
subproperty
for
this
concept
| ||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | code | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Coding | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | string | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | integer | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | boolean | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | dateTime | |||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() | decimal | |||||||
![]() ![]() ![]() ![]() |
0..* | see contains |
Codes
contained
under
this
entry
|
|||||
Documentation
for
this
format
|
||||||||
See the Extensions for this resource
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 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 --><<versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]> <name value="[string]"/><!-- I 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 only - never for real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>< <</useContext> <</jurisdiction><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 Jurisdiction of the authority that maintains the 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 Notice about intellectual property ownership, can include restrictions on use --> <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) --> <approvalDate value="[date]"/><!-- 0..1 When the ValueSet was approved by publisher --> <lastReviewDate value="[date]"/><!-- 0..1 When the ValueSet was last reviewed by the publisher --> <effectivePeriod><!-- 0..1 Period When the ValueSet is expected to be used --></effectivePeriod> <topic><!-- 0..* CodeableConcept E.g. Education, Treatment, Assessment, etc --></topic> <author><!-- 0..* ContactDetail Who authored the ValueSet --></author> <editor><!-- 0..* ContactDetail Who edited the ValueSet --></editor> <reviewer><!-- 0..* ContactDetail Who reviewed the ValueSet --></reviewer> <endorser><!-- 0..* ContactDetail Who endorsed the ValueSet --></endorser> <relatedArtifact><!-- 0..* RelatedArtifact Additional documentation, citations, etc --></relatedArtifact> <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]"/><!-- I 0..1 The system the codes come from --> <version value="[string]"/><!-- 0..1 Specific version of the code system referred to --> <concept> <!-- I 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 -->< <</use><language value="[code]"/><!-- 0..1 Human language of the designation --> <use><!-- I 0..1 Coding Types of uses of designations --></use> <additionalUse><!-- I 0..* Coding Additional ways how this designation would be used --></additionalUse> <value value="[string]"/><!-- 1..1 The text value for this designation --> </designation> </concept>< < < <<filter> <!-- I 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 | child-of | descendent-leaf | exists --> <value value="[string]"/><!-- 1..1 Code from the system, or regex criteria, or boolean value for exists --> </filter><</valueSet><valueSet><!-- I 0..* canonical(ValueSet) Select the contents included in this value set --></valueSet> <copyright value="[markdown]"/><!-- 0..1 A copyright statement for the specific code system included in the value set --> </include><</exclude><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) --> <next value="[uri]"/><!-- 0..1 Opaque urls for paging through expansion results --> <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]"/><!-- I 0..1 System value for the code --> <abstract value="[boolean]"/><!-- I 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]"/><!-- I 0..1 Code - if blank, this is not a selectable code --> <display value="[string]"/><!-- I 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]> <subProperty> <!-- 0..* SubProperty 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 subproperty for this concept --></value[x]> </subProperty> </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 DomainResource: text, contained, extension, and modifierExtension
"
"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
"
// versionAlgorithm[x]: How to compare versions. One of these 2:
"versionAlgorithmString" : "<string>",
"versionAlgorithmCoding" : { Coding },
"name" : "<string>", // I 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 only - never for real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher/steward (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 }], // Jurisdiction of the authority that maintains the 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>", // Notice about intellectual property ownership, can include restrictions on use
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"approvalDate" : "<date>", // When the ValueSet was approved by publisher
"lastReviewDate" : "<date>", // When the ValueSet was last reviewed by the publisher
"effectivePeriod" : { Period }, // When the ValueSet is expected to be used
"topic" : [{ CodeableConcept }], // E.g. Education, Treatment, Assessment, etc
"author" : [{ ContactDetail }], // Who authored the ValueSet
"editor" : [{ ContactDetail }], // Who edited the ValueSet
"reviewer" : [{ ContactDetail }], // Who reviewed the ValueSet
"endorser" : [{ ContactDetail }], // Who endorsed the ValueSet
"relatedArtifact" : [{ RelatedArtifact }], // Additional documentation, citations, etc
"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>", // I The system the codes come from
"version" : "<string>", // Specific version of the code system referred to
"concept" : [{ // I 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 }, // I Types of uses of designations
"additionalUse" : [{ Coding }], // I Additional ways how this designation would be used
"value" : "<string>" // R! The text value for this designation
}]
}],
"
"
"
"
"filter" : [{ // I 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 | child-of | descendent-leaf | exists
"value" : "<string>" // R! Code from the system, or regex criteria, or boolean value for exists
}],
"
"valueSet" : ["<canonical(ValueSet)>"], // I Select the contents included in this value set
"copyright" : "<markdown>" // A copyright statement for the specific code system included in the value set
}],
"
"exclude" : [{ Content as for ValueSet.compose.include }], // 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)
"next" : "<uri>", // Opaque urls for paging through expansion results
"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>", // I System value for the code
"abstract" : <boolean>, // I 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>", // I Code - if blank, this is not a selectable code
"display" : "<string>", // I 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>,
"subProperty" : [{ // SubProperty value for the concept
"code" : "<code>", // R! Reference to ValueSet.expansion.property.code
// value[x]: Value of the subproperty 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 # from fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; ], ...; fhir: fhir: fhir: fhir: ], ...; fhir: ], ...; fhir: ]; fhir: fhir: fhir: fhir: fhir: fhir: fhir: # . One of these 6 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] ], ...; fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; ];# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:url [ uri ] ; # 0..1 Canonical identifier for this value set, represented as a URI (globally unique) fhir:identifier ( [ Identifier ] ... ) ; # 0..* Additional identifier for the value set (business identifier) fhir:version [ string ] ; # 0..1 Business version of the value set # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2 fhir:versionAlgorithm [ a fhir:String ; string ] fhir:versionAlgorithm [ a fhir:Coding ; Coding ] fhir:name [ string ] ; # 0..1 I Name for this value set (computer friendly) fhir:title [ string ] ; # 0..1 Name for this value set (human friendly) fhir:status [ code ] ; # 1..1 draft | active | retired | unknown fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage fhir:date [ dateTime ] ; # 0..1 Date last changed fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual) fhir:contact ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher fhir:description [ markdown ] ; # 0..1 Natural language description of the value set fhir:useContext ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support fhir:jurisdiction ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the value set (if applicable) fhir:immutable [ boolean ] ; # 0..1 Indicates whether or not any change to the content logical definition may occur fhir:purpose [ markdown ] ; # 0..1 Why this value set is defined fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s) fhir:approvalDate [ date ] ; # 0..1 When the ValueSet was approved by publisher fhir:lastReviewDate [ date ] ; # 0..1 When the ValueSet was last reviewed by the publisher fhir:effectivePeriod [ Period ] ; # 0..1 When the ValueSet is expected to be used fhir:topic ( [ CodeableConcept ] ... ) ; # 0..* E.g. Education, Treatment, Assessment, etc fhir:author ( [ ContactDetail ] ... ) ; # 0..* Who authored the ValueSet fhir:editor ( [ ContactDetail ] ... ) ; # 0..* Who edited the ValueSet fhir:reviewer ( [ ContactDetail ] ... ) ; # 0..* Who reviewed the ValueSet fhir:endorser ( [ ContactDetail ] ... ) ; # 0..* Who endorsed the ValueSet fhir:relatedArtifact ( [ RelatedArtifact ] ... ) ; # 0..* Additional documentation, citations, etc fhir:compose [ # 0..1 Content logical definition of the value set (CLD) fhir:lockedDate [ date ] ; # 0..1 Fixed date for references with no specified version (transitive) fhir:inactive [ boolean ] ; # 0..1 Whether inactive codes are in the value set fhir:include ( [ # 1..* Include one or more codes from a code system or other value set(s) fhir:system [ uri ] ; # 0..1 I The system the codes come from fhir:version [ string ] ; # 0..1 Specific version of the code system referred to fhir:concept ( [ # 0..* I A concept defined in the system fhir:code [ code ] ; # 1..1 Code or expression from system fhir:display [ string ] ; # 0..1 Text to display for this code for this value set in this valueset fhir:designation ( [ # 0..* Additional representations for this concept fhir:language [ code ] ; # 0..1 Human language of the designation fhir:use [ Coding ] ; # 0..1 I Types of uses of designations fhir:additionalUse ( [ Coding ] ... ) ; # 0..* I Additional ways how this designation would be used fhir:value [ string ] ; # 1..1 The text value for this designation ] ... ) ; ] ... ) ; fhir:filter ( [ # 0..* I Select codes/concepts by their properties (including relationships) fhir:property [ code ] ; # 1..1 A property/filter defined by the code system fhir:op [ code ] ; # 1..1 = | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | child-of | descendent-leaf | exists fhir:value [ string ] ; # 1..1 Code from the system, or regex criteria, or boolean value for exists ] ... ) ; fhir:valueSet ( [ canonical(ValueSet) ] ... ) ; # 0..* I Select the contents included in this value set fhir:copyright [ markdown ] ; # 0..1 A copyright statement for the specific code system included in the value set ] ... ) ; fhir:exclude ( [ See ValueSet.compose.include ] ... ) ; # 0..* Explicitly exclude codes from a code system or other value sets fhir:property ( [ string ] ... ) ; # 0..* Property to return if client doesn't override ] ; fhir:expansion [ # 0..1 Used when the value set is "expanded" fhir:identifier [ uri ] ; # 0..1 Identifies the value set expansion (business identifier) fhir:next [ uri ] ; # 0..1 Opaque urls for paging through expansion results fhir:timestamp [ dateTime ] ; # 1..1 Time ValueSet expansion happened fhir:total [ integer ] ; # 0..1 Total number of codes in the expansion fhir:offset [ integer ] ; # 0..1 Offset at which this resource starts fhir:parameter ( [ # 0..* Parameter that controlled the expansion process fhir:name [ string ] ; # 1..1 Name as assigned by the client or server # value[x] : 0..1 Value of the named parameter. One of these 7 fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Decimal ; decimal ] fhir:value [ a fhir:Uri ; uri ] fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:DateTime ; dateTime ] ] ... ) ; fhir:property ( [ # 0..* Additional information supplied about each concept fhir:code [ code ] ; # 1..1 Identifies the property on the concepts, and when referred to in operations fhir:uri [ uri ] ; # 0..1 Formal identifier for the property ] ... ) ; fhir:contains ( [ # 0..* Codes in the value set fhir:system [ uri ] ; # 0..1 I System value for the code fhir:abstract [ boolean ] ; # 0..1 I If user cannot select this entry fhir:inactive [ boolean ] ; # 0..1 If concept is inactive in the code system fhir:version [ string ] ; # 0..1 Version in which this code/display is defined fhir:code [ code ] ; # 0..1 I Code - if blank, this is not a selectable code fhir:display [ string ] ; # 0..1 I User display for the concept fhir:designation ( [ See ValueSet.compose.include.concept.designation ] ... ) ; # 0..* Additional representations for this item fhir:property ( [ # 0..* Property value for the concept fhir:code [ code ] ; # 1..1 Reference to ValueSet.expansion.property.code # value[x] : 1..1 Value of the property for this concept. One of these 7 fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Decimal ; decimal ] fhir:subProperty ( [ # 0..* SubProperty value for the concept fhir:code [ code ] ; # 1..1 Reference to ValueSet.expansion.property.code # value[x] : 1..1 Value of the subproperty for this concept. One of these 7 fhir:value [ a fhir:Code ; code ] fhir:value [ a fhir:Coding ; Coding ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Decimal ; decimal ] ] ... ) ; ] ... ) ; fhir:contains ( [ See ValueSet.expansion.contains ] ... ) ; # 0..* Codes contained under this entry ] ... ) ; ] ; ]
Changes
since
DSTU2
from
both
R4
and
R4B
| ValueSet | |
|
|
|
|
|
|
|
|
|
| ValueSet.approvalDate |
|
| ValueSet.lastReviewDate |
|
| ValueSet.effectivePeriod |
|
| ValueSet.topic |
|
| ValueSet.author |
|
| ValueSet.editor |
|
| ValueSet.reviewer |
|
| ValueSet.endorser |
|
| ValueSet.relatedArtifact |
|
|
|
|
|
|
|
|
|
|
| ValueSet.compose.include.copyright |
|
| ValueSet.compose.property |
|
| ValueSet.expansion.next |
|
| ValueSet.expansion.property |
|
| ValueSet.expansion.property.code |
|
| ValueSet.expansion.property.uri |
|
| ValueSet.expansion.contains.property |
|
| ValueSet.expansion.contains.property.code |
|
| ValueSet.expansion.contains.property.value[x] |
|
| ValueSet.expansion.contains.property.subProperty |
|
| ValueSet.expansion.contains.property.subProperty.code |
|
| ValueSet.expansion.contains.property.subProperty.value[x] |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R2
<-->
R3
Conversion
Maps
(status
=
11
tests
that
all
execute
ok.
5
fail
round-trip
testing
and
4
r3
resources
are
invalid
(4
errors).
).
Note:
these
have
note
yet
been
updated
to
be
R3
to
R4
for
R4B
as
XML
or
JSON
.
Alternate
Additional
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
,
the
extensions
spreadsheet
version
&
the
dependency
analysis
| Path |
|
Type |
|
|---|---|---|---|
| ValueSet.versionAlgorithm[x] |
|
|
Indicates the mechanism used to compare versions to determine which is more current. |
| ValueSet.status | PublicationStatus | Required | The lifecycle status of an artifact. |
| ValueSet.jurisdiction |
![]() |
Extensible |
This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.
Note:
The
codes
for
countries
and
country
subdivisions
are
taken
from
ISO
3166
|
| ValueSet.topic | DefinitionTopic | Example |
High-level categorization of the definition, used for searching, sorting, and filtering. |
| ValueSet.compose.include.concept.designation.language |
)
| Required |
This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47) |
| Common Languages | starter | ||
| ValueSet.compose.include.concept.designation.use | DesignationUse | Extensible |
Details
of
how
a
designation
would
be
|
| ValueSet.compose.include.concept.designation.additionalUse | DesignationUse | Extensible |
Details of how a designation would be used |
| ValueSet.compose.include.filter.op | FilterOperator | Required |
The
kind
of
operation
to
perform
as
a
part
of
a
property
based
filter.
|
| UniqueKey | 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.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$') |
cnl-1
| Warning | ValueSet.url | URL should not contain | or # - these characters make processing canonical references problematic | exists() implies matches('^[^|# ]+$') |
vsd-1
| Rule | ValueSet.compose.include |
A
value
set
include/exclude
SHALL
have
a
value
set
or
a
system
|
|
vsd-2
|
Rule | 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 |
SHALL
have
a
code
if
not
abstract
|
|
vsd-10
| Rule | ValueSet.expansion.contains | SHALL have a system if a code is present | code.empty() or system.exists() |
vsd-11
| Rule | ValueSet.compose.include.concept.designation | Must have a value for concept.designation.use if concept.designation.additionalUse is present | additionalUse.exists() implies use.exists() |
vsd-12
| Rule | ValueSet.relatedArtifact | Related artifact can't be depends-on or composed-of | (type in ('depends-on' | 'composed-of')).not() |
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
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 .
The
rules
for
the
content
of
the
value
set
are
found
in
the
ValueSet.compose
element,
which
are
analogous
to
the
Content
Logical
Definition
(CLD)
as
defined
by
the
VSD
Project
.
The
ValueSet
compose
is
a
set
of
instructions
for
what
codes
are
in
the
ValueSet,
and
defined
by
the
author
consistent
with
the
ValueSet.description
The ValueSet composition can be defined in a number of ways:
ValueSet.compose.include.concept
ValueSet.compose.include.filter
The first approach - listing codes explicitly - is called an 'extensional' definition; all the other ways are called 'intensional' definitions.
Mapping
from
VSD
to
ValueSet.compose
| VSD Scenario | FHIR Implementation |
When
the
ValueSet.compose
is
an
expression
(
ValueSet.expression
),
declare
the
type
of
expression
here
|
|
When
the
ValueSet.compose
describes
Concepts
to
include
based
on
CodeSystem
properties
|
Either the Value or Expression must be provided Value:
Expression:
|
When
the
ValueSet.compose
defines
the
types
of
relationships
between
concepts
to
include
in
the
ValueSet
Expansion
|
(note: filter property is a string in VSD, code in FHIR)
Example: to find all concepts in SNOMED CT with the SNOMED CT laterality qualifier relationship to the SNOMED CT concept "left":
|
The
element
compose.include.filter.value
is
a
string.
The
actual
format
of
the
value
depends
on
the
value
of
compose.include.filter.op
and/or
the
definitions
of
the
underlying
CodeSystem.
The
following
rules
apply
(in
order).
op
is
regex
,
the
format
is
a
regex
expression
op
is
exists
,
the
format
is
a
boolean
(
true
or
false
)
op
is
in
or
not-in
,
the
format
is
either
a
comma-separated
list
of
code
values,
or
an
absolute
uri
,
which
is
a
canonical
reference
to
a
ValueSet.
If
the
value
is
a
code
or
list
of
codes,
the
interpretation
of
the
codes
is
subject
to
the
CodeSystem
e.g.
for
SNOMED-CT
reference
sets.
If
the
value
is
a
valueSet
uri,
then
commas
and
percents
should
be
percent
encoded
property
is
concept
,
the
format
is
a
code
property
refers
to
a
CodeSystem
filter
,
the
format
is
as
defined
in
the
filter
table
on
the
CodeSystem
page,
or
as
described
in
the
applicable
CodeSystem.filter.value
property
refers
to
a
CodeSystem
property
,
the
format
is
as
defined
in
the
following
table
The
format
of
compose.include.filter.value
for
Code
System
Properties
depends
on
the
property
type:
| string | Use the string directly |
| integer | Use the integer value directly |
| boolean |
Use
true
or
false
|
| dateTime | Use ISO 8601 format, following the precision rules for the dateTime data type |
| decimal | Use the decimal value directly |
| code | Use the code directly |
| Coding |
Use
the
format
system
(|
version
)#
code
,
which
is
effectively
a
canonical
reference
to
the
CodeSystem,
followed
by
#
and
then
the
code
in
the
CodeSystem.
There
is
no
way
to
specify
the
display
|
For the ordered data types (integer, decimal and dateTime), the search prefixes can be used (eq, ne, gt, lt, ge, le, sa, eb, ap). Note that the Coding syntax is not the search syntax.
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)
.
HL7 Terminology defines filters for various published code systems:
ValueSet.compose
may
reference
other
ValueSets.
Intersection:
ValueSet.compose.include
Union:
ValueSet.compose.include
elements
For expansion guidance, and how to manage exclude , see Value Set Expansion
When a ValueSet definition includes other ValueSets, use the ValueSet.valueset-compose-include-ValueSetTitle extension to provide the human readable name of the included Value Set.
The VSD Partition aligns with FHIR CodeSystem Fragments .
Code System fragments are a unique and identifiable distinct segment of an overall Code System namespace. While most Code Systems are in essence one fragment and, therefore, do not have identifiable fragments, some Code Systems can be made up of a collection of distinct segments. SNOMED CT is an example of such a Code System. The SNOMED CT International Edition is the base fragment and can be used alone, but there are many distinct additional fragments that can be added to the international core to create what is known as a SNOMED CT Edition.
The
CodeSystem
referenced
in
a
ValueSet.compose
may
reference
a
CodeSystem
fragment.
Author, Steward and Publisher are roles associated with a Value Set Definition.
ValueSet Author is the person or organization that creates and may modify the ValueSet. The Steward is the person or organization responsible for the content, maintenance and life cycle of the ValueSet. The Publisher is the person or organization that makes the ValueSet available. The publisher or a terminology server might provide the ValueSet expansions.
In
FHIR,
ValueSet.publisher
satisfies
the
requirements
for
both
publisher
and
steward.
Description
and
Purpose
are
standard
elements
that
appear
in
many
FHIR
resources.
Neither
fully
supports
the
intent
of
the
VSD
Scope
element,
however
ValueSet.description
does
support
Focus
as
defined
in
VSD.
When
a
ValueSet
definition
includes
other
ValueSets,
use
ValueSet.description
to
provide
information
about
the
included
value
sets
in
context
of
the
parent
value
set.
Purpose
may
be
used
for
the
ValueSet.author
to
describe
why
the
ValueSet
was
created.
ValueSet.description
may
be
used
to
provide
the
ValueSet
Focus
as
described
in
VSD.
Example:
| Value Set Name | Description |
| Body Site Value Set | All SNOMED CT anatomic structures, locations, abnormal structures that can be considered to describe an anatomical site. |
| Familial Hypercholesterolemia | This value set contains terms defining familial hypercholesterolemia, regardless of genetic origin. |
The
VSD
element
Name
aligns
with
ValueSet.title
which
does
not
support
preference
or
language.
Use
the
ValueSet.valueset-otherTitle
extension
when
a
language
or
preference
is
necessary.
ValueSet.title
or
ValueSet.valueset-otherTitle
must
be
valued.
VSD and FHIR support the constraining the $expand operation to return only active concepts as defined by the CodeSystem.
The
VSD
element
ActiveOnly
equal
to
TRUE
is
equivalent
to
ValueSet.compose.inactive
equal
to
FALSE.
The ValueSet resource defines a Value Set Definition and a Value Set Expansion. VSD describes only the characteristics of the Value Set Definition.
The
VSD
element
ActivityStatus
aligns
with
ValueSet.status
,
which
is
the
status
of
the
entire
ValueSet
resource
with
the
exception
of
the
ValueSet.expansion
.
This
aligns
with
VSD
using
the
word
definition
to
mean
the
Content
Logical
Definition
plus
all
the
other
non-expansion
metadata.
A
Value
Set
Expansion
is
stateless.
Note:
ValueSet.status
is
bound
with
required
binding
strength
to
the
PublicationStatus
value
set.
The
following
table
shows
how
the
ActivityStatus
values
in
VSD
align
with
the
values
in
the
PublicationStatus
Value
Set
Expansion.
| VSD Activity Status Value | FHIR Publication Status Value |
| Preliminary | Draft |
| Active | Active |
| Inactive | Retired |
| * | Unknown |
| Deleted | * |
*There is no equivalent value in either VSD or the PublicationStatus Value Set.
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.
Each
Code
System
defines
which
filters
can
be
used
in
ValueSet.compose.include.filter
.
All
Value
sets
should
only
include
well
differentiated
concepts,
but
many
value
sets
and
code
systems
do
not
have
base
filters
and
any
additional
filters
defined
in
(
CodeSystem.filter)
.
This
specification
also
defines
filters
for
well
differentiated
concepts
because
of
various
published
code
systems:
real-world
constraints.
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]),
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.
Note
that
the
CodeSystem
resource
and
ValueSet.compose
offer
no
direct
support
for
defining
hierarchies
and
groups.
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,
return
in
ValueSet.expansion.parameter
,
but
at
a
minimum,
the
list
SHOULD
include
include:
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
|
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.
This
includes
all
elements
of
the
ValueSet,
including
extensions,
with
the
exception
that
the
|
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 may nest codes or not (i.e. ValueSet.expansion.contains.contains). If excludeNested is set to true, the expansion MUST be flat (no nesting). If excludeNested is set to false (default), however, nesting is possible but not required |
excludeNotForUI
| Controls whether or not the value set expansion might include
One purpose of such concepts is helping a user navigate through the list efficiently. If excludeNotForUI is set to true, the concepts as described above will be excluded from the expansion. If excludeNotForUI is set to false (default), all concepts as described above may be part of the expansion. In the FHIR Specification itself, the value set expansions are generated with excludeNotForUI = false, and the expansions used when generating 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
|
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
|
[canonical1]#supplement
|
[canonical2]
:
Indicates
that
the
specified
supplement
(canonical2)
contributed
to
the
content
of
the
expansion
|
There's
also
some
parameters
that
only
go
in
the
response
to
an
expand,
so
that
the
server
can
inform
the
consumer
of
the
expansion
which
value
sets,
code
systems
have
and
supplements
were
used
as
the
basis
for
the
expansion:
used-system
| uri |
The
canonical
URL
(system
|
{version}
if
available)
of
a
|
used-supplement
| uri | The canonical URL (system | {version} if available) of a code system supplement that was used during the expansion of the value set |
used-valueset
| uri | The canonical URL (system | {version} if available) of a different value set that was used during the expansion of the value set |
Beyond all these parameters, 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).
Instead of a ValueSet resource as the definition, implicit value sets are defined in a specification which references the underlying code system structures and includes a prescribed URI pattern to identify the value set. HL7 has defined implicit value set URI patterns for some key code systems.
Implicit value sets allow the URI to serve as the basis for ValueSet operations such as $expand and $validate-code without the need to create a defining ValueSet resource instance.
Some advantages of using implicit value sets are that they may be used:
In some cases it is not possible to express a value set definition using ValueSet.compose - but it may be possible to express the value set definition with an implicit value set URI. An example of this scenario is all SNOMED CT concept IDs that identify reference sets.
If there is an explicit value set resource with the same URI as a known implicit value set, it SHALL conform the pattern described in the definition of the implicit value set. It is up to the discretion of the server how to handle explicit instances when it is also able to process requests for the implicit value set.
Implementation Note: If the relevant server(s) support implicit value sets, implementers are discouraged from creating their own explicit value sets with the same URI, as their existence may create confusion.
Implementers SHOULD NOT create ValueSet resources where the ValueSet.url value matches the pattern of a known implicit value set.
Implicit value set URIs can be used anywhere a value set URI can be used. Support for implicit value set URI patterns varies across terminology servers.
Some (but not all) code systems have implicit value set URI patterns defined by HL7 and documented for use with FHIR terminology services. Code system publishers may also define implicit value set URI patterns. FHIR terminology servers might or might not support any or all of these URI patterns. Caution should be exercised when using value set URI patterns that have not been defined by HL7 or the code system publisher.
The following links describe the currently defined FHIR implicit value set URL patterns for these listed code systems:
(SNOMED
CT
currently
has
the
most
extensive
set
of
defined
implicit
value
set
URL
patterns)




Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to 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 |
|
|
| context | token | A use context assigned to the value set | (ValueSet.useContext.value.ofType(CodeableConcept)) | 25 Resources |
| context-quantity | quantity | A quantity- or range-valued use context assigned to the value set | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range)) | 25 Resources |
| context-type | token | A type of use context assigned to the value set | ValueSet.useContext.code | 25 Resources |
| context-type-quantity | 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.ofType(Quantity) | value.ofType(Range) |
25 Resources |
| context-type-value | composite | A use context type and value assigned to the value set |
On
ValueSet.useContext:
context-type: code context: value.ofType(CodeableConcept) | 25 Resources |
| date | date | The value set publication date | ValueSet.date | 26 Resources |
| derived-from | reference | A resource that the ValueSet is derived from |
ValueSet.relatedArtifact.where(type='derived-from').resource
(Any) |
9 Resources |
| description | string | The description of the value set | ValueSet.description | 24 Resources |
| effective | date | The time during which the ValueSet is intended to be in use | ValueSet.effectivePeriod | 10 Resources |
| expansion | uri |
|
ValueSet.expansion.identifier | |
| experimental | token | Whether the ValueSet is experimental | ValueSet.experimental | |
| identifier | token | External identifier for the value set | ValueSet.identifier | 30 Resources |
| jurisdiction | token |
|
ValueSet.jurisdiction | 22 Resources |
| name | string | Computationally friendly name of the value set | ValueSet.name | 24 Resources |
| predecessor | reference | The predecessor of the ValueSet |
ValueSet.relatedArtifact.where(type='predecessor').resource
(Any) | 9 Resources |
| publisher | string | Name of the publisher of the value set | ValueSet.publisher | 26 Resources |
| 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 | 30 Resources |
| title | string | The human-friendly name of the value set | ValueSet.title | 24 Resources |
| topic | token | Topics associated with the ValueSet | ValueSet.topic | 10 Resources |
| url | uri | The uri that identifies the value set | ValueSet.url | 30 Resources |
| version | token | The business version of the value set | ValueSet.version | 27 Resources |