Aidbox
Search
⌃K

ValueSet

Overview

The ValueSet resource official FHIR documentation can be found here: https://www.hl7.org/fhir/valueset.html.
All examples below can be executed in the REST Console of your Box in Aidbox.Cloud. Just copy/paste a sample into the REST Console and click the EXECUTE button or press Ctrl+Enter.

CRUD

CRUD is fully supported for the ValueSet resource in Aidbox.
Create
Response
Update
Response
Read
Response
Delete
POST /ValueSet
content-type: text/yaml
description: The gender of a person used for administrative purposes. 2
compose:
include:
- system: http://hl7.org/fhir/administrative-gender
exclude:
- system: http://hl7.org/fhir/administrative-gender
concept:
- code: other
- code: unknown
name: AdministrativeGender2
experimental: true
resourceType: ValueSet
status: draft
id: administrative-gender2
url: http://hl7.org/fhir/ValueSet/administrative-gender2
immutable: true
description: The gender of a person used for administrative purposes. 2
compose:
exclude:
- system: http://hl7.org/fhir/administrative-gender
concept:
- code: other
- code: unknown
include:
- system: http://hl7.org/fhir/administrative-gender
name: AdministrativeGender2
experimental: true
resourceType: ValueSet
status: draft
id: administrative-gender2
url: http://hl7.org/fhir/ValueSet/administrative-gender2
immutable: true
PUT /ValueSet/administrative-gender2
description: The gender of a person used for administrative purposes. 2
compose:
include:
- system: http://hl7.org/fhir/administrative-gender
exclude:
- system: http://hl7.org/fhir/administrative-gender
concept:
- code: other
- code: unknown
name: AdministrativeGender2
experimental: true
resourceType: ValueSet
status: draft
id: administrative-gender2
url: http://hl7.org/fhir/ValueSet/administrative-gender2
immutable: true
version: 3.3.2
description: The gender of a person used for administrative purposes. 2
compose:
exclude:
- system: http://hl7.org/fhir/administrative-gender
concept:
- code: other
- code: unknown
include:
- system: http://hl7.org/fhir/administrative-gender
name: AdministrativeGender2
experimental: true
resourceType: ValueSet
status: draft
id: administrative-gender2
url: http://hl7.org/fhir/ValueSet/administrative-gender2
immutable: true
version: 3.3.2
GET /ValueSet/administrative-gender2
description: The gender of a person used for administrative purposes. 2
compose:
exclude:
- system: http://hl7.org/fhir/administrative-gender
concept:
- code: other
- code: unknown
include:
- system: http://hl7.org/fhir/administrative-gender
name: AdministrativeGender2
experimental: true
resourceType: ValueSet
status: draft
id: administrative-gender2
url: http://hl7.org/fhir/ValueSet/administrative-gender2
immutable: true
version: 3.3.2
DELETE /ValueSet/administrative-gender2

ValueSet Compose Parameters

We will show examples of using the compose element by expanding different value sets.

include.concept

Create a ValueSet using the include.concept element. The result will include only listed concepts: kg and m.
Request
Response
POST /ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: sample-valueset-include-concept
status: draft
compose:
include:
- system: http://unitsofmeasure.org
concept:
- code: kg
display: kilogram
- code: m
display: meter
resourceType: ValueSet
id: sample-valueset-include-concept
status: draft
compose:
include:
- system: http://unitsofmeasure.org
concept:
- code: kg
display: kilogram
- code: m
display: meter
expansion:
timestamp: '2018-10-25T14:40:09Z'
identifier:
contains:
- code: kg
system: http://unitsofmeasure.org
display: kilogram
- code: m
system: http://unitsofmeasure.org
display: meter

include.filter

Create a ValueSet using the include.filter element.
Include all concepts from the http://hl7.org/fhir/contact-point-system system where display = "SMS".
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: sample-valueset-include-filter
url: http://hl7.org/fhir/ValueSet/sample-valueset-include-filter
status: draft
compose:
include:
- system: http://hl7.org/fhir/contact-point-system
filter:
- {property: display, op: =, value: SMS}
expansion:
timestamp: '2018-10-05T11:56:22Z'
identifier: http://hl7.org/fhir/ValueSet/sample-valueset-include-filter
contains:
- {code: sms, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: SMS, definition: 'A contact that can be used for sending an sms message (e.g. mobile phones, some landlines)'}
...

exclude.concept

Create a ValueSet using the exclude.concept element.
Include all concepts from the http://hl7.org/fhir/contact-point-system system and exclude concepts pager, url, and other. Now the value set should include only values phone, fax, email, and sms.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: sample-valueset-exclude-concept
url: http://hl7.org/fhir/ValueSet/sample-valueset-exclude-concept
status: draft
compose:
include:
- {system: 'http://hl7.org/fhir/contact-point-system'}
exclude:
- concept:
- {code: pager}
- {code: other}
- {code: url}
system: http://hl7.org/fhir/contact-point-system
expansion:
timestamp: '2018-10-05T12:13:23Z'
identifier: http://hl7.org/fhir/ValueSet/sample-valueset-exclude-concept
contains:
- {code: phone, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Phone, definition: The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.}
- {code: fax, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Fax, definition: The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.}
- {code: email, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Email, definition: The value is an email address.}
- {code: sms, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: SMS, definition: 'A contact that can be used for sending an sms message (e.g. mobile phones, some landlines)'}
...

exclude.filter

Create a ValueSet using the exclude.filter element.
Include all concepts from the http://hl7.org/fhir/contact-point-system code system and exclude concepts by the filter: exclude all concepts with the length of code = 3 (sms, fax, url). So the value set should include only values: phone, email, pager, and other.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: sample-valueset-exclude-filter
url: http://hl7.org/fhir/ValueSet/sample-valueset-exclude-filter
status: draft
compose:
include:
- {system: 'http://hl7.org/fhir/contact-point-system'}
exclude:
- system: http://hl7.org/fhir/contact-point-system
filter:
- {property: code, op: =, value: '\w{3}'}
expansion:
timestamp: '2018-10-05T14:59:15Z'
identifier: http://hl7.org/fhir/ValueSet/sample-valueset-exclude-filter
contains:
- {code: phone, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Phone, definition: The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.}
- {code: email, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Email, definition: The value is an email address.}
- {code: pager, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Pager, definition: The value is a pager number. These may be local pager numbers that are only usable on a particular pager system.}
- {code: other, module: fhir-3.3.0, system: 'http://hl7.org/fhir/contact-point-system', display: Other, definition: 'A contact that is not a phone, fax, page or email address and is not expressible as a URL. E.g. Internal mail address. This SHOULD NOT be used for contacts that are expressible as a URL (e.g. Skype, Twitter, Facebook, etc.) Extensions may be used to distinguish "other" contact types.'}
...

include.valueSet

Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.
concept and filter don't apply to valueSet.
N/B: ValueSet.compose.include.valueSet **** should be an array not a string.
Let's include the administrative-gender value set. There will be 4 concepts: male, female, unknown, and other.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-from-valueset
url: http://hl7.org/fhir/ValueSet/valueset-from-valueset
status: draft
compose:
include:
- valueSet: ['http://hl7.org/fhir/ValueSet/administrative-gender']
expansion:
timestamp: '2018-10-09T11:34:26Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-from-valueset
contains:
- {code: male, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Male, definition: Male}
- {code: female, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Female, definition: Female}
- {code: other, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Other, definition: Other}
- {code: unknown, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Unknown, definition: Unknown}
...

exclude.valueSet

Let's exclude administrative-gender2 which consists of male and female from administrative-gender code system. The result will be 2 values: other and unknown.
Request
Untitled
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-exclude-valueset
url: http://hl7.org/fhir/ValueSet/valueset-exclude-valueset
status: draft
compose:
include:
- {system: 'http://hl7.org/fhir/administrative-gender'}
exclude:
- valueSet: ['{{base}}/ValueSet/administrative-gender2']
expansion:
timestamp: '2018-10-09T13:20:38Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-exclude-valueset
contains:
- {code: other, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Other, definition: Other}
- {code: unknown, module: fhir-3.3.0, system: 'http://hl7.org/fhir/administrative-gender', display: Unknown, definition: Unknown}
...

Filter Operations

The filter.op element defines the kind of operation to perform as a part of the filter criteria. It can take one of the following values:
Code
Display
Support
=
Equals
Supported
is-a
Is A (by subsumption)
Supported
descendent-of
Descendent Of (by subsumption)
Supported
is-not-a
Not (Is A) (by subsumption)
Supported
regex
Regular Expression
Supported
in
In Set
Supported
not-in
Not in Set
Supported
generalizes
Generalizes (by Subsumption)
Not supported
exists
Exists
Supported
In the examples below we will use the goal-status code system which consists of :
Code
Parent codes
accepted
-
achieved
["accepted"]
ahead-of-target
["accepted", "in-progress"]
behind-target
["accepted", "in-progress"]
cancelled
-
entered-in-error
-
in-progress
["accepted"]
on-hold
["accepted"]
on-target
["accepted", "in-progress"]
planned
["accepted"]
proposed
-
rejected
-
sustaining
["accepted", "in-progress"]

Equals

Let's include only concepts with the specified property code equals the provided value cancelled. The result will include only one concept: cancelled.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-equals
url: http://hl7.org/fhir/ValueSet/valueset-filter-equals
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: =, value: cancelled}
expansion:
timestamp: '2018-10-08T12:26:56Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-filter-equals
contains:
- {code: cancelled, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Cancelled, definition: The previously accepted goal is no longer being sought}
...

Is A (by subsumption)

Let's include all concepts that have a transitive is-a relationship with the concept code in-progress provided as the value including the provided concept itself (i.e. include self and child codes). The result will include 5 values: in-progress, on-target, ahead-of-target, behind-target, and sustaining.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-is-a
url: http://hl7.org/fhir/ValueSet/valueset-filter-is-a
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: is-a, value: in-progress}
expansion:
timestamp: '2018-10-08T12:56:36Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-filter-is-a
contains:
- code: in-progress
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: In Progress
hierarchy: [accepted]
definition: The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)
- code: on-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: On Target
hierarchy: [accepted, in-progress]
definition: The goal is on schedule for the planned timelines
- code: ahead-of-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Ahead of Target
hierarchy: [accepted, in-progress]
definition: The goal is ahead of the planned timelines
- code: behind-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Behind Target
hierarchy: [accepted, in-progress]
definition: The goal is behind the planned timelines
- code: sustaining
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Sustaining
hierarchy: [accepted, in-progress]
definition: The goal has been met, but ongoing activity is needed to sustain the goal objective
...

Descendent Of (by subsumption)

Let's include all concepts that have a transitive is-a relationship with the concept code in-progress provided as the value excluding the provided concept itself (i.e. include child codes). The result will include 4 values: on-target, ahead-of-target, behind-target, and sustaining.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-descendent-of
url: http://hl7.org/fhir/ValueSet/valueset-filter-descendent-of
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: descendent-of, value: in-progress}
expansion:
timestamp: '2018-10-08T13:02:33Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-filter-descendent-of
contains:
- code: on-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: On Target
hierarchy: [accepted, in-progress]
definition: The goal is on schedule for the planned timelines
- code: ahead-of-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Ahead of Target
hierarchy: [accepted, in-progress]
definition: The goal is ahead of the planned timelines
- code: behind-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Behind Target
hierarchy: [accepted, in-progress]
definition: The goal is behind the planned timelines
- code: sustaining
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Sustaining
hierarchy: [accepted, in-progress]
definition: The goal has been met, but ongoing activity is needed to sustain the goal objective
...

Not (Is A) (by subsumption)

Let's include all codes where the specified property of the code does not have an is-a relationship with the provided value accepted. The result will include 4 values whose parent is not accepted: proposed, cancelled, rejected, and entered-in-error.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-is-not-a
url: http://hl7.org/fhir/ValueSet/valueset-filter-is-not-a
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: is-not-a, value: accepted}
expansion:
timestamp: '2018-10-10T13:44:22Z'
identifier: http://localhost:8888/ValueSet/valueset-filter-is-not-a
contains:
- {code: proposed, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Proposed, definition: A goal is proposed for this patient}
- {code: cancelled, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Cancelled, definition: The previously accepted goal is no longer being sought}
- {code: entered-in-error, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Entered In Error, definition: The goal was entered in error and voided.}
- {code: rejected, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Rejected, definition: A proposed goal was rejected}
...

Regular Expression

Aidbox supports filter operation regex and implements Postgresql regular expressions. See the documentation here: https://www.postgresql.org/docs/9.3/static/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP.
Please notice that regular expressions require an additional character escaping in JSON.
Let's include codes where the specified property of the code matches the regex specified in the provided value \\w{8}. The result will include 4 values that have 8 symbols in length: proposed, accepted, achieved, and rejected.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-equals
url: http://hl7.org/fhir/ValueSet/valueset-filter-equals
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: regex, value: '\w{8}'}
expansion:
timestamp: '2018-10-08T13:32:27Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-filter-equals
contains:
- {code: proposed, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Proposed, definition: A goal is proposed for this patient}
- {code: accepted, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Accepted, definition: A proposed goal was accepted or acknowledged}
- code: achieved
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Achieved
hierarchy: [accepted]
definition: The goal has been met and no further action is needed
- {code: rejected, module: fhir-3.3.0, system: 'http://hl7.org/fhir/goal-status', display: Rejected, definition: A proposed goal was rejected}
...

In Set

Let's include concepts where the specified property of the code is in the set of codes specified in the provided value on-target,ahead-of-target,behind-target (comma separated list). The result will be 3 values: on-target, ahead-of-target, and behind-target.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-in
url: http://hl7.org/fhir/ValueSet/valueset-filter-in
status: draft
compose:
include:
- system: http://hl7.org/fhir/goal-status
filter:
- {property: code, op: in, value: 'on-target,ahead-of-target,behind-target'}
expansion:
timestamp: '2018-10-08T13:49:22Z'
identifier: http://hl7.org/fhir/ValueSet/valueset-filter-in
contains:
- code: on-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: On Target
hierarchy: [accepted, in-progress]
definition: The goal is on schedule for the planned timelines
- code: ahead-of-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Ahead of Target
hierarchy: [accepted, in-progress]
definition: The goal is ahead of the planned timelines
- code: behind-target
module: fhir-3.3.0
system: http://hl7.org/fhir/goal-status
display: Behind Target
hierarchy: [accepted, in-progress]
definition: The goal is behind the planned timelines
...

Not in Set

Let's include concepts where the specified property of the code is not in the set of codes specified in the provided value accepted,achieved,ahead-of-target,behind-target,cancelled,entered-in-error,in-progress,on-hold,on-target,planned (comma separated list). The result will include 3 values: proposed, rejected, and sustaining.
Request
Response
POST {{base}}/ValueSet/$expand
content-type: text/yaml
resourceType: Parameters
parameter:
- name: valueSet
resource:
resourceType: ValueSet
id: valueset-filter-not-in