This
page
is
part
of
the
FHIR
Specification
(v1.0.2:
DSTU
(v3.0.2:
STU
2).
3).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
R3
R2
| Vocabulary Work Group | Maturity Level : N/A | Ballot Status : Informative | Compartments : Not linked to any defined compartments |
This is the narrative for the resource. See also the XML or JSON format.
OPERATION: Value Set Expansion
The official URL for this operation definition is:
http://hl7.org/fhir/OperationDefinition/ValueSet-expand
The definition of a value set is used to create a simple collection of codes suitable for use for data entry or validation. If the operation is not called at the instance level, one of the in parameters identifier, context or valueset must be provided. An expanded value set will be returned, or an OperationOutcome with an error message.
URL: [base]/ValueSet/$expand
URL: [base]/ValueSet/[id]/$expand
Parameters
| Use | Name | Cardinality | Type | Binding | Documentation |
| IN |
|
0..1 | uri |
A
|
|
| IN | valueSet | 0..1 | ValueSet |
The value set is provided directly as part of the request. Servers may choose not to accept value sets in this fashion |
|
| IN | context | 0..1 | uri |
The
context
of
the
value
set,
so
that
the
server
can
resolve
this
to
a
value
set
to
expand.
The
recommended
format
for
this
URI
is
[Structure
Definition
URL]#[name
or
path
into
structure
definition]
e.g.
http://hl7.org/fhir/StructureDefinition/observation-hspc-height-hspcheight#Observation.interpretation.
Other
forms
may
be
used
but
are
not
defined.
This
form
is
only
|
|
| IN | filter | 0..1 | string |
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 |
|
| IN | profile | 0..1 | uri |
A reference to an external definition that provides additional control information about how the expansion is performed. At this time, there is no agreed format or functionality for the target of this URI. The VSAC Documentation provides one example of the use of this parameter. Implementers using this element will need to agree on an appropriate mechanism for use within their interoperability community. Known uses for profile include: * whether to return the value set content logical definition with the expansion * whether to include inactive concepts |
|
| IN | date | 0..1 | dateTime |
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. |
|
| IN | offset | 0..1 | integer |
Paging
support
-
where
to
start
if
a
subset
is
desired
(default
=
|
|
| IN | count | 0..1 | integer |
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 |
|
| IN | includeDesignations | 0..1 | boolean | Controls whether concept designations are to be included or excluded in value set expansions. Overrides the value in the expansion profile if there is one | |
| IN | includeDefinition | 0..1 | boolean | Controls whether the value set definition is included or excluded in value set expansions. Overrides the value in the expansion profile if there is one | |
| IN | activeOnly | 0..1 | boolean | Controls whether inactive concepts are included or excluded in value set expansions. Overrides the value in the expansion profile if there is one. 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 | |
| IN | excludeNested | 0..1 | boolean | Controls whether or not the value set expansion nests codes or not (i.e. ValueSet.expansion.contains.contains). Overrides the value in the expansion profile if there is one | |
| IN | excludeNotForUI | 0..1 | boolean | Controls whether or not the value set expansion includes codes which cannot be displayed in user interfaces. Overrides the value in the expansion profile if there is one | |
| IN | excludePostCoordinated | 0..1 | boolean | Controls whether or not the value set expansion includes post coordinated codes. Overrides the value in the expansion profile if there is one | |
| IN | displayLanguage | 0..1 | code | Specifies the language to be used for description in the expansions i.e. the language to be used for ValueSet.expansion.contains.display. Overrides the value in the expansion profile if there is one | |
| IN | limitedExpansion | 0..1 | boolean | If the value set being expanded is incomplete (because it is too big to expand), return a limited expansion (a subset) with an indicator that expansion is incomplete. Overrides the value in the expansion profile if there is one | |
| OUT | return | 1..1 | ValueSet |
The result of the expansion |
The
value
set
expansion
returned
by
this
query
should
be
treated
as
a
transient
result
that
will
change
over
time
(whether
it
does
or
not
depends
on
how
the
value
set
is
specified),
so
applications
should
repeat
the
operation
each
time
the
value
set
is
used.
If
the
expansion
is
too
large
(at
the
discretion
of
the
server),
the
server
will
return
an
error
(OperationOutcome
with
code
too-costly).
Clients
can
work
through
large
flat
expansions
in
a
set
of
pages
(partial
views
of
the
full
expansion)
instead
of
just
getting
the
full
expansion
in
a
single
exchange
by
using
offset
and
count
parameters.
Servers
are
not
obliged
to
support
paging,
but
if
they
do,
SHALL
support
both
the
offset
and
count
parameters.
Hierarchical
expansions
are
not
subject
to
paging
and
servers
simply
return
the
entire
expansion.
Different
servers
may
return
different
results
from
expanding
a
value
set
for
the
following
reasons:
*
When a server cannot correctly expand a value set because it does not fully understand the code systems (e.g. it has the wrong version, or incomplete definitions) then it SHALL return an error. If the value set itself is unbounded due to the inclusion of post-coordinated value sets (e.g. SNOMED CT, UCUM), then the extension http://hl7.org/fhir/StructureDefinition/valueset-unclosed can be used to indicate that the expansion is incomplete
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.