{
  "resourceType": "StructureDefinition",
  "id": "1de49ae9-08a9-47a2-9e44-d2694b53ccb9",
  "meta": {
    "lastUpdated": "2020-12-15T08:56:37.188+00:00"
  },
  "url": "https://fhir.cambio.se/StructureDefinition/observationBPCore/v1",
  "name": "ObservationBPCore",
  "status": "draft",
  "date": "2020-12-10T15:02:14.7274548+00:00",
  "description": "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": "4.0.1",
  "mapping": [
    {
      "identity": "workflow",
      "uri": "http://hl7.org/fhir/workflow",
      "name": "Workflow Pattern"
    },
    {
      "identity": "sct-concept",
      "uri": "http://snomed.info/conceptdomain",
      "name": "SNOMED CT Concept Domain Binding"
    },
    {
      "identity": "v2",
      "uri": "http://hl7.org/v2",
      "name": "HL7 v2 Mapping"
    },
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    },
    {
      "identity": "sct-attr",
      "uri": "http://snomed.org/attributebinding",
      "name": "SNOMED CT Attribute Binding"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/bp",
  "derivation": "constraint",
  "snapshot": {},
  "differential": {
    "element": [
      {
        "id": "Observation.identifier.use",
        "path": "Observation.identifier.use",
        "max": "0"
      },
      {
        "id": "Observation.identifier.type",
        "path": "Observation.identifier.type",
        "max": "0"
      },
      {
        "id": "Observation.identifier.system",
        "path": "Observation.identifier.system",
        "min": 1
      },
      {
        "id": "Observation.identifier.value",
        "path": "Observation.identifier.value",
        "min": 1
      },
      {
        "id": "Observation.identifier.period",
        "path": "Observation.identifier.period",
        "max": "0"
      },
      {
        "id": "Observation.identifier.assigner",
        "path": "Observation.identifier.assigner",
        "max": "0"
      },
      {
        "id": "Observation.basedOn",
        "path": "Observation.basedOn",
        "comment": "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."
      },
      {
        "id": "Observation.partOf",
        "path": "Observation.partOf",
        "comment": "To link an Observation to an Encounter use `encounter`.  See the  [Notes](observation.html#obsgrouping) below for guidance on referencing another Observation.\r\n\r\nThis is removed as it is not supported at the moment. Can likely be supported in future versions of the profile.\r\n\r\nUse observation.hasMember for referencing between observations."
      },
      {
        "id": "Observation.status",
        "path": "Observation.status",
        "short": "preliminary | final | amended | entered-in-error",
        "comment": "Supported statuses for Blood Pressures are:\r\npreliminary\r\nfinal\r\namended\r\nenteterd-in-error"
      },
      {
        "id": "Observation.category",
        "path": "Observation.category",
        "max": "1"
      },
      {
        "id": "Observation.category:VSCat",
        "path": "Observation.category",
        "sliceName": "VSCat"
      },
      {
        "id": "Observation.category:VSCat.coding.display",
        "path": "Observation.category.coding.display",
        "fixedString": "Vital Signs"
      },
      {
        "id": "Observation.category:VSCat.coding.userSelected",
        "path": "Observation.category.coding.userSelected",
        "max": "0"
      },
      {
        "id": "Observation.code.coding:BPCodeSCT",
        "path": "Observation.code.coding",
        "sliceName": "BPCodeSCT",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.code.coding:BPCodeSCT.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Observation.code.coding:BPCodeSCT.code",
        "path": "Observation.code.coding.code",
        "comment": "The following codes are supported.\r\n\r\nBlood pressure (observable entity)\r\nSCTID: 75367002",
        "min": 1,
        "fixedCode": "75367002"
      },
      {
        "id": "Observation.subject.identifier",
        "path": "Observation.subject.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "definition": "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."
      },
      {
        "id": "Observation.subject.identifier:Personnummer",
        "path": "Observation.subject.identifier",
        "sliceName": "Personnummer",
        "definition": "Swe Personnummer"
      },
      {
        "id": "Observation.subject.identifier:Personnummer.system",
        "path": "Observation.subject.identifier.system",
        "definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.\r\n\r\nSkatteverket Person-id för någon som är folkbokförd i Sverige enligt SKV704.",
        "min": 1,
        "fixedUri": "urn:oid:1.2.752.129.2.1.3.1"
      },
      {
        "id": "Observation.subject.identifier:Personnummer.value",
        "path": "Observation.subject.identifier.value",
        "min": 1
      },
      {
        "id": "Observation.subject.identifier:Samordningsnummer",
        "path": "Observation.subject.identifier",
        "sliceName": "Samordningsnummer",
        "definition": "Samordningsnummer 1.2.752.129.2.1.3.3 Ägare: Skatteverket. \r\nPerson-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.."
      },
      {
        "id": "Observation.subject.identifier:Samordningsnummer.system",
        "path": "Observation.subject.identifier.system",
        "definition": "Samordningsnummer 1.2.752.129.2.1.3.3 Ägare: Skatteverket. \r\nPerson-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": 1,
        "fixedUri": "urn:oid:1.2.752.129.2.1.3.3"
      },
      {
        "id": "Observation.subject.identifier:Samordningsnummer.value",
        "path": "Observation.subject.identifier.value",
        "min": 1
      },
      {
        "id": "Observation.focus",
        "path": "Observation.focus",
        "comment": "Removed as blood pressure observations are only valid for a patient (ie observation.subject)\r\n\r\nTypically, 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., \"Blood Glucose\") 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": "0"
      },
      {
        "id": "Observation.encounter",
        "path": "Observation.encounter",
        "comment": "HERE WE SHOULD ADD A BASIC ENCOUNTER PROFILE!\r\n\r\nThis 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)."
      },
      {
        "id": "Observation.effective[x]",
        "path": "Observation.effective[x]",
        "short": "DateTime for measurement",
        "definition": "DateTime for the Blood pressure measurement",
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "Observation.issued",
        "path": "Observation.issued",
        "comment": "Removed as not applicable for Blood pressure observations.\r\n\r\n\r\nFor 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."
      },
      {
        "id": "Observation.performer",
        "path": "Observation.performer",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "type"
            }
          ],
          "rules": "open"
        },
        "comment": "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). \r\n\r\nIf 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": 1,
        "max": "1"
      },
      {
        "id": "Observation.performer:Patient",
        "path": "Observation.performer",
        "sliceName": "Patient",
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient"
            ]
          }
        ]
      },
      {
        "id": "Observation.performer:Patient.type",
        "path": "Observation.performer.type",
        "min": 1,
        "fixedUri": "Patient"
      },
      {
        "id": "Observation.performer:Practitioner",
        "path": "Observation.performer",
        "sliceName": "Practitioner",
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Practitioner"
            ]
          }
        ]
      },
      {
        "id": "Observation.performer:Practitioner.type",
        "path": "Observation.performer.type",
        "min": 1,
        "fixedUri": "Practitioner"
      },
      {
        "id": "Observation.performer:Organization",
        "path": "Observation.performer",
        "sliceName": "Organization",
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Organization"
            ]
          }
        ]
      },
      {
        "id": "Observation.performer:Organization.type",
        "path": "Observation.performer.type",
        "min": 1,
        "fixedUri": "Organization"
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "slicing": {
          "rules": "open"
        },
        "comment": "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.\r\n\r\n\r\n\r\nAn 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": "0"
      },
      {
        "id": "Observation.dataAbsentReason",
        "path": "Observation.dataAbsentReason",
        "comment": "Removed as this refers to observation.value which is not used for blood pressures. \r\n\r\n\r\nNull 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  \"detected\", \"not detected\", \"inconclusive\", or  \"specimen unsatisfactory\".   \n\nThe 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 \"error\" 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 > 0.  Because of these options, use-case agreements are required to interpret general observations for null or exceptional values.",
        "max": "0"
      },
      {
        "id": "Observation.interpretation",
        "path": "Observation.interpretation",
        "comment": "Removed as it is not supported for blood pressures\r\n\r\nHistorically 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": "0"
      },
      {
        "id": "Observation.note",
        "path": "Observation.note",
        "short": "Comment about the blood pressure",
        "definition": "Comment about the blood pressure observation",
        "max": "1"
      },
      {
        "id": "Observation.note.author[x]",
        "path": "Observation.note.author[x]",
        "comment": "Removed as this is the same as the observation.performer"
      },
      {
        "id": "Observation.note.time",
        "path": "Observation.note.time",
        "comment": "Removed, this is the same as the observation.effective[x]"
      },
      {
        "id": "Observation.note.text",
        "path": "Observation.note.text",
        "comment": "."
      },
      {
        "id": "Observation.bodySite.coding",
        "path": "Observation.bodySite.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.bodySite.coding:BodySiteSCT",
        "path": "Observation.bodySite.coding",
        "sliceName": "BodySiteSCT",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.bodySite.coding:BodySiteSCT.system",
        "path": "Observation.bodySite.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Observation.bodySite.coding:BodySiteSCT.code",
        "path": "Observation.bodySite.coding.code",
        "comment": ".",
        "min": 1,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.cambio.se/ValueSet/bp-body-site/v1"
        }
      },
      {
        "id": "Observation.specimen",
        "path": "Observation.specimen",
        "comment": "Removed, not applicable for bp\r\n\r\n\r\nShould 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": "0"
      },
      {
        "id": "Observation.device.type",
        "path": "Observation.device.type",
        "fixedUri": "Device"
      },
      {
        "id": "Observation.referenceRange",
        "path": "Observation.referenceRange",
        "max": "0"
      },
      {
        "id": "Observation.derivedFrom",
        "path": "Observation.derivedFrom",
        "comment": "Removed as this is used for scores and other calculations, BP is not derived from some other observation.\r\n\r\nAll 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": "0"
      },
      {
        "id": "Observation.component:SystolicBP",
        "path": "Observation.component",
        "sliceName": "SystolicBP"
      },
      {
        "id": "Observation.component:SystolicBP.code.coding",
        "path": "Observation.component.code.coding",
        "min": 2
      },
      {
        "id": "Observation.component:SystolicBP.code.coding:SBPCodeSCT",
        "path": "Observation.component.code.coding",
        "sliceName": "SBPCodeSCT",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:SystolicBP.code.coding:SBPCodeSCT.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Observation.component:SystolicBP.code.coding:SBPCodeSCT.code",
        "path": "Observation.component.code.coding.code",
        "min": 1,
        "fixedCode": "271649006"
      },
      {
        "id": "Observation.component:SystolicBP.value[x]:valueQuantity",
        "path": "Observation.component.value[x]",
        "sliceName": "valueQuantity",
        "min": 1
      },
      {
        "id": "Observation.component:SystolicBP.dataAbsentReason.coding",
        "path": "Observation.component.dataAbsentReason.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode",
        "path": "Observation.component.dataAbsentReason.coding",
        "sliceName": "dataAbsentReasonFHIRCode",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode.system",
        "path": "Observation.component.dataAbsentReason.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/data-absent-reason"
      },
      {
        "id": "Observation.component:SystolicBP.dataAbsentReason.coding:dataAbsentReasonFHIRCode.code",
        "path": "Observation.component.dataAbsentReason.coding.code",
        "min": 1,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/data-absent-reason"
        }
      },
      {
        "id": "Observation.component:SystolicBP.interpretation",
        "path": "Observation.component.interpretation",
        "comment": "Removed as not supported for bp\r\n\r\nHistorically 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."
      },
      {
        "id": "Observation.component:DiastolicBP",
        "path": "Observation.component",
        "sliceName": "DiastolicBP"
      },
      {
        "id": "Observation.component:DiastolicBP.code.coding",
        "path": "Observation.component.code.coding",
        "min": 2
      },
      {
        "id": "Observation.component:DiastolicBP.code.coding:DBPCodeSCT",
        "path": "Observation.component.code.coding",
        "sliceName": "DBPCodeSCT",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:DiastolicBP.code.coding:DBPCodeSCT.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "http://snomed.info/sct"
      },
      {
        "id": "Observation.component:DiastolicBP.code.coding:DBPCodeSCT.code",
        "path": "Observation.component.code.coding.code",
        "min": 1,
        "fixedCode": "271650006"
      },
      {
        "id": "Observation.component:DiastolicBP.dataAbsentReason.coding",
        "path": "Observation.component.dataAbsentReason.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR",
        "path": "Observation.component.dataAbsentReason.coding",
        "sliceName": "DABCodeFHIR",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR.system",
        "path": "Observation.component.dataAbsentReason.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/data-absent-reason"
      },
      {
        "id": "Observation.component:DiastolicBP.dataAbsentReason.coding:DABCodeFHIR.code",
        "path": "Observation.component.dataAbsentReason.coding.code",
        "min": 1,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/data-absent-reason"
        }
      },
      {
        "id": "Observation.component:DiastolicBP.interpretation",
        "path": "Observation.component.interpretation",
        "comment": "Removed, not currently supported for BP\r\n\r\nHistorically 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."
      }
    ]
  }
}