{
  "resourceType": "StructureDefinition",
  "id": "vsd-alignedvalueset",
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">to do</div>"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 5
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "vocab"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode": "trial-use"
    }
  ],
  "url": "http://hl7.org/fhir/StructureDefinition/vsd-alignedvalueset",
  "version": "4.6.0",
  "name": "VSDALignedValueSet",
  "title": "Value Set Definition Aligned Profile",
  "status": "draft",
  "experimental": false,
  "date": "2021-02-15",
  "publisher": "HL7",
  "description": "This profile defines the necessary extensions and constraints on ValueSet to align with the HL7 Specification: Characteristics of a Value Set Definition, Release 1 (VSD). This normative specification describes elements to create a ValueSet definition, and does not describe elements related to a ValueSet expansion.",
  "purpose": "This profile defines the necessary extensions and constraints on ValueSet to align with the HL7 Specification: Characteristics of a Value Set Definition, Release 1 (VSD). This normative specification describes elements to create a ValueSet definition, and does not describe elements related to a ValueSet expansion.",
  "fhirVersion": "4.6.0",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "workflow",
      "uri": "http://hl7.org/fhir/workflow",
      "name": "Workflow Pattern"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    },
    {
      "identity": "objimpl",
      "uri": "http://hl7.org/fhir/object-implementation",
      "name": "Object Implementation Information"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "ValueSet",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/ValueSet",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "ValueSet",
        "path": "ValueSet",
        "min": 1,
        "max": "1"
      },
      {
        "id": "ValueSet.extension",
        "path": "ValueSet.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "ValueSet.extension:valueset-otherTitle",
        "path": "ValueSet.extension",
        "sliceName": "valueset-otherTitle",
        "definition": "Alternate human readable name that may declare a language and preferred indicator.",
        "comment": "Either ValueSet.title or ValueSet.otherTitle must be valued.",
        "requirements": "Use when a language or preferred indicator is necessary",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-otherTitle"
            ]
          }
        ],
        "constraint": [
          {
            "key": "vsd-2",
            "severity": "error",
            "human": "Either title or extension-otherTitle must be valued",
            "expression": "ValueSet.title.exists() or ValueSet.extension:valueset-other-title.exists()",
            "source": "http://hl7.org/fhir/StructureDefinition/vsd-alignedvalueset"
          }
        ]
      },
      {
        "id": "ValueSet.extension:valueset-authoritativeSource",
        "path": "ValueSet.extension",
        "sliceName": "valueset-authoritativeSource",
        "definition": "Authoritative, accessible, persisted source of truth of the entire Value Set Definition.",
        "comment": "The designated authoritative source is expected to be able to generate a valid expansion of the value set. If it cannot, the valueset-trusted-expansion should be used.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-authoritativeSource"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.extension:valueset-trusted-expansion",
        "path": "ValueSet.extension",
        "sliceName": "valueset-trusted-expansion",
        "definition": "Potential source for a ValueSet expansion.",
        "comment": "Should only be used if valueset-authoritativeSource does not have a FHIR service which is capable of generating a valid FHIR expansion.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-trusted-expansion"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.extension:valueset-sourceReference",
        "path": "ValueSet.extension",
        "sliceName": "valueset-sourceReference",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-sourceReference"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.extension:valueset-keyWord",
        "path": "ValueSet.extension",
        "sliceName": "valueset-keyWord",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-keyWord"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.extension:valueset-workflowStatusDescription",
        "path": "ValueSet.extension",
        "sliceName": "valueset-workflowStatusDescription",
        "definition": "Status of Value Set Definition development process.",
        "comment": "May be a controlled list.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-workflowStatusDescription"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.extension:valueset-steward",
        "path": "ValueSet.extension",
        "sliceName": "valueset-steward",
        "definition": "Responsible for the content of the Value Set Definition.",
        "comment": "Should include contact information.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-steward"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.extension:valueset-author",
        "path": "ValueSet.extension",
        "sliceName": "valueset-author",
        "definition": "Entity or entities that create and may modify the Value Set Definition.",
        "comment": "May include contact information.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-author"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.extension:valueset-expression",
        "path": "ValueSet.extension",
        "sliceName": "valueset-expression",
        "definition": "Human readable Value Set Definition.",
        "comment": "If present with compose, expression makes the same statement as the compose. If present without compose, expression is computable, and provides the definition of the Value Set.  The syntax is defined in valueset-expression.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-expression"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.extension:valueset-supplement",
        "path": "ValueSet.extension",
        "sliceName": "valueset-supplement",
        "definition": "This extension declares that a value set depends on a particular supplement and should not be used in its absence.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-supplement"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.url",
        "path": "ValueSet.url",
        "min": 1
      },
      {
        "id": "ValueSet.identifier",
        "path": "ValueSet.identifier",
        "comment": "Identifier.system is restricted to OID, RUID, UUID, URI",
        "constraint": [
          {
            "key": "vsd-1",
            "severity": "error",
            "human": "Identifier.system is restricted to OID, RUID, UUID, URI",
            "expression": "identifier.exists(system in ('OID' or 'RUID' or 'UUID' or 'URI'))",
            "source": "http://hl7.org/fhir/StructureDefinition/vsd-alignedvalueset"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.version",
        "path": "ValueSet.version",
        "requirements": "Must be persisted with a ValueSet expansion.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "ValueSet.name",
        "path": "ValueSet.name",
        "min": 1
      },
      {
        "id": "ValueSet.title",
        "path": "ValueSet.title",
        "constraint": [
          {
            "key": "vsd-2",
            "severity": "error",
            "human": "Either title or extension-otherTitle must be valued",
            "expression": "ValueSet.title.exists() or ValueSet.extension:valueset-other-title.exists()",
            "source": "http://hl7.org/fhir/StructureDefinition/vsd-alignedvalueset"
          }
        ]
      },
      {
        "id": "ValueSet.status",
        "path": "ValueSet.status",
        "requirements": "Must be persisted with a ValueSet expansion.",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "ValueSet.status.extension",
        "path": "ValueSet.status.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "ValueSet.status.extension:valueset-status-activityStatusDate",
        "path": "ValueSet.status.extension",
        "sliceName": "valueset-status-activityStatusDate",
        "definition": "Date the Value Set Definition status is set.",
        "comment": "When \"Active\",  defines the date-time the ValueSet Definition becomes active. When the Status is set to \"Inactive\", defines the date-time when the ValueSet Definition version becomes Inactive.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-status-activityStatusDate"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.experimental",
        "path": "ValueSet.experimental",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "ValueSet.publisher",
        "path": "ValueSet.publisher",
        "mustSupport": true
      },
      {
        "id": "ValueSet.useContext",
        "path": "ValueSet.useContext",
        "comment": "If only text is available, use CodeableConcept.text.",
        "mustSupport": true
      },
      {
        "id": "ValueSet.immutable",
        "path": "ValueSet.immutable",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "ValueSet.purpose",
        "path": "ValueSet.purpose"
      },
      {
        "id": "ValueSet.compose",
        "path": "ValueSet.compose",
        "comment": "Only one of rulesText, expression, or compose SHALL be provided for any given valueset instance.",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.extension",
        "path": "ValueSet.compose.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "ValueSet.compose.extension:valueset-compose-creationDate",
        "path": "ValueSet.compose.extension",
        "sliceName": "valueset-compose-creationDate",
        "definition": "Date the Value Set Definition was persisted.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-compose-creationDate"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.compose.extension:valueset-compose-createdBy",
        "path": "ValueSet.compose.extension",
        "sliceName": "valueset-compose-createdBy",
        "comment": "Person or process that created the Value Set Definition.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-compose-createdBy"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.compose.lockedDate",
        "path": "ValueSet.compose.lockedDate",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.inactive",
        "path": "ValueSet.compose.inactive",
        "comment": "Note: VSD.ActiveOnly = TRUE is equivalent to ValueSet.compose.inactive = FALSE",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include",
        "path": "ValueSet.compose.include",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.extension",
        "path": "ValueSet.compose.include.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "ValueSet.compose.include.extension:valueset-compose-include-valueSetTitle",
        "path": "ValueSet.compose.include.extension",
        "sliceName": "valueset-compose-include-valueSetTitle",
        "definition": "Human readable name of a Value Set Definition.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-compose-include-valueSetTitle"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.compose.include.extension:valueset-systemTitle",
        "path": "ValueSet.compose.include.extension",
        "sliceName": "valueset-systemTitle",
        "definition": "Human readable name for a CodeSystem.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-systemTitle"
            ]
          }
        ]
      },
      {
        "id": "ValueSet.compose.include.extension:valueset-compose-include-minimumMultiplicity",
        "path": "ValueSet.compose.include.extension",
        "sliceName": "valueset-compose-include-minimumMultiplicity",
        "definition": "Minimum number of concept representations to return for each concept in the Value Set Expansion.",
        "comment": "In VSD, this identifies the minimum Concept Representations to be populated in the Value Set Expansion when multiple Concept Representations are available. Example: 2-character and 3-character representations for one concept in a single Code System. Without constriant, all representations will be returned.  The parameter name is defined by the CodeSystem.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-compose-include-minimumMultiplicity"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.extension:valueset-compose-include-maximumMultiplicity",
        "path": "ValueSet.compose.include.extension",
        "sliceName": "valueset-compose-include-maximumMultiplicity",
        "definition": "Maximum number of concept representations to return for each concept in the Value Set Expansion.",
        "comment": "In VSD, this identifies constraints on the Concept Representations to be populated in the Value Set Expansion when multiple Concept Representations are available. Example: 2-character and 3-character representations for one concept in a single Code System. Without definition, zero representations may be returned.  The parameter name is defined by the CodeSystem.",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/valueset-compose-include-maximumMultiplicity"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.system",
        "path": "ValueSet.compose.include.system",
        "comment": "Fragments cannot contain any codes, concepts or properties that would not be found in a complete representation of the code system. Implementers should note that a \"complete representation\" of the code system might not exist in a single authoritative publication (e.g., SNOMED International with all modules/extensions)",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.filter",
        "path": "ValueSet.compose.include.filter",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.filter.property",
        "path": "ValueSet.compose.include.filter.property",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.filter.op",
        "path": "ValueSet.compose.include.filter.op",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.filter.value",
        "path": "ValueSet.compose.include.filter.value",
        "mustSupport": true
      },
      {
        "id": "ValueSet.compose.include.copyright",
        "path": "ValueSet.compose.include.copyright",
        "definition": "Exclusive right given to an originator or an assignee to print, publish, perform, film or record material and to authorize others to do the same.",
        "comment": "Copyright statement for the specific CodeSystem and Version or for the included ValueSet CodeSystem and version.",
        "mustSupport": true
      },
      {
        "id": "ValueSet.scope",
        "path": "ValueSet.scope",
        "min": 1,
        "mustSupport": true
      }
    ]
  }
}