Observations are data points collected about a given entity. Observations in care would mainly revolve around a patient, unless specified in all contexts observations would point to an observation about a patient.

Observations support storing all kinds of data, but this should be discouraged as structured data is necessary to compute various business logic within care. A prime example would be storing allergies as observations, although this is possible through creating a questionnaire about allergies the patient has, the data in observations is not structured and would not be used when checking medications against an allergy or other cases. In general it is advised to avoid creating observations around any structured data collection performed in care.

As stated earlier, observations are named value points, an observation contains a code, which points to what observation is made. The code changes based on the code system we use and will mostly depend upon the questionnaire to define the code.

The data structure for observation in care would be the following.

{
  "id": "str", // Unique ID in the system. System here will be the instance which hosts care
  "status": "options", // final | amended , all observation from questionnares is final  Refer to : <https://hl7.org/fhir/valueset-observation-status.html>
  "category": [{}], // List of codable concepts derived from the questionnare. // Refer to <https://hl7.org/fhir/valueset-observation-category.html>
  "code": { "system": "str", "code": "str" }, // Code for the observation ie What is being observed binding to LOINC
  "subject": "id|str", // Hard biniding to patient for now.
  "encounter": "id|fk", // Encounter in which this observation occured
  "effectiveDatetime": "datetime", // Datetime in which the observation was recorded, if not provided, this will be replaced by the time of creation
  "dataEnteredBy": "id|fk", // Who created the observation
  "performer": { "type": "options", "id": "str" }, // options include RelatedPerson for now, this is used to note if observation was made by RelatedPerson
  "value": "str", // Value of the observation if not code, If code, then the code's text display is maintained here
  "valueCode": { "system": "str", "text": "text", "code": "code" }, // Value as code part of a system
  "note": "str" // Note made about observation
  "bodySite" : "code" // Valueset reference : <https://hl7.org/fhir/observation-definitions.html#Observation.bodySite>
  "method" : "code" // Valueset reference : <https://hl7.org/fhir/observation-definitions.html#Observation.method>
  "referenceRange" : [{}] // Automatically Created based on LOINC ( if supplied ) ? Question, Should we store this or point back to LOINC with versioning?
  "interpretation" : "str" // Interpretation based on the referenceRange
  "parent" : "id" // Id of the parent observation FK
}

API’s supported