<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-fitness-stu3" />
  <meta>
    <versionId value="0.10" />
    <lastUpdated value="2017-11-17T13:28:00+02:00" />
  </meta>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-summary">
    <valueMarkdown value="### Complete Summary of the Mandatory Requirements&#xA;&#xA;1.  One status in `Observation.status`which has a [required](http://hl7.org/fhir/terminologies.html#extensible) binding to:&#xA;    -    [ObservationStatus] value set.&#xA;1.  A category in `Observation.category` which must have:&#xA;    -   a fixed `Observation.category.coding.system`=&quot;http://hl7.org/fhir/observation-category&quot;&#xA;    -   a fixed `Observation.category.coding.code`= &quot;fitness&quot;&#xA;&#xA;1.  A code in `Observation.code`&#xA;    -   a fixed `Observation.code.coding.system`= &quot;http://loinc.org&quot;&#xA;    -   a LOINC code in `Observation.code.coding.code` which has an [extensible](http://hl7.org/fhir/terminologies.html#extensible) binding to:&#xA;         -   [Physical Activity] value set.&#xA;                &#xA;1.  One patient in `Observation.subject`&#xA;1.  A date and time in `effectiveDateTime` or `effectivePeriod`&#xA;1.  Either one `Observation.valueQuantity` or, if there is no value, one code in `Observation.DataAbsentReason`&#xA;    -   Each Observation.valueQuantity must have:&#xA;        -   One numeric value in `Observation.valueQuantity.value`&#xA;        -   a fixed `Observation.valueQuantity.system`=&quot;http://unitsofmeasure&quot;&#xA;        -   a UCUM unit code in `Observation.valueQuantity.code` which has an [required] binding to:&#xA;             -   [Physical Activity Units] value set.&#xA;    -   Observation.DataAbsentReason is bound to [Observation Value&#xA;        Absent Reason] value set.&#xA;&#xA;1.  When using a panel code to group component observations (Note: See&#xA;    the comments regarding blood pressure in the table above), one or&#xA;    more `Observation.component.code` each of which must have:&#xA;    -   a fixed&#xA;        `Observation.component.code.coding.system` =&quot;&lt;http://loinc.org&gt;&quot;&#xA;         -   a LOINC code in `Observation.code.coding.code` which has an [extensible] binding to:&#xA;             -   [Physical Activity Units] value set.&#xA;&#xA;1.  Either one `Observation.component.valueQuantity` or, if there is&#xA;    no value, one code in `Observation.component.DataAbsentReason`&#xA;    -   Each Observation.component.valueQuantity must have:&#xA;        -   One numeric value in&#xA;            `Observation.component.valueQuantity.value`&#xA;        -   a fixed `Observation.component.valueQuantity.system`= &quot;&lt;http://unitsofmeasure.org&gt;&quot;&#xA;        -   a UCUM unit code in&#xA;            `Observation.component.valueQuantity.code` which has an [required] binding to:&#xA;             -   [Physical Activity Units] value set.&#xA;    -   Observation.component.DataAbsentReason is bound to [Observation&#xA;        Value Absent Reason] value set.&#xA;&#xA;1.  When using a panel code to group observations, one or more reference&#xA;    to Physical Activity Observations in `Observation.related.target`&#xA;    -   a fixed `Observation.related.type`= &quot;has-member&quot;&#xA;&#xA; [Physical Activity]: valueset-observation-fitnessresult.html&#xA;  [Physical Activity Units]: valueset-ucum-fitness-common.html&#xA;  [extensible]: terminologies.html#extensible&#xA;  [ObservationStatus]: valueset-observation-status.html&#xA; [Observation Value Absent Reason]: valueset-observation-valueabsentreason.html&#xA;[required]: terminologies.html#required" />
  </extension>
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-fitness-stu3" />
  <version value="0.10" />
  <name value="Finnish PHR Fitness profile" />
  <title value="Finnish PHR Fitness profile" />
  <status value="draft" />
  <experimental value="true" />
  <date value="2017-11-17" />
  <description value="Finnish PHR base profile for Fitness Observation resource" />
  <purpose value="Finnish PHR abstract base profile for Observation used in various fitness or wellness measurements provided about a patient. In many cases these measures are complementary or parallel to automatic vital sign measurements related to patient's wellness or fitness. Base profile defines profiled elements used in all fitness observation resources." />
  <copyright value="W2E" />
  <fhirVersion value="3.0.1" />
  <kind value="resource" />
  <abstract value="true" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="Finnish PHR base profile for Fitness Observation resource" />
      <definition value="Finnish PHR abstract base profile for Observation used in Fitness measurements made about a patient. Base profile defines profiled elements used in all fitness observation resources." />
      <comment value="." />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <definition value="FinnishPHR: Profile required. The URL is a reference to [StructureDefinition.url]()." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.meta.security">
      <path value="Observation.meta.security" />
      <max value="1" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="SecurityLabels" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Finnish PHR: Security Labels from the Healthcare Privacy and Security Classification System." />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-confidentiality" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.meta.security.system">
      <path value="Observation.meta.security.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/v3/Confidentiality" />
    </element>
    <element id="Observation.meta.security.version">
      <path value="Observation.meta.security.version" />
      <max value="0" />
    </element>
    <element id="Observation.meta.security.code">
      <path value="Observation.meta.security.code" />
      <min value="1" />
    </element>
    <element id="Observation.meta.security.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.meta.security.display" />
      <min value="1" />
    </element>
    <element id="Observation.meta.security.userSelected">
      <path value="Observation.meta.security.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.language">
      <path value="Observation.language" />
      <min value="1" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet">
          <valueReference>
            <reference value="http://hl7.org/fhir/ValueSet/all-languages" />
          </valueReference>
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="Language" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Finnish PHR: A code of human language." />
      </binding>
    </element>
    <element id="Observation.text">
      <path value="Observation.text" />
      <min value="1" />
    </element>
    <element id="Observation.extension">
      <path value="Observation.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.extension:creatingApplication">
      <path value="Observation.extension" />
      <sliceName value="creatingApplication" />
      <type>
        <code value="Extension" />
        <profile value="http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication" />
      </type>
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.identifier.use">
      <path value="Observation.identifier.use" />
      <max value="0" />
    </element>
    <element id="Observation.identifier.type">
      <path value="Observation.identifier.type" />
      <max value="0" />
    </element>
    <element id="Observation.identifier.system">
      <path value="Observation.identifier.system" />
      <min value="1" />
      <fixedUri value="urn:ietf:rfc:3986" />
    </element>
    <element id="Observation.identifier.value">
      <path value="Observation.identifier.value" />
      <definition value="Finnish PHR: Uuid identfying the resource uniquely. The portion of the identifier typically relevant to the user and which is unique within the context of the system." />
      <min value="1" />
    </element>
    <element id="Observation.identifier.period">
      <path value="Observation.identifier.period" />
      <max value="0" />
    </element>
    <element id="Observation.identifier.assigner">
      <path value="Observation.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Observation.basedOn">
      <path value="Observation.basedOn" />
      <max value="0" />
    </element>
    <element id="Observation.status">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint">
        <valueString value="default: final" />
      </extension>
      <path value="Observation.status" />
      <short value="Finnish PHR: Status final" />
      <definition value="Finnish PHR: The status of the result value." />
      <comment value="Finnish PHR: Only status 'final' shall be used in FinnishPHR." />
      <requirements value="Finnish PHR: Need to track the status of individual results. Erronous observation may not be stored in FinnishPHR." />
      <fixedCode value="final" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <short value="Classification of type of observation:" />
      <definition value="Classification of type of observation." />
      <comment value="FinnishPHR: Only value fitness valid in FinnishPHR (defined by the value set). More fine-grained filtering can be performed using the  Observation.code." />
      <requirements value="All resources are fitness (physical activity) observations." />
      <min value="1" />
      <max value="1" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ObservationCategory" />
        </extension>
        <strength value="required" />
        <description value="Finnish PHR: Codes for high level observation categories." />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fitness-category" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.category.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.category.coding.system">
      <path value="Observation.category.coding.system" />
      <min value="1" />
      <fixedUri value="http://phr.kanta.fi/fiphr-cs-fitnesscategory" />
    </element>
    <element id="Observation.category.coding.version">
      <path value="Observation.category.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.category.coding.code">
      <path value="Observation.category.coding.code" />
      <short value="Fitness observation category" />
      <min value="1" />
      <fixedCode value="fitness" />
    </element>
    <element id="Observation.category.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.category.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.category.coding.userSelected">
      <path value="Observation.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.category.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.category.text" />
      <max value="0" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <short value="Type of observation (type / code)" />
      <comment value="Describes type of observation." />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ObservationCode" />
        </extension>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-fitnessresult" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <min value="1" />
      <max value="2" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.version">
      <path value="Observation.code.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <definition value="A symbol in syntax defined by the system." />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.userSelected">
      <path value="Observation.code.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.code.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.code.text" />
      <max value="0" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <definition value="Finnish PHR: The patient described by the observation and into whose record the observation is placed." />
      <comment value="Finnish PHR: Who this observation is about. Usually the same person as the application user, but if the user is storing observations on behalf of someone else, the subject is the person whose measurements or other observations are entered." />
      <requirements value="Finnish PHR: Observations have always known Patient." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-patient-stu3" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <min value="1" />
    </element>
    <element id="Observation.subject.identifier">
      <path value="Observation.subject.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.subject.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.subject.display" />
      <max value="0" />
    </element>
    <element id="Observation.context">
      <path value="Observation.context" />
      <max value="0" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <min value="1" />
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <short value="Finnish PHR: The date and time this observation is stored." />
      <definition value="Finnish PHR: &#xD;&#xA;The date and time this observation is stored." />
      <min value="1" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <short value="Finnish PHR: Application user who is responsible for the observation" />
      <definition value="FinnishPHR: Application user who was responsible for asserting the observed value as &quot;true&quot;." />
      <comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-patient-stu3" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <min value="1" />
    </element>
    <element id="Observation.performer.identifier">
      <path value="Observation.performer.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.performer.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.performer.display" />
      <max value="0" />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <definition value="Finnish PHR: The assessment made based on the result of the observation. Intended as a simple compact code placed adjacent to the result value. Otherwise known as abnormal flag." />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ObservationInterpretation" />
        </extension>
        <strength value="required" />
        <description value="Finnish PHR: Codes identifying interpretations of observations." />
      </binding>
    </element>
    <element id="Observation.interpretation.coding">
      <path value="Observation.interpretation.coding" />
      <max value="1" />
    </element>
    <element id="Observation.interpretation.coding.system">
      <path value="Observation.interpretation.coding.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/v2/0078" />
    </element>
    <element id="Observation.interpretation.coding.version">
      <path value="Observation.interpretation.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation.coding.code">
      <path value="Observation.interpretation.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.interpretation.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.interpretation.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.interpretation.coding.userSelected">
      <path value="Observation.interpretation.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <max value="0" />
    </element>
    <element id="Observation.method">
      <path value="Observation.method" />
      <comment value="FinnishPHR: Only used if not implicit in code for Observation.code." />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ObservationMethod" />
        </extension>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-observationmethod" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.method.coding.system">
      <path value="Observation.method.coding.system" />
      <min value="1" />
      <fixedUri value="http://phr.kanta.fi/fiphr-cs-observationmethod" />
    </element>
    <element id="Observation.method.coding.version">
      <path value="Observation.method.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.method.coding.code">
      <path value="Observation.method.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.method.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.method.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.method.coding.userSelected">
      <path value="Observation.method.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.specimen">
      <path value="Observation.specimen" />
      <max value="0" />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <short value="(Measurement) FinnishDevice" />
      <comment value="Finnish PHR Device profile is not final yet." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-device" />
        <aggregation value="contained" />
      </type>
    </element>
    <element id="Observation.device.identifier">
      <path value="Observation.device.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.related">
      <path value="Observation.related" />
      <max value="0" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <comment value="Profiled further in derived profiles that use components." />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ObservationCode" />
        </extension>
        <strength value="required" />
        <valueSetReference>
          <reference value="http://phr.kanta.fi/ValueSet/fiphr-vs-fitnessresult" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component.code.coding">
      <path value="Observation.component.code.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component.code.coding.version">
      <path value="Observation.component.code.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.component.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.code.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component.code.coding.userSelected">
      <path value="Observation.component.code.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.component.code.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.text" />
      <max value="0" />
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.component.interpretation.coding.system">
      <path value="Observation.component.interpretation.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component.interpretation.coding.version">
      <path value="Observation.component.interpretation.coding.version" />
      <max value="0" />
    </element>
    <element id="Observation.component.interpretation.coding.code">
      <path value="Observation.component.interpretation.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.interpretation.coding.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.interpretation.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component.interpretation.coding.userSelected">
      <path value="Observation.component.interpretation.coding.userSelected" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>