{
  "resourceType": "StructureDefinition",
  "id": "TrifoliaTestObsFIPHRBASEv1",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2020-08-20T19:14:08.261+00:00",
    "source": "#YP6a30f93ocIz2Rt"
  },
  "url": "http://tietohiisi.fi/fhir/StructureDefinition/TrifoliaTestObsFIPHRBASEv1",
  "version": "0.1",
  "name": "TrifoliaTestObsFIPHRBASEv1",
  "title": "Finnish PHR Vital Signs pohjaksi",
  "status": "draft",
  "experimental": true,
  "date": "2019-07-23",
  "publisher": "Kela",
  "description": "Finnish PHR base profile for Observation resource",
  "purpose": "Finnish PHR abstract base profile for Observation used in Vital signs measurements made about a patient. Base profile defines profiled elements used in all vital signs observation resources.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": true,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/vitalsigns",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Observation",
        "path": "Observation",
        "short": "Finnish PHR base profile for Observation resource"
      },
      {
        "id": "Observation.meta.profile",
        "path": "Observation.meta.profile",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "definition": "FinnishPHR: Profile required. The URL is a reference to [StructureDefinition.url]().",
        "min": 1
      },
      {
        "id": "Observation.meta.profile:fiphrProfile",
        "path": "Observation.meta.profile",
        "sliceName": "fiphrProfile",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.language",
        "path": "Observation.language",
        "min": 1,
        "binding": {
          "strength": "required",
          "description": "Finnish PHR: A code of human language."
        }
      },
      {
        "id": "Observation.text",
        "path": "Observation.text",
        "min": 1
      },
      {
        "id": "Observation.extension",
        "path": "Observation.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.extension:creatingApplication",
        "path": "Observation.extension",
        "sliceName": "creatingApplication",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication"
            ]
          }
        ]
      },
      {
        "id": "Observation.identifier",
        "path": "Observation.identifier",
        "definition": "A unique identifier assigned to this observation. \r\nFinnish PHR: At least one of the identifiers SHALL be globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system).",
        "min": 1
      },
      {
        "id": "Observation.identifier.use",
        "path": "Observation.identifier.use",
        "definition": "The purpose of this identifier. \r\nFinnish PHR: The code 'official' SHALL be only used if the given identifier value is truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system).",
        "comment": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary."
      },
      {
        "id": "Observation.identifier.type",
        "path": "Observation.identifier.type",
        "max": "0",
        "mustSupport": true
      },
      {
        "id": "Observation.identifier.system",
        "path": "Observation.identifier.system",
        "comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier",
        "min": 1,
        "example": [
          {
            "label": "General",
            "valueUri": "urn:ietf:rfc:3986"
          }
        ]
      },
      {
        "id": "Observation.identifier.value",
        "path": "Observation.identifier.value",
        "definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system. \r\nFinnish PHR: At least one of the identifiers SHALL be truly globally unique (e.g. an uuid as the value and 'urn:ietf:rfc:3986' as the system).",
        "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986.  The value's primary purpose is computational mapping.  As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.)  A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html).",
        "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",
        "max": "0"
      },
      {
        "id": "Observation.partOf",
        "path": "Observation.partOf",
        "max": "0"
      },
      {
        "id": "Observation.status",
        "path": "Observation.status",
        "short": "Finnish PHR: Status final",
        "definition": "Finnish PHR: The status of the result value.",
        "comment": "Finnish PHR: Only status 'final' shall be used in FinnishPHR.",
        "requirements": "Finnish PHR: Need to track the status of individual results. Erronous observation may not be stored in FinnishPHR.",
        "fixedCode": "final"
      },
      {
        "id": "Observation.category",
        "path": "Observation.category",
        "short": "Classification of type of observation.",
        "definition": "Classification of type of observation.",
        "comment": "FinnishPHR: Only value vital-signs valid in FinnishPHR (defined by the value set).  More fine-grained filtering can be performed using the  Observation.code.",
        "requirements": "All resources all vital signs observations.",
        "binding": {
          "strength": "preferred",
          "description": "Classification of type of observation."
        }
      },
      {
        "id": "Observation.category:VSCat",
        "path": "Observation.category",
        "sliceName": "VSCat",
        "binding": {
          "strength": "required"
        }
      },
      {
        "id": "Observation.code",
        "path": "Observation.code",
        "comment": "Describes type of observation.",
        "binding": {
          "strength": "extensible",
          "valueSet": "http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns"
        }
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            },
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "requirements": "Allows for alternative encodings within a code system, and translations to other code systems. Also supports communication of the same instance to systems requiring different encodings.",
        "min": 1
      },
      {
        "id": "Observation.code.coding:fiphrCode",
        "path": "Observation.code.coding",
        "sliceName": "fiphrCode",
        "min": 1,
        "max": "2"
      },
      {
        "id": "Observation.code.coding:fiphrCode.system",
        "path": "Observation.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.code.coding:fiphrCode.code",
        "path": "Observation.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.code.coding:fiphrCode.display",
        "path": "Observation.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.subject",
        "path": "Observation.subject",
        "definition": "Finnish PHR: The patient described by the observation and into whose record the observation is placed.",
        "comment": "Finnish PHR: Who this observation is about. Usually the same person as the application user, but if the user is storing observations on behalf of someone else, the subject is the person whose measurements or other observations are entered.",
        "requirements": "Finnish PHR: Observations have always known the Patient",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient"
            ],
            "aggregation": [
              "referenced"
            ]
          }
        ]
      },
      {
        "id": "Observation.subject.reference",
        "path": "Observation.subject.reference",
        "min": 1
      },
      {
        "id": "Observation.subject.type",
        "path": "Observation.subject.type",
        "max": "0"
      },
      {
        "id": "Observation.subject.identifier",
        "path": "Observation.subject.identifier",
        "max": "0"
      },
      {
        "id": "Observation.subject.display",
        "path": "Observation.subject.display",
        "max": "0"
      },
      {
        "id": "Observation.focus",
        "path": "Observation.focus",
        "max": "0"
      },
      {
        "id": "Observation.encounter",
        "path": "Observation.encounter",
        "max": "0"
      },
      {
        "id": "Observation.effective[x]",
        "path": "Observation.effective[x]",
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "Observation.issued",
        "path": "Observation.issued",
        "short": "Finnish PHR: The date and time this observation is stored",
        "definition": "Finnish PHR: The date and time this observation is stored",
        "comment": "Updated when the result is updated.",
        "min": 1
      },
      {
        "id": "Observation.performer",
        "path": "Observation.performer",
        "short": "Finnish PHR: Application user who is responsible for the observation",
        "definition": "FinnishPHR: Application user who was responsible for asserting the observed value as \"true\".",
        "comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://phr.kanta.fi/StructureDefinition/fiphr-sd-patient"
            ],
            "aggregation": [
              "referenced"
            ]
          }
        ]
      },
      {
        "id": "Observation.performer.reference",
        "path": "Observation.performer.reference",
        "min": 1
      },
      {
        "id": "Observation.performer.type",
        "path": "Observation.performer.type",
        "max": "0"
      },
      {
        "id": "Observation.performer.identifier",
        "path": "Observation.performer.identifier",
        "max": "0"
      },
      {
        "id": "Observation.performer.display",
        "path": "Observation.performer.display",
        "max": "0"
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "comment": "Normally, an observation will have either a single value or a set of related observations. A few observations (e.g. Apgar score) may have both a value and related observations (for an Apgar score, the observations from which the measure is derived). If a value is present, the datatype for this element should be determined by Observation.code. This element has a variable name depending on the type as follows: valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueRange, valueRatio, valueSampledData, valueAttachment, valueTime, valueDateTime, or valuePeriod. (The name format is \"'value' + the type name\" with a capital on the first letter of the type).\r\r\rIf the data element is usually coded or if the type associated with the Observation.value defines a coded value, use CodeableConcept instead of string datatype even if the value is uncoded text.  A value set is bound to the ValueCodeableConcept element.    For further discussion and examples see the  [notes section](observation.html#notes) below."
      },
      {
        "id": "Observation.dataAbsentReason",
        "path": "Observation.dataAbsentReason",
        "binding": {
          "strength": "required",
          "description": "Codes specifying why the result (Observation.value[x]) is missing."
        }
      },
      {
        "id": "Observation.dataAbsentReason.id",
        "path": "Observation.dataAbsentReason.id",
        "short": "xml:id (or equivalent in JSON)"
      },
      {
        "id": "Observation.dataAbsentReason.coding",
        "path": "Observation.dataAbsentReason.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "rules": "open"
        },
        "max": "1"
      },
      {
        "id": "Observation.dataAbsentReason.coding:fhiphrCoding",
        "path": "Observation.dataAbsentReason.coding",
        "sliceName": "fhiphrCoding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.dataAbsentReason.coding:fhiphrCoding.system",
        "path": "Observation.dataAbsentReason.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/data-absent-reason"
      },
      {
        "id": "Observation.dataAbsentReason.coding:fhiphrCoding.code",
        "path": "Observation.dataAbsentReason.coding.code",
        "min": 1
      },
      {
        "id": "Observation.dataAbsentReason.coding:fhiphrCoding.display",
        "path": "Observation.dataAbsentReason.coding.display",
        "min": 1
      },
      {
        "id": "Observation.interpretation",
        "path": "Observation.interpretation",
        "definition": "Finnish PHR: The assessment made based on the result of the observation. Intended as a simple compact code placed adjacent to the result value. Otherwise known as abnormal flag.",
        "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
        "max": "1",
        "binding": {
          "strength": "extensible",
          "description": "Finnish PHR: Codes identifying interpretations of observations."
        }
      },
      {
        "id": "Observation.interpretation.coding",
        "path": "Observation.interpretation.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.interpretation.coding:fiphrInterpretation",
        "path": "Observation.interpretation.coding",
        "sliceName": "fiphrInterpretation",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.interpretation.coding:fiphrInterpretation.system",
        "path": "Observation.interpretation.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
      },
      {
        "id": "Observation.interpretation.coding:fiphrInterpretation.code",
        "path": "Observation.interpretation.coding.code",
        "min": 1
      },
      {
        "id": "Observation.interpretation.coding:fiphrInterpretation.display",
        "path": "Observation.interpretation.coding.display",
        "min": 1
      },
      {
        "id": "Observation.bodySite",
        "path": "Observation.bodySite",
        "max": "0"
      },
      {
        "id": "Observation.method",
        "path": "Observation.method",
        "max": "0"
      },
      {
        "id": "Observation.specimen",
        "path": "Observation.specimen",
        "max": "0"
      },
      {
        "id": "Observation.device",
        "path": "Observation.device",
        "max": "0"
      },
      {
        "id": "Observation.hasMember",
        "path": "Observation.hasMember",
        "max": "0"
      },
      {
        "id": "Observation.derivedFrom",
        "path": "Observation.derivedFrom",
        "max": "0"
      },
      {
        "id": "Observation.component",
        "path": "Observation.component",
        "comment": "Profiled further in derived profiles that use components."
      },
      {
        "id": "Observation.component.code",
        "path": "Observation.component.code",
        "binding": {
          "strength": "extensible",
          "valueSet": "http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns"
        }
      },
      {
        "id": "Observation.component.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component.code.coding:fiphrCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "fiphrCoding",
        "max": "1"
      },
      {
        "id": "Observation.component.code.coding:fiphrCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.component.code.coding:fiphrCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component.code.coding:fiphrCoding.display",
        "path": "Observation.component.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.component.dataAbsentReason.coding",
        "path": "Observation.component.dataAbsentReason.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component.dataAbsentReason.coding:fiphrCoding",
        "path": "Observation.component.dataAbsentReason.coding",
        "sliceName": "fiphrCoding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component.dataAbsentReason.coding:fiphrCoding.system",
        "path": "Observation.component.dataAbsentReason.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/data-absent-reason"
      },
      {
        "id": "Observation.component.dataAbsentReason.coding:fiphrCoding.code",
        "path": "Observation.component.dataAbsentReason.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component.dataAbsentReason.coding:fiphrCoding.display",
        "path": "Observation.component.dataAbsentReason.coding.display",
        "min": 1
      },
      {
        "id": "Observation.component.interpretation.coding",
        "path": "Observation.component.interpretation.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component.interpretation.coding:fiphrCoding",
        "path": "Observation.component.interpretation.coding",
        "sliceName": "fiphrCoding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component.interpretation.coding:fiphrCoding.system",
        "path": "Observation.component.interpretation.coding.system",
        "min": 1,
        "fixedUri": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation"
      },
      {
        "id": "Observation.component.interpretation.coding:fiphrCoding.code",
        "path": "Observation.component.interpretation.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component.interpretation.coding:fiphrCoding.display",
        "path": "Observation.component.interpretation.coding.display",
        "min": 1
      }
    ]
  }
}