Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.junction.com/llms.txt

Use this file to discover all available pages before exploring further.

A couple of examples to get you started with Continuous Query:

Daily Sleep Analysis

import vitalx.aggregation as va

va.select(
    va.group_key("*"), 
    va.Sleep.col("efficiency").mean(),
    va.Sleep.score().mean(),
    va.Sleep.chronotype().newest()
).where(
    "type = 'long_sleep'"
).group_by(
    va.date_trunc(va.Sleep.index(), 1, "day")
).finalize()

Weekly Insights Into Users’ Activity

import vitalx.aggregation as va

va.select(
    va.group_key("*"), 
    va.Activity.col("heart_rate_resting").mean(),
    va.Activity.col("calories_total").max(),
    va.Activity.col("steps").min(),
    va.Activity.col("duration_active_second").mean()
).group_by(
    va.date_trunc(va.Activity.index(), 1, "week")
).finalize()

First Glucose Measurement Of The Day Grouped By Source Type and Provider

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Timeseries.col("glucose").field("value").oldest()
).group_by(
    va.date_trunc(va.Timeseries.index(), 1, "day"),
    va.Source.col("source_provider"),
    va.Source.col("source_type")
).finalize()

Daily Summaries of Metabolic Biomarkers Grouped By Source Type and Provider

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Timeseries.col("glucose").field("value").mean(),
    va.Timeseries.col("heartrate").field("value").mean(),
    va.Timeseries.col("steps").field("value").sum(),
    va.Timeseries.col("hrv").field("value").mean(),
    va.Timeseries.col("calories_active").field("value").sum(),
    va.Timeseries.col("body_temperature").field("value").mean(),
    va.Timeseries.col("body_temperature").field("value").min(),
    va.Timeseries.col("body_temperature").field("value").max(),
).group_by(
    va.date_trunc(va.Timeseries.index(), 1, "day"),
    va.Source.col("source_provider"),
    va.Source.col("source_type"),
).finalize()

Weekly Exercise Summary

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Workout.col("calories").max(),
    va.Workout.col("calories").min(),
    va.Workout.col("heart_rate_zone_1").mean(),
    va.Workout.col("heart_rate_zone_2").mean(),
    va.Workout.col("heart_rate_zone_3").mean(),
    va.Workout.col("heart_rate_zone_4").mean(),
    va.Workout.col("heart_rate_zone_5").mean(),
    va.Workout.col("heart_rate_zone_6").mean(),
    va.Workout.col("distance_meter").max(),
    va.Workout.col("duration_active_second").mean()
).group_by(
    va.date_trunc(va.Workout.index(), 1, "week")
).finalize()

Menstrual Cycle Summary

Period end, cycle end, mean basal body temperature, and number of meaningful flow days — one row per cycle.
import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.MenstrualCycle.col("period_end").newest(),
    va.MenstrualCycle.col("cycle_end").newest(),
    va.MenstrualCycle.col("basal_body_temperature")
        .unnest_and_select(lambda col: col.field("value").mean())
        .mean(),
    va.MenstrualCycle.col("menstrual_flow")
        .unnest_and_select(lambda col: col.count())
        .where("flow != 'none'")
        .mean(),
).group_by(
    va.date_trunc(va.MenstrualCycle.index(), 1, "day")
).finalize()