<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="structuredefinition-profile-observation-results" />
  <meta>
    <lastUpdated value="2021-01-18T23:39:35.676+00:00" />
  </meta>
  <url value="https://fhir.infoway-inforoute.ca/StructureDefinition/profile-observation-results" />
  <version value="0.1" />
  <name value="PHIAccessLabResultObservation" />
  <title value="PHI Access Observation Profile - Lab Results" />
  <status value="draft" />
  <date value="2021-01-18T23:25:59.6018937Z" />
  <publisher value="Canada Health Infoway" />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <code value="CA" />
      <display value="Canada" />
    </coding>
  </jurisdiction>
  <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="Observation Profile" />
      <definition value="The Observation Profile is based upon the FHIR Observation Resource" />
      <comment value="Used for simple observations such as laboratory atomic results. Other resources are used to provide context for observations such as laboratory reports, etc." />
      <constraint>
        <key value="access-1" />
        <severity value="error" />
        <human value="If there is no component or hasMember element then either a value[x] or a data absent reason must be present" />
        <expression value="(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())" />
        <xpath value="exists(f:component) or exists(f:hasMember) or exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:dataAbsentReason)" />
        <source value="http://hl7.org/fhir/ACCESS2020/StructureDefinition/profile-observation-results" />
      </constraint>
    </element>
    <element id="Observation.id">
      <path value="Observation.id" />
      <requirements value="Necessary for preventing collisions and duplication of resources" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta">
      <path value="Observation.meta" />
      <requirements value="Necessary for preventing collisions and duplication of resources" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.id">
      <path value="Observation.meta.id" />
      <mustSupport value="false" />
    </element>
    <element id="Observation.meta.versionId">
      <path value="Observation.meta.versionId" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.lastUpdated">
      <path value="Observation.meta.lastUpdated" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.source">
      <path value="Observation.meta.source" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.text">
      <path value="Observation.text" />
      <requirements value="Cardinality constrained to 1..1 as this element provides a meaningful human narrative to the observation findings and is expected to be generated by the FHIR Service/Data Connector based on the structured elements in the resource." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.text.status">
      <path value="Observation.text.status" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.text.div">
      <path value="Observation.text.div" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <comment value="Usage Note: Given the cross-provinicial scope of the use cases, an observation identifier is considered critical to prevent a patient-facing application from unknowingly rendering duplicated results." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier.type">
      <path value="Observation.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier.type.text">
      <path value="Observation.identifier.type.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier.system">
      <path value="Observation.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.identifier.value">
      <path value="Observation.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <short value="preliminary | final | amended | corrected" />
      <comment value="This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.&#xA;&#xA;In the first release, the focus will be observations communicated to the LIS that are preliminary, finalized, and corrected. A constrained value set will be used that does not include registered, cancelled, entered in error, and unknown.  Instead, implementors are encouragedto utilize the data absent reason element to communicate the reason why information is not available on a communicated result. &#xA;&#xA;Developers Note:  If the constraints on this value set are further relaxed to include registered, cancelled, and entered in error values - then the invariant requiring a value, component, or data absent reason will need to be re-visited to ensure it is properly updated to execute on a status dependent basis (ex: the invariant should not be triggered when the status is registered, entered in error, or cancelled." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/PHI-access-observation-status" />
      </binding>
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:laboratory">
      <path value="Observation.category" />
      <sliceName value="laboratory" />
      <min value="1" />
      <max value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/observation-category" />
          <code value="laboratory" />
          <display value="Laboratory" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:laboratory.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:laboratory.text">
      <path value="Observation.category.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:OtherDetail">
      <path value="Observation.category" />
      <sliceName value="OtherDetail" />
      <patternCodeableConcept>
        <coding>
          <system value="https://fhir.infoway-inforoute.ca/ValueSet/PHIaccess-observation-lab-category-detail" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/PHIaccess-observation-lab-category-detail" />
      </binding>
    </element>
    <element id="Observation.category:OtherDetail.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
    </element>
    <element id="Observation.category:OtherDetail.coding.system">
      <path value="Observation.category.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:OtherDetail.coding.code">
      <path value="Observation.category.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:OtherDetail.coding.display">
      <path value="Observation.category.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category:OtherDetail.text">
      <path value="Observation.category.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <comment value="The binding strength of this element is [Preferred](https://www.hl7.org/fhir/terminologies.html#strength), meaning that codes are encouraged to draw from the LOINC or PCLOCD code system for interoperability purposes but are not required to do so to be considered conformant. *All* code-value and, if present, component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation." />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <description value="LOINC codes identifying names of simple observations." />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/PHI-access-observation-codes" />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.display">
      <path value="Observation.code.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.text">
      <path value="Observation.code.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.infoway-inforoute.ca/StructureDefinition/profile-patient-DataConnector" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <comment value="At least a date should be present unless this observation is a historical report.  This element may be further constrained in future releases if other jurisdictions do not expect to utilize effective.Period in their data models." />
      <requirements value="Knowing when an observation was deemed true is important to its relevance as well as determining trends. objective. Timing and objective.instant are next expected to be used in the jurisdictions evaluated in the first release." />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Period" />
      </type>
      <constraint>
        <key value="ca-baseline-datetime" />
        <severity value="error" />
        <human value="Datetime SHALL be at least to day" />
        <expression value="($this as dateTime).toString().length() &gt;= 8" />
        <source value="http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation-results" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <comment value="For Observations that don’t require review and verification, it may be the same as the [`lastUpdated` ](resource-definitions.html#Meta.lastUpdated) time of the resource itself.  For Observations that do require review and verification for certain updates, it might not be the same as the `lastUpdated` time of the resource itself due to a non-clinically significant update that doesn’t require the new version to be reviewed and verified again.&#xA;&#xA;Zero-fill to necessary precision." />
      <requirements value="In some use cases it may be important to know when the observation was made available to providers in addition to when the observation was mad." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.&#xA;&#xA;Providing information about the lab that performed the observation can be critical for patient-facing applications and clinicians to resolve discontinuity between lab results (e.g., when two labs report out on the same type of lab for the patient and the results differ substantially based on lab behaviors). This is of particular importance when plotting or graphing results over time. &#xA;&#xA;Usage Note: In future releases performer may be relaxed to include references to practictioner and patient to support additional use cases (e.g., patient reported glucometer readings)." />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer.reference">
      <path value="Observation.performer.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer.type">
      <path value="Observation.performer.type" />
      <binding>
        <strength value="extensible" />
        <description value="A resource (or, for logical models, the URI of the logical model)." />
      </binding>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="Range" />
      </type>
      <type>
        <code value="Ratio" />
      </type>
      <constraint>
        <key value="ca-baseline-2" />
        <severity value="error" />
        <human value="SHALL use UCUM for coded quantity units." />
        <expression value="valueQuantity.system.empty() or valueQuantity.system = 'http://unitsofmeasure.org'" />
        <xpath value="not(exists(f:valueQuantity/f:system) ) or  f:valueQuantity/f:system[@value='http://unitsofmeasure.org']" />
        <source value="https://fhir.infoway-inforoute.ca/StructureDefinition/profile-observation-results2" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept">
      <path value="Observation.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding">
      <path value="Observation.value[x].coding" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.value[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.value[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.coding.display">
      <path value="Observation.value[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueCodeableConcept.text">
      <path value="Observation.value[x].text" />
      <requirements value="The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.&#xA;&#xA;This element was made mandatory to ensure simple patient rendering tools had the ability to display text without needing to perform a look-up against the code system." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.value[x]" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.value[x]:valueQuantity.value">
      <path value="Observation.value[x].value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.unit">
      <path value="Observation.value[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.system">
      <path value="Observation.value[x].system" />
      <fixedUri value="http://unitsofmeasure.org" />
    </element>
    <element id="Observation.value[x]:valueString">
      <path value="Observation.value[x]" />
      <sliceName value="valueString" />
      <comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <constraint>
        <key value="ca-baseline-value" />
        <severity value="error" />
        <human value="Observation.value[x] or Observation.dataAbsentReason or Observation.component SHOULD be present" />
        <expression value="value[x].exists() or dataAbsentReason.exists() or component.exists()" />
        <xpath value="Observation.value[x] or Observation.dataAbsentReason or Observation.component" />
        <source value="http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation-results" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason.coding">
      <path value="Observation.dataAbsentReason.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason.coding.system">
      <path value="Observation.dataAbsentReason.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason.coding.code">
      <path value="Observation.dataAbsentReason.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason.text">
      <path value="Observation.dataAbsentReason.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <requirements value="For some results, particularly numeric results, an interpretation is necessary to fully understand the significance of a result. Requirements from jurisidctional stakeholders outlined the importance returning responses that include information that aids in citizen interpretation of the results, including reference ranges and abnormal flags." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.interpretation.coding">
      <path value="Observation.interpretation.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.interpretation.coding.system">
      <path value="Observation.interpretation.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.interpretation.coding.code">
      <path value="Observation.interpretation.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.interpretation.text">
      <path value="Observation.interpretation.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <comment value="May include general statements about the observation, or statements about significant, unexpected or unreliable results values, or information about its source when relevant to its interpretation.&#xA;&#xA;This element should not be used to communicate information that is intended to be captured in result. Though some labs may send result information in the HL7 v2 NTE segment this element is typically mapped to, participating data sources and gateways should take care to ensure differentation between result information and supportive comments.&#xA;&#xA;Implementor Note: One consideration that needs to be explored with LIS sites is whether there is any risk of exposing data that is inappropriate for the patient in this field. Another consideration if expecting lossless 2-way conversion, is that there are two places where notes can occur in HL7 v2 ORU messages: linked to the OBR (observation) and the OBX (result). Once the note is in FHIR, it will be difficult to identify whether or not it is tied to observation or result using existing structured data. If lossless 2-way for notes is deemed critical, one method of approach would be extensions, but discussions with LIS &amp; end-users recommended to determine feasibility." />
      <mustSupport value="false" />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.referenceRange.low">
      <path value="Observation.referenceRange.low" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.referenceRange.high">
      <path value="Observation.referenceRange.high" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.referenceRange.type">
      <path value="Observation.referenceRange.type" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.referenceRange.text">
      <path value="Observation.referenceRange.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <comment value="When using this element, an observation will typically have either a value or a set of related resources, although both may be present in some cases.  For a discussion on the ways Observations can assembled in groups together, see [Notes](observation.html#obsgrouping) below. &#xA;&#xA;The information in the observation resources should be complete (self-contained) and the information in the resource should make sense by itself (if component is not used). Text-based reports (e.g., microbiology, pathology, etc.) that are generated from multiple OBX lines SHALL be communicated as either a single observation or through diagnosticReport.presentedForm." />
      <requirements value="Must be supported to support jurisdictional stakeholder requirements of recognizing linkages or relationships between observations (individual results &amp; panels)." />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.infoway-inforoute.ca/StructureDefinition/profile-observation-results" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.hasMember.reference">
      <path value="Observation.hasMember.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <comment value="The binding strength of this element is [Preferred](https://www.hl7.org/fhir/terminologies.html#strength), meaning that codes are encouraged to draw from the LOINC code system for interoperability purposes but are not required to do so to be considered conformant. *All* code-value and, if present, component.code-component.value pairs need to be taken into account to correctly understand the meaning of the observation." />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <description value="LOINC codes identifying names of simple observations." />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/PHI-access-observation-codes" />
      </binding>
    </element>
    <element id="Observation.component.code.coding">
      <path value="Observation.component.code.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.code.text">
      <path value="Observation.component.code.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="Range" />
      </type>
      <type>
        <code value="Ratio" />
      </type>
      <constraint>
        <key value="ca-baseline-component-value" />
        <severity value="error" />
        <human value="Observation.component.value[x] or Observation.component.dataAbsentReason SHALL be present" />
        <expression value="component.value[x].exists() or component.dataAbsentReason.exists()" />
        <xpath value="Observation.component.value[x] or Observation.component.dataAbsentReason" />
        <source value="http://hl7.org/fhir/ca/core/StructureDefinition/profile-observation-results" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueCodeableConcept" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <constraint>
        <key value="ca-baseline-results-1" />
        <severity value="warning" />
        <human value="SHOULD use SNOMED CT for coded Results" />
        <expression value="valueCodeableConcept.coding.system.empty() or valueCodeableConcept.coding.system = 'http://snomed.info/sct'" />
        <xpath value="not(exists(f:valueCodeableConcept/f:coding/f:system) ) or  f:valueCodeableConcept/f:coding/f:system[@value='http://snomed.info/sct']" />
        <source value="http://hl7.org/fhir/ca/core/StructureDefinition/profile-observation-results" />
      </constraint>
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.value[x].coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.value[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.value[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]:valueCodeableConcept.text">
      <path value="Observation.component.value[x].text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.value[x]:valueQuantity">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.component.value[x]:valueQuantity.value">
      <path value="Observation.component.value[x].value" />
      <min value="1" />
    </element>
    <element id="Observation.component.value[x]:valueQuantity.system">
      <path value="Observation.component.value[x].system" />
      <fixedUri value="http://unitsofmeasure.org" />
      <constraint>
        <key value="ca-baseline-results-2" />
        <severity value="error" />
        <human value="SHALL use UCUM for coded quantity units" />
        <expression value="where(valueQuantity.system='http://unitsofmeasure.org' and valueQuantity.value.exists()).exists()" />
        <xpath value="exists(f:valueQuantity/value) and exists(f:valueQuantity/system[@value='http://unitsofmeasure.org'])" />
        <source value="http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation-results" />
      </constraint>
    </element>
    <element id="Observation.component.value[x]:valueString">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <constraint>
        <key value="ca-baseline-component-value" />
        <severity value="error" />
        <human value="Observation.value[x] or Observation.dataAbsentReason SHALL be present" />
        <expression value="value[x].exists() or dataAbsentReason.exists()" />
        <xpath value="Observation.value[x] or Observation.dataAbsentReason" />
        <source value="http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-observation-results" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding">
      <path value="Observation.component.dataAbsentReason.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding.system">
      <path value="Observation.component.dataAbsentReason.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason.coding.code">
      <path value="Observation.component.dataAbsentReason.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason.text">
      <path value="Observation.component.dataAbsentReason.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.interpretation.coding">
      <path value="Observation.component.interpretation.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.interpretation.coding.system">
      <path value="Observation.component.interpretation.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.interpretation.coding.code">
      <path value="Observation.component.interpretation.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.interpretation.text">
      <path value="Observation.component.interpretation.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.referenceRange.low">
      <path value="Observation.component.referenceRange.low" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.referenceRange.high">
      <path value="Observation.component.referenceRange.high" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.referenceRange.type">
      <path value="Observation.component.referenceRange.type" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.referenceRange.text">
      <path value="Observation.component.referenceRange.text" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>