<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-sd-exercisetracking-stu3" />
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-exercisetracking-stu3" />
  <version value="0.1" />
  <name value="fiphr-sd-exercisetracking-stu3" />
  <title value="Finnish PHR Exercise Tracking profile" />
  <status value="draft" />
  <experimental value="true" />
  <date value="2019-11-05" />
  <publisher value="DigitalWells" />
  <description value="Finnish PHR profile for exercise tracking in terms of exercise activity, exercise duration, exercise intensity and calories burned. The profile is based on the Finnish PHR Fitness profile." />
  <purpose value="Finnish PHR profile for exercise tracking in terms of exercise activity, exercise duration, exercise intensity and calories burned. The profile is based on the Finnish PHR Fitness profile." />
  <fhirVersion value="3.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://phr.kanta.fi/StructureDefinition/fiphr-fitness-stu3" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <fixedUri value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-exercisetracking-stu3" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <max value="1" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <fixedCode value="55409-7" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code.coding.code" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <max value="4" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component.interpretation">
      <path value="Observation.component.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.component.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-activity">
      <path value="Observation.component" />
      <sliceName value="exercise-activity" />
      <short value="Exercise activity" />
      <definition value="Exercise activity from the UKK Institute's Liikuntalajinimikkeistö." />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-activity.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:exercise-activity.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-activity.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="73985-4" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <sliceName value="valueCodeableConcept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <description value="Codes identifying exercise activities." />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exerciseactivity" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.246.537.6.301" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding.version">
      <path value="Observation.component.valueCodeableConcept.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueCodeableConcept.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.coding.userSelected">
      <path value="Observation.component.valueCodeableConcept.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]:valueCodeableConcept.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueCodeableConcept.text" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-activity.interpretation">
      <path value="Observation.component.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-activity.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-duration">
      <path value="Observation.component" />
      <sliceName value="exercise-duration" />
      <short value="Exercise duration" />
      <definition value="Exercise duration in minutes." />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-duration.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:exercise-duration.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-duration.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="55411-3" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity">
      <path value="Observation.component.valueQuantity" />
      <sliceName value="valueQuantity" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity.value">
      <path value="Observation.component.valueQuantity.value" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity.comparator">
      <path value="Observation.component.valueQuantity.comparator" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueQuantity.unit" />
      <min value="1" />
      <fixedString value="min" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity.system">
      <path value="Observation.component.valueQuantity.system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]:valueQuantity.code">
      <path value="Observation.component.valueQuantity.code" />
      <min value="1" />
      <fixedCode value="min" />
    </element>
    <element id="Observation.component:exercise-duration.interpretation">
      <path value="Observation.component.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-duration.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-intensity">
      <path value="Observation.component" />
      <sliceName value="exercise-intensity" />
      <short value="Exercise intensity" />
      <definition value="Exercise intensity as light (1.1-2.9 MET), moderate (3.0-5.9 MET) or vigorous (6.0- MET)." />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:exercise-intensity.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-intensity.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="74008-4" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <sliceName value="valueCodeableConcept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <description value="Codes identifying exercise intensities." />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exerciseintensity" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding.version">
      <path value="Observation.component.valueCodeableConcept.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueCodeableConcept.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.coding.userSelected">
      <path value="Observation.component.valueCodeableConcept.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]:valueCodeableConcept.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueCodeableConcept.text" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-intensity.interpretation">
      <path value="Observation.component.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.component:exercise-intensity.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.component:calories-burned">
      <path value="Observation.component" />
      <sliceName value="calories-burned" />
      <short value="Calories burned" />
      <definition value="Calories burned in kilocalories." />
      <max value="1" />
    </element>
    <element id="Observation.component:calories-burned.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component:calories-burned.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:calories-burned.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="55421-2" />
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity">
      <path value="Observation.component.valueQuantity" />
      <sliceName value="valueQuantity" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity.value">
      <path value="Observation.component.valueQuantity.value" />
      <min value="1" />
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity.comparator">
      <path value="Observation.component.valueQuantity.comparator" />
      <max value="0" />
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueQuantity.unit" />
      <min value="1" />
      <fixedString value="kcal" />
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity.system">
      <path value="Observation.component.valueQuantity.system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:calories-burned.value[x]:valueQuantity.code">
      <path value="Observation.component.valueQuantity.code" />
      <min value="1" />
      <fixedCode value="kcal" />
    </element>
    <element id="Observation.component:calories-burned.interpretation">
      <path value="Observation.component.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.component:calories-burned.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>