description: Base StructureDefinition for ValueSet Resource package_name: hl7.fhir.r2b.core derivation: specialization name: ValueSet type: null elements: description: isModifier: false short: Human language description of the value set index: 12 comments: The description is not intended to describe the semantics of the Value Set - there are no intrinsic semantics separate from the codes contained in its expansion. The description should capture its intended use, which is needed for ensuring integrity for its use in models across future changes. A description should be provided unless the value set is a contained resource (e.g. an anonymous value set in a profile). Most registries will require a description. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.description} isSummary: true compose: constraint: vsd-1: {human: A value set composition SHALL have an include or an import, severity: error, expression: include.exists() or import.exists()} isModifier: false short: When value set includes codes from elsewhere index: 18 type: BackboneElement mustSupport: false elements: import: isModifier: false short: Import the contents of another value set index: 19 comments: The value set URI is either a logical reference to a defined value set such as a [SNOMED CT reference set]{snomedct.html#implicit}, or a direct reference to a value set definition using ValueSet.url. The reference may also not reference an actual FHIR ValueSet resource; in this case, whatever is referenced is an implicit definition of a value set that needs to be clear about how versions are resolved. type: uri mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.import} isSummary: true include: constraint: vsd-11: {human: Cannot have both concept and filter, severity: error, expression: concept.empty() or filter.empty()} isModifier: false short: Include one or more codes from a code system index: 20 comments: If there are no codes or filters, the entire code system is included. Note that the set of codes that are included may contain abstract codes. type: BackboneElement mustSupport: false array: true elements: system: isModifier: false short: The system the codes come from index: 21 comments: See ''Coding.system'' for further documentation. type: uri mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.system} isSummary: true version: isModifier: false short: Specific version of the code system referred to index: 22 comments: This is used when selecting the descendants of a concept - they may change between versions. If no version is specified, then the exact contents of the value set may not be known until a context of use binds it to a particular version. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.version} isSummary: true concept: isModifier: false short: A concept defined in the system index: 23 comments: The list of concepts is considered ordered, though the order may not have any particular significance. Typically, the order of an expansion follows that defined in the compose element. type: BackboneElement mustSupport: false array: true elements: code: isModifier: false short: Code or expression from system index: 24 comments: Expressions are allowed if defined by the underlying code system. type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.concept.code} isSummary: false display: isModifier: false short: Test to display for this code for this value set index: 25 comments: The value set resource allows for an alternative display to be specified for when this concept is used in this particular value set. See notes in the value set narrative about the correct use of this element. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.concept.display} isSummary: false designation: isModifier: false short: Additional representations for this valueset index: 26 type: BackboneElement mustSupport: false array: true elements: language: isModifier: false short: Human language of the designation index: 27 comments: In the absence of a language, the resource language applies. type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.concept.designation.language} isSummary: false use: isModifier: false short: Details how this designation would be used index: 28 comments: If no use is provided, the designation can be assumed to be suitable for general display to a human user. type: Coding mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.concept.designation.use} isSummary: false value: isModifier: false short: The text value for this designation index: 29 type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.concept.designation.value} isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.include.concept.designation} required: [value] isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.include.concept} required: [code] isSummary: false filter: isModifier: false short: Select codes/concepts by their properties (including relationships) index: 30 comments: Selecting codes by specifying filters based on properties is only possible where the underlying code system defines appropriate properties. Note that in some cases, the underlying code system defines the logical concepts but not the literal codes for the concepts. In such cases, the literal definitions may be provided by a third party. type: BackboneElement mustSupport: false array: true elements: property: isModifier: false short: A property defined by the code system index: 31 type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.filter.property} isSummary: false op: isModifier: false short: = | is-a | is-not-a | regex | in | not-in index: 32 type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.filter.op} isSummary: false value: isModifier: false short: Code from the system, or regex criteria index: 33 comments: Use regex matching with care - full regex matching on every SNOMED CT term is prohibitive, for example. type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose.include.filter.value} isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.include.filter} required: [value, property, op] isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.include} required: [system] isSummary: true exclude: elementReference: ['http://hl7.org/fhir/StructureDefinition/ValueSet'] isModifier: false short: Explicitly exclude codes index: 34 comments: Usually this is used to selectively exclude codes that were included by subsumption in the inclusions. Any display names specified for the codes are ignored. mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.compose.exclude} isSummary: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.compose} isSummary: false requirements: isModifier: false short: Why needed index: 15 comments: This element does not describe the usage of the value set (that is done in comments), rather it's for traceability of ''why'' the element is either needed or ''why'' the constraints exist as they do. This may be used to point to source materials or specifications that drove the structure of this data element. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.requirements} isSummary: false date: isModifier: false short: Date for given status index: 10 comments: Note that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the value set. Additional specific dates may be added as extensions. type: dateTime mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.date} isSummary: true publisher: isModifier: false short: Name of the publisher (organization or individual) index: 6 comments: Usually an organization, but may be an individual. This item SHOULD be populated unless the information is available from context. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.publisher} isSummary: true extensible: isModifier: false short: Whether this is intended to be used with an extensible binding type: boolean mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.extensible} isSummary: true index: 17 name: isModifier: false short: Informal name for this value set index: 3 comments: The name is not expected to be unique. A name should be provided unless the value set is a contained resource (e.g. an anonymous value set in a profile). Most registries will require a name. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.name} isSummary: true useContext: isModifier: false short: Content intends to support these contexts index: 13 type: CodeableConcept mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.useContext} isSummary: true copyright: isModifier: false short: Use and/or publishing restrictions index: 16 comments: Frequently, the copyright differs between the value set and the codes that are included. The copyright statement should clearly differentiate between these when required. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.copyright} isSummary: false experimental: isModifier: false short: If for testing purposes, not real usage index: 5 comments: Allows filtering of value sets that are appropriate for use vs. not. type: boolean mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.experimental} isSummary: true expansion: isModifier: false short: Used when the value set is "expanded" index: 35 comments: Expansion is performed to produce a collection of codes that are ready to use for data entry or validation. type: BackboneElement mustSupport: false elements: identifier: isModifier: false short: Uniquely identifies this expansion index: 36 comments: Typically, this uri is a UUID (e.g. urn:uuid:8230ff20-c97a-4167-a59d-dc2cb9df16dd). type: uri mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.identifier} isSummary: false timestamp: isModifier: false short: Time ValueSet expansion happened index: 37 comments: This SHOULD be a fully populated instant, but in some circumstances, value sets are expanded by hand, and the expansion is published without that precision. type: dateTime mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.timestamp} isSummary: false total: isModifier: false short: Total number of codes in the expansion index: 38 comments: Paging only applies to flat expansions. type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.total} isSummary: false offset: isModifier: false short: Offset at which this resource starts index: 39 comments: Paging only applies to flat expansions. If a filter is applied, the count is the number of concepts that matched the filter, not the number of concepts in an unfiltered view of the expansion. type: integer mustSupport: false meaningWhenMissing: Paging is not being used maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.offset} isSummary: false parameter: isModifier: false short: Parameter that controlled the expansion process index: 40 comments: The server decides which parameters to include here, but at a minimum, the list SHOULD include the date, filter, and profile parameters passed to the $expand operation (if any). type: BackboneElement mustSupport: false array: true elements: name: isModifier: false short: Name as assigned by the server index: 41 comments: The names are assigned at the discretion of the server. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.parameter.name} isSummary: false value: isModifier: false short: Value of the named parameter mustSupport: false choices: [valueString, valueBoolean, valueInteger, valueDecimal, valueUri, valueCode] maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} isSummary: false index: 43 valueString: isModifier: false short: Value of the named parameter index: 44 type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false valueBoolean: isModifier: false short: Value of the named parameter index: 45 type: boolean mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false valueInteger: isModifier: false short: Value of the named parameter index: 46 type: integer mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false valueDecimal: isModifier: false short: Value of the named parameter index: 47 type: decimal mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false valueUri: isModifier: false short: Value of the named parameter index: 48 type: uri mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false valueCode: isModifier: false short: Value of the named parameter index: 49 type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: 'ValueSet.expansion.parameter.value[x]'} choiceOf: value isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.expansion.parameter} required: [name] isSummary: false contains: constraint: vsd-9: {human: Must have a code if not abstract, severity: error, expression: code.exists() or abstract = true} vsd-6: {human: SHALL have a code or a display, severity: error, expression: code.exists() or display.exists()} vsd-10: {human: Must have a system if a code is present, severity: error, expression: code.empty() or system.exists()} isModifier: false short: Codes in the value set index: 50 type: BackboneElement mustSupport: false array: true elements: system: isModifier: false short: System value for the code type: uri mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.contains.system} isSummary: false index: 51 abstract: isModifier: false short: If user cannot select this entry index: 52 comments: This should not be understood to exclude its use for searching (e.g. by subsumption testing). The client should know whether it is appropriate for the user to select an abstract code or not. type: boolean mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.contains.abstract} isSummary: false version: isModifier: false short: Version in which this code/display is defined index: 53 comments: The exact value of the version string is specified by the system from which the code is derived. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.contains.version} isSummary: false code: isModifier: false short: Code - if blank, this is not a selectable code type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.contains.code} isSummary: false index: 54 display: isModifier: false short: User display for the concept type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion.contains.display} isSummary: false index: 55 contains: elementReference: ['http://hl7.org/fhir/StructureDefinition/ValueSet'] isModifier: false short: Codes contained under this entry index: 56 comments: If the expansion uses this element, there is no implication about the logical relationship between them, and the structure cannot be used for logical inferencing. The structure exists to provide navigational assistance for helping human users to locate codes in the expansion. mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.expansion.contains.contains} isSummary: false maxLength: 0 base: {max: '*', min: 0, path: ValueSet.expansion.contains} isSummary: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.expansion} required: [timestamp, identifier] isSummary: false status: isModifier: true short: draft | active | retired index: 4 comments: Allows filtering of value set instances that are appropriate (or not) for use. type: code mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.status} isSummary: true url: isModifier: false short: Globally unique logical identifier for value set type: uri mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.url} isSummary: true index: 0 identifier: isModifier: false short: Additional identifier for the value set (e.g. HL7 v2 / CDA) index: 1 comments: Typically, this is used for values that can go in an HL7 v3 II data type. type: Identifier mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.identifier} isSummary: true immutable: isModifier: false short: Indicates whether or not any change to the content logical definition may occur index: 14 comments: 'Normally immutability is set to ''false'', which is the default assumption if it is not populated. Note that the implication is that if this is set to ''true'', there may be only one ValueSet version for this definition. Immutability tends to be set to ''true'' in one of two cases: - Where the value set, by the nature of its usage, cannot change. For example "All specializations of ACT in ActClassCode" - Where there''s no safe way to express the "Purpose" such that someone else could safely make changes to the value set definition. Source workflow control must guarantee that the same URI always yields the same definition.' type: boolean mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.immutable} isSummary: true version: isModifier: false short: Logical identifier for this version of the value set index: 2 comments: There may be multiple resource versions of the value set that have the same identifier. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.version} isSummary: true contact: isModifier: false short: Contact details of the publisher index: 7 comments: May be a web site, an email address, a telephone number, etc. type: BackboneElement mustSupport: false array: true elements: name: isModifier: false short: Name of an individual to contact index: 8 comments: If there is no named individual, the telecom is for the organization as a whole. type: string mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.contact.name} isSummary: true telecom: isModifier: false short: Contact details for individual or publisher index: 9 type: ContactPoint mustSupport: false array: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.contact.telecom} isSummary: true maxLength: 0 base: {max: '*', min: 0, path: ValueSet.contact} isSummary: true lockedDate: isModifier: false short: Fixed date for all referenced code systems and value sets index: 11 comments: With a defined lockedDate the value set is considered "Locked". Otherwise, the value set may have different expansions as underlying code systems and/or value sets evolve. The interpretation of lockedDate is often dependent on the context - e.g. a SNOMED CT derived value set with a lockedDate will have a different expansion in USA than in UK. If a value set specifies a version for include and exclude statements, and also specifies a locked date, the specified versions need to be available that date, or the value set will not be usable. type: date mustSupport: false maxLength: 0 base: {max: '1', min: 0, path: ValueSet.lockedDate} isSummary: true package_version: 1.4.0 class: resource kind: resource url: http://hl7.org/fhir/StructureDefinition/ValueSet base: http://hl7.org/fhir/StructureDefinition/DomainResource version: null required: [status]