{
  "resourceType": "StructureDefinition",
  "id": "additional-binding",
  "url": "http://hl7.org/fhir/tools/StructureDefinition/additional-binding",
  "identifier": [
    {
      "system": "urn:ietf:rfc:3986",
      "value": "urn:oid:2.16.840.1.113883.4.642.40.1.42.9"
    }
  ],
  "version": "0.6.0-cibuild",
  "name": "AdditionalBinding",
  "title": "Additional Binding Extension",
  "status": "draft",
  "experimental": false,
  "publisher": "HL7 International / FHIR Infrastructure",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/fiwg"
        }
      ]
    }
  ],
  "description": "Extension definition for Additional Binding. Additional Bindings are in the R5 Element Definition; this extension is used in prior versions (instead of the R5 cross-version extension)",
  "jurisdiction": [
    {
      "coding": [
        {
          "code": "001",
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm"
        }
      ]
    }
  ],
  "fhirVersion": "4.0.1",
  "kind": "complex-type",
  "abstract": false,
  "context": [
    {
      "expression": "ElementDefinition.binding",
      "type": "element"
    },
    {
      "expression": "CodeSystem.property",
      "type": "element"
    }
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "Additional Binding",
        "definition": "Additional bindings applied to bindable elements.",
        "constraint": [
          {
            "key": "ext-ab-1",
            "human": "Additional Bindings SHOULD have a key to allow a binding to be constrained.",
            "source": "http://hl7.org/fhir/tools/StructureDefinition/additional-binding",
            "severity": "warning",
            "expression": "extension.where(url='key').exists()"
          }
        ]
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "min": 2
      },
      {
        "id": "Extension.extension:key",
        "path": "Extension.extension",
        "sliceName": "key",
        "short": "Unique identifier so additional bindings to be matched across profiles",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:key.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:key.url",
        "path": "Extension.extension.url",
        "fixedUri": "key"
      },
      {
        "id": "Extension.extension:key.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "id"
          }
        ]
      },
      {
        "id": "Extension.extension:purpose",
        "path": "Extension.extension",
        "sliceName": "purpose",
        "short": "How the binding is used",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:purpose.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:purpose.url",
        "path": "Extension.extension.url",
        "fixedUri": "purpose"
      },
      {
        "id": "Extension.extension:purpose.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "code"
          }
        ],
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/tools/ValueSet/additional-binding-purpose"
        }
      },
      {
        "id": "Extension.extension:valueSet",
        "path": "Extension.extension",
        "sliceName": "valueSet",
        "short": "The valueSet for the binding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Extension.extension:valueSet.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:valueSet.url",
        "path": "Extension.extension.url",
        "fixedUri": "valueSet"
      },
      {
        "id": "Extension.extension:valueSet.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "canonical",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/ValueSet"
            ]
          }
        ]
      },
      {
        "id": "Extension.extension:documentation",
        "path": "Extension.extension",
        "sliceName": "documentation",
        "short": "Documentation for this binding",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:documentation.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:documentation.url",
        "path": "Extension.extension.url",
        "fixedUri": "documentation"
      },
      {
        "id": "Extension.extension:documentation.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "markdown"
          }
        ]
      },
      {
        "id": "Extension.extension:shortDoco",
        "path": "Extension.extension",
        "sliceName": "shortDoco",
        "short": "Short doco for this binding - used in dense table views",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:shortDoco.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:shortDoco.url",
        "path": "Extension.extension.url",
        "fixedUri": "shortDoco"
      },
      {
        "id": "Extension.extension:shortDoco.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Extension.extension:usage",
        "path": "Extension.extension",
        "sliceName": "usage",
        "short": "Definition of a context in which this binding applies",
        "definition": "Definition of a context in which this binding applies. This SHOULD be present for purpose=conformance to limit the scope of the conformance claim.",
        "comment": "Usage context might be a jurisdiction, or some other clearly defined context of operation. Note that if the context is not clear, then implementers will not be able to determinate whether the binding applies.",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Extension.extension:usage.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:usage.url",
        "path": "Extension.extension.url",
        "fixedUri": "usage"
      },
      {
        "id": "Extension.extension:usage.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "UsageContext"
          }
        ]
      },
      {
        "id": "Extension.extension:any",
        "path": "Extension.extension",
        "sliceName": "any",
        "short": "Whether the binding applies to all repeats, or just to any one of the repeats",
        "comment": "has no meaning if the element doesn't repeat",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension:any.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:any.url",
        "path": "Extension.extension.url",
        "fixedUri": "any"
      },
      {
        "id": "Extension.extension:any.value[x]",
        "path": "Extension.extension.value[x]",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "fixedUri": "http://hl7.org/fhir/tools/StructureDefinition/additional-binding"
      },
      {
        "id": "Extension.value[x]",
        "path": "Extension.value[x]",
        "max": "0"
      }
    ]
  }
}