Saltar a contenido

Modulo de Eventos de Salud

Identificador: MTS-EVT-001 Version: 1.1.0 Fecha: 2025-12-05 Ultima Revision: Iteracion 13 - Correccion OBS-063: 4 roles, Pro/Perfect iguales, V1.0 sin predicciones IA Autor: SpecQueen


1. Proposito

Este modulo gestiona el registro y seguimiento de eventos de salud no farmacologicos, divididos en dos categorias principales:

  1. Mediciones: Registro de valores biometricos (glucosa, presion arterial, peso, etc.)
  2. Tratamientos: Seguimiento de procedimientos medicos no farmacologicos (curaciones, terapias, dialisis, etc.)

Decision ACL5-001: Se implementa como modulo hibrido MTS-EVT-001 con subtipos claramente definidos, compartiendo infraestructura de recordatorios pero diferenciandose en captura de datos y visualizacion.


2. Actores

Nota V1.0: MedTime define 4 roles de usuario estandar. Ver MTS-ROL-001 para detalles completos.

Rol Codigo Descripcion en este Modulo
Paciente Independiente PI Registra eventos, configura recordatorios, visualiza tendencias. Control total.
Paciente Dependiente PD Registra eventos basicos. Cuidador puede gestionar configuracion avanzada.
Cuidador Supervisor CS Visualiza eventos del paciente (con permiso). Recibe alertas de valores criticos. Solo lectura.
Cuidador Responsable CR Puede registrar eventos, configurar recordatorios y gestionar alertas en nombre del paciente.

2.1. Actores del Sistema

Actor Descripcion
Sistema Programa recordatorios, detecta valores criticos, genera alertas
Profesional de Salud Visualiza historial de eventos via Portal Clinico v2.0+ (con consentimiento del paciente)

3. Disponibilidad por Tier

Decision ACL5-005: Eventos ilimitados para todos los tiers, limite en funcionalidades avanzadas.

Nota V1.0: Pro y Perfect tienen las MISMAS funcionalidades. Solo difieren en limites de almacenamiento y numero de cuidadores.

Funcionalidad Free Pro Perfect
Mediciones
Tipos de medicion Ilimitados Ilimitados Ilimitados
Graficas Basicas con rangos Avanzadas con estadisticas Avanzadas con estadisticas
Predicciones IA NO (v2.0+) NO (v2.0+) NO (v2.0+)
Historial 30 dias local Ilimitado cloud Ilimitado cloud
Exportar datos No CSV/PDF CSV/PDF/HL7
Rangos personalizados No Si Si
Tratamientos
Tipos de tratamiento Ilimitados Ilimitados Ilimitados
Historial 30 dias local Ilimitado cloud Ilimitado cloud
Fotos adjuntas Ilimitadas* Ilimitadas* Ilimitadas*
Templates Basicos + custom Todos + custom Todos + custom
Recordatorios
Recordatorios activos Ilimitados Ilimitados Ilimitados
Eventos disparadores Solo hora fija Hora fija + eventos Hora fija + eventos
Templates predefinidos Basicos + custom Todos + custom Todos + custom
Integraciones
Health Connect/HealthKit Si (lectura al abrir) Si (sync cada 15 min) Si (sync cada 5 min)
Sync con cuidadores No Si (1 cuidador) Si (5 cuidadores)
Gamificacion
Logros de mediciones No Si Si
Logros de tratamientos No Si Si

Nota *Fotos: Fotos ilimitadas en TODOS los tiers, limitadas unicamente por el espacio de almacenamiento disponible del dispositivo/cuenta.

IMPORTANTE V1.0 - Sin Predicciones IA: Las predicciones basadas en IA (proyeccion a 7 dias, alertas predictivas) estan planificadas para v2.0+. En V1.0 se muestran graficas con estadisticas pero SIN predicciones.

Templates Custom: Disponibles en TODOS los tiers. Usuarios pueden crear templates personalizados de recordatorios.

Nota Iteracion 13: La gamificacion de eventos de salud (logros por consistencia de mediciones y tratamientos) NO esta disponible para tier Free. Es una funcionalidad exclusiva de Pro/Perfect.

Nota Iteracion 13: Profesionales de salud acceden a datos de pacientes a traves del Portal Clinico (v2.0+), no como tier de suscripcion.


4. Tipos de Eventos

4.1. Subtipos de Medicion

Tipo Valor Principal Valor Secundario Unidades Rango Normal
Glucosa Nivel glucosa - mg/dL, mmol/L 70-100 mg/dL (ayuno)
Presion Arterial Sistolica Diastolica mmHg 90-120 / 60-80
Peso Peso - kg, lb Personalizado
Temperatura Temperatura - C, F 36.1-37.2 C
Frecuencia Cardiaca BPM - BPM 60-100
Saturacion Oxigeno SpO2 - % 95-100%
Personalizado Usuario define Opcional Usuario define Usuario define

4.2. Subtipos de Tratamiento

Tipo Descripcion Campos Especiales Duracion Tipica
Curacion Cambio de vendaje, limpieza de heridas Ubicacion, tamano, aspecto 15-30 min
Terapia Fisica Ejercicios de rehabilitacion Ejercicios[], series, nivel dolor 30-60 min
Topico Cremas, parches, unguentos Producto, zona, cantidad 5-15 min
Dialisis Peritoneal DPCA/DPA Volumen infundido, drenado, color 20-40 min
Nebulizacion Tratamientos respiratorios Medicamento, dosis, duracion 10-20 min
Inyeccion Insulina, anticoagulantes Medicamento, dosis, zona 5 min
Personalizado Usuario define Campos configurables Usuario define

5. Modelo de Datos

Decision ACL5-003: Estructura modular con campos base obligatorios y campos avanzados opcionales.

5.1. Entidad EventoSalud (Base)

EventoSalud {
  id: UUID (PK)
  usuario_id: UUID (FK)
  tipo_evento: enum [MEDICION, TRATAMIENTO]
  subtipo: string                          // glucosa, presion, curacion, etc.
  fecha_hora_programada: timestamp | null  // Para recordatorios
  fecha_hora_registro: timestamp           // Cuando se registro
  estado: enum [PROGRAMADO, COMPLETADO, OMITIDO, POSPUESTO]
  notas: text | null
  created_at: timestamp
  updated_at: timestamp
}

5.2. Entidad Medicion (Extiende EventoSalud)

Medicion {
  evento_id: UUID (PK, FK -> EventoSalud)

  // Campos Base (OBLIGATORIOS)
  valor_principal: decimal                 // Ej: 120 (glucosa), 72.5 (peso)
  valor_secundario: decimal | null         // Ej: presion diastolica
  unidad: string                           // mg/dL, kg, mmHg, etc.

  // Campos Contexto (OPCIONALES - Pro/Perfect)
  momento: enum [AYUNO, PRE_COMIDA, POST_COMIDA, ANTES_DORMIR, AL_DESPERTAR, ALEATORIO] | null
  actividad_reciente: enum [REPOSO, POST_EJERCICIO, NORMAL] | null

  // Campos Avanzados (OPCIONALES - Perfect)
  foto_adjunta_id: UUID | null             // Foto del glucometro/dispositivo
  dispositivo_origen: string | null        // Nombre del dispositivo conectado

  // Metadatos
  fuente: enum [MANUAL, HEALTH_CONNECT, HEALTHKIT, DISPOSITIVO_CONECTADO]
  en_rango: boolean                        // Calculado automaticamente
  nivel_alerta: enum [NORMAL, INFORMATIVO, ADVERTENCIA, CRITICO] | null
}

5.3. Entidad Tratamiento (Extiende EventoSalud)

Tratamiento {
  evento_id: UUID (PK, FK -> EventoSalud)

  // Campos Base (OBLIGATORIOS)
  completado: boolean

  // Campos Temporales (OPCIONALES - para tratamientos con duracion)
  hora_inicio: timestamp | null
  hora_fin: timestamp | null
  duracion_minutos: integer | null

  // Campos Visuales (OPCIONALES - Pro/Perfect)
  foto_antes_id: UUID | null
  foto_despues_id: UUID | null

  // Ubicacion Anatomica (OPCIONAL - para curaciones)
  ubicacion_cuerpo: string | null          // "pierna_izquierda", "abdomen"

  // Detalles Especificos por Subtipo (OPCIONAL)
  detalles_json: jsonb | null              // Estructura variable segun subtipo
}

5.4. Estructura de Detalles por Subtipo de Tratamiento

// Curacion
{
  "tipo_curacion": "limpieza" | "cambio_vendaje" | "aplicacion_pomada",
  "tamano_herida_cm": 5.2,
  "aspecto": "mejorando" | "igual" | "empeorando",
  "signos_infeccion": false
}

// Terapia Fisica
{
  "ejercicios": ["sentadillas", "estiramientos"],
  "series": 3,
  "repeticiones": 10,
  "nivel_dolor_pre": 5,
  "nivel_dolor_post": 3
}

// Dialisis Peritoneal
{
  "tipo_dialisis": "DPCA" | "DPA",
  "volumen_infundido_ml": 2000,
  "volumen_drenado_ml": 2150,
  "color_liquido": "claro" | "turbio" | "sanguinolento",
  "dolor_abdominal": false
}

// Inyeccion
{
  "medicamento": "Insulina Lantus",
  "dosis_unidades": 20,
  "zona_inyeccion": "abdomen_izquierdo",
  "rotacion_zona": true
}

// Nebulizacion
{
  "medicamento": "Salbutamol",
  "dosis_ml": 2.5,
  "duracion_minutos": 15,
  "eficacia_percibida": "buena" | "regular" | "sin_efecto"
}

5.5. Entidad RecordatorioEvento

Decision ACL5-002: Estructura hibrida - hora fija O evento disparador, con templates predefinidos.

RecordatorioEvento {
  id: UUID (PK)
  usuario_id: UUID (FK)
  tipo_evento: enum [MEDICION, TRATAMIENTO]
  subtipo: string
  activo: boolean

  // OPCION 1: Hora Fija
  hora_programada: time | null

  // OPCION 2: Evento Disparador (Pro/Perfect)
  evento_disparador: enum [
    DESPERTAR, ANTES_DESAYUNO, DESPUES_DESAYUNO,
    ANTES_ALMUERZO, DESPUES_ALMUERZO,
    ANTES_CENA, DESPUES_CENA,
    ANTES_DORMIR, DESPUES_BANO
  ] | null
  offset_minutos: integer | null           // Ej: 30 min despues de comida

  // Frecuencia
  frecuencia: enum [DIARIO, CADA_X_HORAS, X_VECES_DIA, DIAS_ESPECIFICOS]
  intervalo_horas: integer | null          // Para cada_x_horas (ej: cada 6h)
  veces_por_dia: integer | null            // Para x_veces_dia
  dias_semana: array[integer] | null       // [1,2,3,4,5] = Lun-Vie

  // Template (OPCIONAL)
  template_id: string | null               // Referencia a template predefinido

  // Notificacion
  minutos_antes: integer                   // Default: 0 (a la hora exacta)

  created_at: timestamp
  updated_at: timestamp
}

5.6. Templates Predefinidos de Recordatorios

TemplateRecordatorio {
  id: string (PK)                          // "glucosa_diabetico_tipo1"
  nombre: string                           // "Diabetico Tipo 1"
  descripcion: string
  tipo_evento: enum [MEDICION, TRATAMIENTO]
  subtipo: string                          // "glucosa", "insulina"

  // Configuracion del template
  frecuencia: enum
  momentos: array[string]                  // ["AYUNO", "ANTES_ALMUERZO", ...]

  // Disponibilidad
  tier_minimo: enum [FREE, PRO, PERFECT]
}

5.6.1. Templates de Mediciones

ID Nombre Subtipo Frecuencia Momentos
glucosa_tipo1 Diabetico Tipo 1 glucosa 4-6/dia Ayuno, antes comidas, antes dormir
glucosa_tipo2 Diabetico Tipo 2 glucosa 1-2/dia Ayuno, post-cena
glucosa_gestacional Diabetes Gestacional glucosa 4/dia Ayuno, 1h post comidas
presion_hipertenso Hipertension presion 2/dia Manana reposo, noche
presion_monitoreo Monitoreo Intensivo presion 3/dia Manana, tarde, noche
peso_diario Control de Peso peso 1/dia Al despertar
peso_semanal Peso Semanal peso 1/semana Dia fijo

5.6.2. Templates de Tratamientos

ID Nombre Subtipo Frecuencia Momentos
dialisis_dpca DPCA Estandar dialisis 4/dia Cada 6 horas
insulina_basal Insulina Basal inyeccion 1/dia Hora fija
insulina_prandial Insulina Prandial inyeccion 3/dia Antes comidas
curacion_diaria Curacion Diaria curacion 1-2/dia Manana, noche
nebulizacion_asma Asma/EPOC nebulizacion 2-4/dia Segun necesidad
terapia_fisica Rehabilitacion terapia_fisica 1/dia Hora preferida

6. Funcionalidades

6.1. Registro de Medicion (MTS-EVT-001-F01)

6.1.1. Descripcion

Permite registrar valores de mediciones biometricas con contexto opcional.

6.1.2. Flujo Principal

flowchart TD
    A[Usuario inicia registro] --> B[Seleccionar tipo de medicion]
    B --> C[Ingresar valor principal]
    C --> D{Requiere valor secundario?}
    D -->|Si - Presion| E[Ingresar valor secundario]
    D -->|No| F[Seleccionar unidad]
    E --> F
    F --> G{Agregar contexto?}
    G -->|Si - Pro/Perfect| H[Seleccionar momento y actividad]
    G -->|No| I{Valor en rango?}
    H --> I
    I -->|Si| J[Guardar medicion]
    I -->|No| K{Valor critico?}
    K -->|Si| L[Mostrar alerta + sugerencias]
    K -->|No - Solo fuera de rango| M[Mostrar indicador visual]
    L --> N{Confirmar valor?}
    N -->|Si, es correcto| O[Guardar + disparar alertas]
    N -->|No, error de entrada| P[Corregir valor]
    P --> C
    M --> J
    O --> Q[Notificar cuidadores si configurado]
    J --> R[Actualizar graficas]
    Q --> R

6.1.3. Validacion de Rangos

Medicion Bajo Normal Elevado Critico Bajo Critico Alto
Glucosa ayuno <70 70-100 100-125 <50 >300
Glucosa post <70 70-140 140-180 <50 >300
Sistolica <90 90-120 120-140 <70 >180
Diastolica <60 60-80 80-90 <50 >120
SpO2 - 95-100 90-94 <90 -
FC reposo <50 50-100 100-120 <40 >150
Temperatura <36 36.1-37.2 37.3-38 <35 >40

6.2. Registro de Tratamiento (MTS-EVT-001-F02)

6.2.1. Descripcion

Permite registrar la realizacion de tratamientos no farmacologicos.

6.2.2. Flujo Principal

flowchart TD
    A[Usuario inicia registro] --> B[Seleccionar tipo de tratamiento]
    B --> C{Tratamiento con duracion?}
    C -->|Si - Terapia, Dialisis| D[Registrar hora inicio]
    C -->|No - Curacion, Inyeccion| E[Marcar como completado]
    D --> F[Usuario realiza tratamiento]
    F --> G[Registrar hora fin]
    G --> H{Agregar detalles?}
    E --> H
    H -->|Si| I[Formulario especifico por subtipo]
    H -->|No| J{Agregar fotos?}
    I --> J
    J -->|Si - Pro/Perfect| K[Capturar foto antes/despues]
    J -->|No| L[Agregar notas opcionales]
    K --> L
    L --> M[Guardar tratamiento]
    M --> N[Actualizar estadisticas]

6.2.3. Formularios por Subtipo

6.2.3.1. Curacion
+------------------------------------------+
|  REGISTRO DE CURACION                     |
+------------------------------------------+
|  Ubicacion: [Seleccionar zona corporal]  |
|  Tipo:      [ ] Limpieza                 |
|             [ ] Cambio vendaje           |
|             [ ] Aplicacion pomada        |
+------------------------------------------+
|  Estado de la herida:                    |
|  [Mejorando] [Igual] [Empeorando]        |
+------------------------------------------+
|  Signos de infeccion: [No] [Si]          |
+------------------------------------------+
|  [Foto antes]  [Foto despues]            |
+------------------------------------------+
|  Notas: [________________________]       |
+------------------------------------------+
|           [Guardar Curacion]             |
+------------------------------------------+
6.2.3.2. Dialisis Peritoneal
+------------------------------------------+
|  REGISTRO DE DIALISIS                    |
+------------------------------------------+
|  Tipo: [DPCA] [DPA]                      |
+------------------------------------------+
|  Volumen infundido:  [____] ml           |
|  Volumen drenado:    [____] ml           |
|  Balance:            [calculado] ml      |
+------------------------------------------+
|  Color del liquido:                      |
|  [Claro] [Ligeramente turbio] [Turbio]   |
+------------------------------------------+
|  Dolor abdominal: [No] [Leve] [Moderado] |
+------------------------------------------+
|  Notas: [________________________]       |
+------------------------------------------+
|           [Guardar Dialisis]             |
+------------------------------------------+

6.3. Visualizacion de Tendencias (MTS-EVT-001-F03)

Decision ACL5-004: Graficas avanzadas para Pro/Perfect, basicas con rangos para Free.

6.3.1. Graficas por Tier (V1.0)

IMPORTANTE V1.0: Predicciones IA planificadas para v2.0+. Pro y Perfect tienen las mismas graficas en V1.0.

Tier Tipo de Grafica Caracteristicas V1.0
Free Linea temporal basica Valores + zonas de color por rango
Pro Linea temporal avanzada + Promedio, tendencia, min/max, estadisticas
Perfect Linea temporal avanzada Mismas que Pro (predicciones en v2.0+)

6.3.2. Diseño de Grafica - Free

+--------------------------------------------------+
|  Glucosa - Ultimos 7 dias                        |
|                                                  |
|  180 |-- - - - - - - - - - - - - - - - - - - --| ALTO
|      |         *                                 |
|  140 |    *        *                             |
|      |       *         *   *                     |
|  100 |-- - - - - - - - - - - - - - - - - - - --| NORMAL
|      |  *                      *  *              |
|   70 |-- - - - - - - - - - - - - - - - - - - --| BAJO
|      |________________________________________|
|       L   M   Mi  J   V   S   D                  |
+--------------------------------------------------+

6.3.3. Diseño de Grafica - Pro/Perfect (V1.0)

Nota V1.0: Pro y Perfect muestran las mismas estadisticas. Predicciones IA en v2.0+.

+--------------------------------------------------+
|  Glucosa - Ultimos 30 dias          [Exportar]   |
+--------------------------------------------------+
|                                                  |
|  [Grafica interactiva con zoom y pan]           |
|                                                  |
|  Estadisticas:                                   |
|  - Promedio: 118 mg/dL                          |
|  - Rango: 72 - 185 mg/dL                        |
|  - En rango objetivo: 78%                       |
|  - Tendencia: Estable                           |
|  - Desviacion estandar: 23.4                    |
|                                                  |
|  [Pro/Perfect] HbA1c estimada: 5.8%             |
|  [v2.0+] Prediccion proxima semana: Planificado |
+--------------------------------------------------+

6.4. Sistema de Recordatorios (MTS-EVT-001-F04)

Decision ACL5-002: Hora fija O evento disparador, con templates predefinidos.

6.4.1. Flujo de Configuracion

flowchart TD
    A[Usuario configura recordatorio] --> B{Usar template?}
    B -->|Si| C[Seleccionar template predefinido]
    B -->|No| D[Configuracion manual]
    C --> E[Aplicar configuracion del template]
    E --> F{Personalizar?}
    F -->|Si| D
    F -->|No| G[Guardar recordatorio]
    D --> H{Tipo de trigger?}
    H -->|Hora fija| I[Seleccionar hora]
    H -->|Evento disparador - Pro/Perfect| J[Seleccionar evento + offset]
    I --> K[Configurar frecuencia]
    J --> K
    K --> L{Frecuencia?}
    L -->|Diario| M[Todos los dias]
    L -->|Cada X horas| N[Configurar intervalo]
    L -->|X veces al dia| O[Configurar cantidad]
    L -->|Dias especificos| P[Seleccionar dias]
    M --> G
    N --> G
    O --> G
    P --> G

6.4.2. Flujo de Notificacion

flowchart TD
    A[Hora de recordatorio] --> B[Generar notificacion]
    B --> C{Tipo de evento?}
    C -->|Medicion| D[Notificacion con accion rapida]
    C -->|Tratamiento| E[Notificacion con timer]
    D --> F{Respuesta usuario?}
    E --> F
    F -->|Registrar ahora| G[Abrir formulario de registro]
    F -->|Posponer| H[Reprogramar +15/30/60 min]
    F -->|Omitir| I[Marcar como omitido]
    F -->|Ignorar| J[Segundo recordatorio en 15 min]
    G --> K[Guardar evento]
    H --> L[Actualizar recordatorio]
    I --> M[Registrar omision]
    J --> N{Segundo intento?}
    N -->|Si responde| G
    N -->|No responde| O[Marcar como no registrado]

6.5. Alertas de Valores Criticos (MTS-EVT-001-F05)

Decision ACL5-009: Sistema completo pero configurable por usuario. Contacto emergencia requiere consentimiento.

6.5.1. Niveles de Alerta

Nivel Descripcion Accion Sistema Notificacion
INFORMATIVO Valor ligeramente fuera de rango Registro + indicador Push normal
ADVERTENCIA Valor significativamente anormal Registro + sugerencia Push prioritario
CRITICO Valor potencialmente peligroso Registro + alerta urgente Push critico + sonido
EMERGENCIA Valor que requiere atencion inmediata Todo anterior + contacto emergencia Llamada si configurado

6.5.2. Flujo de Alerta Critica

flowchart TD
    A[Usuario registra valor] --> B{Validar valor}
    B -->|Valor plausible| C[Guardar medicion]
    B -->|Valor improbable| D[Solicitar confirmacion]
    D --> E{Usuario confirma?}
    E -->|Si, es correcto| C
    E -->|No, error| F[Permitir correccion]
    F --> A

    C --> G{Nivel de alerta?}
    G -->|Normal| H[Solo registro]
    G -->|Informativo| I[Mostrar indicador visual]
    G -->|Advertencia| J[Push prioritario + sugerencia]
    G -->|Critico| K[Alerta en pantalla completa]
    G -->|Emergencia| L[Alerta maxima]

    K --> M{Contacto emergencia configurado?}
    M -->|Si y con consentimiento| N[Notificar contacto emergencia]
    M -->|No| O[Sugerir configurar contacto]
    N --> P[Mostrar sugerencias de accion]
    O --> P

    L --> Q[Notificar a TODOS los contactos]
    Q --> R[Mostrar opciones: Llamar 911 / Contactar medico]

6.5.3. Sugerencias por Tipo de Alerta

Situacion Sugerencia Accion Adicional
Glucosa < 50 mg/dL "Consume 15g de carbohidratos rapidos (jugo, caramelos). Vuelve a medir en 15 min." Ofrecer timer de 15 min
Glucosa > 300 mg/dL "Hidratate. Si tienes nauseas o confusion, contacta emergencias." Boton llamar emergencias
Presion > 180 mmHg "Sientate y descansa. Vuelve a medir en 5 min. Si persiste, contacta a tu medico." Ofrecer timer de 5 min
SpO2 < 90% "Si tienes dificultad para respirar, contacta emergencias inmediatamente." Boton llamar 911
FC > 150 BPM reposo "Descansa y respira profundamente. Si continua, busca atencion medica." Mostrar tecnicas relajacion

6.5.4. Configuracion de Alertas por Usuario

Opcion Descripcion Default
Alertas activas Habilitar sistema de alertas Si
Nivel minimo notificar Desde que nivel notificar Advertencia
Notificar cuidadores Alertas criticas a cuidadores Si (si hay cuidadores)
Contacto emergencia auto Notificar automaticamente en emergencia No (requiere opt-in)
Sonido alertas criticas Bypass modo silencio Si
Sugerencias de accion Mostrar recomendaciones Si

6.5.5. Disclaimers Obligatorios

+--------------------------------------------------+
|  IMPORTANTE                                       |
|                                                  |
|  - MedTime NO es un dispositivo medico           |
|  - Las alertas son orientativas, no diagnosticas |
|  - Siempre consulta a un profesional de salud   |
|  - En caso de emergencia, llama a servicios de  |
|    emergencia de tu localidad                   |
+--------------------------------------------------+

6.6. Compartir con Profesional (MTS-EVT-001-F06)

Decision ACL5-008: Compartir con medico aprobado, fotos requieren consentimiento explicito adicional.

6.6.1. Datos Compartibles

Tipo de Dato Perfil Basico Perfil Completo Notas
Historial mediciones Resumen (30 dias) Completo
Graficas de tendencia Ultimos 7 dias Todo historial
Alertas valores criticos Solo cantidad Detalle completo
Tratamientos completados Resumen Detallado
Fotos de tratamientos NO Con consentimiento adicional Requiere checkbox explicito
Notas del paciente No Si

6.6.2. Flujo de Consentimiento para Fotos

flowchart TD
    A[Profesional solicita acceso a fotos] --> B[Sistema notifica a paciente]
    B --> C[Mostrar explicacion de solicitud]
    C --> D{Paciente autoriza?}
    D -->|Si| E[Mostrar fotos disponibles]
    E --> F[Paciente selecciona cuales compartir]
    F --> G[Confirmar con biometria]
    G --> H[Acceso otorgado temporalmente]
    D -->|No| I[Rechazar solicitud]
    H --> J{Duracion del acceso?}
    J -->|Una vez| K[Acceso expira despues de ver]
    J -->|Sesion| L[Acceso expira al cerrar sesion]
    J -->|Temporal| M[Acceso por X dias configurado]

6.6.3. Formato de Reporte para Profesional

+--------------------------------------------------+
|  REPORTE DE EVENTOS DE SALUD                     |
|  Paciente: Juan Perez                            |
|  Periodo: 01/11/2025 - 01/12/2025               |
|  Generado: 01/12/2025 via MedTime               |
+--------------------------------------------------+

MEDICIONES - GLUCOSA EN SANGRE
------------------------------
Mediciones totales: 92
Promedio: 118 mg/dL
Rango: 72 - 185 mg/dL
En rango objetivo (70-140): 78%
Tendencia: Estable

[Grafica de 30 dias]

VALORES FUERA DE RANGO (Ultimos 5):
- 28/11/2025 08:00 - 185 mg/dL (Post-comida)
- 22/11/2025 07:30 - 72 mg/dL (Ayuno, ejercicio previo)
...

MEDICIONES - PRESION ARTERIAL
-----------------------------
Mediciones totales: 56
Promedio: 128/82 mmHg
En rango (<140/90): 85%

TRATAMIENTOS - CURACIONES
-------------------------
Completados: 28/30 (93.3%)
Evolucion de herida: Mejorando
[Fotos: No compartidas / Compartidas con consentimiento]

---
Este reporte fue generado automaticamente por MedTime.
Para verificacion, contacte al paciente.
+--------------------------------------------------+

6.7. Integracion Health Connect/HealthKit (MTS-EVT-001-F07)

Decision ACL5-010: Health Connect/HealthKit en v1.0 + placeholder para integraciones directas.

6.7.1. Arquitectura de Integracion v1.0

flowchart TD
    A[Dispositivo IoT] --> B[Health Connect/HealthKit]
    B --> C{Permiso otorgado?}
    C -->|Si| D[MedTime lee datos]
    C -->|No| E[Solicitar permiso]
    E --> F{Usuario acepta?}
    F -->|Si| D
    F -->|No| G[Solo entrada manual]
    D --> H[Importar mediciones]
    H --> I[Validar datos]
    I --> J{Datos validos?}
    J -->|Si| K[Guardar con fuente: HEALTH_CONNECT/HEALTHKIT]
    J -->|No| L[Marcar para revision manual]
    K --> M[Actualizar graficas y alertas]

6.7.2. Datos Importables

Tipo Health Connect/HealthKit Tipo MedTime Importacion
Blood Glucose Medicion: glucosa Automatica
Blood Pressure Medicion: presion Automatica
Weight Medicion: peso Automatica
Body Temperature Medicion: temperatura Automatica
Heart Rate Medicion: frecuencia_cardiaca Automatica
Oxygen Saturation Medicion: spo2 Automatica
Steps No aplica No importado
Sleep No aplica No importado

6.7.3. Configuracion de Sincronizacion

Opcion Descripcion Default
Sincronizacion activa Importar datos de Health Connect/HealthKit No (opt-in)
Frecuencia Cada cuanto sincronizar Al abrir app
Tipos de datos Cuales tipos importar Todos permitidos
Duplicados Como manejar datos duplicados Ignorar si existe
Retroactivo Importar datos historicos Ultimos 30 dias

6.7.4. Placeholder para Integraciones Directas (v1.5+)

+--------------------------------------------------+
|  INTEGRACIONES DIRECTAS - PROXIMAMENTE (v1.5)    |
+--------------------------------------------------+
|                                                  |
|  Dispositivos planificados:                      |
|  - Glucometros: Accu-Chek, FreeStyle Libre       |
|  - Tensionometros: Omron, Withings               |
|  - Basculas: Withings, Xiaomi, Eufy             |
|  - Oximetros: Wellue, iHealth                   |
|                                                  |
|  Monitoreo continuo (v2.0):                     |
|  - CGM: Dexcom G6/G7, Libre 2/3                 |
|                                                  |
+--------------------------------------------------+

7. Integracion con Widgets y Smartwatch

Decision ACL5-006: Phased approach - v1.0 visualizacion, v1.1 registro rapido. Priorizar smartwatch.

7.1. Widgets para Eventos de Salud

7.1.1. Widget Pequeno (2x2) - Ultima Medicion

+---------------------+
|  Glucosa    10:30am |
|      115            |
|     mg/dL           |
|   [En rango]        |
+---------------------+

7.1.2. Widget Mediano (4x2) - Mediciones del Dia

+------------------------------------------+
|  Mis Mediciones              [+]         |
|------------------------------------------|
|  Glucosa: 115 mg/dL   10:30am   [Rango]  |
|  Presion: 125/82      08:15am   [OK]     |
|  Peso:    72.5 kg     07:00am            |
+------------------------------------------+

7.1.3. Widget Grande (4x4) - Dashboard de Salud

+------------------------------------------+
|  Eventos de Salud                 Dic 1  |
|------------------------------------------|
|  MEDICIONES HOY                          |
|  Glucosa: 115 mg/dL  [===|====] Normal   |
|  Presion: 125/82     [====|===] Leve+    |
|------------------------------------------|
|  TRATAMIENTOS HOY                        |
|  [X] 07:00 Curacion pierna              |
|  [ ] 14:00 Dialisis                     |
|  [ ] 20:00 Insulina                     |
|------------------------------------------|
|  Racha: 12 dias        Adherencia: 94%  |
+------------------------------------------+

7.2. Smartwatch - Complicaciones de Eventos

Prioridad: Smartwatch sobre widgets para registro rapido.

7.2.1. Complicacion Circular

  +-----+
  |G:115|
  +-----+

7.2.2. Complicacion Modular

+------------------+
| Glucosa   115    |
| 10:30am  Normal  |
+------------------+

7.3. Flujo de Registro en Smartwatch (v1.1)

flowchart TD
    A[Notificacion: Hora de medir glucosa] --> B{Usuario responde}
    B -->|Tap Registrar| C[Pantalla de valor]
    C --> D[Usuario ingresa valor con corona/touch]
    D --> E[Selecciona momento: Ayuno/Pre/Post]
    E --> F[Guardar]
    F --> G[Haptic confirmacion]
    G --> H{Valor critico?}
    H -->|Si| I[Alerta haptca intensa + sugerencia]
    H -->|No| J[Sync con telefono]
    I --> J

    B -->|Tap Posponer| K[Posponer 15 min]
    B -->|Ignorar| L[Recordatorio en 5 min]

8. Gamificacion para Eventos de Salud

Decision ACL5-007: Gamificar solo consistencia/adherencia (no valores), opcion de desactivar.

8.1. Logros de Mediciones

Logro Descripcion Criterio Puntos
Primera Medicion Registra tu primera medicion 1 medicion 10
Medidor Consistente 7 dias consecutivos midiendo 7 dias 50
Monitor Dedicado 30 dias consecutivos 30 dias 200
Guardian de Salud 90 dias consecutivos 90 dias 500
Maestro de Datos 365 dias consecutivos 365 dias 2000
Multi-Parametro Medir 3+ tipos diferentes en un dia 3 tipos 30
Disciplina Matutina 30 mediciones en ayunas consecutivas 30 ayuno 100

8.2. Logros de Tratamientos

Logro Descripcion Criterio Puntos
Primera Curacion Completa tu primera curacion 1 curacion 10
Cuidador de Mi Cuerpo 7 dias de curaciones 7 dias 50
Terapia Completa 30 dias de terapia fisica 30 dias 200
Dialisis Perfecta Mes sin omisiones de dialisis 30/30 300
Inyecciones al Dia 30 dias de inyecciones completas 30 dias 150
Tratamiento Documentado 10 tratamientos con fotos 10 fotos 75

8.3. Lo que NO se gamifica

Aspecto Razon
Valores especificos Evitar manipulacion de datos
"Valores en rango" Puede generar ansiedad
Comparaciones Cada paciente es unico
Predicciones Solo el medico interpreta

8.4. Opcion de Desactivar

+------------------------------------------+
|  Configuracion de Gamificacion           |
|------------------------------------------|
|  [ ] Activar gamificacion para eventos   |
|                                          |
|  Cuando desactivado:                     |
|  - No veras puntos ni logros            |
|  - Tu progreso se mantiene (invisible)  |
|  - Puedes reactivar en cualquier momento|
|                                          |
|  [Guardar]                              |
+------------------------------------------+

9. Reglas de Negocio

ID Regla Prioridad
RN-EVT-001 Cada medicion debe tener tipo, valor principal, unidad y fecha/hora Alta
RN-EVT-002 Valores de medicion se validan contra rangos plausibles antes de guardar Alta
RN-EVT-003 Valores criticos disparan alerta inmediata segun configuracion del usuario Alta
RN-EVT-004 Usuario puede configurar rangos objetivo personalizados (Pro/Perfect) Media
RN-EVT-005 Tratamientos con duracion registran hora inicio y hora fin Media
RN-EVT-006 Fotos de tratamientos requieren consentimiento explicito adicional para compartir Alta
RN-EVT-007 Historial de eventos segun tier: Free 30 dias local, Pro/Perfect ilimitado Alta
RN-EVT-008 Eventos de salud son datos sensibles bajo HIPAA/LGPD/LFPDPPP - cifrado E2E obligatorio Alta
RN-EVT-009 Importacion de Health Connect/HealthKit requiere opt-in explicito Alta
RN-EVT-010 Alertas de emergencia a contactos requieren consentimiento previo del paciente Alta
RN-EVT-011 Gamificacion solo aplica a consistencia, nunca a valores especificos Alta
RN-EVT-012 Mediciones importadas automaticamente se marcan con fuente de origen Media
RN-EVT-013 Templates custom disponibles en TODOS los tiers Media
RN-EVT-014 Recordatorios basados en eventos disparadores solo disponibles en Pro/Perfect Alta
RN-EVT-015 Sugerencias de accion ante valores criticos incluyen disclaimer obligatorio Alta
RN-EVT-016 Fotos ilimitadas en todos los tiers, limitadas solo por almacenamiento disponible Media
RN-EVT-017 V1.0 SIN predicciones IA - graficas estadisticas pero sin proyecciones Alta
RN-EVT-018 Pro y Perfect tienen las MISMAS funcionalidades (diferente limite cuidadores/sync) Alta

10. Criterios de Aceptacion

ID Criterio
AC-EVT-001 Usuario puede registrar medicion con valor, unidad y fecha/hora
AC-EVT-002 Sistema muestra indicador visual cuando valor esta fuera de rango
AC-EVT-003 Sistema envia alerta critica cuando valor excede umbrales configurados
AC-EVT-004 Usuario puede registrar tratamiento con estado completado/omitido
AC-EVT-005 Usuario puede adjuntar fotos a tratamientos (segun tier)
AC-EVT-006 Usuario puede configurar recordatorios con hora fija o evento disparador
AC-EVT-007 Sistema aplica templates predefinidos a recordatorios
AC-EVT-008 Graficas muestran tendencias con rangos de referencia
AC-EVT-009 Usuario puede importar datos de Health Connect/HealthKit
AC-EVT-010 Usuario puede compartir historial con profesional Clinical
AC-EVT-011 Fotos compartidas requieren consentimiento adicional explicito
AC-EVT-012 Widget muestra ultima medicion y estado
AC-EVT-013 Smartwatch muestra complicacion con valor actual
AC-EVT-014 Usuario puede desactivar gamificacion para eventos
AC-EVT-015 Sugerencias de accion se muestran ante valores criticos

11. Requisitos Regulatorios Especificos

Arquitectura Zero-Knowledge E2E: Todos los datos de eventos de salud estan cifrados end-to-end. El servidor NUNCA tiene acceso a las claves de descifrado. Ver MTS-SEC-001 para detalles de implementacion.

11.1. Clasificacion de Datos

Tipo de Dato Clasificacion Regulacion Aplicable Cifrado E2E
Valores de mediciones PHI / Datos Sensibles de Salud HIPAA, LGPD Art. 11, LFPDPPP OBLIGATORIO
Fotos de tratamientos PHI / Datos Sensibles HIPAA, LGPD Art. 11, LFPDPPP OBLIGATORIO
Historial de eventos PHI / Datos Sensibles HIPAA, LGPD Art. 11, LFPDPPP OBLIGATORIO
Alertas de valores criticos PHI / Datos Sensibles HIPAA, LGPD Art. 11, LFPDPPP OBLIGATORIO
Templates de recordatorios Datos Personales LGPD, LFPDPPP Recomendado
Estadisticas agregadas Anonimizado N/A No requerido

11.2. Disclaimers Obligatorios

Ubicacion Texto
Primer uso "MedTime es una herramienta de seguimiento. No sustituye consejo medico profesional."
Alertas criticas "Esta es una alerta informativa. Consulta a tu medico o contacta emergencias si es necesario."
Sugerencias de accion "Estas sugerencias son orientativas. Sigue siempre las indicaciones de tu medico."
Graficas de tendencia "Los datos mostrados son para referencia. Solo un profesional puede interpretar estos valores."
Exportacion a medico "Este reporte no sustituye una consulta medica presencial."

11.3. Retencion de Datos

Tipo de Dato Retencion Justificacion
Mediciones Indefinido (mientras cuenta activa) Valor clinico historico
Tratamientos Indefinido Valor clinico historico
Fotos de tratamientos 7 anos (requisito legal recetas) HIPAA, COFEPRIS
Alertas generadas 6 anos HIPAA audit requirements
Datos exportados 24 horas Solo para descarga

12. Flujos de Usuario con Mermaid

12.1. Flujo Completo: Registro de Medicion de Glucosa

flowchart TD
    A[Usuario abre app] --> B{Desde donde?}
    B -->|Notificacion| C[Pantalla de registro rapido]
    B -->|App| D[Dashboard principal]
    B -->|Widget| E[Abre en pantalla de eventos]
    B -->|Smartwatch| F[Registro en reloj]

    C --> G[Mostrar ultimo valor + formulario]
    D --> H[Tap en + Medicion]
    E --> H

    G --> I[Ingresar valor de glucosa]
    H --> J[Seleccionar: Glucosa]
    J --> I

    I --> K[Seleccionar momento: Ayuno/Pre/Post comida]
    K --> L{Agregar contexto?}
    L -->|Si| M[Actividad reciente, notas]
    L -->|No| N[Validar valor]
    M --> N

    N --> O{Valor en rango?}
    O -->|Si - Normal| P[Guardar con indicador verde]
    O -->|No - Fuera de rango| Q{Nivel de alerta?}

    Q -->|Informativo| R[Indicador amarillo]
    Q -->|Advertencia| S[Alerta + sugerencia]
    Q -->|Critico| T[Alerta roja + confirmacion]

    R --> U[Guardar medicion]
    S --> U
    T --> V{Usuario confirma valor correcto?}
    V -->|Si| W[Guardar + notificar cuidadores]
    V -->|No| I

    P --> X[Actualizar grafica]
    U --> X
    W --> X
    X --> Y[Actualizar widget y complicacion]
    Y --> Z[Fin]

    F --> AA[Ingreso con corona digital]
    AA --> AB[Seleccionar momento]
    AB --> AC[Guardar + haptic]
    AC --> AD[Sync con telefono]
    AD --> X

12.2. Flujo Completo: Curacion con Fotos

flowchart TD
    A[Usuario inicia curacion] --> B[Seleccionar: Tratamiento > Curacion]
    B --> C[Seleccionar ubicacion en cuerpo]
    C --> D{Tomar foto antes?}
    D -->|Si| E[Abrir camara]
    D -->|No| F[Continuar sin foto]
    E --> G[Capturar foto]
    G --> H[Confirmar foto]
    H --> F

    F --> I[Usuario realiza curacion]
    I --> J[Marcar como completado]
    J --> K{Registrar detalles?}

    K -->|Si| L[Tipo de curacion]
    L --> M[Estado de herida]
    M --> N[Signos de infeccion?]
    N --> O{Tomar foto despues?}

    K -->|No| O

    O -->|Si| P[Capturar foto despues]
    O -->|No| Q[Agregar notas]
    P --> Q

    Q --> R[Guardar tratamiento]
    R --> S[Actualizar estadisticas]
    S --> T{Compartir con medico?}
    T -->|No| U[Fin]
    T -->|Si| V{Fotos incluidas?}
    V -->|Si| W[Solicitar consentimiento adicional]
    V -->|No| X[Compartir datos basicos]
    W --> Y{Consentimiento otorgado?}
    Y -->|Si| Z[Compartir con fotos]
    Y -->|No| X
    Z --> U
    X --> U

13. Referencias


Documento generado por SpecQueen - La especificacion funcional ES el sistema.