<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-spirometry" />
  <meta>
    <lastUpdated value="2021-05-18T14:31:59.806+00:00" />
  </meta>
  <url value="https://simplifier.net/omd-cdss/spirometyobservationprofile" />
  <version value="0.2.0" />
  <name value="SpirometyObservationProfile" />
  <title value="Observation Profile (Spirometry)" />
  <status value="draft" />
  <date value="2021-05-18T14:21:00.4921281+00:00" />
  <publisher value="OMD" />
  <description value="Proposed constraints on the Observation Resource for general use on spirometry care elements." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <code value="CA" />
      <display value="Canada" />
    </coding>
  </jurisdiction>
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="CDSS5.1" />
    <uri value="www.ontariomd.com" />
    <name value="CDS-S 5.1" />
  </mapping>
  <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 core FHIR Observation Resource" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <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." />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <type>
        <code value="Coding" />
        <profile value="https://simplifier.net/omd-cdss/fev1prebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fvcprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1perprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1predictedcode" />
        <profile value="https://simplifier.net/omd-cdss/fvcpredictedcode" />
        <profile value="https://simplifier.net/omd-cdss/fev1perpredictedcode" />
        <profile value="https://simplifier.net/omd-cdss/fev1perofpredictedprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fvcratioprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1fvcratioprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/pefpersonalprebroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1postbroncode" />
        <profile value="https://simplifier.net/omd-cdss/fvcpostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1perpostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1perofpredictedpostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/fvcratiopostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/fev1fvcratiopostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/pefpersonalpostbroncode" />
        <profile value="https://simplifier.net/omd-cdss/o2saturationcode" />
      </type>
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.021" />
        <comment value="FEV1 (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.023" />
        <comment value="FVC (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.025" />
        <comment value="FEV1% (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.027" />
        <comment value="FEV1 Predicted" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.029" />
        <comment value="FVC Predicted" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.031" />
        <comment value="FEV1% Prediced" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.033" />
        <comment value="FEV1% of Predicted (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.035" />
        <comment value="FVC Ratio (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.037" />
        <comment value="FEV1/FVC Ratio (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.039" />
        <comment value="PEF Personal (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.041" />
        <comment value="FEV1 (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.043" />
        <comment value="FVC (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.045" />
        <comment value="FEV1% (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.047" />
        <comment value="FEV1% of Predicted (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.049" />
        <comment value="FVC Ratio (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.051" />
        <comment value="FEV1/FVC Ratio (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.053" />
        <comment value="PEF Personal (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.056" />
        <comment value="O2 Saturation" />
      </mapping>
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.021" />
        <comment value="FEV1 (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.023" />
        <comment value="FVC (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.025" />
        <comment value="FEV1% (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.027" />
        <comment value="FEV1 Predicted" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.029" />
        <comment value="FVC Predicted" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.031" />
        <comment value="FEV1% Predicted" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.033" />
        <comment value="FEV1% of Predicted (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.035" />
        <comment value="FVC Ratio (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.037" />
        <comment value="FEV1/FVC Ratio (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.039" />
        <comment value="PEF Personal (Before-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.041" />
        <comment value="FEV1 (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.043" />
        <comment value="FVC (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.045" />
        <comment value="FEV1% (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.047" />
        <comment value="FEV1% of Predicted (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.049" />
        <comment value="FVC Ratio (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.051" />
        <comment value="FEV1/FVC Ratio (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.053" />
        <comment value="PEF Personal (After-Puff)" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.055" />
        <comment value="O2 Saturation" />
      </mapping>
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://simplifier.net/omd-cdss/patientprofile" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="BASE RESOURCE DEFINITION: &#xD;&#xA;The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the &quot;physiologically relevant time&quot;. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself." />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]:effectiveDateTime">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <definition value="BASE RESOURCE DEFINITION: &#xD;&#xA;The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the &quot;physiologically relevant time&quot;. This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.&#xD;&#xA;&#xD;&#xA;CDS-S PROFILE DEFINITION: &#xD;&#xA;The date the observation was measured." />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.022" />
        <comment value="FEV1 (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.024" />
        <comment value="FVC (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.026" />
        <comment value="FEV1% (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.028" />
        <comment value="FEV1 Predicted - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.030" />
        <comment value="FVC Predicted (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.032" />
        <comment value="FEV1% Predicted - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.034" />
        <comment value="FEV1% of Predicted (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.036" />
        <comment value="FVC Ratio (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.038" />
        <comment value="FEV1/FVC Ratio (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.040" />
        <comment value="PEF Personal (Before Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.042" />
        <comment value="FEV1 (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.044" />
        <comment value="FVC (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.046" />
        <comment value="FEV1% (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.048" />
        <comment value="FEV1% of Predicted (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.050" />
        <comment value="FVC Ratio (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.052" />
        <comment value="FEV1/FVC Ratio (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.054" />
        <comment value="PEF Personal (After Puff) - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.056" />
        <comment value="O2 Saturation - Date" />
      </mapping>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <constraint>
        <key value="ca-baseline-value-1" />
        <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" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.valueQuantity" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
        <profile value="https://simplifier.net/omd-cdss/fev1prebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perofpredictedprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1predictedvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perofpredictedprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perofpredictedpostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1fvcratioprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fvcprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perpredictedvalue" />
        <profile value="https://simplifier.net/omd-cdss/fvcratioprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fvcpredictedvalue" />
        <profile value="https://simplifier.net/omd-cdss/pefpersonalprebronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1perpostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fvcpostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fev1fvcratiopostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/fvcratiopostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/pefpersonalpostbronvalue" />
        <profile value="https://simplifier.net/omd-cdss/o2saturationvalue" />
      </type>
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <constraint>
        <key value="ca-baseline-value-1" />
        <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" />
      </constraint>
      <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." />
      </binding>
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <constraint>
        <key value="ca-baseline-value-2" />
        <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/baseline/StructureDefinition/profile-observation" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <constraint>
        <key value="ca-baseline-value-2" />
        <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/baseline/StructureDefinition/profile-observation" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value">
      <path value="Observation.value" />
      <definition value="The value of the measured amount. The value includes an implicit precision in the presentation of the value." />
    </element>
  </differential>
</StructureDefinition>