Health Data History Repository
Repositorio para gestionar el historial de datos de salud.
Optimizado para el análisis del estrés térmico con aprendizaje automático (ML) incluyendo actividad física. Este repositorio implementa un modelo sofisticado de monitoreo fisiológico basado en principios científicos del balance térmico humano y la fisiología del ejercicio.
Fundamentos Fisiológicos del Estrés Térmico
El repositorio se centra en detectar y analizar el estrés térmico, que ocurre cuando el cuerpo no puede disipar el calor generado durante la actividad física.
El Balance Térmico Humano
El cuerpo mantiene una temperatura central alrededor de 37°C a través de la ecuación de balance térmico:
S = M - W ± R ± C - EDonde:
S= Almacenamiento de calor (lo que queremos minimizar)M= Producción metabólica de calor (aumenta con la actividad)W= Trabajo mecánico realizadoR= Intercambio radiativoC= Intercambio convectivoE= Pérdida evaporativa (sudoración)
Cálculo de la Tasa de Pasos
La tasa de pasos es un indicador indirecto de la intensidad del ejercicio:
< 40 pasos/min: Actividad sedentaria o muy ligera40-80 pasos/min: Caminata ligera (2-3 METs)80-120 pasos/min: Caminata moderada a enérgica (3-6 METs)> 120 pasos/min: Correr o actividad vigorosa (> 6 METs)
Índice de Esfuerzo Fisiológico (PSI)
El PSI es una métrica validada científicamente que combina las respuestas cardiovasculares y térmicas:
PSI = 5 * (HRt - HR0)/(HR180 - HR0) + 5 * (Tct - Tc0)/(39.5 - Tc0)Parameters
El contexto de la aplicación Android
See also
Properties
Flow que emite el nivel actual de riesgo de estrés térmico.
Flow que emite las métricas actuales de estrés térmico.
Flow que emite la lista de puntos de datos recientes.
Cola thread-safe para almacenar puntos de datos de salud en memoria.
Timestamp del último punto de datos guardado en el archivo CSV. Se utiliza para implementar el filtrado temporal según CSV_SAMPLE_INTERVAL_MS.
Último conteo de pasos registrado para cálculo de tasa de pasos.
Timestamp del último registro de pasos para cálculo de tasa.
Predictor ML para heat stress
Obtiene el número de puntos de datos actualmente almacenados en la cola en memoria, esperando ser persistidos en el almacenamiento permanente.
Scope de corrutinas para operaciones de E/S del repositorio.
Flag para habilitar predicción ML
Functions
Agrega un nuevo punto de datos al historial de salud.
Analiza el riesgo de estrés térmico para un punto de datos dado.
Calcula las métricas de estrés térmico basadas en datos históricos y actuales.
Calcula la tasa de pasos por minuto basada en el conteo actual y anterior.
Calcula el tiempo total en que el Índice de Calor se encuentra en un nivel crítico.
Calcula el tiempo total en actividad física intensa.
Calcula el tiempo total en estado de alto riesgo.
Calcula la tendencia (pendiente) de una serie de valores usando regresión lineal.
Calcula la variabilidad (desviación estándar) de una serie de valores.
Crea la carpeta necesaria para almacenar los archivos de datos de salud.
Determina el nivel de actividad física basado en la tasa de pasos y datos del acelerómetro.
Evalúa el nivel de riesgo de estrés térmico considerando métricas y carga de trabajo.
Exporta datos históricos para entrenamiento de modelos de aprendizaje automático.
Exporta datos desde MediaStore para Android 10+.
Filtra los puntos de datos según el intervalo de muestreo configurado para CSV. Solo incluye puntos de datos cuyo timestamp sea al menos CSV_SAMPLE_INTERVAL_MS milisegundos mayor que el último punto guardado.
Busca un archivo existente en la carpeta Downloads.
Fuerza el guardado inmediato de todos los datos pendientes.
Obtiene la ruta de la carpeta donde se almacenan los datos.
Obtiene detalles de la última predicción de ML (Machine Learning).
Obtiene los puntos de datos válidos más recientes para análisis.
Notifica al usuario sobre alertas de estrés térmico de nivel alto o crítico.
Persiste un lote de datos al almacenamiento permanente.
Procesa el contenido de archivos CSV para extraer vectores de características.
Restablece los valores utilizados para el cálculo de la tasa de pasos.
Guarda puntos de datos en archivos CSV en la carpeta Downloads.
Guarda datos utilizando MediaStore para Android 10 y versiones posteriores.
Inicia el proceso de persistencia periódica automática.
Actualiza la lista de puntos de datos recientes para la interfaz de usuario.