<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="HiisPersonalHealthDeviceDefinition" />
  <url value="https://fhir.bfarm.de/StructureDefinition/HiisPersonalHealthDeviceDefinition" />
  <version value="3.1.0-TEST" />
  <name value="HiisPersonalHealthDeviceDefinition" />
  <title value="HiisPersonalHealthDeviceDefinition" />
  <status value="draft" />
  <description value="Definition of a personal health medical aid or implant in the HIIS catalog." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="DeviceDefinition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DeviceDefinition" />
  <derivation value="constraint" />
  <differential>
    <element id="DeviceDefinition">
      <path value="DeviceDefinition" />
      <short value="Medical Aid" />
      <definition value="Represents a personal health medical aid or implant." />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension">
      <path value="DeviceDefinition.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:mivSet">
      <path value="DeviceDefinition.extension" />
      <sliceName value="mivSet" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.bfarm.de/StructureDefinition/HiisDeviceDefinitionMivSet" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier">
      <path value="DeviceDefinition.extension" />
      <sliceName value="regulatoryIdentifier" />
      <short value="Basic UDI-DI" />
      <definition value="The Basic UDI-DI of the medical device (as published in EUDAMED)." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceDefinition.regulatoryIdentifier" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension">
      <path value="DeviceDefinition.extension.extension" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:type">
      <path value="DeviceDefinition.extension.extension" />
      <sliceName value="type" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:type.extension">
      <path value="DeviceDefinition.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:type.value[x]">
      <path value="DeviceDefinition.extension.extension.value[x]" />
      <fixedCode value="basic" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:deviceIdentifier">
      <path value="DeviceDefinition.extension.extension" />
      <sliceName value="deviceIdentifier" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:deviceIdentifier.extension">
      <path value="DeviceDefinition.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:deviceIdentifier.value[x]">
      <path value="DeviceDefinition.extension.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:issuer">
      <path value="DeviceDefinition.extension.extension" />
      <sliceName value="issuer" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:issuer.extension">
      <path value="DeviceDefinition.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:issuer.value[x]">
      <path value="DeviceDefinition.extension.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:jurisdiction">
      <path value="DeviceDefinition.extension.extension" />
      <sliceName value="jurisdiction" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:jurisdiction.extension">
      <path value="DeviceDefinition.extension.extension.extension" />
      <max value="0" />
    </element>
    <element id="DeviceDefinition.extension:regulatoryIdentifier.extension:jurisdiction.value[x]">
      <path value="DeviceDefinition.extension.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.identifier">
      <path value="DeviceDefinition.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Identifiers" />
      <definition value="Contains characteristics for unique identification of the medical aid." />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.identifier:hmnr">
      <path value="DeviceDefinition.identifier" />
      <sliceName value="hmnr" />
      <short value="Medical Aid Directory Number" />
      <definition value="The number of the medical aid in the medical aid directory." />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.identifier:hmnr.system">
      <path value="DeviceDefinition.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.de/sid/gkv/hmnr" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.identifier:hmnr.value">
      <path value="DeviceDefinition.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.manufacturer[x]">
      <path value="DeviceDefinition.manufacturer[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.manufacturer[x]:manufacturerReference">
      <path value="DeviceDefinition.manufacturer[x]" />
      <sliceName value="manufacturerReference" />
      <short value="Manufacturer" />
      <definition value="The reference to the manufacturer of the medical aid." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.bfarm.de/StructureDefinition/HiisManufacturer" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.manufacturer[x]:manufacturerReference.reference">
      <path value="DeviceDefinition.manufacturer[x].reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.manufacturer[x]:manufacturerReference.display">
      <path value="DeviceDefinition.manufacturer[x].display" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.deviceName">
      <path value="DeviceDefinition.deviceName" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Device Name" />
      <definition value="The name designation of the medical aid." />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.deviceName:userFriendlyName">
      <path value="DeviceDefinition.deviceName" />
      <sliceName value="userFriendlyName" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.deviceName:userFriendlyName.name">
      <path value="DeviceDefinition.deviceName.name" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.deviceName:userFriendlyName.type">
      <path value="DeviceDefinition.deviceName.type" />
      <fixedCode value="user-friendly-name" />
    </element>
    <element id="DeviceDefinition.modelNumber">
      <path value="DeviceDefinition.modelNumber" />
      <short value="Model Number" />
      <definition value="The model number of the medical aid." />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.type">
      <path value="DeviceDefinition.type" />
      <short value="Device Type" />
      <definition value="The type of the medical aid as a SNOMED CT code." />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.type.coding">
      <path value="DeviceDefinition.type.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.type.coding:snomed">
      <path value="DeviceDefinition.type.coding" />
      <sliceName value="snomed" />
      <short value="SNOMED CT Code" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/hddt/ValueSet/hddt-device-type" />
      </binding>
    </element>
    <element id="DeviceDefinition.type.coding:snomed.system">
      <path value="DeviceDefinition.type.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.type.coding:snomed.code">
      <path value="DeviceDefinition.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="DeviceDefinition.note">
      <path value="DeviceDefinition.note" />
      <short value="Internal search index (not for client use)" />
      <definition value="For technical reasons (search indexing), the server may map MIV Set data to this element, in particular to note.text. The content is solely part of that technical mapping to support the miv-set search and must not be read or used by clients for any business content, MIV Set interpretation, or other integration purpose." />
    </element>
    <element id="DeviceDefinition.note.text">
      <path value="DeviceDefinition.note.text" />
      <short value="Technical MIV Set mapping (not for client use)" />
      <definition value="Only used internally for search indexing; must not be interpreted or relied upon by clients (see miv-set search, HIIS use cases documentation)." />
    </element>
  </differential>
</StructureDefinition>