///|
/// Configuration for HRV analysis.
pub(all) struct HrvConfig {
min_rr : Double
max_rr : Double
relative_threshold : Double
pnn_threshold : Double
rolling_window : Int
normal_range_sd_factor : Double
} derive(FromJson, ToJson, Debug, Eq)
///|
/// Default configuration values.
pub fn HrvConfig::default() -> HrvConfig {
{
min_rr: 300.0,
max_rr: 2000.0,
relative_threshold: 0.20,
pnn_threshold: 50.0,
rolling_window: 7,
normal_range_sd_factor: 0.75,
}
}
///|
/// Signal quality and cleaning statistics report.
pub(all) struct QualityReport {
total_beats : Int
valid_beats : Int
ectopic_beats : Int
clean_ratio : Double
is_low_quality : Bool
} derive(FromJson, ToJson, Debug, Eq)
///|
/// Computed time-domain HRV metrics.
pub(all) struct HrvMetrics {
mean_rr : Double
mean_hr : Double
sdnn : Double
rmssd : Double
pnn50 : Double
pnn_custom : Double
quality : QualityReport
} derive(FromJson, ToJson, Debug, Eq)
///|
/// A single day's morning HRV measurement.
pub(all) struct MorningMeasurement {
date : String
rmssd : Double
sdnn : Double
rr_mean : Double
} derive(FromJson, ToJson, Debug, Eq)
///|
/// Computed morning baseline and trend analysis for a specific day.
pub(all) struct MorningTrend {
date : String
today_rmssd : Double
rmssd_rolling_avg : Double
rmssd_rolling_sd : Double
rmssd_normal_range_lower : Double
rmssd_normal_range_upper : Double
rmssd_status : String
recovery_score : Double
} derive(FromJson, ToJson, Debug, Eq)