- Added new functions for BMI and goal weight/body fat percentage retrieval in `body_metrics.py`. - Introduced training frequency and inter-session gap calculations in `activity_metrics.py`. - Updated placeholder registrations to include new metrics for nutrition and activity. - Improved data handling in `placeholder_resolver.py` for better integration of new metrics. - Enhanced documentation across modules to reflect the new functionalities. These updates improve the accuracy and comprehensiveness of health and fitness assessments within the application.
170 lines
5.3 KiB
Python
170 lines
5.3 KiB
Python
"""
|
|
Data Layer - Pure Data Retrieval & Calculation Logic
|
|
|
|
This module provides structured data functions for all metrics.
|
|
NO FORMATTING. NO STRINGS WITH UNITS. Only structured data.
|
|
|
|
Usage:
|
|
from data_layer.body_metrics import get_weight_trend_data
|
|
|
|
data = get_weight_trend_data(profile_id="123", days=28)
|
|
# Returns: {"slope_28d": 0.23, "confidence": "high", ...}
|
|
|
|
Modules:
|
|
- body_metrics: Weight, body fat, lean mass, circumferences
|
|
- nutrition_metrics: Calories, protein, macros, adherence
|
|
- activity_metrics: Training volume, quality, abilities
|
|
- recovery_metrics: Sleep, RHR, HRV, recovery score
|
|
- health_metrics: Blood pressure, VO2Max, health stability
|
|
- goals: Active goals, progress, projections
|
|
- correlations: Lag-analysis, plateau detection
|
|
- utils: Shared functions (confidence, baseline, outliers)
|
|
- training_profile: Template-based training evaluation scaffold (Layer 1)
|
|
Import: ``from data_layer.training_profile import resolve_training_evaluation``
|
|
- reference_values: Profile reference value reads + summary (Layer 1)
|
|
Import: ``from data_layer import reference_values`` or submodule imports
|
|
|
|
Phase 0c: Multi-Layer Architecture
|
|
Version: 1.0
|
|
Created: 2026-03-28
|
|
"""
|
|
|
|
# Core utilities
|
|
from .utils import *
|
|
|
|
# Metric modules
|
|
from .body_metrics import *
|
|
from .nutrition_metrics import *
|
|
from .activity_metrics import *
|
|
from .recovery_metrics import *
|
|
from .health_metrics import *
|
|
from .scores import *
|
|
from .correlations import *
|
|
|
|
# Future imports (will be added as modules are created):
|
|
# from .goals import *
|
|
|
|
__all__ = [
|
|
# Utils
|
|
'calculate_confidence',
|
|
'serialize_dates',
|
|
|
|
# Body Metrics (Basic)
|
|
'get_latest_weight_data',
|
|
'get_bmi_data',
|
|
'get_profile_goal_weight_data',
|
|
'get_profile_goal_bf_pct_data',
|
|
'get_weight_trend_data',
|
|
'get_body_composition_data',
|
|
'get_circumference_summary_data',
|
|
|
|
# Body Metrics (Calculated)
|
|
'calculate_weight_7d_median',
|
|
'calculate_weight_28d_slope',
|
|
'calculate_weight_90d_slope',
|
|
'calculate_goal_projection_date',
|
|
'calculate_goal_progress_pct',
|
|
'calculate_fm_28d_change',
|
|
'calculate_lbm_28d_change',
|
|
'calculate_waist_28d_delta',
|
|
'calculate_hip_28d_delta',
|
|
'calculate_chest_28d_delta',
|
|
'calculate_arm_28d_delta',
|
|
'calculate_thigh_28d_delta',
|
|
'calculate_waist_hip_ratio',
|
|
'calculate_recomposition_quadrant',
|
|
'calculate_body_progress_score',
|
|
'calculate_body_data_quality',
|
|
|
|
# Nutrition Metrics (Basic)
|
|
'get_nutrition_average_data',
|
|
'get_nutrition_days_data',
|
|
'get_protein_targets_data',
|
|
'get_energy_balance_data',
|
|
'get_protein_adequacy_data',
|
|
'get_macro_consistency_data',
|
|
|
|
# Nutrition Metrics (Calculated)
|
|
'calculate_energy_balance_7d',
|
|
'calculate_energy_deficit_surplus',
|
|
'calculate_protein_g_per_kg',
|
|
'calculate_protein_days_in_target',
|
|
'calculate_protein_adequacy_28d',
|
|
'calculate_macro_consistency_score',
|
|
'calculate_intake_volatility',
|
|
'calculate_nutrition_score',
|
|
'calculate_energy_availability_warning',
|
|
'calculate_fiber_avg_7d',
|
|
'calculate_sugar_avg_7d',
|
|
'calculate_nutrition_data_quality',
|
|
|
|
# Activity Metrics (Basic)
|
|
'get_activity_summary_data',
|
|
'get_activity_detail_data',
|
|
'get_training_type_distribution_data',
|
|
'get_training_frequency_by_type_data',
|
|
'get_training_inter_session_gap_data',
|
|
'get_training_sessions_recent_weeks_data',
|
|
|
|
# Activity Metrics (Calculated)
|
|
'calculate_training_minutes_week',
|
|
'calculate_training_frequency_7d',
|
|
'calculate_quality_sessions_pct',
|
|
'calculate_intensity_proxy_distribution',
|
|
'calculate_ability_balance',
|
|
'calculate_ability_balance_strength',
|
|
'calculate_ability_balance_endurance',
|
|
'calculate_ability_balance_mental',
|
|
'calculate_ability_balance_coordination',
|
|
'calculate_ability_balance_mobility',
|
|
'calculate_proxy_internal_load_7d',
|
|
'calculate_monotony_score',
|
|
'calculate_strain_score',
|
|
'calculate_activity_score',
|
|
'calculate_rest_day_compliance',
|
|
'calculate_vo2max_trend_28d',
|
|
'calculate_activity_data_quality',
|
|
|
|
# Recovery Metrics (Basic)
|
|
'get_sleep_duration_data',
|
|
'get_sleep_quality_data',
|
|
'get_rest_days_data',
|
|
|
|
# Recovery Metrics (Calculated)
|
|
'calculate_recovery_score_v2',
|
|
'calculate_hrv_vs_baseline_pct',
|
|
'calculate_rhr_vs_baseline_pct',
|
|
'calculate_sleep_avg_duration_7d',
|
|
'calculate_sleep_debt_hours',
|
|
'calculate_sleep_regularity_proxy',
|
|
'calculate_recent_load_balance_3d',
|
|
'calculate_sleep_quality_7d',
|
|
'calculate_recovery_data_quality',
|
|
|
|
# Health Metrics
|
|
'get_resting_heart_rate_data',
|
|
'get_heart_rate_variability_data',
|
|
'get_vo2_max_data',
|
|
|
|
# Scoring Metrics
|
|
'get_user_focus_weights',
|
|
'get_focus_area_category',
|
|
'map_focus_to_score_components',
|
|
'map_category_de_to_en',
|
|
'calculate_category_weight',
|
|
'calculate_goal_progress_score',
|
|
'calculate_health_stability_score',
|
|
'calculate_data_quality_score',
|
|
'get_top_priority_goal',
|
|
'get_top_focus_area',
|
|
'calculate_focus_area_progress',
|
|
'calculate_category_progress',
|
|
|
|
# Correlation Metrics
|
|
'calculate_lag_correlation',
|
|
'calculate_correlation_sleep_recovery',
|
|
'calculate_plateau_detected',
|
|
'calculate_top_drivers',
|
|
'calculate_correlation_confidence',
|
|
]
|