Requirements

   

Scope

For the MVP integreation we are going to consider the following metrics:

  • active_duration
  • steps
  • carbohydrate
  • blood_glucose
  • diastolic
  • systolic
  • insulin
  • energy_burned
  • energy_consumed
  • body_weight
  • resting_heart_rate
  • avg_heart_rate
  • fat
  • body_fat
  • deep_sleep
  • rem_sleep
  • sleep_duration

The team will model one data point for each one of this metrics, but also we have to consider the auxiliar fhir resources:

  • MessageHeader
  • Device
  • DeviceComponent
  • DeviceMetric
  • Parent Observation (links a set of different metrics that have a common activity. For example different metrics such as Carbs, Fat, Body Fat observations can be related to the parent Nutrition generic observation)

   

Assumptions

  • Intraday type of streams are out of scope for MVP
  • Reference source - The helpdocs section of the Validic site is the source of reference for their data model, possible values for certain elements and sample streams - https://helpdocs.validic.com/docs
  • Device information - Currently, the information received regarding the devices are very minimal. It is only the brand name in most of the samples (like, fitbit, ihealth). DeviceComponent resources are modelled accordingly by generating our own identifiers based on the user id, source type, metric origin and device type. If we start getting unique device details this may have to be updated to be consistent with the other integrations
  • Edited values - Even though we are not managing edited values in MVP, it is still possible to receive updated Validic streams for the same observation. To avoid duplicates getting stored, we are storing all the observations with a unique identifier (created by combining the stream id, metric type and origin). The bundle filter should filter and ignore the edited values for the time being.
  • Metric origin - The possible values in Validic streams for metric origin are: device, manual and unknown. We will be storing the data as we receive.

Use Cases

Use Case Summary Comments
1 Origin of metric in the validic stream is from the device
2 Origin of metric in the validic stream is manual enterered
3 Origin of metric in the validic stream is unknown
4 Validic stream type is 'Summary' type Summary is always data consolidated for a particular day.
5 Validic stream type is 'workout' type tags - biking, cardio, running, strength, swimming, walking, other
6 Validic stream type is 'measurement' type
7 Validic stream type is 'nutrition' type comments include: Food, meal, other.
8 Validic stream type is 'sleep' type

   

Data Points

Data Point Description FHIR Resource & Element Remarks (units) FHIR Sample
active_duration Total duration of active time as defined by the source. metric-value → observation.valueQuantity.value(profile:activity-metric-observation) Unit: s Sample
steps The number of steps taken in a single day as defined by the source. For sources that show only routine, non-workout steps as the daily step count, this value will match the steps shown by the source to the end user. metric-value → observation.valueQuantity.value (profile:activity-metric-observation) Unit: steps or steps/day depending the stream Sample
carbohydrate The value of measured quantity in grams. metric-value → observation.valueQuantity.value(profile:nutritional-value-observation) Unit: g sample
blood_glucose Blood glucose, or blood sugar, reading of the individual. May be an individual measurement or an average of multiple consecutive readings taken within a short period of time, as defined by the source. metric-value → observation.valueQuantity.value(profile:bg-observation) Unit: mg/dL or mmol/L sample
diastolic The diastolic blood pressure measurement of the individual. metric-value → observation.valueQuantity.value(profile:vital-signs-observation) Unit: mm[Hg] sample
systolic The systolic blood pressure measurement of the individual. metric-value → observation.valueQuantity.value(profile:vital-signs-observation) unit: mm[Hg] sample
insulin The amount of insulin consumed by an individual. MedicalAdministration.dosage.dose.value(profile: medication-administration) sample
energy_burned Total number of calories burned as defined by the source or calculated by Validic. metric-value → observation.valueQuantity.value(profile:activity-metric-observation) Unit: kcal sample
energy_consumed The total number of calories, or energy, consumed. metric-value → observation.valueQuantity.value(profile:nutritional-value-observation) Unit: kcal Sample
body_weight Body weight measurement of the individual. metric-value → observation.valueQuantity.value(profile:vital-signs-observation) Unit: kg Sample
resting_heart_rate The waking heart rate measurement of the individual as determined by the source. metric-value → observation.valueQuantity.value(profile:vital-signs-observation) Unit: bpm Sample
avg_heart_rate The average heart rate measured as determined by the source. metric-value → observation.valueQuantity.value(profile:vital-signs-observation) Unit: bpm Sample
fat The value of measured quantity in gram. metric-value → observation.valueQuantity.value(profile:nutritional-value-observation) Unit : g Sample
body_fat The value of measured quantity in gram. metric-value → observation.valueQuantity.value(profile:nutritional-value-observation) Unit : % Sample
deep_sleep The duration of time the individual was in a deep sleep state as defined by the source. metric-value → observation.valueQuantity.value(profile:activity-metric-observation) Unit : s Sample
rem_sleep The duration of time the individual was in a REM sleep state as defined by the source. metric-value → observation.valueQuantity.value(profile:activity-metric-observation) Unit : s Sample
sleep_duration The duration of time the user was sleeping during the sleep period as defined by the device. metric-value → observation.valueQuantity.value(profile:activity-metric-observation) Unit : s Sample

   

Solution Architecture

   

Description Link Comments
Validic Integration https://confluence.rochedc.accentureanalytics.com/display/ARCGOV/Validic+Integration#ValidicIntegration-IngestionFlow

High-Level Requirements

   

Description Link Comments
Validic Streaming API https://confluence.rochedc.accentureanalytics.com/display/ARCGOV/Validic+Integration#ValidicIntegration-UsingtheStreamingAPI
Data Ingestion https://confluence.rochedc.accentureanalytics.com/display/RD/Data+Ingestion+from+Validic

Non Functional Requirements

   

Description Link Comments
NF Requirements https://confluence.rochedc.accentureanalytics.com/display/ARCGOV/Validic+Integration#ValidicIntegration-Non-FunctionalRequirements