<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-vitals" />
  <meta>
    <lastUpdated value="2021-10-27T01:28:30.440+00:00" />
  </meta>
  <url value="https://simplifier.net/omd-cdss/vitalsobservationprofile" />
  <version value="0.2.0" />
  <name value="VitalsObservationProfile" />
  <title value="Observation Profile (Vitals)" />
  <status value="draft" />
  <date value="2021-05-17T20:35:14.5079805+00:00" />
  <publisher value="OMD" />
  <description value="Proposed constraints on the Observation Resource for general use" />
  <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.basedOn">
      <path value="Observation.basedOn" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/CarePlan" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/DeviceRequest" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/NutritionOrder" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest" />
        <targetProfile value="https://simplifier.net/omd-cdss/medicationrequestprofile" />
      </type>
    </element>
    <element id="Observation.partOf">
      <path value="Observation.partOf" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/MedicationAdministration" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/MedicationStatement" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/ImagingStudy" />
        <targetProfile value="https://simplifier.net/omd-cdss/immunizationprofile" />
        <targetProfile value="https://simplifier.net/omd-cdss/procedureprofile" />
        <targetProfile value="https://simplifier.net/omd-cdss/medicationdispenseprofile" />
      </type>
    </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/heartratecode" />
        <profile value="https://simplifier.net/omd-cdss/heightcode" />
        <profile value="https://simplifier.net/omd-cdss/weightcode" />
        <profile value="https://simplifier.net/omd-cdss/bmicode" />
        <profile value="https://simplifier.net/omd-cdss/waistcircumferencecode" />
        <profile value="https://simplifier.net/omd-cdss/smokingstatuscode" />
        <profile value="https://simplifier.net/omd-cdss/smokingfrequencycode" />
        <profile value="https://simplifier.net/omd-cdss/alcoholusecode" />
        <profile value="https://simplifier.net/omd-cdss/erectilefunctioncode" />
        <profile value="https://simplifier.net/omd-cdss/bloodpressurepanelcode" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.003" />
        <comment value="Heart Rate" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.005" />
        <comment value="Height" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.007" />
        <comment value="Weight" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.009" />
        <comment value="BMI" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.011" />
        <comment value="Waist Circumference" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.013" />
        <comment value="Smoking Status" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.015" />
        <comment value="Smoking Frequency" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.017" />
        <comment value="Alcohol Use" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.019" />
        <comment value="Erectile Function" />
      </mapping>
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.003" />
        <comment value="Heart Rate" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.005" />
        <comment value="Height" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.007" />
        <comment value="Weight" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.009" />
        <comment value="BMI" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.011" />
        <comment value="Waist Circumference" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.013" />
        <comment value="Smoking Status" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.015" />
        <comment value="Smoking Frequency" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.017" />
        <comment value="Alcohol Use" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.019" />
        <comment value="Erectile Function" />
      </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>
      <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.002" />
        <comment value="Blood Pressure - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.004" />
        <comment value="Heart Rate - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.006" />
        <comment value="Height - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.008" />
        <comment value="Weight - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.010" />
        <comment value="BMI - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.012" />
        <comment value="Waist Circumference - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.014" />
        <comment value="Smoking Status - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.016" />
        <comment value="Smoking Frequency - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.018" />
        <comment value="Alcohol Use - Date" />
      </mapping>
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.020" />
        <comment value="Erectile Function - Date" />
      </mapping>
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/CareTeam" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="https://simplifier.net/omd-cdss/patientprofile" />
        <targetProfile value="https://simplifier.net/omd-cdss/practitionerprofile" />
      </type>
    </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.value[x]" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
        <profile value="https://simplifier.net/omd-cdss/heartratevalue" />
        <profile value="https://simplifier.net/omd-cdss/heightvalue" />
        <profile value="https://simplifier.net/omd-cdss/weightvalue" />
        <profile value="https://simplifier.net/omd-cdss/bmivalue" />
        <profile value="https://simplifier.net/omd-cdss/waistcircumferencevalue" />
        <profile value="https://simplifier.net/omd-cdss/smokingstatusvalue" />
        <profile value="https://simplifier.net/omd-cdss/smokingfrequencyvalue" />
        <profile value="https://simplifier.net/omd-cdss/alcoholusevalue" />
        <profile value="https://simplifier.net/omd-cdss/erectilefunctionvalue" />
      </type>
      <mustSupport value="true" />
    </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">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code.coding.code" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="code.coding.system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </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.component:SystolicBP">
      <path value="Observation.component" />
      <sliceName value="SystolicBP" />
    </element>
    <element id="Observation.component:SystolicBP.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
      <mustSupport value="true" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
    </element>
    <element id="Observation.component:SystolicBP.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="8480-6" />
      <mustSupport value="true" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
    </element>
    <element id="Observation.component:SystolicBP.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:SystolicBP.value[x]:valueQuantity">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
        <profile value="https://simplifier.net/omd-cdss/systolicbpvalue" />
      </type>
    </element>
    <element id="Observation.component:SystolicBP.value[x]:valueQuantity.value">
      <path value="Observation.component.value[x].value" />
      <definition value="BASE RESOURCE DEFINITION:&#xD;&#xA;The value of the measured amount. The value includes an implicit precision in the presentation of the value.&#xD;&#xA;&#xD;&#xA;CDS-S PROFILE DEFINITION:&#xD;&#xA;The systolic blood pressure as measured by the provider." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:SystolicBP.value[x]:valueQuantity.unit">
      <path value="Observation.component.value[x].unit" />
      <fixedString value="mm[Hg]" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:SystolicBP.value[x]:valueQuantity.system">
      <path value="Observation.component.value[x].system" />
      <fixedUri value="http://unitsofmeasure.org" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:DiastolicBP">
      <path value="Observation.component" />
      <sliceName value="DiastolicBP" />
    </element>
    <element id="Observation.component:DiastolicBP.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <fixedUri value="http://loinc.org" />
      <mustSupport value="true" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
    </element>
    <element id="Observation.component:DiastolicBP.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <fixedCode value="8462-4" />
      <mustSupport value="true" />
      <mapping>
        <identity value="CDSS5.1" />
        <map value="DE16.001" />
        <comment value="Blood Pressure" />
      </mapping>
    </element>
    <element id="Observation.component:DiastolicBP.value[x]">
      <path value="Observation.component.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:DiastolicBP.value[x]:valueQuantity">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
        <profile value="https://simplifier.net/omd-cdss/diastolicbpvalue" />
      </type>
    </element>
  </differential>
</StructureDefinition>