<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="TrifoliaTestObsFIPHRBASEv1" />
  <meta>
    <versionId value="1" />
    <lastUpdated value="2020-08-20T19:14:08.261+00:00" />
    <source value="#YP6a30f93ocIz2Rt" />
  </meta>
  <url value="http://tietohiisi.fi/fhir/StructureDefinition/TrifoliaTestObsFIPHRBASEv1" />
  <version value="0.1" />
  <name value="TrifoliaTestObsFIPHRBASEv1" />
  <title value="Finnish PHR Vital Signs pohjaksi" />
  <status value="draft" />
  <experimental value="true" />
  <date value="2019-07-23" />
  <publisher value="Kela" />
  <description value="Finnish PHR base profile for Observation resource" />
  <purpose value="Finnish PHR abstract base profile for Observation used in Vital signs measurements made about a patient. Base profile defines profiled elements used in all vital signs observation resources." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="true" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/vitalsigns" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="Finnish PHR base profile for Observation resource" />
    </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: Profile required. The URL is a reference to [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" />
        <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)." />
      <comment value="This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary." />
    </element>
    <element id="Observation.identifier.type">
      <path value="Observation.identifier.type" />
      <max value="0" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier.system">
      <path value="Observation.identifier.system" />
      <comment value="see http://en.wikipedia.org/wiki/Uniform_resource_identifier" />
      <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)." />
      <comment value="If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986.  The value's primary purpose is computational mapping.  As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.)  A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html)." />
      <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.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" />
      <short value="Classification of type of observation." />
      <definition value="Classification of type of observation." />
      <comment value="FinnishPHR: Only value vital-signs valid in FinnishPHR (defined by the value set).  More fine-grained filtering can be performed using the  Observation.code." />
      <requirements value="All resources all vital signs observations." />
      <binding>
        <strength value="preferred" />
        <description value="Classification of type of observation." />
      </binding>
    </element>
    <element id="Observation.category:VSCat">
      <path value="Observation.category" />
      <sliceName value="VSCat" />
      <binding>
        <strength value="required" />
      </binding>
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <comment value="Describes type of observation." />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns" />
      </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>
      <requirements value="Allows for alternative encodings within a code system, and translations to other code systems. Also supports communication of the same instance to systems requiring different encodings." />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:fiphrCode">
      <path value="Observation.code.coding" />
      <sliceName value="fiphrCode" />
      <min value="1" />
      <max value="2" />
    </element>
    <element id="Observation.code.coding:fiphrCode.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
    </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" />
      <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.type">
      <path value="Observation.subject.type" />
      <max value="0" />
    </element>
    <element id="Observation.subject.identifier">
      <path value="Observation.subject.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.subject.display">
      <path value="Observation.subject.display" />
      <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]" />
      <type>
        <code value="dateTime" />
      </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" />
      <comment value="Updated when the result is updated." />
      <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" />
        <aggregation value="referenced" />
      </type>
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <min value="1" />
    </element>
    <element id="Observation.performer.type">
      <path value="Observation.performer.type" />
      <max value="0" />
    </element>
    <element id="Observation.performer.identifier">
      <path value="Observation.performer.identifier" />
      <max value="0" />
    </element>
    <element id="Observation.performer.display">
      <path value="Observation.performer.display" />
      <max value="0" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <comment value="Normally, an observation will have either a single value or a set of related observations. A few observations (e.g. Apgar score) may have both a value and related observations (for an Apgar score, the observations from which the measure is derived). If a value is present, the datatype for this element should be determined by Observation.code. This element has a variable name depending on the type as follows: valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueRange, valueRatio, valueSampledData, valueAttachment, valueTime, valueDateTime, or valuePeriod. (The name format is &quot;'value' + the type name&quot; with a capital on the first letter of the type).&#xD;&#xD;&#xD;If the data element is usually coded or if the type associated with the Observation.value defines a coded value, use CodeableConcept instead of string datatype even if the value is uncoded text.  A value set is bound to the ValueCodeableConcept element.    For further discussion and examples see the  [notes section](observation.html#notes) below." />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <binding>
        <strength value="required" />
        <description value="Codes specifying why the result (Observation.value[x]) is missing." />
      </binding>
    </element>
    <element id="Observation.dataAbsentReason.id">
      <path value="Observation.dataAbsentReason.id" />
      <short value="xml:id (or equivalent in JSON)" />
    </element>
    <element id="Observation.dataAbsentReason.coding">
      <path value="Observation.dataAbsentReason.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <max value="1" />
    </element>
    <element id="Observation.dataAbsentReason.coding:fhiphrCoding">
      <path value="Observation.dataAbsentReason.coding" />
      <sliceName value="fhiphrCoding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.dataAbsentReason.coding:fhiphrCoding.system">
      <path value="Observation.dataAbsentReason.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/data-absent-reason" />
    </element>
    <element id="Observation.dataAbsentReason.coding:fhiphrCoding.code">
      <path value="Observation.dataAbsentReason.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.dataAbsentReason.coding:fhiphrCoding.display">
      <path value="Observation.dataAbsentReason.coding.display" />
      <min value="1" />
    </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." />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination." />
      <max value="1" />
      <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.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.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" />
      <comment value="Profiled further in derived profiles that use components." />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns" />
      </binding>
    </element>
    <element id="Observation.component.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component.code.coding:fiphrCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="fiphrCoding" />
      <max value="1" />
    </element>
    <element id="Observation.component.code.coding:fiphrCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component.code.coding:fiphrCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.code.coding:fiphrCoding.display">
      <path value="Observation.component.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding">
      <path value="Observation.component.dataAbsentReason.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component.dataAbsentReason.coding:fiphrCoding">
      <path value="Observation.component.dataAbsentReason.coding" />
      <sliceName value="fiphrCoding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding:fiphrCoding.system">
      <path value="Observation.component.dataAbsentReason.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/data-absent-reason" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding:fiphrCoding.code">
      <path value="Observation.component.dataAbsentReason.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding:fiphrCoding.display">
      <path value="Observation.component.dataAbsentReason.coding.display" />
      <min value="1" />
    </element>
    <element id="Observation.component.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component.interpretation.coding:fiphrCoding">
      <path value="Observation.component.interpretation.coding" />
      <sliceName value="fiphrCoding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component.interpretation.coding:fiphrCoding.system">
      <path value="Observation.component.interpretation.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation" />
    </element>
    <element id="Observation.component.interpretation.coding:fiphrCoding.code">
      <path value="Observation.component.interpretation.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component.interpretation.coding:fiphrCoding.display">
      <path value="Observation.component.interpretation.coding.display" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>