ObservationPainNrsLite

Introduction

The ObservationPainNrsLite profile represents the vital parameter Pain NRS and is a profile created from the resource Observation. Pain NRS is an observation concerning pain level based on a Numeric Rating Scale (NRS). This scale is used in healthcare to help assess the extent of a patient's pain, rated from 0 (no pain) to 10 (Worst pain). The profile is derived from the standard FHIR profile Vital Signs which makes the profile compliant with the FHIR standardized way of communicating vital sign data.

Intended Use

The ObservationPainNrsLite is used for communicating an entry of a patients Pain NRS by sending a value in the element observation.value. The API can be used to create and read patient Pain NRS information from/to COSMIC.

Create Pain NRS

Patient Generated

The patient generated data is ordered by a care giver and there should be a responsible unit sent together with the data.

Healthcare Professional

Should be done by a health care professional with a specified HSA ID. This professional should have their assignment (medarbetaruppdrag) and be connected to the specified unit. Unit should also be specified with HSA ID. Intended use is in first hand that the API is used within the same care giver. The user and specified unit should exist in COSMIC and be the same in the external system.

Read Pain NRS

Intended use is in first hand that the API is applied for direct access and should not be used to transfer data between caregivers. If it should be used for copying inbetween care givers patient consent must be handeled outside the API.

Specific Rules and Limitations

Type Description
Rule This API should not be used to transfer data between caregivers.
Rule If the performer is Patient, the subject should be the same as given performer.
Rule For reading vital sign observations, the external system needs to be able to evaluate PDL. This means whether the information can be displayed for a healthcare professional with a specific assignment. PDL data needed (HSA care unit and HSA care provider) is retrieved by including the organization referenced from Observation.performer.organization (OrganizationSEVendorLite).
Rule POST: The data should not be patient initiated. If patient generated, it should be ordered by a care giver and belong to a specific unit.
Rule POST: It is not supported to create vital sign entries with statuses preliminary, entered-in-error or cancelled. Only status final is supported for POST.
Rule POST: dateTime cannot be 1st of the month with the time 00:00:00.000+01:00 (See error messages described below)
Rule POST: dateTime cannot be only date component, also time component will be needed (See error messages described below)

Profile Overview

ObservationPainNrsLite

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceS Σ0..1uri
profileΣ1..1canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
basedOnΣ I0..0Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ I0..0Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemS Σ1..1uriFixed Value
versionΣ0..1string
codeS Σ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeFixed Value
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
focusΣ I0..0Reference(Resource)
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
effectiveDateTimedateTime
issuedΣ0..0instant
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ1..1uriBindingFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1codeBinding
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
dataAbsentReasonS I0..0CodeableConceptBinding
interpretation0..0CodeableConceptBinding
id0..1string
extensionI0..*Extension
timeΣ0..0dateTime
textΣ1..1markdown
bodySite0..0CodeableConcept
method0..0CodeableConcept
specimenI0..0Reference(Specimen)
deviceI0..0Reference(Device | DeviceMetric)
hasMemberΣ I0..0Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile)
derivedFromΣ I0..0Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | MolecularSequence | Vital Signs Profile)

Statuses

FHIR status Status in COSMIC
preliminary unsigned
final signed, completednonSignable
entered-in-error invalidated
cancelled removed

Terminology Bindings

The ObservationPainNrsLite profile is bound with a SNOMED CT code sent in Observation.code: 49121000146105 | Numeric rating scale score (observable entity) |

Versions

COS version Profile version Required COSMIC version Date Description
3.0.0 1.1.0 R8.3.05 May 2022 Updates in target profile for performer.organization which makes it possible to retrieve PDL units
2.4.4 1.0.0 R8.3.04 Feb 2022 Initial version, support for GET and POST.

Supported Operations

HTTP Methods

Method Description
GET Used to get or search for Pain NRS registrations
POST Used to create a Pain NRS entry. If successful, the operation will return id in response

Query Operations

Search Parameters

Parameter Format Mandatory Comment
date date (ddmmyy) Yes Obtained date/time. The date is always a range, i.e. two dates are used as search parameters.
status token No The status of the observation. See supported statuses in #Statuses
patient reference Yes The subject that the observation is about (if patient). The reference can be a literal reference ex: subject=1 or a Business identifier as well.ex: subject.identifier=urn:oid:1.2.752.129.2.1.3.1|20200109-6078
code token No SNOMED CT code of the observation type
profile string No search on the profile url.

Supported Queries

  1. GET [baseURL]/Observation/?search?patient= (Search)
  2. GET [baseURL]/Observation/?search?status= (Search)
  3. GET [baseURL]/Observation/?search?date=[gt_date]&date=[lt_date] (Search)
  4. GET [baseURL]/Observation/?search?code= (Search)
  5. GET [baseURL]/Observation/?search?profile= (Search)
  6. GET [baseURL]/Observation/?search?patient=&_include=Observation:performer (Search)
  7. GET [baseURL]/Observation/?search?status=[status]&_include=[] (Search)
  8. GET [baseURL]/Observation/?search?date=[gt_date]&date=[lt_date]&_include=[] (Search)
  9. GET [baseURL]/Observation/?search?code=[code]&_include=[] (Search)
  10. GET [baseURL]/Observation/?search?profile=[url]&_include=[] (Search)
  11. POST [baseURL]/Observation (Post)

Supported SearchInclude Operations

No supported parameters

Supported RevInclude Operations

No supported parameters

Error Codes

In the table below, a few error messages specific for Observation are listed.

Code Description Comment
400 "Subject and Performer Patient references does not match."
400 "The date time: < date > is invalid" the dateTime must contain a time component
400 "Server supports only FINAL status when posting Observations" Statuses preliminary, entered-in-error or cancelled. Only status final are not supported for POST.