This
page
is
part
of
the
Continuous
Integration
Build
of
FHIR
Specification
(v4.0.1:
R4
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
(will
be
available
incorrect/inconsistent
at
this
URL).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Compartments
:
Not
linked
to
any
No
defined
compartments
This
page
has
been
approved
as
part
of
an
ANSI
standard.
See
the
Conformance
Package
for
further
details.
A
ValueSet
resource
instance
specifies
a
set
of
codes
drawn
from
one
or
more
code
systems,
intended
Search
parameters
for
use
in
a
particular
context.
Value
sets
link
between
CodeSystem
definitions
and
their
use
in
coded
elements
.
4.9.1
Scope
and
Usage
The
FHIR
terminology
specification
is
based
on
two
key
concepts,
originally
defined
in
HL7
v3
Core
Principles
:
CodeSystem
-
declares
the
existence
of
and
describes
a
code
system
or
code
system
supplement
and
its
key
properties,
and
optionally
defines
a
part
or
all
of
its
content.
ExampleScenario
resource.
Also
known
as
Ontology,
Terminology,
or
Enumeration
ValueSet
-
specifies
a
set
of
codes
drawn
from
one
or
more
code
systems,
intended
for
use
in
a
particular
context.
Value
sets
link
between
CodeSystem
definitions
and
their
use
in
coded
elements
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
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,
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.
4.9.2
Boundaries
and
Relationships
Value
Sets
are
used
by
many
resources:
Value
sets
use
CodeSystem
Extensions
registry
resources
by
referring
to
them
via
their
canonical
reference.
Value
sets
are
used
in
StructureDefinition
,
OperationDefinition
,
Questionnaire
,
and
other
resources
to
specify
the
allowable
contents
for
coded
elements,
or
business
rules
for
data
processing
ConceptMap
resources
describe
mappings
between
value
sets
DataRequirement
data
types
search
parameters
on
extensions
related
to
specify
data
processing
conditions
For
a
full
list
of
uses,
see
below.
this
resource.
The
Characteristics
of
the
ValueSet
resource
are
derived
from
Formal
Value
Set
Definitions:
The
ValueSet
resource
design
is
based
on
the
functionality
described
in
the
OMG
CTS
2
specification,
along
with
metadata
in
the
HL7
Value
Set
Definition
specification.
Value
set
resources
can
be
converted
to
CTS2
value
set
or
code
system
instances.
The
value
set
resource
is
aligned
with
the
Value
Set
Definition
(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".
common
parameters
4.9.3
Background
and
Context
also
apply.
See
Searching
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
for
more
information
about
searching
in
Resources
.
REST,
messaging,
and
services.
4.9.3.1
ValueSet
Identification
http://hl7.org/fhir/SearchParameter/CanonicalResource-context
A
value
set
has
3
identifiers:
ValueSet.id
:
the
logical
id
on
the
system
that
holds
the
value
set
-
this
changes
as
it
moves
from
server
to
server
(this
id,
with
the
server
address
prepended,
is
called
the
'literal
identity'
of
the
resource)
ValueSet.url
:
the
canonical
URL
that
never
changes
for
this
value
set
-
it
is
the
same
in
every
copy.
The
element
is
named
url
rather
than
uri
for
legacy
reasons
and
to
strongly
encourage
providing
a
resolvable
URL
as
the
identifier
whenever
possible.
Ideally,
it
should
be
a
literal
URL
that
is
the
location
of
the
master
version
of
the
value
set,
though
this
is
not
always
possible
ValueSet.identifier
:
A
system/value
pair
that
is
used
to
identify
the
value
set
in
other
contexts
(such
as
an
OID
in
an
HL7
v3
specification)
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
URL
(the
url
element),
and
its
local
location
from
which
it
may
be
retrieved
(which
includes
the
id
element).
Because
it
search
parameter
is
common
practice
to
copy
(cache)
value
sets
locally,
most
references
to
value
sets
use
the
canonical
URL.
For
example,
the
value
sets
published
as
part
of
FHIR
all
have
a
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
URL.
Alternatively,
the
identifier
and
version
elements
may
be
used
to
reference
this
value
set
in
a
design,
a
profile,
a
CDA
common
search
parameter
CanonicalResource-context
template
or
HL7
v3
message
(in
the
CD
data
type
valueSet
and
valueSetVersion
properties).
These
different
contexts
may
make
additional
restrictions
on
the
possible
values
of
these
elements.
The
identifier
is
generally
not
needed
when
using
value
sets
in
a
FHIR
context,
where
the
canonical
URL
is
always
the
focus.
A
value
set
may
be
described
as
intensional
or
extensional.
The
terms
intensional
and
extensional
come
from
the
fields
of
mathematical
logic
and
set
theory.
An
intensional
value
set
is
typically
algorithmically
defined.
That
is,
the
code
group
is
defined
as
a
rule
e.g.
all
codes
with
the
word
diabetes
in
their
description).
The
key
benefit
of
intensional
code
groups
is
that
they
can
be
dynamically
updated.
Dynamic
updating
helps
healthcare
organizations
keep
current
when
new
drugs
(and
their
associated
codes)
become
available
or
codes
for
diseases
and
other
clinical
concepts
change.
An
intensional
value
set
designed
to
contain
all
of
the
drugs
in
the
beta
blocker
category
can
automatically
receive
a
new
beta
blocker’s
code
as
soon
as
it
hits
the
market.
Extensional
value
sets,
meanwhile,
are
enumerated
lists
of
codes
where
each
code
is
listed
individually.
This
gives
the
author
and
user
of
the
value
set
more
control
over
the
which
codes
are
in
the
value
set,
but
there
is
a
greater
maintenance
burden
to
ensure
that
the
value
set
is
kept
up
to
date.
This
resource
is
referenced
by
DataRequirement
,
ElementDefinition
,
CodeSystem
,
ConceptMap
,
ObservationDefinition
,
OperationDefinition
,
Questionnaire
,
ResearchElementDefinition
and
itself
4.9.4
15.22.13
Resource
Content
context
Structure
UML
XML
JSON
Turtle
R3
Diff
All
Structure
Parameter
context
:
token
Name
Flags
Card.
Type
Description
&
Constraints
ValueSet
I
N
DomainResource
ExampleScenario
:
A
set
of
codes
drawn
from
one
or
more
code
systems
+
Warning:
Name
should
be
usable
as
an
identifier
for
the
module
by
machine
processing
applications
such
as
code
generation
Elements
defined
in
Ancestors:
id
,
meta
,
implicitRules
,
language
,
text
,
contained
,
extension
,
modifierExtension
url
Σ
0..1
uri
Canonical
identifier
for
this
value
set,
represented
as
a
URI
(globally
unique)
identifier
Σ
0..*
Identifier
Additional
identifier
for
the
value
set
(business
identifier)
version
Σ
0..1
string
Business
version
of
use
context
assigned
to
the
value
set
name
Σ
I
0..1
string
Name
for
this
value
set
(computer
friendly)
title
Σ
example
scenario
status
?!
Σ
1..1
code
draft
|
active
|
retired
|
unknown
PublicationStatus
(
Required
)
experimental
Σ
0..1
Expression
boolean
(ExampleScenario.useContext.value.ofType(CodeableConcept))
For
testing
purposes,
not
real
usage
date
Σ
0..1
dateTime
Processing
Mode
Date
last
changed
Normal
publisher
Σ
0..1
Multiples
string
Name
of
multipleAnd:
It's
up
to
the
publisher
(organization
or
individual)
contact
Σ
0..*
ContactDetail
Contact
details
for
server
whether
the
publisher
description
0..1
markdown
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
Natural
language
description
of
multipleOr:
It's
up
to
the
value
set
useContext
Σ
TU
0..*
UsageContext
The
context
that
server
whether
the
content
is
intended
to
support
jurisdiction
Σ
0..*
CodeableConcept
Intended
jurisdiction
for
value
set
(if
applicable)
parameter
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
Jurisdiction
(
Extensible
)
immutable
Σ
0..1
boolean
Indicates
whether
or
not
any
change
to
the
content
logical
definition
may
occur
I
1..*
BackboneElement
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
+
Rule:
A
value
set
include/exclude
SHALL
have
a
value
set
or
a
system
+
Rule:
A
value
set
with
concepts
or
filters
SHALL
include
a
system
ExampleScenario
:
A
concept
defined
in
the
system
code
1..1
code
Code
quantity-
or
expression
from
system
display
0..1
string
Text
range-valued
use
context
assigned
to
display
for
this
code
for
this
value
set
in
this
valueset
designation
0..*
BackboneElement
Additional
representations
for
this
concept
language
0..1
code
Human
language
of
the
designation
Common
Languages
(
Preferred
but
limited
to
AllLanguages
)
use
0..1
Coding
Types
of
uses
of
designations
Designation
Use
(
Extensible
)
value
1..1
string
The
text
value
for
this
designation
filter
Σ
I
0..*
BackboneElement
Select
codes/concepts
by
their
properties
(including
relationships)
property
Σ
example
scenario
=
|
is-a
|
descendent-of
|
is-not-a
|
regex
|
in
|
not-in
|
generalizes
(ExampleScenario.useContext.value.ofType(Quantity))
|
exists
FilterOperator
(
Required
)
value
Σ
1..1
string
Code
from
the
system,
or
regex
criteria,
or
boolean
value
for
exists
valueSet
Σ
I
0..*
canonical
(
ValueSet
)
Select
the
contents
included
in
this
value
set
exclude
I
0..*
see
include
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
(ExampleScenario.useContext.value.ofType(Range))
expansion
0..1
BackboneElement
Processing
Mode
Used
when
the
value
set
is
"expanded"
Normal
identifier
0..1
Multiples
uri
Identifies
multipleAnd:
It's
up
to
the
value
set
expansion
(business
identifier)
timestamp
1..1
dateTime
Time
ValueSet
expansion
happened
total
0..1
integer
Total
number
of
codes
in
server
whether
the
expansion
offset
0..1
integer
Offset
at
which
this
resource
starts
parameter
0..*
BackboneElement
Parameter
may
repeat
in
order
to
specify
multiple
values
that
controlled
the
expansion
process
name
1..1
string
must
all
be
true
Name
as
assigned
by
multipleOr:
It's
up
to
the
client
or
server
value[x]
0..1
Value
of
whether
the
named
parameter
valueString
string
valueBoolean
boolean
valueInteger
integer
valueDecimal
decimal
valueUri
uri
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
valueCode
code
Comparators
Allowed:
eq,
ne,
gt,
ge,
lt,
le,
sa,
eb,
ap
valueDateTime
dateTime
contains
I
0..*
BackboneElement
Codes
in
the
value
set
+
Rule:
SHALL
have
a
code
or
a
display
+
Rule:
Must
have
a
code
if
not
abstract
+
Rule:
Must
have
a
system
if
a
code
is
present
system
0..1
http://hl7.org/fhir/SearchParameter/CanonicalResource-context-type
uri
System
value
for
the
code
abstract
0..1
boolean
If
user
cannot
select
this
entry
inactive
0..1
boolean
UML
Diagram
(
Legend
)
ValueSet
(
DomainResource
)
An
absolute
URI
that
is
used
to
identify
this
value
set
when
it
is
referenced
in
a
specification,
model,
design
or
an
instance;
also
called
its
canonical
identifier.
This
SHOULD
be
globally
unique
and
SHOULD
be
a
literal
address
at
which
at
which
an
authoritative
instance
of
this
value
set
is
(or
will
be)
published.
This
URL
can
be
the
target
of
a
canonical
reference.
It
SHALL
remain
the
same
when
the
value
set
is
stored
on
different
servers
url
:
uri
[0..1]
A
formal
identifier
that
is
used
to
identify
this
value
set
when
it
is
represented
in
other
formats,
or
referenced
in
a
specification,
model,
design
or
an
instance
identifier
:
Identifier
[0..*]
The
identifier
that
is
used
to
identify
this
version
of
the
value
set
when
it
is
referenced
in
a
specification,
model,
design
or
instance.
This
is
an
arbitrary
value
managed
by
the
value
set
author
and
is
not
expected
to
be
globally
unique.
For
example,
it
might
be
a
timestamp
(e.g.
yyyymmdd)
if
a
managed
version
is
not
available.
There
is
also
no
expectation
that
versions
can
be
placed
in
a
lexicographical
sequence
version
:
string
[0..1]
A
natural
language
name
identifying
the
value
set.
This
name
should
be
usable
as
an
identifier
for
the
module
by
machine
processing
applications
such
as
code
generation
name
:
string
[0..1]
A
short,
descriptive,
user-friendly
title
for
the
value
set
title
:
string
[0..1]
The
status
of
this
value
set.
Enables
tracking
the
life-cycle
of
the
content.
The
status
of
the
value
set
applies
to
the
value
set
definition
(ValueSet.compose)
and
the
associated
ValueSet
metadata.
Expansions
do
not
have
a
state
(this
element
modifies
the
meaning
of
other
elements)
status
:
code
[1..1]
«
The
lifecycle
status
of
an
artifact.
(Strength=Required)
PublicationStatus
!
»
A
Boolean
value
to
indicate
that
this
value
set
is
authored
for
testing
purposes
(or
education/evaluation/marketing)
and
is
not
intended
to
be
used
for
genuine
usage
experimental
:
boolean
[0..1]
The
date
(and
optionally
time)
when
the
value
set
was
created
or
revised
(e.g.
the
'content
logical
definition')
date
:
dateTime
[0..1]
The
name
of
the
organization
or
individual
that
published
the
value
set
publisher
:
string
[0..1]
Contact
details
to
assist
a
user
in
finding
and
communicating
with
the
publisher
contact
:
ContactDetail
[0..*]
A
free
text
natural
language
description
of
the
value
set
from
a
consumer's
perspective.
The
textual
description
specifies
the
span
of
meanings
for
concepts
multipleAnd:
It's
up
to
be
included
within
the
Value
Set
Expansion,
and
also
may
specify
the
intended
use
and
limitations
of
the
Value
Set
description
:
markdown
[0..1]
The
content
was
developed
with
a
focus
and
intent
of
supporting
server
whether
the
contexts
that
are
listed.
These
contexts
may
be
general
categories
(gender,
age,
...)
or
may
be
references
to
specific
programs
(insurance
plans,
studies,
...)
and
parameter
may
be
used
to
assist
with
indexing
and
searching
for
appropriate
value
set
instances
useContext
:
UsageContext
[0..*]
A
legal
or
geographic
region
in
which
the
value
set
is
intended
to
be
used
jurisdiction
:
CodeableConcept
[0..*]
«
Countries
and
regions
within
which
this
artifact
is
targeted
for
use.
(Strength=Extensible)
Jurisdiction
ValueSet
+
»
If
this
is
set
to
'true',
then
no
new
versions
of
the
content
logical
definition
can
be
created.
Note:
Other
metadata
might
still
change
immutable
:
boolean
[0..1]
Explanation
of
why
this
value
set
is
needed
and
why
it
has
been
designed
as
it
has
purpose
:
markdown
[0..1]
A
copyright
statement
relating
to
the
value
set
and/or
its
contents.
Copyright
statements
are
generally
legal
restrictions
on
the
use
and
publishing
of
the
value
set
copyright
:
markdown
[0..1]
Compose
The
Locked
Date
is
the
effective
date
that
is
used
to
determine
the
version
of
all
referenced
Code
Systems
and
Value
Set
Definitions
included
in
the
compose
that
are
not
already
tied
to
a
specific
version
lockedDate
:
date
[0..1]
Whether
inactive
codes
-
codes
that
are
not
approved
for
current
use
-
are
in
the
value
set.
If
inactive
=
true,
inactive
codes
are
to
be
included
in
the
expansion,
if
inactive
=
false,
the
inactive
codes
will
not
be
included
in
the
expansion.
If
absent,
the
behavior
is
determined
by
the
implementation,
or
by
the
applicable
$expand
parameters
(but
generally,
inactive
codes
would
be
expected
to
be
included)
inactive
:
boolean
[0..1]
ConceptSet
An
absolute
URI
which
is
the
code
system
from
which
the
selected
codes
come
from
system
:
uri
[0..1]
The
version
of
the
code
system
that
the
codes
are
selected
from,
or
the
special
version
'*'
for
all
versions
version
:
string
[0..1]
Selects
the
concepts
found
repeat
in
this
value
set
(based
on
its
value
set
definition).
This
is
an
absolute
URI
that
is
a
reference
order
to
ValueSet.url.
If
specify
multiple
value
sets
are
specified
this
includes
the
union
of
the
contents
of
all
of
the
referenced
value
sets
valueSet
:
canonical
[0..*]
«
ValueSet
»
ConceptReference
Specifies
a
code
for
the
concept
to
be
included
or
excluded
code
:
code
[1..1]
The
text
to
display
to
the
user
for
this
concept
in
the
context
of
this
valueset.
If
no
display
is
provided,
then
applications
using
the
value
set
use
the
display
specified
for
the
code
by
the
system
display
:
string
[0..1]
Designation
The
language
this
designation
is
defined
for
language
:
code
[0..1]
«
A
human
language.
(Strength=Preferred)
CommonLanguages
?
»
A
code
that
represents
types
of
uses
of
designations
use
:
Coding
[0..1]
«
Details
of
how
a
designation
would
be
used.
(Strength=Extensible)
DesignationUse
+
»
The
text
value
for
this
designation
value
:
string
[1..1]
Filter
A
code
that
identifies
a
property
or
a
filter
defined
in
the
code
system
property
:
code
[1..1]
The
kind
of
operation
to
perform
as
a
part
of
the
filter
criteria
op
:
code
[1..1]
«
The
kind
of
operation
to
perform
as
a
part
of
a
property
based
filter.
(Strength=Required)
FilterOperator
!
»
The
match
value
may
be
either
a
code
defined
by
the
system,
or
a
string
value,
which
is
a
regex
match
on
the
literal
string
of
the
property
value
(if
the
filter
represents
a
property
defined
in
CodeSystem)
or
of
the
system
filter
value
(if
the
filter
represents
a
filter
defined
in
CodeSystem)
when
the
operation
is
'regex',
or
one
of
the
values
(true
and
false),
when
the
operation
is
'exists'
value
:
string
[1..1]
Expansion
An
identifier
that
uniquely
identifies
this
expansion
of
the
valueset,
based
on
a
unique
combination
of
the
provided
parameters,
the
system
default
parameters,
and
the
underlying
system
code
system
versions
etc.
Systems
may
re-use
the
same
identifier
as
long
as
those
factors
remain
the
same,
and
the
expansion
is
the
same,
but
are
not
required
to
do
so.
This
is
a
business
identifier
identifier
:
uri
[0..1]
The
time
at
which
the
expansion
was
produced
by
the
expanding
system
timestamp
:
dateTime
[1..1]
The
total
number
of
concepts
in
the
expansion.
If
the
number
of
concept
nodes
in
this
resource
is
less
than
the
stated
number,
then
the
server
can
return
more
using
the
offset
parameter
total
:
integer
[0..1]
If
paging
is
being
used,
the
offset
at
which
this
resource
starts.
I.e.
this
resource
is
a
partial
view
into
the
expansion.
If
paging
is
not
being
used,
this
element
SHALL
NOT
be
present
offset
:
integer
[0..1]
Parameter
Name
of
the
input
parameter
to
the
$expand
operation;
may
must
all
be
a
server-assigned
name
for
additional
default
or
other
server-supplied
parameters
used
to
control
the
expansion
process
name
:
string
[1..1]
The
value
of
the
parameter
value[x]
:
Type
[0..1]
«
string
|
boolean
|
integer
|
decimal
|
uri
|
code
|
dateTime
»
Contains
An
absolute
URI
which
is
the
code
system
in
which
the
code
for
this
item
in
the
expansion
is
defined
system
:
uri
[0..1]
If
true,
this
entry
is
included
in
the
expansion
for
navigational
purposes,
and
the
user
cannot
select
the
code
directly
as
a
proper
value
abstract
:
boolean
[0..1]
true
If
the
concept
is
inactive
in
the
code
system
that
defines
it.
Inactive
codes
are
those
that
are
no
longer
multipleOr:
It's
up
to
be
used,
but
are
maintained
by
the
code
system
for
understanding
legacy
data.
It
might
not
be
known
or
specified
server
whether
an
concept
is
inactive
(and
it
may
depend
on
the
context
of
use)
inactive
:
boolean
[0..1]
The
version
of
the
code
system
from
this
code
was
taken.
Note
that
a
well-maintained
code
system
does
not
need
the
version
reported,
because
the
meaning
of
codes
is
consistent
across
versions.
However
this
cannot
consistently
be
assured,
and
when
the
meaning
is
not
guaranteed
to
be
consistent,
the
version
SHOULD
be
exchanged
version
:
string
[0..1]
The
code
for
this
item
in
the
expansion
hierarchy.
If
this
code
is
missing
the
entry
in
the
hierarchy
is
a
place
holder
(abstract)
and
does
not
represent
a
valid
code
in
the
value
set
code
:
code
[0..1]
The
recommended
display
for
this
item
in
the
expansion
display
:
string
[0..1]
Additional
representations
for
this
concept
when
used
in
this
value
set
-
other
languages,
aliases,
specialized
purposes,
used
for
particular
purposes,
etc
designation
[0..*]
Specifies
a
concept
to
be
included
or
excluded
concept
[0..*]
Select
concepts
by
specify
a
matching
criterion
based
on
the
properties
(including
relationships)
defined
by
the
system,
or
on
filters
defined
by
the
system.
If
parameter
can
have
multiple
filters
are
specified,
they
SHALL
all
values
(separated
by
comma)
where
at
least
one
must
be
true
filter
[0..*]
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
include
A
set
of
criteria
that
define
the
contents
of
the
value
set
by
including
or
excluding
codes
selected
from
the
specified
code
system(s)
that
the
value
set
draws
from.
This
is
also
known
as
the
Content
Logical
Definition
(CLD)
compose
[0..1]
A
search
parameter
that
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
part
of
the
correct
expansion
common
search
parameter
CanonicalResource-context-type-quantity
[0..*]
Additional
representations
for
this
item
-
other
languages,
aliases,
specialized
purposes,
used
for
particular
purposes,
etc.
These
are
relevant
when
the
conditions
of
the
expansion
do
not
fix
to
a
single
correct
representation
designation
[0..*]
Other
codes
and
entries
contained
under
this
entry
in
the
hierarchy
contains
[0..*]
15.22.16
context-type-quantity
The
codes
that
are
contained
in
the
value
set
expansion
contains
[0..*]
A
value
set
can
also
be
"expanded",
where
the
value
set
is
turned
into
a
simple
collection
of
enumerated
codes.
This
element
holds
the
expansion,
if
it
has
been
performed
expansion
[0..1]
Changes
since
R3
ValueSet
ValueSet.status
Change
value
set
from
http://hl7.org/fhir/ValueSet/publication-status
to
http://hl7.org/fhir/ValueSet/publication-status|4.0.1
ValueSet.experimental
No
longer
marked
as
Modifier
ValueSet.compose.include.concept.designation.language
Change
binding
strength
from
extensible
to
preferred
ValueSet.compose.include.filter
No
longer
marked
as
Modifier
ValueSet.compose.include.filter.op
Change
ExampleScenario
:
A
use
context
type
and
quantity-
or
range-based
value
set
from
http://hl7.org/fhir/ValueSet/filter-operator
to
http://hl7.org/fhir/ValueSet/filter-operator|4.0.1
ValueSet.compose.include.filter.value
Type
changed
from
code
to
string
ValueSet.compose.include.valueSet
Type
changed
from
uri
to
canonical(ValueSet)
ValueSet.expansion.identifier
Min
Cardinality
changed
from
1
assigned
to
0
ValueSet.expansion.parameter.value[x]
Add
Type
dateTime
ValueSet.expansion.contains.abstract
Default
Value
"false"
removed
ValueSet.expansion.contains.inactive
Default
Value
"false"
removed
ValueSet.extensible
deleted
See
the
Full
Difference
for
further
information
This
analysis
is
available
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
8
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
8
r3
resources
are
invalid
(0
errors).
)
example
scenario
Structure
Name
Flags
Card.
Type
Description
&
Constraints
ValueSet
I
N
DomainResource
Resource
A
set
of
codes
drawn
from
one
or
more
code
systems
+
Warning:
Name
should
be
usable
as
an
identifier
for
the
module
by
machine
processing
applications
such
as
code
generation
Elements
defined
in
Ancestors:
id
,
meta
,
implicitRules
,
language
,
text
,
contained
,
extension
,
modifierExtension
ExampleScenario
url
Σ
0..1
Expression
uri
ExampleScenario.useContext
Canonical
identifier
for
this
value
set,
represented
as
a
URI
(globally
unique)
identifier
Σ
0..*
Identifier
Processing
Mode
Additional
identifier
for
the
value
set
(business
identifier)
Normal
version
Σ
0..1
Multiples
string
Business
version
of
multipleAnd:
It's
up
to
the
value
set
name
Σ
I
0..1
string
server
whether
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
Name
for
this
multipleOr:
The
parameter
may
only
have
one
value
set
(computer
friendly)
title
Σ
0..1
string
(no
comma
separators)
Indicates
whether
or
not
any
change
ExampleScenario
:
A
use
context
type
and
value
assigned
to
the
content
logical
definition
may
occur
purpose
0..1
markdown
Why
this
value
set
is
defined
copyright
example
scenario
BackboneElement
ExampleScenario.useContext
Content
logical
definition
of
the
value
set
(CLD)
lockedDate
Σ
0..1
date
Processing
Mode
Fixed
date
for
references
with
no
specified
version
(transitive)
Normal
inactive
Σ
0..1
Multiples
boolean
Whether
inactive
codes
are
in
multipleAnd:
It's
up
to
the
value
set
include
Σ
I
1..*
BackboneElement
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
server
whether
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
+
Rule:
A
value
set
include/exclude
SHALL
multipleOr:
The
parameter
may
only
have
a
value
set
or
a
system
+
Rule:
A
one
value
set
with
concepts
or
filters
SHALL
include
a
system
+
Rule:
Cannot
have
both
concept
and
filter
system
Σ
I
0..1
uri
(no
comma
separators)
Human
language
of
the
designation
Common
Languages
(
Preferred
but
limited
to
AllLanguages
)
use
0..1
Coding
Types
of
uses
This
search
parameter
is
part
of
designations
Designation
Use
(
Extensible
)
value
1..1
string
The
text
value
for
this
designation
filter
Σ
I
0..*
BackboneElement
Select
codes/concepts
by
their
properties
(including
relationships)
property
Σ
1..1
code
A
property/filter
defined
by
the
code
system
op
Σ
1..1
code
common
search
parameter
CanonicalResource-date
canonical
(
ValueSet
ExampleScenario
)
Select
the
contents
included
in
this
value
set
exclude
I
0..*
see
include
Expression
Explicitly
exclude
codes
from
a
code
system
or
other
value
sets
ExampleScenario.date
expansion
0..1
BackboneElement
Processing
Mode
Used
when
the
value
set
is
"expanded"
Normal
identifier
0..1
Multiples
uri
Identifies
multipleAnd:
It's
up
to
the
value
set
expansion
(business
identifier)
timestamp
1..1
dateTime
Time
ValueSet
expansion
happened
total
0..1
integer
Total
number
of
codes
in
server
whether
the
expansion
offset
0..1
integer
Offset
at
which
this
resource
starts
parameter
0..*
BackboneElement
Parameter
may
repeat
in
order
to
specify
multiple
values
that
controlled
the
expansion
process
name
1..1
string
must
all
be
true
Name
as
assigned
by
multipleOr:
It's
up
to
the
client
or
server
value[x]
0..1
Value
of
whether
the
named
parameter
valueString
string
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
multipleAnd:
It's
up
to
the
value
set
+
Rule:
SHALL
have
a
code
or
a
display
+
Rule:
Must
have
a
code
if
not
abstract
server
whether
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
+
Rule:
Must
multipleOr:
It's
up
to
the
server
whether
the
parameter
can
have
a
system
if
a
code
is
present
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
UML
Diagram
(
Legend
)
ValueSet
(
DomainResource
)
An
absolute
URI
that
is
used
to
identify
this
value
set
when
it
is
referenced
in
a
specification,
model,
design
or
an
instance;
also
called
its
canonical
identifier.
This
SHOULD
be
globally
unique
and
SHOULD
be
a
literal
address
at
which
at
which
an
authoritative
instance
of
this
value
set
is
(or
will
be)
published.
This
URL
can
be
the
target
of
a
canonical
reference.
It
SHALL
remain
the
same
when
the
value
set
is
stored
on
different
servers
url
:
uri
[0..1]
A
formal
identifier
that
is
used
to
identify
this
value
set
when
it
is
represented
in
other
formats,
or
referenced
in
a
specification,
model,
design
or
an
instance
identifier
:
Identifier
[0..*]
The
identifier
that
is
used
to
identify
this
version
of
the
value
set
when
it
is
referenced
in
a
specification,
model,
design
or
instance.
This
is
an
arbitrary
value
managed
by
the
value
set
author
and
is
not
expected
to
be
globally
unique.
For
example,
it
might
be
a
timestamp
(e.g.
yyyymmdd)
if
a
managed
version
is
not
available.
There
is
also
no
expectation
that
versions
can
be
placed
in
a
lexicographical
sequence
version
:
string
[0..1]
A
natural
language
name
identifying
the
value
set.
This
name
should
be
usable
as
an
identifier
for
the
module
by
machine
processing
applications
such
as
code
generation
name
:
string
[0..1]
A
short,
descriptive,
user-friendly
title
for
the
value
set
title
:
string
[0..1]
The
status
of
this
value
set.
Enables
tracking
the
life-cycle
of
the
content.
The
status
of
the
value
set
applies
to
the
value
set
definition
(ValueSet.compose)
and
the
associated
ValueSet
metadata.
Expansions
do
not
have
a
state
(this
element
modifies
the
meaning
of
other
elements)
status
:
code
[1..1]
«
The
lifecycle
status
of
an
artifact.
(Strength=Required)
PublicationStatus
!
»
A
Boolean
value
to
indicate
that
this
value
set
is
authored
for
testing
purposes
(or
education/evaluation/marketing)
and
is
not
intended
to
be
used
for
genuine
usage
experimental
:
boolean
[0..1]
The
date
(and
optionally
time)
when
the
value
set
was
created
or
revised
(e.g.
the
'content
logical
definition')
date
:
dateTime
[0..1]
The
name
of
the
organization
or
individual
that
published
the
value
set
publisher
:
string
[0..1]
Contact
details
to
assist
a
user
in
finding
and
communicating
with
the
publisher
contact
:
ContactDetail
[0..*]
A
free
text
natural
language
description
of
the
value
set
from
a
consumer's
perspective.
The
textual
description
specifies
the
span
of
meanings
for
concepts
multipleAnd:
It's
up
to
be
included
within
the
Value
Set
Expansion,
and
also
may
specify
the
intended
use
and
limitations
of
the
Value
Set
description
:
markdown
[0..1]
The
content
was
developed
with
a
focus
and
intent
of
supporting
server
whether
the
contexts
that
are
listed.
These
contexts
may
be
general
categories
(gender,
age,
...)
or
may
be
references
to
specific
programs
(insurance
plans,
studies,
...)
and
parameter
may
be
used
to
assist
with
indexing
and
searching
for
appropriate
value
set
instances
useContext
:
UsageContext
[0..*]
A
legal
or
geographic
region
in
which
the
value
set
is
intended
to
be
used
jurisdiction
:
CodeableConcept
[0..*]
«
Countries
and
regions
within
which
this
artifact
is
targeted
for
use.
(Strength=Extensible)
Jurisdiction
ValueSet
+
»
If
this
is
set
to
'true',
then
no
new
versions
of
the
content
logical
definition
can
be
created.
Note:
Other
metadata
might
still
change
immutable
:
boolean
[0..1]
Explanation
of
why
this
value
set
is
needed
and
why
it
has
been
designed
as
it
has
purpose
:
markdown
[0..1]
A
copyright
statement
relating
to
the
value
set
and/or
its
contents.
Copyright
statements
are
generally
legal
restrictions
on
the
use
and
publishing
of
the
value
set
copyright
:
markdown
[0..1]
Compose
The
Locked
Date
is
the
effective
date
that
is
used
to
determine
the
version
of
all
referenced
Code
Systems
and
Value
Set
Definitions
included
in
the
compose
that
are
not
already
tied
to
a
specific
version
lockedDate
:
date
[0..1]
Whether
inactive
codes
-
codes
that
are
not
approved
for
current
use
-
are
in
the
value
set.
If
inactive
=
true,
inactive
codes
are
to
be
included
in
the
expansion,
if
inactive
=
false,
the
inactive
codes
will
not
be
included
in
the
expansion.
If
absent,
the
behavior
is
determined
by
the
implementation,
or
by
the
applicable
$expand
parameters
(but
generally,
inactive
codes
would
be
expected
to
be
included)
inactive
:
boolean
[0..1]
ConceptSet
An
absolute
URI
which
is
the
code
system
from
which
the
selected
codes
come
from
system
:
uri
[0..1]
The
version
of
the
code
system
that
the
codes
are
selected
from,
or
the
special
version
'*'
for
all
versions
version
:
string
[0..1]
Selects
the
concepts
found
repeat
in
this
value
set
(based
on
its
value
set
definition).
This
is
an
absolute
URI
that
is
a
reference
order
to
ValueSet.url.
If
specify
multiple
value
sets
are
specified
this
includes
the
union
of
the
contents
of
all
of
the
referenced
value
sets
valueSet
:
canonical
[0..*]
«
ValueSet
»
ConceptReference
Specifies
a
code
for
the
concept
to
be
included
or
excluded
code
:
code
[1..1]
The
text
to
display
to
the
user
for
this
concept
in
the
context
of
this
valueset.
If
no
display
is
provided,
then
applications
using
the
value
set
use
the
display
specified
for
the
code
by
the
system
display
:
string
[0..1]
Designation
The
language
this
designation
is
defined
for
language
:
code
[0..1]
«
A
human
language.
(Strength=Preferred)
CommonLanguages
?
»
A
code
that
represents
types
of
uses
of
designations
use
:
Coding
[0..1]
«
Details
of
how
a
designation
would
be
used.
(Strength=Extensible)
DesignationUse
+
»
The
text
value
for
this
designation
value
:
string
[1..1]
Filter
A
code
that
identifies
a
property
or
a
filter
defined
in
the
code
system
property
:
code
[1..1]
The
kind
of
operation
to
perform
as
a
part
of
the
filter
criteria
op
:
code
[1..1]
«
The
kind
of
operation
to
perform
as
a
part
of
a
property
based
filter.
(Strength=Required)
FilterOperator
!
»
The
match
value
may
be
either
a
code
defined
by
the
system,
or
a
string
value,
which
is
a
regex
match
on
the
literal
string
of
the
property
value
(if
the
filter
represents
a
property
defined
in
CodeSystem)
or
of
the
system
filter
value
(if
the
filter
represents
a
filter
defined
in
CodeSystem)
when
the
operation
is
'regex',
or
one
of
the
values
(true
and
false),
when
the
operation
is
'exists'
value
:
string
[1..1]
Expansion
An
identifier
that
uniquely
identifies
this
expansion
of
the
valueset,
based
on
a
unique
combination
of
the
provided
parameters,
the
system
default
parameters,
and
the
underlying
system
code
system
versions
etc.
Systems
may
re-use
the
same
identifier
as
long
as
those
factors
remain
the
same,
and
the
expansion
is
the
same,
but
are
not
required
to
do
so.
This
is
a
business
identifier
identifier
:
uri
[0..1]
The
time
at
which
the
expansion
was
produced
by
the
expanding
system
timestamp
:
dateTime
[1..1]
The
total
number
of
concepts
in
the
expansion.
If
the
number
of
concept
nodes
in
this
resource
is
less
than
the
stated
number,
then
the
server
can
return
more
using
the
offset
parameter
total
:
integer
[0..1]
If
paging
is
being
used,
the
offset
at
which
this
resource
starts.
I.e.
this
resource
is
a
partial
view
into
the
expansion.
If
paging
is
not
being
used,
this
element
SHALL
NOT
be
present
offset
:
integer
[0..1]
Parameter
Name
of
the
input
parameter
to
the
$expand
operation;
may
must
all
be
a
server-assigned
name
for
additional
default
or
other
server-supplied
parameters
used
to
control
the
expansion
process
name
:
string
[1..1]
The
value
of
the
parameter
value[x]
:
Type
[0..1]
«
string
|
boolean
|
integer
|
decimal
|
uri
|
code
|
dateTime
»
Contains
An
absolute
URI
which
is
the
code
system
in
which
the
code
for
this
item
in
the
expansion
is
defined
system
:
uri
[0..1]
If
true,
this
entry
is
included
in
the
expansion
for
navigational
purposes,
and
the
user
cannot
select
the
code
directly
as
a
proper
value
abstract
:
boolean
[0..1]
true
If
the
concept
is
inactive
in
the
code
system
that
defines
it.
Inactive
codes
are
those
that
are
no
longer
multipleOr:
It's
up
to
be
used,
but
are
maintained
by
the
code
system
for
understanding
legacy
data.
It
might
not
be
known
or
specified
server
whether
an
concept
is
inactive
(and
it
may
depend
on
the
context
of
use)
inactive
:
boolean
[0..1]
The
version
of
the
code
system
from
this
code
was
taken.
Note
that
a
well-maintained
code
system
does
not
need
the
version
reported,
because
the
meaning
of
codes
is
consistent
across
versions.
However
this
cannot
consistently
be
assured,
and
when
the
meaning
is
not
guaranteed
to
be
consistent,
the
version
SHOULD
be
exchanged
version
:
string
[0..1]
The
code
for
this
item
in
the
expansion
hierarchy.
If
this
code
is
missing
the
entry
in
the
hierarchy
is
a
place
holder
(abstract)
and
does
not
represent
a
valid
code
in
the
value
set
code
:
code
[0..1]
The
recommended
display
for
this
item
in
the
expansion
display
:
string
[0..1]
Additional
representations
for
this
concept
when
used
in
this
value
set
-
other
languages,
aliases,
specialized
purposes,
used
for
particular
purposes,
etc
designation
[0..*]
Specifies
a
concept
to
be
included
or
excluded
concept
[0..*]
Select
concepts
by
specify
a
matching
criterion
based
on
the
properties
(including
relationships)
defined
by
the
system,
or
on
filters
defined
by
the
system.
If
parameter
can
have
multiple
filters
are
specified,
they
SHALL
all
values
(separated
by
comma)
where
at
least
one
must
be
true
filter
[0..*]
Include
one
or
more
codes
from
a
code
system
or
other
value
set(s)
include
A
set
of
criteria
that
define
the
contents
of
the
value
set
by
including
or
excluding
codes
selected
from
the
specified
code
system(s)
that
the
value
set
draws
from.
This
is
also
known
as
the
Content
Logical
Definition
(CLD)
compose
[0..1]
A
search
parameter
that
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
parameter
[0..*]
Additional
representations
for
this
item
-
other
languages,
aliases,
specialized
purposes,
used
for
particular
purposes,
etc.
These
are
relevant
when
the
conditions
part
of
the
expansion
do
not
fix
to
a
single
correct
representation
designation
common
search
parameter
CanonicalResource-jurisdiction
[0..*]
Other
codes
and
entries
contained
under
this
entry
in
the
hierarchy
contains
[0..*]
The
codes
that
are
contained
in
the
value
set
expansion
contains
[0..*]
Changes
since
Release
3
ValueSet
ValueSet.status
Change
value
set
from
http://hl7.org/fhir/ValueSet/publication-status
to
http://hl7.org/fhir/ValueSet/publication-status|4.0.1
ValueSet.experimental
No
longer
marked
as
Modifier
ValueSet.compose.include.concept.designation.language
Change
binding
strength
from
extensible
to
preferred
ValueSet.compose.include.filter
No
longer
marked
as
Modifier
ValueSet.compose.include.filter.op
Change
value
set
from
http://hl7.org/fhir/ValueSet/filter-operator
to
http://hl7.org/fhir/ValueSet/filter-operator|4.0.1
ValueSet.compose.include.filter.value
Type
changed
from
code
to
string
ValueSet.compose.include.valueSet
Type
changed
from
uri
to
canonical(ValueSet)
ValueSet.expansion.identifier
Min
Cardinality
changed
from
1
to
0
ValueSet.expansion.parameter.value[x]
Add
Type
dateTime
ValueSet.expansion.contains.abstract
Default
Value
"false"
removed
ValueSet.expansion.contains.inactive
Default
Value
"false"
removed
ValueSet.extensible
deleted
See
ExampleScenario
:
Jurisdiction
of
the
Full
Difference
for
further
information
This
analysis
is
available
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
8
tests
authority
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
8
r3
resources
are
invalid
(0
errors).
)
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
maintains
the
extensions
&
the
dependency
analysis
example
scenario
4.9.4.1
Terminology
Bindings
Path
Definition
Type
Reference
ValueSet.status
The
lifecycle
status
of
an
artifact.
Required
PublicationStatus
ValueSet.jurisdiction
Countries
and
regions
within
which
this
artifact
is
targeted
for
use.
Resource
ValueSet.compose.include.concept.designation.language
A
human
language.
Preferred
,
but
limited
to
AllLanguages
CommonLanguages
ValueSet.compose.include.concept.designation.use
Details
of
how
a
designation
would
be
used.
Expression
Extensible
ExampleScenario.jurisdiction
DesignationUse
ValueSet.compose.include.filter.op
The
kind
of
operation
to
perform
as
a
part
of
a
property
based
filter.
Processing
Mode
Required
Normal
FilterOperator
4.9.4.2
Constraints
id
Level
Multiples
Location
multipleAnd:
It's
up
to
the
server
whether
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
multipleOr:
It's
up
to
the
server
whether
the
parameter
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
Description
Expression
vsd-0
Warning
(base)
Name
should
be
usable
as
an
identifier
for
the
module
by
machine
processing
applications
such
as
code
generation
name.matches('[A-Z]([A-Za-z0-9_]){0,254}')
vsd-1
http://hl7.org/fhir/SearchParameter/CanonicalResource-name
Rule
ValueSet.compose.include
A
value
set
include/exclude
SHALL
have
a
value
set
or
a
system
valueSet.exists()
or
system.exists()
vsd-2
Rule
This
search
parameter
is
part
of
the
common
search
parameter
CanonicalResource-name
ValueSet.compose.include
A
value
set
with
concepts
or
filters
SHALL
include
a
system
(concept.exists()
or
filter.exists())
implies
system.exists()
code.exists()
or
abstract
=
true
ExampleScenario.name
vsd-10
Processing
Mode
Rule
Normal
ValueSet.expansion.contains
Must
have
a
system
if
a
code
is
present
Multiples
code.empty()
or
system.exists()
4.9.5
Composition
Rules
A
value
set
can
be
a
simple
list
of
included
codes,
or
it
can
be
some
kind
of
general
selection
criteria
using
the
facilities
provided
by
the
code
system
.
For
these
value
sets:
Multiple
include
statements
are
cumulative
-
e.g.
the
value
set
contains
the
union
of
all
the
includes
Within
an
include
,
all
the
criterion
apply
-e.g.
the
value
set
contains
the
intersection
of
the
criterion
Within
an
include
,
a
single
system
with
selection
criteria
may
be
listed,
and/or
one
or
more
value
sets
may
be
listed
valueSet
(s)
only
:
Codes
are
'selected'
for
inclusion
if
they
are
in
all
the
referenced
value
sets
If
a
System
only
is
specified,
the
following
rules
apply:
no
concept
or
filter
:
All
codes
in
the
system
are
included
concept
:
Only
the
enumerated
codes
are
selected
filter
:
Any
codes
meeting
the
filter
criteria
are
selected
valueSet
and
System
:
Codes
are
'selected'
for
inclusion
if
they
are
selected
by
the
code
system
selection
(after
checking
for
concept
and
filter
)
and
if
they
are
in
all
the
referenced
value
sets
If
the
system
reference
is
not
version
specific
and
filters
are
present,
then
the
contents
of
the
value
set
are
open
and
change
over
time
as
the
underlying
code
systems
are
updated
The
version
reference
may
be
the
special
value
'
*
',
which
indicates
that
the
value
set
includes
codes
from
all
versions
of
the
code
system.
how
multipleAnd:
It's
up
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
.
Using
the
property
filters
is
only
possible
where
the
code
system
in
use
defines
the
relevant
properties.
Note
that
in
some
cases
the
underlying
code
system
defines
the
logical
concepts
but
not
the
syntax
for
exercising
them.
In
such
cases,
the
literal
definitions
may
be
provided
by
a
third
party
In
addition
to
include
rules,
codes
may
be
excluded.
Rules
for
interpretation
of
exclude
statements
match
those
for
includes,
but
codes
in
the
exclude
statements
are
never
in
whether
the
value
set
Value
sets
parameter
may
include
abstract
codes
-
that
is,
codes
designated
by
the
underlying
code
system
as
not
for
use
as
a
selectable
concept
in
a
particular
context.
These
abstract
codes
are
typically
used
as
a
grouping/searching
mechanism,
and
can
be
included
either
by
enumerating
them,
or
by
using
a
filter.
Any
compose.exclude
SHALL
be
processed
such
that
excluded
codes
are
not
found
in
the
expansion
4.9.6
Display
and
Designations
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:
The
system
that
defines
the
code
or
expression
doesn't
provide
a
display
for
this
code
(or
any
codes).
The
system
that
defines
the
code
or
expression
defines
multiple
choices
for
display.
The
system
provides
a
very
long
display
name
that
is
unnecessary
or
inappropriate
in
the
context
of
this
value
set
(e.g.
a
display
name
of
"Glucose
[Mass/volume]
in
Serum
or
Plasma
--10
PM
specimen"
for
LOINC
code
48991-4,
when
the
value
set
only
includes
Glucose
mass/vol
in
serum/plasma
codes).
As
the
display
names
get
longer,
this
becomes
more
important.
Note
that
care
must
be
taken
repeat
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
for
display
to
a
human
user.
The
display
in
the
Coding
specify
multiple
values
that
results
from
a
user
selecting
a
concept
from
the
expansion
must
all
be
taken
from
the
underlying
code
system
definition,
even
if
a
value
set
is
referenced
explicitly
in
the
Coding
(e.g.
by
an
extension
).
The
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
true
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
multipleOr:
It's
up
using
$lookup
,
or
to
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
whether
the
display,
a
concept
parameter
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.
4.9.7
Value
Sets
with
multiple
code
systems
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
values
(separated
by
the
included
codes
(e.g.
Data
missing
or
workflow
error
codes).
Best
Practice
Note:
Mixing
definitional
systems
offers
the
potential
for
confusing,
overlapping,
and
inconsistent
definitions.
Creating
value
sets
that
cross
code
systems
should
be
done
with
care
to
avoid
creating
definitional
confusion.
Value
sets
should
only
include
well
differentiated
concepts,
but
many
value
sets
and
code
systems
do
not
have
well
differentiated
concepts
because
of
various
real
world
constraints.
4.9.7.1
Code
systems
Note
Each
Code
System
defines
which
filters
can
comma)
where
at
least
one
must
be
used
in
ValueSet.compose.include.filter
.
All
code
systems
have
base
filters
and
any
additional
filters
defined
in
(
CodeSystem.filter)
.
This
specification
also
defines
filters
for
various
published
code
systems:
LOINC
Filters
true
Using
CT
Filters
RxNorm
Filters
UCUM
Filters
Using
Metathesaurus
Filters
CPT
Filters
NDF-RT
Filters
http://hl7.org/fhir/SearchParameter/CanonicalResource-publisher
4.9.8
Value
Set
Expansion
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.
Each
contained
code
can
include
nested
contained
codes
-
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:
If
the
value
set
already
has
an
expansion
(e.g.,
a
stored
expansion):
Check
that
the
parameters
associated
with
the
$expand
operation
are
consistent
with
the
parameters
recorded
in
the
expansion
If
the
parameters
are
inconsistent,
then
either
generate
a
new
expansion,
or,
if
there
is
no
definition
(
.compose
),
return
an
error
Additional
parameters
may
be
applied
to
an
existing
expansion
if
the
server
has
validated
that
the
result
will
be
the
same
as
if
the
expansion
was
generated
directly
from
the
value
set
definition
(e.g.
text
filter,
designations
included).
Otherwise:
For
each
compose.include
:
If
there
is
a
system,
identify
the
correct
version
of
the
code
system
,
and
then:
If
there
are
no
codes
or
filters,
add
every
code
in
the
code
system
to
the
result
set.
If
codes
are
listed,
check
that
they
are
valid,
and
check
their
active
status,
and
if
ok,
add
them
to
the
result
set
(the
parameters
to
the
$expand
operation
may
be
used
to
control
whether
active
codes
are
included).
If
any
filters
are
present,
process
them
in
order
(as
explained
above),
and
add
the
intersection
of
their
results
to
the
result
set.
For
each
valueSet
,
find
the
referenced
value
set
by
ValueSet.url,
expand
that
(e.g.,
using
the
$expand
operation:
GET
[base]/ValueSet/$expand$url=[compose.include.valueSet]),
and
add
it
to
the
result
set.
This
means
that
expansion
across
imports
is
a
recursive
process.
Add
the
intersection
of
the
result
set
from
the
system
and
the
result
sets
from
the
value
sets
to
the
expansion
For
each
compose.exclude
,
follow
the
same
process
as
for
compose.include
,
but
remove
any
codes
from
the
result
set,
instead
of
adding
them.
The
final
"result
set"
is
then
represented
in
expansion
.
Note
that
the
expansion
structure
search
parameter
is
inherently
ordered;
this
specification
does
not
fix
the
meaning
of
use
part
of
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.
common
search
parameter
CanonicalResource-publisher
4.9.8.1
Hierarchical
Expansions
Generated
Narrative:
SearchParameter
CanonicalResource-publisher
The
expansion
MAY
be
hierarchical
-
that
is,
it
may
have
contains
element
that
contain
their
own
sub-elements,
to
any
level
of
depth.
This
specification
does
not
fix
the
meaning
of
the
hierarchy:
there
is
no
implication
about
the
logical
relationship
between
the
nested
contain
elements,
and
the
structure
cannot
be
used
for
logical
inferencing.
The
structure
exists
to
provide
navigational
assistance
for
helping
human
users
to
locate
codes
in
the
expansion.
There
is
an
example
of
use
of
a
hierarchical
expansion
.
Note
that
the
CodeSystem
resource
and
ValueSet.compose
offer
no
direct
support
for
defining
hierarchies
and
groups;
applications
may
want
to
take
advantage
of
the
expand-rules
and
expand-group
extensions
as
an
implementation
feature.
An
expansion
may
include
entries
in
the
expansion
that
only
serve
an
arbitrary
grouping
purpose,
to
make
it
easier
for
a
human
to
use
the
list.
These
entries
have
no
system
or
code,
and
must
be
marked
as
abstract.
4.9.8.2
Uniqueness
of
Concepts
in
Expansions
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
same
concept
from
different
versions
of
a
code
system
in
the
same
expansion,
though
this
is
generally
confusing
for
users
and
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.
4.9.8.3
15.22.23
Expansion
Identifiers
publisher
It
is
important
that
expansions
be
identified
properly.
Any
value
set
definition
may
produce
an
infinite
number
of
expansions,
depending
on
the
operation
parameters.
Any
expansions
produced
must
be
clearly
identified
so
that
there
is
no
confusion.
The
following
rules
apply:
The
canonical
URL
for
the
expansion
is
the
same
as
the
value
set
it
was
expanded
from
Each
expansion
SHALL
have
a
unique
identifier
in
Parameter
ValueSet.expansion.identifier
publisher
:
string
The
result
of
an
$expand
operation
may
use
the
same
identifier
in
ValueSet.expansion.identifier
as
a
previous
expansion,
but
if
it
does,
the
canonical
representation
of
the
value
set
expansion
SHALL
be
identical
(e.g.
a
cached
response)
4.9.8.4
Expansion
Parameters
The
expansion
contains
a
set
of
parameters
in
ValueSet.expansion.parameter
that
record
what
controlled
the
expansion
process.
These
parameters
may
be
used
by
users
of
expanded
value
sets
to
check
whether
the
expansion
is
suitable
for
a
particular
purpose,
or
to
pick
the
correct
expansion.
The
server
decides
which
parameters
to
include
here,
but
at
a
minimum,
the
list
SHOULD
include
all
ExampleScenario
:
Name
of
the
parameters
that
affect
the
$expand
operation.
If
the
expansion
will
be
persisted
all
publisher
of
these
parameters
SHALL
be
included.
If
the
codeSystem
on
the
server
has
a
specified
version
then
this
version
SHALL
be
provided
as
a
parameter
in
the
expansion
(note
that
not
all
code
systems
have
a
version).
The
following
parameters
are
predefined
by
the
$expand
operation,
and
are
suitable
for
use
in
the
expansion
parameters:
example
scenario
filter
Resource
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:
using
left
matching
e.g.
"acut
ast"
allowing
for
wild
cards
such
as
%,
&,
?
searching
on
definition
as
well
as
display(s)
allowing
for
search
conditions
(and
/
or
/
exclusions)
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
ExampleScenario
date
The
date
for
which
the
expansion
should
be
generated.
if
a
date
is
provided,
it
means
that
the
server
should
use
the
value
set
/
code
system
definitions
as
they
were
on
the
given
date,
or
return
an
error
if
this
is
not
possible.
Normally,
the
date
is
the
current
conditions
(which
is
the
default
value)
but
under
some
circumstances,
systems
need
to
generate
an
expansion
as
it
would
have
been
in
the
past.
A
typical
example
of
this
would
be
where
code
selection
is
constrained
to
the
set
of
codes
that
were
available
when
the
patient
was
treated,
not
when
the
record
is
being
edited.
Note
that
which
date
is
appropriate
is
a
matter
for
implementation
policy.
Expression
offset
ExampleScenario.publisher
Paging
support
-
where
to
start
if
a
subset
is
desired
(default
=
0).
Offset
is
number
of
records
(not
number
of
pages)
count
Processing
Mode
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
Normal
includeDesignations
Multiples
Controls
multipleAnd:
It's
up
to
the
server
whether
concept
designations
are
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
included
or
excluded
in
value
set
expansions
designation
true
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
multipleOr:
It's
up
to
the
server
discretion
which
designations
to
return
includeDefinition
Controls
whether
the
value
set
definition
is
included
or
excluded
in
value
set
expansions
parameter
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
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
http://hl7.org/fhir/SearchParameter/CanonicalResource-status
Controls
whether
or
not
the
value
set
expansion
nests
codes
or
not
(i.e.
ValueSet.expansion.contains.contains)
excludeNotForUI
Controls
whether
or
not
the
value
set
expansion
This
search
parameter
is
assembled
for
a
user
interface
use
or
not.
Value
sets
intended
for
User
Interface
might
include
'abstract'
codes
or
have
nested
contains
with
items
with
no
code
or
abstract
=
true,
with
the
sole
purpose
of
helping
a
user
navigate
through
the
list
efficiently,
where
as
a
value
set
not
generated
for
UI
use
might
be
flat,
and
only
contain
the
selectable
codes
in
the
value
set.
The
exact
implications
part
of
'for
UI'
depend
on
the
code
system,
and
what
properties
it
exposes
for
a
terminology
server
to
use.
In
the
FHIR
Specification
itself,
the
value
set
expansions
are
generated
with
excludeNotForUI
=
false,
and
the
expansions
used
when
generated
schema
/
code
etc,
or
performing
validation,
are
all
excludeNotForUI
=
true.
common
search
parameter
CanonicalResource-status
excludePostCoordinated
Generated
Narrative:
SearchParameter
CanonicalResource-status
Controls
whether
or
not
the
value
set
expansion
includes
post
coordinated
codes
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
Parameter
system-version
status
:
token
Specifies
a
version
to
use
for
a
system,
if
the
value
set
does
not
specify
which
one
to
use.
ExampleScenario
:
The
format
is
current
status
of
the
same
as
a
canonical
URL:
[system]|[version]
-
e.g.
http://loinc.org|2.56
example
scenario
check-system-version
Resource
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
ExampleScenario
Expression
force-system-version
ExampleScenario.status
Edge
Case:
Specifies
a
version
to
use
for
a
system.
This
parameter
overrides
any
specified
version
in
the
value
set
(and
any
it
depends
on).
The
format
is
the
same
as
a
canonical
URL:
[system]|[version]
-
e.g.
http://loinc.org|2.56.
Note
that
this
has
obvious
safety
issues,
in
that
it
may
result
in
a
value
set
expansion
giving
a
different
list
of
codes
that
is
both
wrong
and
unsafe,
and
implementers
should
only
use
this
capability
reluctantly.
It
primarily
exists
to
deal
with
situations
where
specifications
have
fallen
into
decay
as
time
passes.
If
the
value
is
override,
the
version
used
SHALL
explicitly
be
represented
in
the
expansion
parameters
The
count
and
offset
parameters
are
important.
If
the
expansion
is
a
page
out
of
the
whole
expansion,
the
offset
and
count
parameters
SHALL
be
populated.
Clients
can
reliably
use
the
count/offset
parameters
to
determine
whether
the
whole
expansion
is
returned.
Other
parameters
that
servers
may
be
required
to
use:
[canonical]#CodeSystem.content
Processing
Mode
[content]
:
The
content
value
for
the
code
system
for
the
canonical
URL.
Applications
generating
expansions
SHALL
use
this
parameter
if
the
CodeSystem.content
value
is
"fragment"
or
"
Normal
[canonical1]#supplement
Multiples
[canonical2]
:
Indicates
that
the
specified
supplement
(canonical2)
contributed
multipleAnd:
It's
up
to
the
content
of
the
expansion
for
server
whether
the
code
system
canonical1
(by
influencing
selection,
or
providing
designations).
Applications
generating
expansions
SHALL
use
this
parameter
may
repeat
in
order
to
record
specify
multiple
values
that
a
supplement
was
used
during
the
expansion
process
must
all
be
true
Beyond
this,
servers
MAY
define
their
own
parameters,
though
Terminology
server
authors
are
requested
to
bring
additional
parameters
multipleOr:
It's
up
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
server
whether
the
expansion
process
if
further
transparency
is
required.
These
resources
parameter
can
contain
considerable
detail
about
the
various
inputs
to
the
process,
and
any
significant
decisions
have
multiple
values
(separated
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
comma)
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
least
one
must
be
provided]
true
4.9.8.5
Storing
Expansions
Whether
to
store
expanded
value
sets,
or
simply
to
store
their
definitions
and
expand
on
the
fly
is
a
matter
for
system
deployment.
Some
servers,
including
public
value
sets
servers,
only
store
expansions.
However,
any
system
that
stores
an
expansion
must
be
concerned
with
how
to
determine
whether
the
expansion
is
still
current,
and
this
requires
deep
knowledge
of
how
the
expansion
was
created.
A
system
with
a
dedicated
terminology
server
that
returns
expansions
on
demand
avoids
this
problem,
but
leaves
open
the
question
of
how
to
audit
the
specific
expansion
that
was
used
for
a
particular
case.
One
solution
to
this
is
to
use
a
dedicated
terminology
server,
and
have
the
clients
ask
for
expansions
on
demand
based
on
the
value
set
definitions,
and
for
the
server
to
store
(and
reuse
as
appropriate)
the
returned
expansion
(when
it
reuses
the
expansion,
ValueSet.expansion.identifier
will
be
the
same).
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
the
$expand
operation).
For
this
reason,
the
degree
to
which
part
of
the
common
search
parameter
is
supported
can
be
declared
in
the
Terminology
Capability
CanonicalResource-url
statement.
4.9.9
Combinations
of
.compose
and
.expansion
Generated
Narrative:
SearchParameter
CanonicalResource-url
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).
Both
.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.
Neither
.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).
4.9.10
15.22.25
Search
Parameters
url
Search
parameters
for
this
resource.
The
common
parameters
also
apply.
See
Searching
for
more
information
about
searching
in
REST,
messaging,
and
services.
Name
Type
Description
Expression
This
special
parameter
searches
for
codes
in
the
value
set.
See
additional
notes
on
the
ValueSet
resource
ValueSet.expansion.contains.code
|
ValueSet.compose.include.concept.code
context
TU
token
A
use
context
assigned
to
the
value
set
Expression
(ValueSet.useContext.value
as
CodeableConcept)
ExampleScenario.url
context-quantity
TU
quantity
A
quantity-
or
range-valued
use
context
assigned
to
the
value
set
(ValueSet.useContext.value
as
Quantity)
|
(ValueSet.useContext.value
as
Range)
Processing
Mode
Normal
context-type
TU
Multiples
token
A
type
of
use
context
assigned
multipleAnd:
It's
up
to
the
value
set
ValueSet.useContext.code
context-type-quantity
TU
composite
server
whether
the
parameter
may
repeat
in
order
to
specify
multiple
values
that
must
all
be
true
A
use
context
type
and
quantity-
or
range-based
value
assigned
multipleOr:
It's
up
to
the
value
set
On
ValueSet.useContext:
context-type:
code
context-quantity:
value.as(Quantity)
|
value.as(Range)
server
whether
the
parameter
can
have
multiple
values
(separated
by
comma)
where
at
least
one
must
be
true
context-type-value
TU
composite
A
use
context
type
and
value
assigned
to
the
value
set
On
ValueSet.useContext:
context-type:
code
context:
value.as(CodeableConcept)
date
TU
date
The
value
set
publication
date
ValueSet.date