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.
POST /ValueSetcontent-type:text/yamldescription:The gender of a person used for administrative purposes. 2compose:include: - system:http://hl7.org/fhir/administrative-genderexclude: - system:http://hl7.org/fhir/administrative-genderconcept: - code:other - code:unknownname:AdministrativeGender2experimental:trueresourceType:ValueSetstatus:draftid:administrative-gender2url:http://hl7.org/fhir/ValueSet/administrative-gender2immutable:true
description:The gender of a person used for administrative purposes. 2compose:exclude: - system:http://hl7.org/fhir/administrative-genderconcept: - code:other - code:unknowninclude: - system:http://hl7.org/fhir/administrative-gendername:AdministrativeGender2experimental:trueresourceType:ValueSetstatus:draftid:administrative-gender2url:http://hl7.org/fhir/ValueSet/administrative-gender2immutable:true
PUT /ValueSet/administrative-gender2description:The gender of a person used for administrative purposes. 2compose:include: - system:http://hl7.org/fhir/administrative-genderexclude: - system:http://hl7.org/fhir/administrative-genderconcept: - code:other - code:unknownname:AdministrativeGender2experimental:trueresourceType:ValueSetstatus:draftid:administrative-gender2url:http://hl7.org/fhir/ValueSet/administrative-gender2immutable:trueversion:3.3.2
description:The gender of a person used for administrative purposes. 2compose:exclude: - system:http://hl7.org/fhir/administrative-genderconcept: - code:other - code:unknowninclude: - system:http://hl7.org/fhir/administrative-gendername:AdministrativeGender2experimental:trueresourceType:ValueSetstatus:draftid:administrative-gender2url:http://hl7.org/fhir/ValueSet/administrative-gender2immutable:trueversion:3.3.2
GET /ValueSet/administrative-gender2
description:The gender of a person used for administrative purposes. 2compose:exclude: - system:http://hl7.org/fhir/administrative-genderconcept: - code:other - code:unknowninclude: - system:http://hl7.org/fhir/administrative-gendername:AdministrativeGender2experimental:trueresourceType:ValueSetstatus:draftid:administrative-gender2url:http://hl7.org/fhir/ValueSet/administrative-gender2immutable:trueversion: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.
POST /ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:sample-valueset-include-conceptstatus:draftcompose:include: - system:http://unitsofmeasure.orgconcept: - code:kgdisplay:kilogram - code:mdisplay:meter
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:sample-valueset-include-filterurl:http://hl7.org/fhir/ValueSet/sample-valueset-include-filterstatus:draftcompose:include: - system:http://hl7.org/fhir/contact-point-systemfilter: - {property:display,op:=,value:SMS}
expansion:timestamp:'2018-10-05T11:56:22Z'identifier:http://hl7.org/fhir/ValueSet/sample-valueset-include-filtercontains: - {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.
expansion:timestamp:'2018-10-05T12:13:23Z'identifier:http://hl7.org/fhir/ValueSet/sample-valueset-exclude-conceptcontains: - {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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:sample-valueset-exclude-filterurl:http://hl7.org/fhir/ValueSet/sample-valueset-exclude-filterstatus:draftcompose:include: - {system:'http://hl7.org/fhir/contact-point-system'}exclude: - system:http://hl7.org/fhir/contact-point-systemfilter: - {property:code,op:=,value:'\w{3}'}
expansion:timestamp:'2018-10-05T14:59:15Z'identifier:http://hl7.org/fhir/ValueSet/sample-valueset-exclude-filtercontains: - {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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-from-valueseturl:http://hl7.org/fhir/ValueSet/valueset-from-valuesetstatus:draftcompose:include: - valueSet: ['http://hl7.org/fhir/ValueSet/administrative-gender']
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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-exclude-valueseturl:http://hl7.org/fhir/ValueSet/valueset-exclude-valuesetstatus:draftcompose:include: - {system:'http://hl7.org/fhir/administrative-gender'}exclude: - valueSet: ['{{base}}/ValueSet/administrative-gender2']
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:
In the examples below we will use the goal-status code system which consists of :
Equals
Let's include only concepts with the specified property code equals the provided value cancelled. The result will include only one concept: cancelled.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-equalsurl:http://hl7.org/fhir/ValueSet/valueset-filter-equalsstatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {property:code,op:=,value:cancelled}
expansion:timestamp:'2018-10-08T12:26:56Z'identifier:http://hl7.org/fhir/ValueSet/valueset-filter-equalscontains: - {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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-is-aurl:http://hl7.org/fhir/ValueSet/valueset-filter-is-astatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {property:code,op:is-a,value:in-progress}
expansion:timestamp:'2018-10-08T12:56:36Z'identifier:http://hl7.org/fhir/ValueSet/valueset-filter-is-acontains: - code:in-progressmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:In Progresshierarchy: [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-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:On Targethierarchy: [accepted,in-progress]definition:The goal is on schedule for the planned timelines - code:ahead-of-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Ahead of Targethierarchy: [accepted,in-progress]definition:The goal is ahead of the planned timelines - code:behind-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Behind Targethierarchy: [accepted,in-progress]definition:The goal is behind the planned timelines - code:sustainingmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Sustaininghierarchy: [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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-descendent-ofurl:http://hl7.org/fhir/ValueSet/valueset-filter-descendent-ofstatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {property:code,op:descendent-of,value:in-progress}
expansion:timestamp:'2018-10-08T13:02:33Z'identifier:http://hl7.org/fhir/ValueSet/valueset-filter-descendent-ofcontains: - code:on-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:On Targethierarchy: [accepted,in-progress]definition:The goal is on schedule for the planned timelines - code:ahead-of-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Ahead of Targethierarchy: [accepted,in-progress]definition:The goal is ahead of the planned timelines - code:behind-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Behind Targethierarchy: [accepted,in-progress]definition:The goal is behind the planned timelines - code:sustainingmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Sustaininghierarchy: [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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-is-not-aurl:http://hl7.org/fhir/ValueSet/valueset-filter-is-not-astatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {property:code,op:is-not-a,value:accepted}
expansion:timestamp:'2018-10-10T13:44:22Z'identifier:http://localhost:8888/ValueSet/valueset-filter-is-not-acontains: - {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}
...
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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-equalsurl:http://hl7.org/fhir/ValueSet/valueset-filter-equalsstatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {property:code,op:regex,value:'\w{8}'}
expansion:timestamp:'2018-10-08T13:32:27Z'identifier:http://hl7.org/fhir/ValueSet/valueset-filter-equalscontains: - {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:achievedmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Achievedhierarchy: [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.
POST {{base}}/ValueSet/$expandcontent-type:text/yamlresourceType:Parametersparameter:- name:valueSetresource:resourceType:ValueSetid:valueset-filter-inurl:http://hl7.org/fhir/ValueSet/valueset-filter-instatus:draftcompose:include: - system:http://hl7.org/fhir/goal-statusfilter: - {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-incontains: - code:on-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:On Targethierarchy: [accepted,in-progress]definition:The goal is on schedule for the planned timelines - code:ahead-of-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Ahead of Targethierarchy: [accepted,in-progress]definition:The goal is ahead of the planned timelines - code:behind-targetmodule:fhir-3.3.0system:http://hl7.org/fhir/goal-statusdisplay:Behind Targethierarchy: [accepted,in-progress]