<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-DwObservationVitals" />
  <url value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwObservationVitals" />
  <version value="2.0.0" />
  <name value="DwObservationVitals" />
  <status value="active" />
  <date value="2026-05-29" />
  <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.id">
      <path value="Observation.id" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.lastUpdated">
      <path value="Observation.meta.lastUpdated" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.source">
      <path value="Observation.meta.source" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.security">
      <path value="Observation.meta.security" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.text">
      <path value="Observation.text" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.extension">
      <path value="Observation.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.extension:BodyPosition">
      <path value="Observation.extension" />
      <sliceName value="BodyPosition" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/ext-VitalsBodyPosition" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.extension:BodyPosition.extension">
      <path value="Observation.extension.extension" />
      <max value="0" />
    </element>
    <element id="Observation.extension:BodyPosition.value[x]">
      <path value="Observation.extension.value[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.extension:BodyPosition.value[x].coding">
      <path value="Observation.extension.value[x].coding" />
      <comment value="Usage Note: For CHR map BP position  as follows Sit -&gt; LA11868-9, Stand -&gt;LA11870-5 and Lay -&gt; LA11869-7&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://loinc.org" />
      </binding>
    </element>
    <element id="Observation.extension:BodyPosition.value[x].coding.system">
      <path value="Observation.extension.value[x].coding.system" />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://loinc.org" />
      </binding>
    </element>
    <element id="Observation.extension:BodyPosition.value[x].coding.code">
      <path value="Observation.extension.value[x].coding.code" />
      <comment value="Usage Note: For CHR map BP position  as follows Sit -&gt; LA11868-9, Stand -&gt;LA11870-5 and Lay -&gt; LA11869-7&#xD;&#xA;&#xD;&#xA;Note that FHIR strings SHALL NOT exceed 1MB in size" />
    </element>
    <element id="Observation.extension:BodyPosition.value[x].coding.display">
      <path value="Observation.extension.value[x].coding.display" />
      <comment value="Usage Note: For CHR map BP position  as follows Sit -&gt; Sitting, Stand -&gt; Standing and Lay -&gt; Lying&#xD;&#xA;&#xD;&#xA;Note that FHIR strings SHALL NOT exceed 1MB in size" />
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <comment value="urn:telus:emr:{emrtype}:{emrInstance}:vitals" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <comment value="Usage note: Status will always be finished. Use a value of &quot;unknown&quot; where this value is unavailable." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category.coding">
      <path value="Observation.category.coding" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://hl7.org/fhir/ValueSet/observation-category" />
      </binding>
    </element>
    <element id="Observation.category.coding.system">
      <path value="Observation.category.coding.system" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/observation-category" />
    </element>
    <element id="Observation.category.coding.code">
      <path value="Observation.category.coding.code" />
      <fixedCode value="vital-signs" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <comment value="Usage note: Custom vitals without LOINC codes will be provided as text." />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://loinc.org" />
      </binding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <mustSupport value="true" />
      <binding>
        <strength value="example" />
        <valueSet value="http://hl7.org/fhir/ValueSet/observation-codes" />
      </binding>
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <fixedUri value="http://loinc.org" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <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://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwPatient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.encounter">
      <path value="Observation.encounter" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwEncounter" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <comment value="Usage note: Standard vital list will have effective[x] as effective.dateTime. Effective.period, instant and timing are not relevant types. &#xD;&#xA;&#xD;&#xA;At least a date should be present unless this observation is a historical report.  For recording imprecise or &quot;fuzzy&quot; times (For example, a blood glucose measurement taken &quot;after breakfast&quot;) use the [Timing](datatypes.html#timing) datatype which allow the measurement to be tied to regular life events." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwPractitioner" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwPractitionerRole" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwOrganization" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwCareTeam" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwPatient" />
      </type>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <comment value="Usage note: A single note is conveyed per vital." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.bodySite">
      <path value="Observation.bodySite" />
      <comment value="Usage Note:  When body site for the vital is recorded this will be provided." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <comment value="Usage note: Used for vitals panels where individual measurements (e.g. height, weight, heart rate, blood pressure, temperature) are referenced as member observations." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwObservation" />
        <targetProfile value="https://www.telus.com/health/fhir/dwemrextract/StructureDefinition/DwObservationVitals" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <comment value="Usage note: Typically used for BP systolic and BP Diastolic." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>