{
  "resourceType": "StructureDefinition",
  "id": "HealthAppModuleMedicalDevice",
  "url": "https://fhir.bfarm.de/StructureDefinition/HealthAppModuleMedicalDevice",
  "version": "3.1.0-TEST",
  "name": "HealthAppModuleMedicalDevice",
  "title": "HealthAppModule: MedicalDevice",
  "status": "active",
  "description": "Extension for information about the medical device.",
  "fhirVersion": "4.0.1",
  "kind": "complex-type",
  "abstract": false,
  "context": [
    {
      "type": "element",
      "expression": "DeviceDefinition"
    }
  ],
  "type": "Extension",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Extension",
        "path": "Extension",
        "short": "Medical device",
        "definition": "Information about the medical device.",
        "mustSupport": true
      },
      {
        "id": "Extension.extension",
        "path": "Extension.extension",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:intendedPurpose",
        "path": "Extension.extension",
        "sliceName": "intendedPurpose",
        "short": "Intended purpose",
        "definition": "The (medical) intended purpose according to the manufacturer's information on labeling, instructions for use, advertising material, sales material, or sales information.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:intendedPurpose.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:intendedPurpose.url",
        "path": "Extension.extension.url",
        "fixedUri": "intendedPurpose"
      },
      {
        "id": "Extension.extension:intendedPurpose.value[x]",
        "path": "Extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:intendedPurpose.value[x]:valueString",
        "path": "Extension.extension.value[x]",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Extension.extension:isMedicalDevice",
        "path": "Extension.extension",
        "sliceName": "isMedicalDevice",
        "short": "Medical device",
        "definition": "Indicates whether the digital application module is a medical device.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:isMedicalDevice.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:isMedicalDevice.url",
        "path": "Extension.extension.url",
        "fixedUri": "isMedicalDevice"
      },
      {
        "id": "Extension.extension:isMedicalDevice.value[x]",
        "path": "Extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:isMedicalDevice.value[x]:valueBoolean",
        "path": "Extension.extension.value[x]",
        "sliceName": "valueBoolean",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "boolean"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody",
        "path": "Extension.extension",
        "sliceName": "notifiedBody",
        "short": "Notified body",
        "definition": "Information about the notified body.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.extension",
        "path": "Extension.extension.extension",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.extension:code",
        "path": "Extension.extension.extension",
        "sliceName": "code",
        "short": "Identification number",
        "definition": "Identification number of the notified body.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.extension:code.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:notifiedBody.extension:code.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "code"
      },
      {
        "id": "Extension.extension:notifiedBody.extension:code.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:notifiedBody.extension:code.value[x]:valueString",
        "path": "Extension.extension.extension.value[x]",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.extension:name",
        "path": "Extension.extension.extension",
        "sliceName": "name",
        "short": "Name",
        "definition": "Name of the notified body.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.extension:name.extension",
        "path": "Extension.extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:notifiedBody.extension:name.url",
        "path": "Extension.extension.extension.url",
        "fixedUri": "name"
      },
      {
        "id": "Extension.extension:notifiedBody.extension:name.value[x]",
        "path": "Extension.extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:notifiedBody.extension:name.value[x]:valueString",
        "path": "Extension.extension.extension.value[x]",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Extension.extension:notifiedBody.url",
        "path": "Extension.extension.url",
        "fixedUri": "notifiedBody"
      },
      {
        "id": "Extension.extension:notifiedBody.value[x]",
        "path": "Extension.extension.value[x]",
        "max": "0"
      },
      {
        "id": "Extension.extension:nursingBenefit",
        "path": "Extension.extension",
        "sliceName": "nursingBenefit",
        "short": "Nursing benefit",
        "definition": "DiPA only: Description of the nursing benefit according to § 9 DiPAV.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:nursingBenefit.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:nursingBenefit.url",
        "path": "Extension.extension.url",
        "fixedUri": "nursingBenefit"
      },
      {
        "id": "Extension.extension:nursingBenefit.value[x]",
        "path": "Extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:nursingBenefit.value[x]:valueString",
        "path": "Extension.extension.value[x]",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Extension.extension:regulatoryBasis",
        "path": "Extension.extension",
        "sliceName": "regulatoryBasis",
        "short": "Regulatory basis",
        "definition": "Specifies the regulatory basis.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:regulatoryBasis.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:regulatoryBasis.url",
        "path": "Extension.extension.url",
        "fixedUri": "regulatoryBasis"
      },
      {
        "id": "Extension.extension:regulatoryBasis.value[x]",
        "path": "Extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:regulatoryBasis.value[x]:valueCode",
        "path": "Extension.extension.value[x]",
        "sliceName": "valueCode",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.bfarm.de/ValueSet/HealthAppRegulatoryBasis"
        }
      },
      {
        "id": "Extension.extension:riskClass",
        "path": "Extension.extension",
        "sliceName": "riskClass",
        "short": "Risk class",
        "definition": "Specifies the risk class.",
        "min": 0,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Extension.extension:riskClass.extension",
        "path": "Extension.extension.extension",
        "max": "0"
      },
      {
        "id": "Extension.extension:riskClass.url",
        "path": "Extension.extension.url",
        "fixedUri": "riskClass"
      },
      {
        "id": "Extension.extension:riskClass.value[x]",
        "path": "Extension.extension.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Extension.extension:riskClass.value[x]:valueCode",
        "path": "Extension.extension.value[x]",
        "sliceName": "valueCode",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.bfarm.de/ValueSet/HealthAppRiskClass"
        }
      },
      {
        "id": "Extension.url",
        "path": "Extension.url",
        "fixedUri": "https://fhir.bfarm.de/StructureDefinition/HealthAppModuleMedicalDevice"
      },
      {
        "id": "Extension.value[x]",
        "path": "Extension.value[x]",
        "max": "0"
      }
    ]
  }
}