<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="1de49ae9-08a9-47a2-9e44-d2694b53ccb9" />
  <meta>
    <lastUpdated value="2020-12-15T08:56:37.188+00:00" />
  </meta>
  <url value="https://fhir.cambio.se/StructureDefinition/observationBPCore/v1" />
  <name value="ObservationBPCore" />
  <status value="draft" />
  <date value="2020-12-10T15:02:14.7274548+00:00" />
  <description value="Cambio Core profile for communicating the vital sign, Blood pressure. For Use case specific profiles, this profile can be derived for the use case profile to be complient with the Cambio core profile." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="sct-concept" />
    <uri value="http://snomed.info/conceptdomain" />
    <name value="SNOMED CT Concept Domain Binding" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="sct-attr" />
    <uri value="http://snomed.org/attributebinding" />
    <name value="SNOMED CT Attribute Binding" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/bp" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="Observation.identifier.use">
      <path value="Observation.identifier.use" />
      <max value="0" />
    </element>
    <element id="Observation.identifier.type">
      <path value="Observation.identifier.type" />
      <max value="0" />
    </element>
    <element id="Observation.identifier.system">
      <path value="Observation.identifier.system" />
      <min value="1" />
    </element>
    <element id="Observation.identifier.value">
      <path value="Observation.identifier.value" />
      <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" />
      <comment value="This will likely be supported in future profiles, but at the moment it is removed. Please raise any requirements to use basedOn, it can be added to future versions of this profile." />
    </element>
    <element id="Observation.partOf">
      <path value="Observation.partOf" />
      <comment value="To link an Observation to an Encounter use `encounter`.  See the  [Notes](observation.html#obsgrouping) below for guidance on referencing another Observation.&#xD;&#xA;&#xD;&#xA;This is removed as it is not supported at the moment. Can likely be supported in future versions of the profile.&#xD;&#xA;&#xD;&#xA;Use observation.hasMember for referencing between observations." />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <short value="preliminary | final | amended | entered-in-error" />
      <comment value="Supported statuses for Blood Pressures are:&#xD;&#xA;preliminary&#xD;&#xA;final&#xD;&#xA;amended&#xD;&#xA;enteterd-in-error" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <max value="1" />
    </element>
    <element id="Observation.category:VSCat">
      <path value="Observation.category" />
      <sliceName value="VSCat" />
    </element>
    <element id="Observation.category:VSCat.coding.display">
      <path value="Observation.category.coding.display" />
      <fixedString value="Vital Signs" />
    </element>
    <element id="Observation.category:VSCat.coding.userSelected">
      <path value="Observation.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Observation.code.coding:BPCodeSCT">
      <path value="Observation.code.coding" />
      <sliceName value="BPCodeSCT" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.code.coding:BPCodeSCT.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.code.coding:BPCodeSCT.code">
      <path value="Observation.code.coding.code" />
      <comment value="The following codes are supported.&#xD;&#xA;&#xD;&#xA;Blood pressure (observable entity)&#xD;&#xA;SCTID: 75367002" />
      <min value="1" />
      <fixedCode value="75367002" />
    </element>
    <element id="Observation.subject.identifier">
      <path value="Observation.subject.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="If the patient has a temporary ID and the system URIs for personnummer and samordningsnummer can not be applied, then use element MUST be fixed to temp." />
    </element>
    <element id="Observation.subject.identifier:Personnummer">
      <path value="Observation.subject.identifier" />
      <sliceName value="Personnummer" />
      <definition value="Swe Personnummer" />
    </element>
    <element id="Observation.subject.identifier:Personnummer.system">
      <path value="Observation.subject.identifier.system" />
      <definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique.&#xD;&#xA;&#xD;&#xA;Skatteverket Person-id för någon som är folkbokförd i Sverige enligt SKV704." />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.752.129.2.1.3.1" />
    </element>
    <element id="Observation.subject.identifier:Personnummer.value">
      <path value="Observation.subject.identifier.value" />
      <min value="1" />
    </element>
    <element id="Observation.subject.identifier:Samordningsnummer">
      <path value="Observation.subject.identifier" />
      <sliceName value="Samordningsnummer" />
      <definition value="Samordningsnummer 1.2.752.129.2.1.3.3 Ägare: Skatteverket. &#xD;&#xA;Person-id för någon som inte är eller har varit folkbokförd i Sverige enligt SKV704. Samordningsnummer tilldelas av Skatteverket på begäran av en myndighet.." />
    </element>
    <element id="Observation.subject.identifier:Samordningsnummer.system">
      <path value="Observation.subject.identifier.system" />
      <definition value="Samordningsnummer 1.2.752.129.2.1.3.3 Ägare: Skatteverket. &#xD;&#xA;Person-id för någon som inte är eller har varit folkbokförd i Sverige enligt SKV704. Samordningsnummer tilldelas av Skatteverket på begäran av en myndighet." />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.752.129.2.1.3.3" />
    </element>
    <element id="Observation.subject.identifier:Samordningsnummer.value">
      <path value="Observation.subject.identifier.value" />
      <min value="1" />
    </element>
    <element id="Observation.focus">
      <path value="Observation.focus" />
      <comment value="Removed as blood pressure observations are only valid for a patient (ie observation.subject)&#xD;&#xA;&#xD;&#xA;Typically, an observation is made about the subject - a patient, or group of patients, location, or device - and the distinction between the subject and what is directly measured for an observation is specified in the observation code itself ( e.g., &quot;Blood Glucose&quot;) and does not need to be represented separately using this element.  Use `specimen` if a reference to a specimen is required.  If a code is required instead of a resource use either  `bodysite` for bodysites or the standard extension [focusCode](extension-observation-focuscode.html)." />
      <max value="0" />
    </element>
    <element id="Observation.encounter">
      <path value="Observation.encounter" />
      <comment value="HERE WE SHOULD ADD A BASIC ENCOUNTER PROFILE!&#xD;&#xA;&#xD;&#xA;This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests)." />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <short value="DateTime for measurement" />
      <definition value="DateTime for the Blood pressure measurement" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.issued">
      <path value="Observation.issued" />
      <comment value="Removed as not applicable for Blood pressure observations.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="If this blood pressure is not observed using a device (with no immidiate practitioner internvention) use Patient or PractitionerRole (ie a practioner acting within the responsibilities of an organization). &#xD;&#xA;&#xD;&#xA;If the blood pressure is observed using e.g. a monitoring device, use Organization to specify which organization is responsible for the observation. Also use observation.device." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.performer:Patient">
      <path value="Observation.performer" />
      <sliceName value="Patient" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
    </element>
    <element id="Observation.performer:Patient.type">
      <path value="Observation.performer.type" />
      <min value="1" />
      <fixedUri value="Patient" />
    </element>
    <element id="Observation.performer:Practitioner">
      <path value="Observation.performer" />
      <sliceName value="Practitioner" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
      </type>
    </element>
    <element id="Observation.performer:Practitioner.type">
      <path value="Observation.performer.type" />
      <min value="1" />
      <fixedUri value="Practitioner" />
    </element>
    <element id="Observation.performer:Organization">
      <path value="Observation.performer" />
      <sliceName value="Organization" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
      </type>
    </element>
    <element id="Observation.performer:Organization.type">
      <path value="Observation.performer.type" />
      <min value="1" />
      <fixedUri value="Organization" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <rules value="open" />
      </slicing>
      <comment value="Removed as the actual measurement values are inside observation.component and there are no additional values that are required to be put into observation.value for a blood pressure observation. This can be added if needed in future versions of the profile.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;An observation may have; 1)  a single value here, 2)  both a value and a set of related or component values,  or 3)  only a set of related or component values. If a value is present, the datatype for this element should be determined by Observation.code.  A CodeableConcept with just a text would be used instead of a string if the field was usually coded, or if the type associated with the Observation.code defines a coded value.  For additional guidance, see the [Notes section](observation.html#notes) below." />
      <max value="0" />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <comment value="Removed as this refers to observation.value which is not used for blood pressures. &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Null or exceptional values can be represented two ways in FHIR Observations.  One way is to simply include them in the value set and represent the exceptions in the value.  For example, measurement values for a serology test could be  &quot;detected&quot;, &quot;not detected&quot;, &quot;inconclusive&quot;, or  &quot;specimen unsatisfactory&quot;.   &#xA;&#xA;The alternate way is to use the value element for actual observations and use the explicit dataAbsentReason element to record exceptional values.  For example, the dataAbsentReason code &quot;error&quot; could be used when the measurement was not completed. Note that an observation may only be reported if there are values to report. For example differential cell counts values may be reported only when &gt; 0.  Because of these options, use-case agreements are required to interpret general observations for null or exceptional values." />
      <max value="0" />
    </element>
    <element id="Observation.interpretation">
      <path value="Observation.interpretation" />
      <comment value="Removed as it is not supported for blood pressures&#xD;&#xA;&#xD;&#xA;Historically used for laboratory results (known as 'abnormal flag' ),  its use extends to other use cases where coded interpretations  are relevant.  Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result." />
      <max value="0" />
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <short value="Comment about the blood pressure" />
      <definition value="Comment about the blood pressure observation" />
      <max value="1" />
    </element>
    <element id="Observation.note.author[x]">
      <path value="Observation.note.author[x]" />
      <comment value="Removed as this is the same as the observation.performer" />
    </element>
    <element id="Observation.note.time">
      <path value="Observation.note.time" />
      <comment value="Removed, this is the same as the observation.effective[x]" />
    </element>
    <element id="Observation.note.text">
      <path value="Observation.note.text" />
      <comment value="." />
    </element>
    <element id="Observation.bodySite.coding">
      <path value="Observation.bodySite.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.bodySite.coding:BodySiteSCT">
      <path value="Observation.bodySite.coding" />
      <sliceName value="BodySiteSCT" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.bodySite.coding:BodySiteSCT.system">
      <path value="Observation.bodySite.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.bodySite.coding:BodySiteSCT.code">
      <path value="Observation.bodySite.coding.code" />
      <comment value="." />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.cambio.se/ValueSet/bp-body-site/v1" />
      </binding>
    </element>
    <element id="Observation.specimen">
      <path value="Observation.specimen" />
      <comment value="Removed, not applicable for bp&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Should only be used if not implicit in code found in `Observation.code`.  Observations are not made on specimens themselves; they are made on a subject, but in many cases by the means of a specimen. Note that although specimens are often involved, they are not always tracked and reported explicitly. Also note that observation resources may be used in contexts that track the specimen explicitly (e.g. Diagnostic Report)." />
      <max value="0" />
    </element>
    <element id="Observation.device.type">
      <path value="Observation.device.type" />
      <fixedUri value="Device" />
    </element>
    <element id="Observation.referenceRange">
      <path value="Observation.referenceRange" />
      <max value="0" />
    </element>
    <element id="Observation.derivedFrom">
      <path value="Observation.derivedFrom" />
      <comment value="Removed as this is used for scores and other calculations, BP is not derived from some other observation.&#xD;&#xA;&#xD;&#xA;All the reference choices that are listed in this element can represent clinical observations and other measurements that may be the source for a derived value.  The most common reference will be another Observation.  For a discussion on the ways Observations can assembled in groups together, see [Notes](observation.html#obsgrouping) below." />
      <max value="0" />
    </element>
    <element id="Observation.component:SystolicBP">
      <path value="Observation.component" />
      <sliceName value="SystolicBP" />
    </element>
    <element id="Observation.component:SystolicBP.code.coding">
      <path value="Observation.component.code.coding" />
      <min value="2" />
    </element>
    <element id="Observation.component:SystolicBP.code.coding:SBPCodeSCT">
      <path value="Observation.component.code.coding" />
      <sliceName value="SBPCodeSCT" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:SystolicBP.code.coding:SBPCodeSCT.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:SystolicBP.code.coding:SBPCodeSCT.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="271649006" />
    </element>
    <element id="Observation.component:SystolicBP.value[x]:valueQuantity">
      <path value="Observation.component.value[x]" />
      <sliceName value="valueQuantity" />
      <min value="1" />
    </element>
    <element id="Observation.component:SystolicBP.dataAbsentReason.coding">
      <path value="Observation.component.dataAbsentReason.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode">
      <path value="Observation.component.dataAbsentReason.coding" />
      <sliceName value="dataAbsentReasonFHIRCode" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode.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:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode.code">
      <path value="Observation.component.dataAbsentReason.coding.code" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/data-absent-reason" />
      </binding>
    </element>
    <element id="Observation.component:SystolicBP.interpretation">
      <path value="Observation.component.interpretation" />
      <comment value="Removed as not supported for bp&#xD;&#xA;&#xD;&#xA;Historically used for laboratory results (known as 'abnormal flag' ),  its use extends to other use cases where coded interpretations  are relevant.  Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result." />
    </element>
    <element id="Observation.component:DiastolicBP">
      <path value="Observation.component" />
      <sliceName value="DiastolicBP" />
    </element>
    <element id="Observation.component:DiastolicBP.code.coding">
      <path value="Observation.component.code.coding" />
      <min value="2" />
    </element>
    <element id="Observation.component:DiastolicBP.code.coding:DBPCodeSCT">
      <path value="Observation.component.code.coding" />
      <sliceName value="DBPCodeSCT" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:DiastolicBP.code.coding:DBPCodeSCT.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:DiastolicBP.code.coding:DBPCodeSCT.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="271650006" />
    </element>
    <element id="Observation.component:DiastolicBP.dataAbsentReason.coding">
      <path value="Observation.component.dataAbsentReason.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR">
      <path value="Observation.component.dataAbsentReason.coding" />
      <sliceName value="DABCodeFHIR" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR.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:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR.code">
      <path value="Observation.component.dataAbsentReason.coding.code" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/data-absent-reason" />
      </binding>
    </element>
    <element id="Observation.component:DiastolicBP.interpretation">
      <path value="Observation.component.interpretation" />
      <comment value="Removed, not currently supported for BP&#xD;&#xA;&#xD;&#xA;Historically used for laboratory results (known as 'abnormal flag' ),  its use extends to other use cases where coded interpretations  are relevant.  Often reported as one or more simple compact codes this element is often placed adjacent to the result value in reports and flow sheets to signal the meaning/normalcy status of the result." />
    </element>
  </differential>
</StructureDefinition>