<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="fiphr-sd-nutrition" />
  <meta>
    <versionId value="4" />
    <lastUpdated value="2021-02-22T10:03:29.014+00:00" />
  </meta>
  <url value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-nutrition" />
  <version value="0.1.0" />
  <name value="FIPHRSDNutrition" />
  <title value="Finnish PHR Nutrition profile" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2021-02-22T10:03:27.4845343+00:00" />
  <publisher value="Kela" />
  <description value="Finnish PHR base profile for nutrition Observation resource" />
  <purpose value="Finnish PHR abstract base profile for Observation used in Nutrition measurements made about a patient. Base profile defines profiled elements used in all nutrition observation resources." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="true" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="Finnish PHR base profile for nutrition Observation resource" />
      <definition value="Finnish PHR abstract base profile for Observation used in nutrition measurements made about a patient. Base profile defines profiled elements used in all nutrition observation resources." />
      <comment value="." />
    </element>
    <element id="Observation.meta">
      <path value="Observation.meta" />
      <min value="1" />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="FinnishPHR: fiphrProfile SHALL be used. Other profiles MAY be used.&#xD;&#xA;A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." />
      <min value="1" />
    </element>
    <element id="Observation.meta.profile:fiphrProfile">
      <path value="Observation.meta.profile" />
      <sliceName value="fiphrProfile" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.language">
      <path value="Observation.language" />
      <min value="1" />
      <binding>
        <strength value="required" />
      </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.system">
      <path value="Observation.identifier.system" />
      <min value="1" />
      <example>
        <label value="General" />
        <valueUri value="urn:ietf:rfc:3986" />
      </example>
    </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.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.partOf">
      <path value="Observation.partOf" />
      <max value="0" />
    </element>
    <element id="Observation.status">
      <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" />
      <definition value="FinnishPHR: fiphrCategory SHALL be used. Other categories MAY be used.&#xD;&#xA;A code that classifies the general type of observation being made." />
      <comment value="FinnishPHR: Only value nutrition valid in FinnishPHR (defined by the value set). More fine-grained filtering can be performed using the Observation.code." />
      <requirements value="Finnish PHR: All resources are related to nutrition." />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-observationcategory" />
      </binding>
    </element>
    <element id="Observation.category.coding">
      <path value="Observation.category.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.category.coding:fiphrCategory">
      <path value="Observation.category.coding" />
      <sliceName value="fiphrCategory" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.category.coding:fiphrCategory.system">
      <path value="Observation.category.coding.system" />
      <short value="Finnish PHR: Codes for high level observation categories." />
      <min value="1" />
      <fixedUri value="http://phr.kanta.fi/CodeSystem/fiphr-cs-observationcategory" />
    </element>
    <element id="Observation.category.coding:fiphrCategory.code">
      <path value="Observation.category.coding.code" />
      <min value="1" />
      <fixedCode value="nutrition" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <definition value="FinnishPHR: fiphrCode SHALL be used. Other codes MAY be used.&#xD;&#xA;Describes what was observed. Sometimes this is called the observation &quot;name&quot;." />
      <comment value="Describes type of observation.&#xD;&#xA;Finnish PHR: The valueset binding strength in the base profile is set to 'example', because some of the derived profiles use another valueset. In all profiles derived from the base profile, the valueset binding strength SHALL be set to 'required'." />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-nutrition" />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.code.coding:fiphrCode">
      <path value="Observation.code.coding" />
      <sliceName value="fiphrCode" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.code.coding:fiphrCode.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.code.coding:fiphrCode.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:fiphrCode.display">
      <path value="Observation.code.coding.display" />
      <min value="1" />
    </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 the Patient" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <min value="1" />
    </element>
    <element id="Observation.subject.identifier.assigner">
      <path value="Observation.subject.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Observation.focus">
      <path value="Observation.focus" />
      <max value="0" />
    </element>
    <element id="Observation.encounter">
      <path value="Observation.encounter" />
      <max value="0" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Period" />
      </type>
    </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: 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-sd-patient" />
      </type>
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <min value="1" />
    </element>
    <element id="Observation.performer.identifier.assigner">
      <path value="Observation.performer.identifier.assigner" />
      <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="FinnishPHR: fiphrInterpretation SHALL be used. Other interpretations MAY be used. 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="extensible" />
        <description value="Finnish PHR: Codes identifying interpretations of observations." />
      </binding>
    </element>
    <element id="Observation.interpretation.coding">
      <path value="Observation.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.interpretation.coding:fiphrInterpretation">
      <path value="Observation.interpretation.coding" />
      <sliceName value="fiphrInterpretation" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.interpretation.coding:fiphrInterpretation.system">
      <path value="Observation.interpretation.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" />
    </element>
    <element id="Observation.interpretation.coding:fiphrInterpretation.code">
      <path value="Observation.interpretation.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.interpretation.coding:fiphrInterpretation.display">
      <path value="Observation.interpretation.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.note.author[x]">
      <path value="Observation.note.author[x]" />
      <max value="0" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <max value="0" />
    </element>
    <element id="Observation.method">
      <path value="Observation.method" />
      <max value="0" />
    </element>
    <element id="Observation.specimen">
      <path value="Observation.specimen" />
      <max value="0" />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <max value="0" />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <max value="0" />
    </element>
    <element id="Observation.derivedFrom">
      <path value="Observation.derivedFrom" />
      <max value="0" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>