{
  "resourceType": "StructureDefinition",
  "id": "questionnaire-itemControl",
  "meta": {
    "lastUpdated": "2018-08-30T12:22:54.137+00:00"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "fhir"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 1
    }
  ],
  "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
  "name": "itemControl",
  "status": "draft",
  "date": "2013-07-04",
  "publisher": "HL7",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org"
        }
      ]
    }
  ],
  "description": "The type of data entry control or structure that should be used to render the item.",
  "fhirVersion": "3.0.1",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    }
  ],
  "kind": "complex-type",
  "abstract": false,
  "contextType": "resource",
  "context": [
    "Questionnaire.item",
    "Questionnaire.item.item"
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "snapshot": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.",
        "definition": "The type of data entry control or structure that should be used to render the item.",
        "comment": "Different controls may be appropriate for different item types.  It is up to the system        rendering a questionnaire as to what controls it will support and for which data types.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Extension",
          "min": 0,
          "max": "*"
        },
        "condition": [
          "ele-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() | (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
            "source": "Extension"
          }
        ]
      },
      {
        "id": "Extension.id",
        "path": "Extension.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "xml:id (or equivalent in JSON)",
        "definition": "unique id for the element within a resource (for internal references). This may be any        string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional Content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition        of the element. In order to make the use of extensions safe and manageable, there is a        strict set of governance  applied to the definition and use of extensions. Though any        implementer is allowed to define an extension, there is a set of requirements that SHALL        be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project,        or standard - regardless of the institution or jurisdiction that uses or defines the extensions.         The use of extensions is what allows the FHIR specification to retain a core level of        simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "representation": [
          "xmlAttr"
        ],
        "short": "identifies the meaning of the extension",
        "definition": "Source of the definition for the extension code - a logical name or a URL.",
        "comment": "The definition may point directly to a computable or human-readable definition of the        extensibility codes, or it may be a logical URI as declared in some other specification.        The definition SHALL be a URI for the Structure Definition defining the extension.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Extension.url",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "fixedUri": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Extension.valueCodeableConcept",
        "path": "Extension.valueCodeableConcept",
        "short": "Value of extension",
        "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see        Extensibility in the spec for list).",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Extension.value[x]",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ItemControl"
            }
          ],
          "strength": "extensible",
          "description": "User interface controls or widgets used for questionnaire items",
          "valueSetReference": {
            "reference": "http://hl7.org/fhir/ValueSet/questionnaire-item-control"
          }
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "E.g. Fly-over, Table, Checkbox, Combo-box, Lookup, etc.",
        "definition": "The type of data entry control or structure that should be used to render the item.",
        "comment": "Different controls may be appropriate for different item types.  It is up to the system        rendering a questionnaire as to what controls it will support and for which data types.",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "type": [
          {
            "code": "uri"
          }
        ],
        "fixedUri": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
      },
      {
        "id": "Extension.valueCodeableConcept",
        "path": "Extension.valueCodeableConcept",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ItemControl"
            }
          ],
          "strength": "extensible",
          "description": "User interface controls or widgets used for questionnaire items",
          "valueSetReference": {
            "reference": "http://hl7.org/fhir/ValueSet/questionnaire-item-control"
          }
        }
      }
    ]
  }
}