This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
STU
3).
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:
|
|
Compartments
:
|
This
is
the
narrative
for
the
resource.
See
also
the
XML
or
,
JSON
or
Turtle
format.
Note that this is the formal definition for the expand operation as an OperationDefinition on ValueSet. See the Operation documentation
OPERATION:
Value
Set
Expansion
Generated
Narrative:
OperationDefinition
ValueSet-expand
The
official
URL
for
this
operation
definition
is:
URL: [base]/ValueSet/$expand
URL: [base]/ValueSet/[id]/$expand
| Use | Name | Scope | Cardinality | Type | Binding | Documentation |
| IN | url | type | 0..1 | uri |
A
reference
to
the
canonical
|
|
| IN | valueSet | type | 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 | valueSetVersion | type | 0..1 | string | The identifier that is used to identify a specific version of the value set to be used when generating the expansion. 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. | |
| 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
usable
if
the
terminology
server
also
has
access
to
the
|
||
| IN | contextDirection | 0..1 | code | If a context is provided, a context direction may also be provided. Valid values are:
The purpose is to inform the server whether to use the value set associated with the context for reading or writing purposes (note: for most elements, this is the same value set, but there are a few elements where the reading and writing value sets are different) |
||
| 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
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 |
||
| IN |
|
|
|
code |
|
|
| 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 = 0). Offset is number of records (not number of pages) |
||
| 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
| ||
| IN | designation | 0..* | string |
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
|
||
| IN | includeDefinition | 0..1 | boolean |
Controls
whether
the
value
set
definition
is
included
or
excluded
in
value
set
expansions.
|
||
| IN | activeOnly | 0..1 | boolean |
Controls
whether
inactive
concepts
are
included
or
excluded
in
value
set
expansions.
|
||
| IN | useSupplement | 0..* | canonical | The supplement must be used when performing an expansion. Use of this parameter should result in $expand behaving the same way as if the supplements were included in the value set definition using the http://hl7.org/fhir/StructureDefinition/valueset-supplement | ||
| IN | excludeNested | 0..1 | boolean |
Controls
whether
or
not
the
value
set
expansion
|
||
| IN | excludeNotForUI | 0..1 | boolean |
Controls
whether
or
not
the
value
set
expansion
One
purpose
of
such
concepts
is
helping
a
user
|
||
| IN | excludePostCoordinated | 0..1 | boolean |
Controls
whether
or
not
the
value
set
expansion
includes
post
coordinated
|
||
| IN | displayLanguage | 0..1 | code |
Specifies
the
language
to
be
used
for
description
in
the
expansions
i.e.
the
language
to
be
used
for
| ||
| IN | property | 0..* | string |
A
request
to
return
a
particular
property
in
the
expansion.
The
returned
property
may
include
subproperties.
May
be
either
a
code
from
the
code
system
definition
(convenient)
or
a
the
formal
URI
that
refers
to
the
property.
Note
that
property
names
can
clash,
so
using
a
URI
is
recommended.
The
special
value
| ||
| IN | handle-unclosed-expansion | 0..1 | boolean |
If
true
this
asserts
that
you
will
correctly
handle
an
unclosed
expansion
and
the
returned
expansion
|
||
| IN | exclude-system | 0..* | canonical | 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 | ||
| IN | system-version |
| canonical |
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 | 0..* | canonical |
Edge
Case:
Specifies
a
version
to
use
for
a
system.
If
| ||
| IN | force-system-version | 0..* | canonical |
Edge
Case:
Specifies
a
version
to
| ||
| IN | default-valueset-version | 0..* | canonical | Specifies a version to use for a valueset, if the reference to the value set does not specify which version to use. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets | ||
| IN | check-valueset-version | 0..* | canonical |
Edge
Case:
Specifies
a
version
to
use
for
a
valueset.
If
a
reference
to
a
value
set
specifies
a
different
version,
an
| ||
| IN | force-valueset-version | 0..* | canonical |
Edge
Case:
Specifies
a
version
to
use
for
a
valueset.
This
parameter
overrides
any
specified
version
in
the
reference
to
the
value
set
(and
any
it
depends
on).
The
format
is
the
same
as
a
canonical
URL:
[system]|[version]
-
e.g.
http://example.org/ValueSet/example|1.0.0.
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
|
||
| IN | manifest | 0..1 | canonical ( Library ) |
Specifies an library that provides expansion rules for the operation. The library has an extension expansionParameters that references a contained Parameters resource that contains additional $expand parameters. See the [CRMI specification description of manifests]https://hl7.org/fhir/uv/crmi/STU1/StructureDefinition-crmi-manifestlibrary.html) and CRMI expansion rules for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in an $expand operation override behaviors specified by the manifest parameter. | ||
|
| tx-resource | 0..* | Resource | One or more additional resources that are referred to from the value set provided with the $expand or $validate-code invocation. These may be additional value sets or code systems that the client believes will or may be necessary to perform the operation. Resources provided in this fashion are used preferentially to those known to the system, though servers may return an error if these resources are already known to the server (by URL and version) but differ from that information on the server. |
||
| OUT | return | 1..1 | ValueSet |
The result of the expansion. Servers generating expansions SHOULD ensure that all the parameters that affect the contents of the expansion are recorded in the ValueSet.expansion.parameter list |
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.
When available, ValueSet.status and ValueSet.version from the ValueSet resource instance which contains the definition SHALL be persisted to the ValueSet resource instance which contains the expansion.
If
the
expansion
is
too
large
(at
the
discretion
of
the
server),
the
server
will
MAY
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.
parameters,
or
use
the
count
parameter
to
request
a
subset
of
the
expansion
for
limited
purposes.
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.