Modulo de Smartwatch
Identificador: MTS-WCH-001
Version: 1.2.0
Fecha: 2025-12-01
Ultima Revision: Iteracion 6 - ACL5-006 Complicaciones y registro rapido de eventos de salud
Autor: SpecQueen
1. Propósito
Este módulo especifica la integración con smartwatches (Apple Watch y Wear OS), permitiendo al paciente recibir recordatorios y registrar tomas directamente desde su reloj.
2. Disponibilidad por Tier
| Tier |
Funcionalidad |
| Free |
Notificaciones en reloj + registro básico de tomas |
| Pro |
Complicaciones + acciones rápidas |
| Perfect |
Todo Pro + carátulas personalizadas |
| Plataforma |
Versión Mínima |
Framework |
| Apple Watch |
watchOS 7+ |
WatchKit + SwiftUI |
| Wear OS |
Wear OS 2.0+ |
Jetpack Compose for Wear |
4. Funcionalidades Principales
4.1. Notificaciones en Reloj (MTS-WCH-001-F01)
4.1.1. Descripción 3.1
Los recordatorios de medicamentos se muestran directamente en el smartwatch.
4.1.2. Contenido de Notificación
┌───────────────────────────┐
│ │
│ 💊 MEDICAMENTO │
│ │
│ Metformina │
│ 850 mg │
│ │
│ [Tomado] [Posponer] │
│ │
└───────────────────────────┘
4.1.3. Acciones Disponibles
| Acción |
Descripción |
| Tomado |
Registra la toma inmediatamente |
| Posponer |
Pospone 15/30/60 min (seleccionable) |
| Ver más |
Abre detalle en el reloj |
| Abrir en teléfono |
Abre app en el teléfono |
4.2. App Standalone para Reloj (MTS-WCH-001-F02)
4.2.1. Descripción 3.2
Aplicación nativa para el smartwatch que funciona independientemente del teléfono.
4.2.2. Vistas Principales
4.2.2.1. Vista de Inicio
┌───────────────────────────┐
│ MedTime │
├───────────────────────────┤
│ │
│ PRÓXIMA TOMA │
│ │
│ 💊 Metformina │
│ 10:00 AM │
│ (en 45 min) │
│ │
│ ───────────────────── │
│ Racha: 12 días 🔥 │
└───────────────────────────┘
4.2.2.2. Vista de Lista del Día**
┌───────────────────────────┐
│ HOY (6) │
├───────────────────────────┤
│ ✓ 07:00 Metformina │
│ ✓ 07:00 Omeprazol │
│ ○ 12:00 Aspirina │
│ ○ 19:00 Metformina │
│ ○ 22:00 Atorvastatina │
│ │
│ ↓ scroll │
└───────────────────────────┘
4.2.2.3. Vista de Detalle de Medicamento
┌───────────────────────────┐
│ ← Metformina │
├───────────────────────────┤
│ │
│ Dosis: 850 mg │
│ Hora: 10:00 AM │
│ Instrucciones: │
│ Tomar con alimento │
│ │
│ ───────────────────── │
│ [ Marcar Tomado ] │
│ │
└───────────────────────────┘
4.3. Complicaciones (MTS-WCH-001-F03)
4.3.1. Descripción 3.3
Pequeños indicadores en la carátula del reloj que muestran información de MedTime.
4.3.2. Disponibilidad 3.3
Solo ProyPerfect.
4.3.3. Tipos de Complicación
| Tipo |
Tamaño |
Contenido |
| Circular pequeña |
Mínimo |
Ícono + contador pendientes |
| Modular pequeña |
Pequeño |
Próxima hora + nombre |
| Modular grande |
Grande |
Próximos 2 medicamentos |
| Gráfica |
Medio |
Barra de progreso del día |
4.3.4. Diseños de Complicación
4.3.4.1. Circular Pequeña
4.3.4.2. Modular Pequeña
┌─────────┐
│💊 10:00 │
│Metform..│
└─────────┘
4.3.4.3. Modular Grande
┌─────────────────┐
│ 10:00 Metformin │
│ 12:00 Aspirina │
└─────────────────┘
4.4. Gráfica (Gauge)
┌─────────────────┐
│ ████░░ │
│ HOY 4/6 (67%) │
└─────────────────┘
4.5. Registro Rápido de Tomas (MTS-WCH-001-F04)
4.5.1. Descripción 3.4
Métodos rápidos para registrar tomas desde el reloj.
4.5.2. Métodos de Registro
| Método |
Descripción |
Confirmación |
| Tap en notificación |
Botón "Tomado" en alerta |
Vibración + checkmark |
| Tap en complicación |
Abre lista, tap en medicamento |
Vibración + checkmark |
| Desde app del reloj |
Navegar a medicamento |
Animación de confirmación |
4.5.3. Flujo de Registro
flowchart TD
A[Usuario recibe notificación] --> B[Tap en 'Tomado']
B --> C[Reloj vibra + muestra ✓]
C --> D[Sincroniza con teléfono]
D --> E[Actualiza complicaciones]
4.6. Sincronizacion Reloj-Telefono (MTS-WCH-001-F05)
4.6.1. Descripcion 3.5
Comunicacion bidireccional entre la app del reloj y la app del telefono.
4.6.2. Datos Sincronizados
| Dato |
Direccion |
Frecuencia |
| Medicamentos activos |
Telefono -> Reloj |
Cambios |
| Horarios del dia |
Telefono -> Reloj |
Cada hora |
| Registros de tomas |
Reloj -> Telefono |
Inmediato |
| Racha y estadisticas |
Telefono -> Reloj |
Cada hora |
| Configuracion |
Telefono -> Reloj |
Cambios |
4.6.3. Modo Sin Telefono
| Plataforma |
Capacidad |
| Apple Watch (GPS+Cellular) |
Funciona independiente con WiFi/LTE |
| Apple Watch (GPS only) |
Funciona con cache local, sync al reconectar |
| Wear OS |
Depende del modelo, similar a Apple Watch |
4.7. Sincronizacion Offline para Wearables (MTS-WCH-001-F06) - ACL4-010
Decision Round 4: Documentar comportamiento de sincronizacion cuando smartwatch pierde conexion con telefono.
4.7.1. Descripcion 3.6
Mecanismos para garantizar funcionamiento continuo del smartwatch incluso sin conexion al telefono.
4.7.2. Escenarios de Desconexion
| Escenario |
Comportamiento |
Duracion Maxima |
| Reloj fuera de alcance Bluetooth |
Cache local activo |
Indefinido |
| Telefono apagado |
Cache local + WiFi si disponible |
Indefinido |
| Modo avion en telefono |
Cache local activo |
Indefinido |
| Reloj con WiFi (sin telefono) |
Sync directo a cloud (Pro/Perfect) |
Indefinido |
| Sin conexion total |
Cache local de 48 horas |
48 horas |
4.7.3. Flujo de Sincronizacion Offline
flowchart TD
A[Reloj detecta perdida de conexion] --> B[Activar modo offline]
B --> C[Usar cache local de 24-48h]
C --> D{Accion del usuario?}
D -->|Registra toma| E[Guardar en cola local]
D -->|Pospone alerta| F[Actualizar horario local]
D -->|Omite toma| G[Guardar en cola local]
E --> H[Incrementar contador de pendientes]
F --> H
G --> H
H --> I{Conexion restaurada?}
I -->|Si| J[Sincronizar cola automaticamente]
I -->|No| K{Timeout 48h alcanzado?}
K -->|No| D
K -->|Si| L[Notificar: Datos pendientes de sincronizar]
J --> M{Conflictos detectados?}
M -->|Si| N[Resolver por timestamp mas reciente]
M -->|No| O[Sincronizacion exitosa]
N --> O
O --> P[Limpiar cola local]
P --> Q[Actualizar complicaciones]
4.7.4. Datos en Cache Local del Reloj
| Dato |
Duracion Cache |
Prioridad |
| Medicamentos activos |
48 horas |
Critica |
| Horarios de hoy |
24 horas |
Critica |
| Horarios de manana |
24 horas |
Alta |
| Racha actual |
24 horas |
Media |
| Tomas registradas (no sincronizadas) |
Hasta sincronizar |
Critica |
| Configuracion de alertas |
Indefinido |
Alta |
| Modo discreto |
Indefinido |
Media |
4.7.5. Resolucion de Conflictos
| Escenario |
Resolucion |
| Toma registrada en reloj y telefono (misma hora) |
Mantener registro del reloj (fue primero) |
| Toma registrada solo en reloj |
Sincronizar a telefono |
| Medicamento eliminado en telefono mientras offline |
Mantener registros de toma, marcar medicamento como inactivo |
| Horario modificado en telefono mientras offline |
Actualizar horarios, mantener registros previos |
4.7.6. Indicadores Visuales de Estado Offline
| Estado |
Indicador en Reloj |
| Conectado a telefono |
Sin indicador (normal) |
| Desconectado, cache activo |
Icono de nube con barra |
| Desconectado, WiFi activo |
Icono WiFi |
| Datos pendientes de sync |
Numero en badge |
| Cache expirado |
Alerta: Conectar telefono |
4.7.7. Reglas de Negocio Offline
| ID |
Regla |
| RN-WCH-OFF-001 |
Cache local se actualiza cada hora cuando hay conexion |
| RN-WCH-OFF-002 |
Registros de tomas se guardan localmente si no hay conexion |
| RN-WCH-OFF-003 |
Sincronizacion automatica al restaurar conexion |
| RN-WCH-OFF-004 |
Conflictos se resuelven por timestamp (el mas reciente gana) |
| RN-WCH-OFF-005 |
Cache de 48 horas para datos de medicamentos |
| RN-WCH-OFF-006 |
Notificar al usuario si hay datos pendientes por mas de 48h |
| RN-WCH-OFF-007 |
Apple Watch con Cellular puede sincronizar directo a cloud (Pro/Perfect) |
4.8. Eventos de Salud en Smartwatch (MTS-WCH-001-F08) - ACL5-006
Decision ACL5-006: Phased approach - v1.0 visualizacion, v1.1 registro rapido. Priorizar smartwatch.
4.8.1. Descripcion 3.7
Soporte para visualizacion y registro de eventos de salud (mediciones y tratamientos) directamente desde el smartwatch.
4.8.2. Complicaciones de Eventos de Salud
4.8.2.1. Complicacion Circular: Ultima Medicion
Muestra tipo de medicion y valor. Color indica estado (verde normal, amarillo fuera de rango, rojo critico).
4.8.2.2. Complicacion Modular: Medicion con Estado
+------------------+
| Glucosa 115 |
| 10:30am Normal |
+------------------+
4.8.2.3. Complicacion Grande: Proximas Mediciones
+---------------------------+
| MEDICIONES HOY |
| G: 115 mg/dL 10:30 [OK] |
| BP: -- 12:00 [!] |
+---------------------------+
4.8.3. Notificacion de Recordatorio de Medicion
+---------------------------+
| |
| HORA DE MEDIR |
| |
| Glucosa en Sangre |
| |
| [Registrar] [Posponer] |
| |
+---------------------------+
4.8.4. Flujo de Registro de Medicion en Smartwatch (v1.1)
flowchart TD
A[Notificacion: Hora de medir glucosa] --> B{Usuario responde}
B -->|Tap Registrar| C[Pantalla de ingreso de valor]
C --> D[Usuario gira corona digital para valor]
D --> E[Selecciona momento: Ayuno/Pre/Post]
E --> F{Valor en rango?}
F -->|Si| G[Guardar + haptic confirmacion]
F -->|No - Fuera de rango| H[Mostrar indicador advertencia]
F -->|No - Critico| I[Alerta haptica intensa + sugerencia]
H --> J{Confirmar valor?}
I --> J
J -->|Si| G
J -->|Corregir| D
G --> K[Sync con telefono]
K --> L[Actualizar complicacion]
B -->|Tap Posponer| M[Seleccionar tiempo: 15/30/60 min]
M --> N[Reprogramar recordatorio]
B -->|Ignorar| O[Recordatorio en 5 min]
4.8.5. Vista de Lista: Eventos del Dia
+---------------------------+
| EVENTOS HOY (8) |
+---------------------------+
| MEDICIONES |
| [X] 07:30 Glucosa: 92 |
| [X] 08:00 Presion: 125/82|
| [ ] 12:00 Glucosa: -- |
|---------------------------|
| TRATAMIENTOS |
| [X] 07:00 Curacion |
| [ ] 14:00 Dialisis |
| |
| v scroll |
+---------------------------+
4.8.6. Pantalla de Ingreso de Medicion
+---------------------------+
| GLUCOSA |
+---------------------------+
| |
| 115 |
| mg/dL |
| |
| [ - ] [corona] [ + ]
| |
| Momento: [Ayuno v] |
| |
| [Guardar] |
+---------------------------+
4.8.7. Disponibilidad por Tier para Eventos
| Funcionalidad |
Free |
Pro |
Perfect |
| Ver notificacion de recordatorio |
Si |
Si |
Si |
| Posponer recordatorio |
Si |
Si |
Si |
| Registro desde notificacion |
No |
Si |
Si |
| Complicacion de medicion |
No |
Si |
Si |
| Registro rapido desde complicacion |
No |
No |
Si (v1.1) |
| Vista de eventos del dia |
No |
Si |
Si |
| Ingreso con corona digital |
No |
Si |
Si |
4.8.8. Indicadores de Alerta en Reloj
| Estado |
Indicador Visual |
Haptic |
| Valor normal |
Color verde |
Tap suave |
| Fuera de rango leve |
Color amarillo |
Tap doble |
| Fuera de rango |
Color naranja |
Vibracion corta |
| Valor critico |
Color rojo + icono |
Vibracion intensa x3 |
4.8.9. Reglas de Negocio de Eventos en Smartwatch
| ID |
Regla |
| RN-WCH-EVT-001 |
Registro de mediciones en smartwatch solo disponible en Pro/Perfect |
| RN-WCH-EVT-002 |
Valores criticos disparan haptic intenso inmediatamente |
| RN-WCH-EVT-003 |
Corona digital permite ingreso preciso de valores |
| RN-WCH-EVT-004 |
Complicaciones de eventos se actualizan inmediatamente al registrar |
| RN-WCH-EVT-005 |
Registro rapido desde complicacion solo en Perfect v1.1+ |
| RN-WCH-EVT-006 |
Cache local incluye recordatorios de eventos para 48h |
4.9. Haptics y Alertas (MTS-WCH-001-F09)
4.9.1. Descripcion 3.8
Patrones de vibracion especificos para diferentes eventos.
4.9.2. Patrones de Vibracion
| Evento |
Patron |
Descripcion |
| Recordatorio medicamento |
Normal |
Vibracion estandar de notificacion |
| Recordatorio urgente |
Fuerte |
Vibracion mas intensa, repetida |
| Confirmacion de toma |
Suave |
Tap haptico de confirmacion |
| Racha lograda |
Celebracion |
Patron especial de logro |
| Recordatorio medicion |
Normal |
Vibracion estandar |
| Valor critico registrado |
Alerta |
Vibracion intensa x3 + pausa |
| Confirmacion medicion |
Suave |
Tap haptico doble |
5.1. Apple Watch
| Funcionalidad |
Soporte |
| App independiente |
✓ |
| Complicaciones |
✓ (Pro/Perfect) |
| Siri Shortcuts |
✓ ("Hey Siri, registra mi Metformina") |
| Watch Faces personalizadas |
Perfect (desbloqueable) |
| Always On Display |
✓ (watchOS 6+) |
| Sincronización iCloud |
✓ (con teléfono) |
5.2. Wear OS
| Funcionalidad |
Soporte |
| App independiente |
✓ |
| Tiles |
✓ (equivalente a complicaciones) |
| Google Assistant |
✓ ("Ok Google, registra mi medicamento") |
| Watch Faces |
Tiles básicos |
| Ambient Mode |
✓ |
| Sincronización |
Via Bluetooth/WiFi |
6. Privacidad en Smartwatch
6.1. Configuración de Privacidad
| Opción |
Descripción |
Default |
| Mostrar nombres |
Nombres visibles en reloj |
Sí |
| Modo discreto |
Solo íconos genéricos |
No |
| Notificaciones tapadas |
Contenido oculto hasta tap |
No |
| Alertas solo vibración |
Sin texto en pantalla |
No |
6.2. Modo Discreto en Reloj
┌───────────────────────────┐
│ │
│ 💊 RECORDATORIO │
│ │
│ Tienes una toma │
│ pendiente │
│ │
│ [Ver] [Posponer] │
│ │
└───────────────────────────┘
7. Reglas de Negocio
| ID |
Regla |
| RN-WCH-001 |
Notificaciones funcionan sin conexión a teléfono (con cache) |
| RN-WCH-002 |
Registros se sincronizan automáticamente al reconectar |
| RN-WCH-003 |
Complicaciones solo disponibles en Pro/Perfect |
| RN-WCH-004 |
Carátulas personalizadas solo en Perfect |
| RN-WCH-005 |
Cache local mantiene datos de últimas 24 horas |
| RN-WCH-006 |
Acción "Tomado" requiere confirmación de un tap |
| RN-WCH-007 |
Modo discreto oculta nombres de medicamentos |
| RN-WCH-008 |
Haptics configurables por usuario |
8. Modelo de Datos
8.1. Entidad ConfiguracionSmartwatch
ConfiguracionSmartwatch {
id: UUID (PK)
usuario_id: UUID (FK)
plataforma: enum [APPLE_WATCH, WEAR_OS]
modelo: string
version_os: string
complicaciones_activas: jsonb
modo_discreto: boolean
haptics_habilitados: boolean
patron_haptico: string
ultima_sincronizacion: timestamp
created_at: timestamp
updated_at: timestamp
}
8.2. Cache Local del Reloj
CacheReloj {
medicamentos_activos: array
horarios_hoy: array
horarios_manana: array
tomas_pendientes: array
racha_actual: integer
progreso_hoy: object
ultima_actualizacion: timestamp
}
9. Criterios de Aceptación
| ID |
Criterio |
| AC-001 |
Notificaciones de medicamentos se muestran en el reloj |
| AC-002 |
Usuario puede marcar "Tomado" desde la notificación |
| AC-003 |
Usuario puede posponer recordatorio desde el reloj |
| AC-004 |
App del reloj muestra lista de medicamentos del día |
| AC-005 |
Complicaciones muestran próxima toma (Pro/Perfect) |
| AC-006 |
Registro de tomas sincroniza con teléfono |
| AC-007 |
Reloj funciona con cache cuando no hay conexión |
| AC-008 |
Usuario puede activar modo discreto |
| AC-009 |
Haptics proporcionan feedback al registrar toma |
| AC-010 |
Apple Watch soporta Siri Shortcuts |
10. Referencias
Documento generado por SpecQueen - La especificación funcional ES el sistema.