<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-sd-exercisetracking" />
  <meta>
    <versionId value="6" />
    <lastUpdated value="2023-03-02T10:52:32.5231667+00:00" />
  </meta>
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-exercisetracking" />
  <version value="1.0.0" />
  <name value="FIPHRSDExerciseTracking" />
  <title value="Finnish PHR Exercise Tracking profile" />
  <status value="active" />
  <experimental value="false" />
  <date value="2023-03-02T14:00:37.8893604+00:00" />
  <publisher value="DigitalWells" />
  <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="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-fitness" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="Observation.meta">
      <path value="Observation.meta" />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
    </element>
    <element id="Observation.meta.profile:fiphrProfile">
      <path value="Observation.meta.profile" />
      <sliceName value="fiphrProfile" />
      <fixedCanonical value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-exercisetracking" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.code.coding:fiphrCode">
      <path value="Observation.code.coding" />
      <sliceName value="fiphrCode" />
      <definition value="FinnishPHR: fiphrCode SHALL be used. Other codes MAY be used.&#xD;&#xA;A reference to a code defined by a terminology system." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.code.coding:fiphrCode.system">
      <path value="Observation.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.code.coding:fiphrCode.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>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="4" />
    </element>
    <element id="Observation.component:exercise-activity">
      <path value="Observation.component" />
      <sliceName value="exercise-activity" />
      <short value="FinnishPHR: Exercise activity" />
      <definition value="FinnishPHR: 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="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
      </binding>
    </element>
    <element id="Observation.component:exercise-activity.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-activity.code.coding:fiphrCode-exercise-activity">
      <path value="Observation.component.code.coding" />
      <sliceName value="fiphrCode-exercise-activity" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-activity.code.coding:fiphrCode-exercise-activity.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-activity.code.coding:fiphrCode-exercise-activity.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="73985-4" />
    </element>
    <element id="Observation.component:exercise-activity.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exerciseactivity" />
      </binding>
    </element>
    <element id="Observation.component:exercise-activity.value[x].coding">
      <path value="Observation.component.value[x].coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x].coding:fiphrValue-exercise-activity">
      <path value="Observation.component.value[x].coding" />
      <sliceName value="fiphrValue-exercise-activity" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x].coding:fiphrValue-exercise-activity.system">
      <path value="Observation.component.value[x].coding.system" />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.246.537.6.301" />
    </element>
    <element id="Observation.component:exercise-activity.value[x].coding:fiphrValue-exercise-activity.code">
      <path value="Observation.component.value[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-activity.value[x].coding:fiphrValue-exercise-activity.display">
      <path value="Observation.component.value[x].coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-activity.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-activity.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-duration">
      <path value="Observation.component" />
      <sliceName value="exercise-duration" />
      <short value="FinnishPHR: Exercise duration" />
      <definition value="FinnishPHR: Exercise duration in minutes." />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-duration.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
      </binding>
    </element>
    <element id="Observation.component:exercise-duration.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-duration.code.coding:fiphrCode-exercise-duration">
      <path value="Observation.component.code.coding" />
      <sliceName value="fiphrCode-exercise-duration" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-duration.code.coding:fiphrCode-exercise-duration.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-duration.code.coding:fiphrCode-exercise-duration.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="55411-3" />
    </element>
    <element id="Observation.component:exercise-duration.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:exercise-duration.value[x].value">
      <path value="Observation.component.value[x].value" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-duration.value[x].unit">
      <path value="Observation.component.value[x].unit" />
      <min value="1" />
      <fixedString value="min" />
    </element>
    <element id="Observation.component:exercise-duration.value[x].system">
      <path value="Observation.component.value[x].system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:exercise-duration.value[x].code">
      <path value="Observation.component.value[x].code" />
      <min value="1" />
      <fixedCode value="min" />
    </element>
    <element id="Observation.component:exercise-duration.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-duration.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-intensity">
      <path value="Observation.component" />
      <sliceName value="exercise-intensity" />
      <short value="FinnishPHR: Exercise intensity" />
      <definition value="FinnishPHR:  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="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
      </binding>
    </element>
    <element id="Observation.component:exercise-intensity.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-intensity.code.coding:fiphrCode-exercise-intensity">
      <path value="Observation.component.code.coding" />
      <sliceName value="fiphrCode-exercise-intensity" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.code.coding:fiphrCode-exercise-intensity.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-intensity.code.coding:fiphrCode-exercise-intensity.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="74008-4" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="extensible" />
        <description value="Codes identifying exercise intensities." />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exerciseintensity" />
      </binding>
    </element>
    <element id="Observation.component:exercise-intensity.value[x].coding">
      <path value="Observation.component.value[x].coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x].coding:fiphrValue-exercise-intensity">
      <path value="Observation.component.value[x].coding" />
      <sliceName value="fiphrValue-exercise-intensity" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x].coding:fiphrValue-exercise-intensity.system">
      <path value="Observation.component.value[x].coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x].coding:fiphrValue-exercise-intensity.code">
      <path value="Observation.component.value[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.value[x].coding:fiphrValue-exercise-intensity.display">
      <path value="Observation.component.value[x].coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component:exercise-intensity.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exercise-intensity.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="1" />
    </element>
    <element id="Observation.component:calories-burned">
      <path value="Observation.component" />
      <sliceName value="calories-burned" />
      <short value="FinnishPHR: Calories burned" />
      <definition value="FinnishPHR: Calories burned in kilocalories." />
      <max value="1" />
    </element>
    <element id="Observation.component:calories-burned.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-exercisetracking" />
      </binding>
    </element>
    <element id="Observation.component:calories-burned.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:calories-burned.code.coding:fiphrCode-calories-burned">
      <path value="Observation.component.code.coding" />
      <sliceName value="fiphrCode-calories-burned" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:calories-burned.code.coding:fiphrCode-calories-burned.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:calories-burned.code.coding:fiphrCode-calories-burned.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="55421-2" />
    </element>
    <element id="Observation.component:calories-burned.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component:calories-burned.value[x].value">
      <path value="Observation.component.value[x].value" />
      <min value="1" />
    </element>
    <element id="Observation.component:calories-burned.value[x].unit">
      <path value="Observation.component.value[x].unit" />
      <min value="1" />
      <fixedString value="kcal" />
    </element>
    <element id="Observation.component:calories-burned.value[x].system">
      <path value="Observation.component.value[x].system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.component:calories-burned.value[x].code">
      <path value="Observation.component.value[x].code" />
      <min value="1" />
      <fixedCode value="kcal" />
    </element>
    <element id="Observation.component:calories-burned.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:calories-burned.referenceRange">
      <path value="Observation.component.referenceRange" />
      <max value="1" />
    </element>
  </differential>
</StructureDefinition>