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