<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-sd-fitness-stu3" />
  <meta>
    <lastUpdated value="2018-03-16T09:52:57.818+02:00" />
  </meta>
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-fitness-stu3" />
  <version value="1.2" />
  <name value="fiphr-sd-fitness-stu3" />
  <title value="Finnish PHR Fitness profile" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2019-11-27" />
  <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>
        <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>
        <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" />
      <definition value="A unique identifier assigned to this observation. &#xD;&#xA;Finnish PHR: At least one of the identifiers SHALL be globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system)." />
      <min value="1" />
    </element>
    <element id="Observation.identifier.use">
      <path value="Observation.identifier.use" />
      <definition value="The purpose of this identifier. &#xD;&#xA;Finnish PHR: The code 'official' SHALL be only used if the given identifier value is truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system)." />
    </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" />
    </element>
    <element id="Observation.identifier.value">
      <path value="Observation.identifier.value" />
      <definition value="The portion of the identifier typically relevant to the user and which is unique within the context of the system. &#xD;&#xA;Finnish PHR: At least one of the identifiers SHALL be truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as 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>
        <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>
        <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>
        <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." />
      <max value="0" />
      <binding>
        <strength value="example" />
        <valueSetUri value="http://hl7.org/fhir/ValueSet/observation-methods" />
      </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." />
      <max value="0" />
      <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.type">
      <path value="Observation.related.type" />
      <short value="has-member | derived-from" />
      <requirements value="A relationship type SHOULD be provided and SHALL be either has-member or derived-from if provided." />
    </element>
    <element id="Observation.related.target">
      <path value="Observation.related.target" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" />
      </type>
    </element>
    <element id="Observation.related.target.reference">
      <path value="Observation.related.target.reference" />
      <min value="1" />
    </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>
        <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>