PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.r2b.core@1.4.0
    http://hl7.org/fhir/StructureDefinition/ValueSet
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]