<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://gen.kanta.fi/fhir/StructureDefinition/KantaObservationObservation" />
  <version value="1.1.0" />
  <name value="KantaObservationObservation" />
  <title value="KantaObservationObservation" />
  <status value="draft" />
  <date value="2025-11-19" />
  <publisher value="Kela" />
  <description value="Profiili, jolla ilmoitetaan merkintään toimintakyvystä liittyvät yksittäiset toimintakykyhavainnot. Profiili ei ole itsenäinen vaan sitä käytetään profiilin KantaObservationNotation aliprofiilina." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="Toimintakykyhavainnon tiedot" />
      <definition value="Profiili, jolla ilmoitetaan merkintään toimintakyvystä liittyvät toimintakykyhavainnot." />
    </element>
    <element id="Observation.id">
      <path value="Observation.id" />
      <short value="Toimintakykyhavainnon yksilöivä tunnus" />
    </element>
    <element id="Observation.meta">
      <path value="Observation.meta" />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://gen.kanta.fi/fhir/StructureDefinition/KantaObservationObservation" />
    </element>
    <element id="Observation.language">
      <path value="Observation.language" />
      <max value="0" />
    </element>
    <element id="Observation.extension:observationICFSpecification">
      <path value="Observation.extension" />
      <sliceName value="observationICFSpecification" />
      <short value="Toimintakykyhavainnon tulos - aihekoodin ICF-tarkenne" />
      <type>
        <code value="Extension" />
        <profile value="https://gen.kanta.fi/fhir/StructureDefinition/extension/ObservationICFSpecification" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Observation.extension:functionalLimitation">
      <path value="Observation.extension" />
      <sliceName value="functionalLimitation" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gen.kanta.fi/fhir/StructureDefinition/extension/FunctionalLimitation" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <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" />
      <fixedCode value="final" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <short value="Toimintakykyhavainnon IFC-koodi" />
      <definition value="Toimintakykyhavainnon aihe luokituksen THL - ICF Toimintakykykäsitteiden luokitus (1.2.246.537.6.48) arvona" />
      <max value="0" />
    </element>
    <element id="Observation.category.id">
      <path value="Observation.category.id" />
      <max value="0" />
    </element>
    <element id="Observation.category.coding">
      <path value="Observation.category.coding" />
      <max value="1" />
    </element>
    <element id="Observation.category.coding.id">
      <path value="Observation.category.coding.id" />
      <max value="0" />
    </element>
    <element id="Observation.category.coding.system">
      <path value="Observation.category.coding.system" />
      <min value="1" />
    </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" />
      <min value="1" />
    </element>
    <element id="Observation.category.coding.display">
      <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">
      <path value="Observation.category.text" />
      <short value="Toimintakykyhavainnon aiheen kuvaus" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gen.kanta.fi/ValueSet/figen-vs-capacityconcept" />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <short value="Toimintakykyhavainnon ICF-aihekoodi" />
      <definition value="ICF Toimintakykykäsitteiden luokituksen avulla henkilön toimintakykyä koskevan havainnon aihe, ilmiö tai käsite." />
      <max value="1" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <definition value="THL - ICF Toimintakykykäsitteiden luokitus 1.2.246.537.6.48" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <short value="ICF-luokituksen arvo" />
      <definition value="Valuesetin Value Set Functional Capacity Concept Code mukainen koodiarvo." />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.display">
      <path value="Observation.code.coding.display" />
      <short value="Koodiarvon nimie" />
      <definition value="Valuesetin Value Set Functional Capacity Concept Code mukainen koodiarvon nimi. Arvon nimen on vastattava annettua koodiarvoa." />
      <min value="1" />
    </element>
    <element id="Observation.code.text">
      <path value="Observation.code.text" />
      <short value="Toimintakykyhavainnon aiheen kuvaus" />
      <definition value="Henkilön toimintakykyä koskevan havainnon aiheen, ilmiön tai käsitetteen kuvaus. Tieto on pakollinen, jos ICF-aiheekoodia ei ole annettu." />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <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]" />
      <short value="Toimintakyvyn havainnointipäivämäärä" />
      <max value="0" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <max value="0" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <max value="0" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Toimintakykyhavainnon tulos" />
      <definition value="Toimintakykyhavainnon tulos" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Observation.value[x]:valueString">
      <path value="Observation.value[x]" />
      <sliceName value="valueString" />
      <short value="Toimintakykyhavainnon tulos tekstinä" />
      <definition value="Tietoon kirjataan henkilön toimintakykyä koskevan havainnon tulos vapaamuotoisena tekstinä. Jos havainnointi keskeytyy tai mittaus lopetetaan kesken, myös tyhjä tulos ja tarpeen mukaan keskeytymisen syy kirjataan vapaamuotoisena tekstinä. Tieto on pakollinen, jos toimintakykyhavainnon tulosta lukuarvona ei ole annettu." />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.value[x]:valueString.value">
      <path value="Observation.value[x].value" />
      <short value="T" />
    </element>
    <element id="Observation.value[x]:valueInteger">
      <path value="Observation.value[x]" />
      <sliceName value="valueInteger" />
      <short value="Toimintakykyhavainnon tulos lukuarvona" />
      <definition value="Tietoon kirjataan henkilön toimintakykyä koskevan havainnon tulos lukuarvona. Tieto on pakollinen, jos Toimintakykyhavainnon tulosta tekstinä ei ole annettu." />
      <type>
        <code value="integer" />
      </type>
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <max value="0" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <short value="Lisätietoja" />
      <definition value="Tekstimuotoinen kuvaus, vapaaehtoiset lisätiedot" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <max value="0" />
    </element>
    <element id="Observation.method">
      <path value="Observation.method" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gen.kanta.fi/ValueSet/figen-vs-observationmethod" />
      </binding>
    </element>
    <element id="Observation.method.extension">
      <path value="Observation.method.extension" />
      <max value="1" />
    </element>
    <element id="Observation.method.coding">
      <path value="Observation.method.coding" />
      <short value="Havainnointimenetelmä" />
      <definition value="Tieto sisältää luokituksen THL - Toimintakykymittarit (1.2.246.537.6.160112) arvona ilmoitetun henkilön toimintakyvyn havainnoinnissa käytetyn menetelmän tai mittarin." />
      <max value="1" />
    </element>
    <element id="Observation.method.coding.system">
      <path value="Observation.method.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.method.coding.code">
      <path value="Observation.method.coding.code" />
      <short value="Havainnointimenetelmä koodiarvo" />
      <definition value="Valuesetin Kanta Functional Capacity Observation Method mukainen havainnointimenetelmän koodiarvo." />
      <min value="1" />
    </element>
    <element id="Observation.method.coding.display">
      <path value="Observation.method.coding.display" />
      <short value="Koodiarvon nimi" />
      <definition value="Valuesetin Kanta Functional Capacity Observation Method mukainen havainnointimenetelmän koodiarvon nimi. Arvon nimen on vastattava annettua koodiarvoa." />
      <min value="1" />
    </element>
    <element id="Observation.method.text">
      <path value="Observation.method.text" />
      <short value="Lisätiedot havainnointimenetelmästä" />
      <definition value="Tietoon kirjataan lisätietoja henkilön toimintakyvyn havainnoinnissa käytetystä menetelmästä tai mittarista ja kuvataan luokituksesta valittua luokkaa tarkemmin." />
    </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>