Awell Health Developer Hub
Developer Hub

We use Elastic as our data repository to store, index, and search pathway data sets. You can either connect your own BI tool to our data repository in Elastic or use our analytics & dashboarding tool: Kibana.

The data repository contains two different types of data: collected data and generated data.

Collected data refers to any atomic piece of data collected from a user or system in care flows (e.g. form responses, calculation results, etc.). These are the datapoints that you can find in the data catalog in Awell Studio and that you can use to build care flows.

Generated data refers to data generated by the orchestration of the care flow itself, i.e. data about which actions were orchestrated when in care flows.

Collected data

All the collected data is stored in a single index: orchestration-datapoint.

This index uses a normalized structure to handle the fact that the collected data can have different value types (string, boolean, numeric, date etc), and can come from many different sources (forms, calculations, Extensions, etc.).

When building a care flow in Awell Studio you have the ability to configure human readable identifiers for all data points as well as the source behind these data points. Our system uses that information to generate a `qualified_key` for each data point which combines the source key and the data point key. Let's imagine that you are building a patient form to collect the patient's weight and height, with the intent of calculating a BMI score. You set the form key to bmi, and set the question keys to height and weight respectively.

This will result in data points with the following qualified keys:

  • bmi.height contains the answer to the height question in the bmi form
  • bmi.weight contains the answer to the weight question in the bmi form

Use the Data Catalog to get an overview of all the collected data points, including the qualified keys and where in your care flow they are collected.

PropertyTypeDescription
idstringUnique identifier of the data point
valuestringSerialised value of the data point
value_typestringPrimitive type of the value before serialisation (boolean, date, number, string)
datedateCollection date (UTC)
data_set_idstringIdentifier of the pathway in which the data point was collected
activity_idstringIdentifier of the activity in which the data point was collected
data_point_definition.categorystringHow the data point was collected (form, calculation, etc)
data_point_definition.qualified_keystringUser-configured identifier for the data point
pathway.idstringUnique identifier of the pathway
pathway.pathway_definition_idstringIdentifier of the related pathway definition (version agnostic)
pathway.release_idstringIdentifier of the published pathway definition (version specific)
pathway.patient_idstringIdentifier of the patient
pathway.start_datedateStarting date of the pathway in UTC
pathway.complete_datedateCompletion date of the pathway in UTC
pathway.statusstringCurrent status of the pathway
patient.idstringUnique identifier of the patient
patient.profile.first_namestringFirst name of the patient
patient.profile.last_namestringLast name of the patient
patient.profile.namestringConcatenation of the first name and last name
patient.profile.patient_codestringUser configurable identifier of the patient
patient.profile.sexstringPatient sex (0 = Not known, 1 = Male, 2 = Female)
patient.profile.birth_datestringBirth date of the patient

Sample queries

Given that the data point index is normalised, you can use any combination of the following properties to narrow down the query results:

  • Use data_set_id or pathway.id to narrow down results to the data collected in a specific pathway
  • Use patient.id to narrow down results to data collected for any pathway started for a specific patient
  • Use data_point_definition.category to narrow down results to data collected from a specific source category
  • Use data_point_definition.qualified_key to narrow down results to a specific data point
  • Use data_point_definition.qualified_key with wildcards to narrow down results to data points that logically belong together
Querying data point by pathway
Querying data point by pathway

Querying data point by source category
Querying data point by source category

Querying data point by key
Querying data point by key

Querying data point by form key
Querying data point by form key

Generated data

The generated data is stored in three indices:

  1. orchestration-pathway
  2. orchestration-step
  3. orchestration-activity

The pathway and step indices provide a "snapshot" of the status of all pathways and steps that have ever been created in your Awell tenant (e.g. which are still active, which were completed, etc.), while the activity index tells you which system activities have occured to orchestrate your care flows. You can find more information about "activities" in the Awell platform (here)[https://developers.awellhealth.com/awell-orchestration/docs/getting-started/domain-model#activities].

Pathway (orchestration-pathway)

PropertyTypeDescription
idstringUnique identifier of the pathway
pathway_definition_idstringIdentifier of the related pathway definition (version agnostic)
release_idstringIdentifier of the published pathway definition (version specific)
patient_idstringIdentifier of the patient
start_datedateStarting date of the pathway in UTC
complete_datedateCompletion date of the pathway in UTC
statusstringCurrent status of the pathway
patient.idstringUnique identifier of the patient
patient.profile.first_namestringFirst name of the patient
patient.profile.last_namestringLast name of the patient
patient.profile.namestringConcatenation of the first name and last name
patient.profile.patient_codestringUser configurable identifier of the patient
patient.profile.sexstringPatient sex (0 = Not known, 1 = Male, 2 = Female)
patient.profile.birth_datestringBirth date of the patient

Step (orchestration-step)

PropertyTypeDescription
idstringUnique identifier of the step
pathway_definition_idstringIdentifier of the related pathway definition (version agnostic)
release_idstringIdentifier of the published pathway definition (version specific)
statusstringCurrent step status
scheduled_datedateScheduled activation date of the step
activation_datedateActual activation date of the step
completion_datedateCompletion date of the step
pathway.idstringUnique identifier of the pathway
pathway.pathway_definition_idstringIdentifier of the related pathway definition (version agnostic)
pathway.release_idstringIdentifier of the published pathway definition (version specific)
pathway.patient_idstringIdentifier of the patient
pathway.start_datedateStarting date of the pathway in UTC
pathway.complete_datedateCompletion date of the pathway in UTC
pathway.statusstringCurrent status of the pathway

Activity (orchestration-activity)

PropertyTypeDescription
idstringUnique identifier of the activity
stream_idstringIdentifier of the pathway this activity belongs to
subject.typestring
subject.namestring
actionstring
object.idstring
object.typestring
object.namestring
indirect_object.idstring
indirect_object.typestring
indirect_object.namestring
statusstring
resolutionstring
datedate
pathway.idstringUnique identifier of the pathway
pathway.pathway_definition_idstringIdentifier of the related pathway definition (version agnostic)
pathway.release_idstringIdentifier of the published pathway definition (version specific)
pathway.patient_idstringIdentifier of the patient
pathway.start_datedateStarting date of the pathway in UTC
pathway.complete_datedateCompletion date of the pathway in UTC
pathway.statusstringCurrent status of the pathway
patient.idstringUnique identifier of the patient
patient.profile.first_namestringFirst name of the patient
patient.profile.last_namestringLast name of the patient
patient.profile.namestringConcatenation of the first name and last name
patient.profile.patient_codestringUser configurable identifier of the patient
patient.profile.sexstringPatient sex (0 = Not known, 1 = Male, 2 = Female)
patient.profile.birth_datestringBirth date of the patient