Polar
Health metrics from Polar wearables can offer detailed insights into individual health metrics, including heart rate, sleep, and exercise data. This section explains how Polar integrates with Avicenna, making it easier for researchers to understand and use the health data of their participants.
Supported Polar Metrics in Avicenna
In this section, we list the comprehensive range of Polar metrics that Avicenna supports.
Polar Exercise
Provides detailed information about exercise sessions. It is stored internally as polar_exercise
and includes the
following fields:
- Record Time: Calculated by combining
start_time
withduration
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Device: The specific Polar device used during the exercise. Internally recorded as
device
. - Start Time: The start time of the exercise session. Internally recorded as
start_time
. - UTC Offset: The offset from UTC at the start of the exercise, measured in minutes. Internally recorded as
start_time_offset_minutes
. - Duration: The total duration of the exercise session, specified in ISO 8601 format. Internally recorded as
duration
. - Calories: Total kilocalories expended during the training session. Internally recorded as
calories
. - Distance: Total distance traveled during the exercise, measured in meters. Internally recorded as
distance
. - Heart Rate: Information about heart rate metrics during the exercise, including:
- Average Heart Rate: The average heart rate across the session. Internally recorded under
heart_rate.average
. - Maximum Heart Rate: The peak heart rate achieved during the session. Internally recorded under
heart_rate.maximum
.
- Average Heart Rate: The average heart rate across the session. Internally recorded under
- Training Load: The overall training load impact of the exercise session. Internally recorded as
training_load
. - Sport: The type of sport or activity performed. Internally recorded as
sport
. - Has Route: Indicates if there is route data available for the session. Internally recorded as
has_route
. - Club ID: ID for the club associated with the session, if relevant. Internally recorded as
club_id
. - Club Name: Name of the club linked to the exercise. Internally recorded as
club_name
. - Detailed Sport Info: Detailed description of the sport as per Polar Flow compatibility. Internally recorded as
detailed_sport_info
. - Fat Percentage: Percentage of exercise calories derived from fat. Available if supported by the device. Internally
recorded as
fat_percentage
. - Carbohydrate Percentage: Percentage of exercise calories derived from carbohydrates. Available if supported by the
device. Internally recorded as
carbohydrate_percentage
. - Protein Percentage: Percentage of exercise calories derived from protein. Available if supported by the device.
Internally recorded as
protein_percentage
. - Running Index: Score calculated from heart rate and speed data collected via GPS or stride sensor during running.
Internally recorded as
running_index
. - Heart Rate Zones: Detailed list of times spent in various heart rate zones:
- Index: The position of the zone in the list. Internally recorded as
index
. - Lower Heart Rate Limit: The minimum heart rate of the zone. Internally recorded as
lower_limit
. - Upper Heart Rate Limit: The maximum heart rate of the zone. Internally recorded as
upper_limit
. - Time Spent In Zone: Duration spent in this zone, formatted in ISO 8601. Internally recorded as
in_zone
.
- Index: The position of the zone in the list. Internally recorded as
- Samples: Comprehensive list of all exercise samples collected:
- Recording Rate: Frequency of sample recording in seconds, applicable only where relevant. Internally recorded as
recording_rate
. - Sample Type: Type of the sample, e.g., heart rate, speed. Internally recorded as
sample_type
. - Data: Comma-separated list of sample values. Internally recorded as
data
.
- Recording Rate: Frequency of sample recording in seconds, applicable only where relevant. Internally recorded as
- Route: List of geographical data points collected during the exercise:
- Latitude: Latitude in degrees. Internally recorded as
latitude
. - Longitude: Longitude in degrees. Internally recorded as
longitude
. - Time: Timestamp for each location point, formatted as duration. Internally recorded as
time
. - Satellites: Number of satellites detected, up to a maximum of 63. Internally recorded as
satellites
. - Fix: GPS fix status, with a maximum value of three. Internally recorded as
fix
.
- Latitude: Latitude in degrees. Internally recorded as
- Training Load Pro: Advanced metrics to assess training load:
- Date: The specific date of the training session. Internally recorded as
date
. - Cardio Load: Cardiovascular effort quantified. Internally recorded as
cardio_load
. - Muscle Load: Muscular effort quantified. Internally recorded as
muscle_load
. - Perceived Load: Subjectively rated effort of the training session. Internally recorded as
perceived_load
. - Cardio Load Interpretation Interpretations of the cardio loads. Internally recorded as
perceived_load_interpretation
. - Muscle Load Interpretation Interpretations of the muscle loads. Internally recorded as
muscle_load_interpretation
, ``. - Perceived Load Interpretation Interpretations of perceived loads. Internally recorded as
perceived_load_interpretation
. - User RPE: Rated Perceived Exertion, quantifying internal training load. Internally recorded as
user_rpe
.
- Date: The specific date of the training session. Internally recorded as
Polar Sleep
Provides detailed information about sleep sessions. It is stored internally as polar_sleep
and includes the following
fields:
- Record Time: Considered
sleep_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Date: The date on which the sleep occurred. Internally recorded as
date
. - Sleep Start Time: The start time of the sleep period in ISO-8601 date/time format. Internally recorded as
sleep_start_time
. - Sleep End Time: The end time of the sleep period in ISO-8601 date/time format. Internally recorded as
sleep_end_time
. - Continuity: An estimate of how continuous the sleep was, on a scale from 1.0 to 5.0, where 5.0 indicates
uninterrupted sleep. Internally recorded as
continuity
. - Continuity Class: Verbal assessments of sleep continuity ranging from
FRAGMENTED_SLEEP
toVERY_CONTINUOUS_SLEEP
. Internally recorded ascontinuity_class
. - Light Sleep: Total time in seconds spent in the light sleep stages (N1 + N2) between falling asleep and waking up.
Internally recorded as
light_sleep
. - Deep Sleep: Total time in seconds spent in the deep sleep stage (N3) between falling asleep and waking up.
Internally recorded as
deep_sleep
. - REM Sleep: Total time in seconds spent in the REM sleep stage between falling asleep and waking up. REM stands for
rapid eye movement. Internally recorded as
rem_sleep
. - Unrecognized Sleep Stage: Total time in seconds spent in unrecognized sleep stages, often due to inadequate sensor
contact or positioning. Internally recorded as
unrecognized_sleep_stage
. - Sleep Score: Summarizes the amount and quality of sleep into a single number on a scale from 1 to 100, consisting
of multiple components including sleep time and sleep depth. Internally recorded as
sleep_score
. - Total Interruption Duration: The total time in seconds spent awake between falling asleep and waking up.
Internally recorded as
total_interruption_duration
. - Sleep Charge: Sleep score compared to the usual level over the past 28 days, with a scale from
MUCH_BELOW_USUAL
toMUCH_ABOVE_USUAL
. Internally recorded assleep_charge
. - Sleep Goal: Time goal in seconds for sleep, based on age-related sleep duration recommendations. Internally
recorded as
sleep_goal
. - Sleep Rating: The quality of sleep, ranging from
VERY_POORLY
toVERY_WELL
, withNO_VALUE
indicating no value given. Internally recorded assleep_rating
. - Short Interruption Duration: Total time in seconds of short interruptions in sleep lasting less than 90 seconds.
Internally recorded as
short_interruption_duration
. - Long Interruption Duration: Total time in seconds of long interruptions in sleep lasting 90 seconds or more.
Internally recorded as
long_interruption_duration
. - Sleep Cycles: Number of complete sleep cycles recorded during the sleep session. Internally recorded as
sleep_cycles
. - Group Duration Score: Evaluates sleep duration against preferred settings and age-related recommendations, scored
from 1.0 to 100.0 and categorized as poor, moderate, or good. Internally recorded as
group_duration_score
. - Group Solidity Score: Averages component scores of long interruptions, continuity, and actual sleep, rated from
1.0 to 100.0 and categorized as poor, moderate, or good. Internally recorded as
group_solidity_score
. - Group Regeneration Score: Averages scores of REM and deep sleep components, rated from 1.0 to 100.0 and
interpreted as poor, moderate, or good regeneration. Internally recorded as
group_regeneration_score
. - Hypnogram: Classified time spans of sleep stages in 30-second epochs, covering light, deep, REM, unrecognized, or
wake stages. Internally recorded under
hypnogram
.- Time: Timestamp for each stage, formatted as hour and minute.
- Stage: Sleep stage identified at each timestamp. Values can be
WAKE
,REM
,LIGHTER_NON_REM
,LIGHT_NON_REM
,DEEP_NON_REM
, orUNKNOWN
.
- Heart Rate Samples: 5-minute average samples of heart rate during the sleep period. Samples may occasionally be
recorded more frequently than every 5 minutes. Internally recorded under
heart_rate_samples
.- Time: Timestamp for each heart rate sample, formatted as hour and minute.
- Heart Rate: Heart rate in beats per minute at each sample time.
Polar Continuous Heart Rate
It enables a more accurate measurement of daily calorie consumption and overall activity. It is stored internally as
polar_continuous_heart_rate
and includes the following fields:
- Record Time: The timestamp when the heart rate data was received from Polar Webhook, stored as milliseconds since
epoch. Internally recorded as
record_time
. - Date: The date on which the continuous heart rate data was recorded. Internally recorded as
date
. - Heart Rate Samples: Collection of 5-minute average samples of heart rate during the measurement period. Samples
may occasionally be recorded more frequently than every 5 minutes. The unit for heart rate samples is beats per minute
(bpm). Internally recorded under
heart_rate_samples
with detailed properties:- Heart Rate: The heart rate recorded at a specific time, expressed in beats per minute. Internally recorded as
heart_rate
. - Sample Time: The specific time at which each heart rate measurement was taken, formatted to include hour,
minute, and second. Internally recorded as
sample_time
.
- Heart Rate: The heart rate recorded at a specific time, expressed in beats per minute. Internally recorded as
Polar SleepWise Circadian Bedtime
Provides information about the circadian bedtime, which is the optimal time to go to bed for the best sleep quality. It
is stored internally as polar_sleepwise_circadian_bedtime
and includes the following fields:
- Record Time: Considered
period_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Validity: Indicates the validity of the circadian bedtime data. Internally recorded as
validity
. - Quality: The quality of the circadian bedtime data. Internally recorded as
quality
. - Result Type: The type of result or measurement being reported. Internally recorded as
result_type
. - Period Start Time: The start time of the circadian bedtime measurement period. Internally recorded as
period_start_time
. - Period End Time: The end time of the circadian bedtime measurement period. Internally recorded as
period_end_time
. - Preferred Sleep Period Start Time: Designated start time of the preferred sleep period for circadian alignment.
Internally recorded as
preferred_sleep_period_start_time
. - Preferred Sleep Period End Time: Designated end time of the preferred sleep period for circadian alignment.
Internally recorded as
preferred_sleep_period_end_time
. - Sleep Gate Start Time: Start time of the suggested sleep gate, which indicates the optimal window for falling
asleep according to circadian rhythms. Internally recorded as
sleep_gate_start_time
. - Sleep Gate End Time: End time of the suggested sleep gate, indicating the closing of the optimal window for
falling asleep. Internally recorded as
sleep_gate_end_time
. - Sleep Timezone Offset Minutes: The timezone offset in minutes from UTC for the sleep data, which helps in aligning
the sleep data with local time accurately. Internally recorded as
sleep_timezone_offset_minutes
.
Polar SleepWise Alertness
Provides information about the user's alertness levels during sleep. It is stored internally as
polar_sleepwise_alertness
and includes the following fields:
- Record Time: Considered
period_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Grade: A numerical grade reflecting alertness level. Internally recorded as
grade
. - Grade Validity Seconds: Duration in seconds for which the alertness grade is considered valid. Internally recorded
as
grade_validity_seconds
. - Grade Type: The type of grading system used for alertness evaluation. Internally recorded as
grade_type
. - Grade Classification: Classification of the grade based on alertness levels. Internally recorded as
grade_classification
. - Validity: Indicates whether the grade is currently valid. Internally recorded as
validity
. - Sleep Inertia: Description related to the user's state of sleep inertia. Internally recorded as
sleep_inertia
. - Sleep Type: Type of sleep during which the alertness data was recorded. Internally recorded as
sleep_type
. - Result Type: The type of result generated for alertness measurement. Internally recorded as
result_type
. - Period Start Time: The start time of the alertness measurement period. Internally recorded as
period_start_time
. - Period End Time: The end time of the alertness measurement period. Internally recorded as
period_end_time
. - Sleep Period Start Time: The start time of the sleep period associated with the alertness data. Internally
recorded as
sleep_period_start_time
. - Sleep Period End Time: The end time of the sleep period associated with the alertness data. Internally recorded as
sleep_period_end_time
. - Sleep Timezone Offset Minutes: Timezone offset in minutes for the sleep period's local time. Internally recorded
as
sleep_timezone_offset_minutes
. - Hourly Data: List of hourly data throughout the alertness period. Internally recorded under
hourly_data
with detailed properties:- Validity: Indicates the validity of each hourly data point. Internally recorded as
validity
. - Alertness Level: The level of alertness measured during the hour. Internally recorded as
alertness_level
. - Start Time: The start time of the hourly measurement. Internally recorded as
start_time
. - End Time: The end time of the hourly measurement. Internally recorded as
end_time
.
- Validity: Indicates the validity of each hourly data point. Internally recorded as
Data Collection Behavior
Whenever there is new Polar data, the Polar's server will send the new data to Avicenna.
Adding Polar As a Data Source
Monitoring Polar Data
You can monitor and export Polar data using Kibana.
Polar Data Source in Participant App
After a participant joins a study, they need to grant access to Avicenna to collect data. To do that, the participant
needs to go to Settings
on the Avicenna app and click on My Studies
. Then they should choose the study that is
collecting Polar data. On the study's page, clicking on the Data Sources
will take them to the data sources page:
On this page, the participant will see all of the data sources that the study uses to collect data. Among these data
sources, on the corner of the Polar data source(s), there is a Grant Access
button:
By clicking on the Grant Access
button, the participant will be directed to the sign-in page of the Polar official
website. Then, they can decide whether they want to share those data with Avicenna:
After clicking on Grant, the participant will be redirected to the Data Sources page of the study in the Avicenna app, and they have successfully granted access to Avicenna to gather Polar data.
The participants can stop sharing the data anytime by clicking on Revoke Access
on the Data Sources page.