Documentation Templates and Rules
1.1.0-ballot - STU 1.1 US

This page is part of the Documentation Templates and Rules (v1.1.0-ballot: STU 1.1 Ballot 1) based on FHIR R4. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions

Value Set and Code System Guidance

The table below is guidance that SHOULD be used when using values sets and code systems in DTR. This can also be considered a best practice.

CQL and Questionnaire terminology usage Comment
1 No value set, embed the codes. This is OK if there is no need to reuse the codes.
2 Pass a value set in the package with the expansion already in place. You've got the value set in-line with an expansion if the set of the codes is reasonably small. So, no need for a terminology service.
3 Pass value set in place, but recipient needs to run the expansion or ask a terminology server to do the expansion. You've got a composed value set, but no expansion (probably because the value set is too large to embed/expand inline). So, you need to ask a terminology service to find out what the set of codes are. By providing the filters to limit the size of codes returned for the value sets.
4 Value set reference and recipient need to retrieve the value set and run expand or invoke a terminology server somewhere else to run the expansion. You don't have the value set (e.g., probably because of licensing issues) - you need to look for it on a registry/terminology server, resolve the canonical URL to retrieve it, then cache the value set(s) if allowed by the code system(s). Also, once you get the value set, you might still need to expand it like scenario (3) above.

Note: According to the ValueSet Identification, it is common practice to copy (cache) value sets locally, most references to value sets use the canonical URL.