<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="54bdb774-70ec-44fe-920a-afab2733975f" />
  <meta>
    <versionId value="3" />
    <lastUpdated value="2019-07-01T17:14:48.8551466+00:00" />
  </meta>
  <url value="http://roche.com/fhir/rdc/StructureDefinition/phd-devicecomponent" />
  <version value="1" />
  <name value="phd-devicecomponent" />
  <status value="active" />
  <date value="2019-07-01T17:14:47.8173022+00:00" />
  <fhirVersion value="3.0.2" />
  <mapping>
    <identity value="ACSPIX2FHIR" />
    <name value="ACSPIX (Extensions for IP)" />
  </mapping>
  <mapping>
    <identity value="GREENDOT" />
    <name value="Greendot" />
  </mapping>
  <mapping>
    <identity value="GLUCI-CHEK" />
    <name value="FHIR2ACSPIX" />
    <comment value="The input will be a FHIR file and the output can be 1 to N ACSPIX files, one per each Device Component found." />
  </mapping>
  <mapping>
    <identity value="CDF2FHIR" />
    <name value="CDF2FHIR" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="DeviceComponent" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DeviceComponent" />
  <derivation value="constraint" />
  <differential>
    <element id="DeviceComponent.extension">
      <path value="DeviceComponent.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="DeviceComponent.extension:bolusIncrement">
      <path value="DeviceComponent.extension" />
      <sliceName value="bolusIncrement" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-bolus-increment" />
      </type>
    </element>
    <element id="DeviceComponent.extension:deliverySpeed">
      <path value="DeviceComponent.extension" />
      <sliceName value="deliverySpeed" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-delivery-speed" />
      </type>
    </element>
    <element id="DeviceComponent.extension:infusionSetCannulaFillAmt">
      <path value="DeviceComponent.extension" />
      <sliceName value="infusionSetCannulaFillAmt" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-infusion-set-cannula-fill-amt" />
      </type>
    </element>
    <element id="DeviceComponent.extension:infusionSetTubingFillAmt">
      <path value="DeviceComponent.extension" />
      <sliceName value="infusionSetTubingFillAmt" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-infusion-set-tubing-fill-amt" />
      </type>
    </element>
    <element id="DeviceComponent.extension:lowCartAlarmQty">
      <path value="DeviceComponent.extension" />
      <sliceName value="lowCartAlarmQty" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-low-cart-alarm-qty" />
      </type>
    </element>
    <element id="DeviceComponent.extension:primeQty">
      <path value="DeviceComponent.extension" />
      <sliceName value="primeQty" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-prime-qty" />
      </type>
    </element>
    <element id="DeviceComponent.extension:restUseDays">
      <path value="DeviceComponent.extension" />
      <sliceName value="restUseDays" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-rest-use-days" />
      </type>
    </element>
    <element id="DeviceComponent.extension:deviceCarePlan">
      <path value="DeviceComponent.extension" />
      <sliceName value="deviceCarePlan" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-device-care-plan" />
      </type>
    </element>
    <element id="DeviceComponent.extension:maxHourlyBasalRate">
      <path value="DeviceComponent.extension" />
      <sliceName value="maxHourlyBasalRate" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-max-hourly-basal-rate" />
      </type>
    </element>
    <element id="DeviceComponent.extension:activeBasalProfile">
      <path value="DeviceComponent.extension" />
      <sliceName value="activeBasalProfile" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-active-basal-profile" />
      </type>
    </element>
    <element id="DeviceComponent.extension:tbrMaxAdjustment">
      <path value="DeviceComponent.extension" />
      <sliceName value="tbrMaxAdjustment" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-tbr-max-adjustment" />
      </type>
    </element>
    <element id="DeviceComponent.extension:tbrMaxDuration">
      <path value="DeviceComponent.extension" />
      <sliceName value="tbrMaxDuration" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-tbr-max-duration" />
      </type>
    </element>
    <element id="DeviceComponent.extension:pairedIp">
      <path value="DeviceComponent.extension" />
      <sliceName value="pairedIp" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-paired-ip" />
      </type>
    </element>
    <element id="DeviceComponent.extension:bolusAdviceEnabled">
      <path value="DeviceComponent.extension" />
      <sliceName value="bolusAdviceEnabled" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-bolus-advice-enabled" />
      </type>
    </element>
    <element id="DeviceComponent.extension:maxBolusAmount">
      <path value="DeviceComponent.extension" />
      <sliceName value="maxBolusAmount" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-maximum-bolus-amount" />
      </type>
    </element>
    <element id="DeviceComponent.extension:maxQuickBolusAmount">
      <path value="DeviceComponent.extension" />
      <sliceName value="maxQuickBolusAmount" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-maximum-quick-bolus-amount" />
      </type>
    </element>
    <element id="DeviceComponent.extension:quickBolusEnabled">
      <path value="DeviceComponent.extension" />
      <sliceName value="quickBolusEnabled" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-quick-bolus-enabled" />
      </type>
    </element>
    <element id="DeviceComponent.extension:bolusLagtimeEnabled">
      <path value="DeviceComponent.extension" />
      <sliceName value="bolusLagtimeEnabled" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://roche.com/fhir/rdc/StructureDefinition/device-component-bolus-lagtime-enabled" />
      </type>
    </element>
    <element id="DeviceComponent.identifier.system">
      <path value="DeviceComponent.identifier.system" />
      <min value="1" />
      <fixedUri value="http://roche.com/fhir/rdc/sid/device-identifier" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="http://roche.com/fhir/rdc/sid/device-identifier" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="http://roche.com/fhir/rdc/sid/device-identifier" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="http://roche.com/fhir/rdc/sid/device-identifier" />
      </mapping>
    </element>
    <element id="DeviceComponent.identifier.value">
      <path value="DeviceComponent.identifier.value" />
      <comment value="If the value is a full URI, then the system SHALL  be urn:ietf:rfc:3986.  The value's primary purpose is computational mapping.  As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.)  A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html)." />
      <min value="1" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="partNumber ? `${source}/${partNumber}/${serialNumber}` : `${source}/${serialNumber}" />
        <comment value="example: source[uDTC/SyncApp/Accu-Chek Smart Pix Software]/ModelNum[555]/SN[009990670]" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="Greendot/device model/device serial number" />
        <comment value="Greendot/&lt;modelNumber&gt;/&lt;serialNumber&gt;" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="partNumber ? {source}/{partNumber}/{serialNumber} : {source}/{serialNumber}" />
        <comment value="Source/&lt;ModelUID&gt;/&lt;SerialNumber&gt;" />
      </mapping>
    </element>
    <element id="DeviceComponent.type">
      <path value="DeviceComponent.type" />
      <binding>
        <strength value="preferred" />
        <valueSetUri value="http://roche.com/fhir/rdc/ValueSet/device-kind" />
      </binding>
    </element>
    <element id="DeviceComponent.type.coding.system">
      <path value="DeviceComponent.type.coding.system" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="isMeter? http://roche.com/fhir/rdc/cdf : http://snomed.info/sct" />
        <comment value="Based on device type(BG,IP) system can be assigned" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="http://roche.com/fhir/rdc/cs" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="isMeter? http://roche.com/fhir/rdc/cdf : http://snomed.info/sct" />
        <comment value="Based on device type(BG,IP) system can be assigned" />
      </mapping>
    </element>
    <element id="DeviceComponent.type.coding.code">
      <path value="DeviceComponent.type.coding.code" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="isMeter ? cdf.dev.bgmeter : 69805005" />
        <comment value="Based on device type (BG,IP) code can be asssigned" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="smartPhone" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="isMeter ? cdf.dev.bgmeter : 69805005" />
        <comment value="Based on device type (BG,IP) code can be asssigned" />
      </mapping>
    </element>
    <element id="DeviceComponent.type.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="DeviceComponent.type.coding.display" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="isMeter ? Glucometer : Insulin Pump" />
        <comment value="Based on device type(BG,IP) display can be assigned" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="Smart Phone" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="isMeter ? Glucometer : Insulin Pump" />
        <comment value="Based on device type(BG,IP) display can be assigned" />
      </mapping>
    </element>
    <element id="DeviceComponent.lastSystemChange">
      <path value="DeviceComponent.lastSystemChange" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="Dt+Tm" />
        <comment value="ACSPIX Device tag Date and Time fields." />
      </mapping>
      <mapping>
        <identity value="GLUCI-CHEK" />
        <map value="DEVICE.Dt" />
        <comment value="Map the Date from the lastSystemChange" />
      </mapping>
      <mapping>
        <identity value="GLUCI-CHEK" />
        <map value="DEVICE.Tm" />
        <comment value="Map the Time from the lastSystemChange (hh:mm)" />
      </mapping>
    </element>
    <element id="DeviceComponent.source">
      <path value="DeviceComponent.source" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://roche.com/fhir/rdc/StructureDefinition/phg-device" />
      </type>
    </element>
    <element id="DeviceComponent.source.reference">
      <path value="DeviceComponent.source.reference" />
      <min value="1" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="Device/${deviceId}" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="Device/{DeviceId}" />
        <comment value="&lt;UID of the device resource&gt;" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="Device/{deviceId}" />
      </mapping>
    </element>
    <element id="DeviceComponent.parent">
      <path value="DeviceComponent.parent" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://roche.com/fhir/rdc/StructureDefinition/phd-devicecomponent" />
      </type>
    </element>
    <element id="DeviceComponent.measurementPrinciple">
      <path value="DeviceComponent.measurementPrinciple" />
      <definition value="Omit .measurementPrinciple if other than Glucometer (e.g. IP)&#xD;&#xA;&quot;impedance&quot; used for glucometers." />
      <comment value="Omit .measurementPrinciple if other than Glucometer (e.g. IP)&#xD;&#xA;&quot;impedance&quot; used for glucometers." />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="impedance" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="optical" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="impedance" />
        <comment value="hardcoded value" />
      </mapping>
    </element>
    <element id="DeviceComponent.productionSpecification.specType">
      <path value="DeviceComponent.productionSpecification.specType" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="DeviceSpecificationSpecType" />
        </extension>
        <strength value="extensible" />
        <valueSetUri value="http://roche.com/fhir/rdc/ValueSet/device-spectype" />
      </binding>
    </element>
    <element id="DeviceComponent.productionSpecification.specType.coding.system">
      <path value="DeviceComponent.productionSpecification.specType.coding.system" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="http://hl7.org/fhir/specification-type" />
        <comment value="All occurrences will have fixed value" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="http://hl7.org/fhir/specification-type" />
        <comment value="All occurrence have fixed value" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="http://hl7.org/fhir/specification-type" />
        <comment value="All occurrences will have fixed value" />
      </mapping>
    </element>
    <element id="DeviceComponent.productionSpecification.specType.coding.code">
      <path value="DeviceComponent.productionSpecification.specType.coding.code" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="serial-number[0] : part-number[1] : unspecified[2]" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="serial-number[0] : part-number[1] : unspecified[2] : part-number[3] : hardware-revision[4] : software-revision[5] : firmware-revision[6]" />
        <comment value="[x] array position and fixed value should be mapped accordingly" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="serial-number[0] : part-number[1] : unspecified[2]" />
        <comment value="Fixed value" />
      </mapping>
    </element>
    <element id="DeviceComponent.productionSpecification.specType.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="DeviceComponent.productionSpecification.specType.coding.display" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="Serial Number[0] : Part Number[1] : Unspecified Production Specification[2]" />
        <comment value="Fixed value" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="Serial Number[0] : Model Number [1] : Model Name[2] : Part Number[3] : Hardware Revision[4] : Software Revision[5] : Firmware Revision[6]" />
        <comment value="[x] array position and fixed value should be mapped accordingly" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="Serial Number[0] : Part Number[1] : Unspecified Production Specification[2]" />
        <comment value="Fixed value" />
      </mapping>
    </element>
    <element id="DeviceComponent.productionSpecification.productionSpec">
      <path value="DeviceComponent.productionSpecification.productionSpec" />
      <mapping>
        <identity value="ACSPIX2FHIR" />
        <map value="SN[0] : ModelNum[1] : Name[2]" />
        <comment value="Device tage SN , ModelNum and Name" />
      </mapping>
      <mapping>
        <identity value="GREENDOT" />
        <map value="android.os.Build.FINGERPRINT[0] : android.os.Build.MODEL[1]: android.os.Build.VERSION.SDK_INT[2] : android.os.Build.VERSION.DEVICE[3]" />
        <comment value="device serial number : device model : device firmware : operation system version" />
      </mapping>
      <mapping>
        <identity value="GLUCI-CHEK" />
        <map value="DEVICE.Name" />
        <comment value="IF “DeviceComponent. productionSpecification. specType.coding.code= ‘unspecified’” THEN DeviceComponent. productionSpecification.productionSpec" />
      </mapping>
      <mapping>
        <identity value="GLUCI-CHEK" />
        <map value="DEVICE.SN" />
        <comment value="IF “DeviceComponent. productionSpecification. specType.coding.code= ‘serial-number’” THEN DeviceComponent. productionSpecification.productionSpec" />
      </mapping>
      <mapping>
        <identity value="GLUCI-CHEK" />
        <map value="DEVICE.ModelNum" />
        <comment value="IF “DeviceComponent. productionSpecification. specType.coding.code= ‘part-number’” THEN DeviceComponent. productionSpecification.productionSpec" />
      </mapping>
      <mapping>
        <identity value="CDF2FHIR" />
        <map value="SerialNumber[0] : ModelUID[1] : ModelName[2]" />
        <comment value="&lt;SerialNumber&gt;00057305&lt;/SerialNumber&gt; :  &lt;ModelUID&gt;481&lt;/ModelUID&gt; : &lt;ModelName&gt;Accu-Chek Aviva Insight&lt;/ModelName&gt;" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>