Identificador: MTS-WDG-001
Version: 1.2.0
Fecha: 2025-12-01
Ultima Revision: Iteracion 6 - ACL5-006 Widgets para eventos de salud (mediciones y tratamientos)
Autor: SpecQueen
1. Propósito
Este módulo especifica los widgets de pantalla de inicio para iOS y Android, permitiendo al paciente ver información relevante de medicamentos sin abrir la aplicación.
2. Disponibilidad por Tier
| Tier |
Funcionalidad |
| Free |
Widgets básicos (próxima toma) |
| Pro |
Todos los widgets + personalización |
| Perfect |
Todo Pro + widgets premium desbloqueables por gamificación |
| Plataforma |
Tecnología |
Versión Mínima |
| iOS |
WidgetKit |
iOS 14+ |
| Android |
App Widgets / Glance |
Android 8+ |
Dimensiones aproximadas: 2x2 celdas
4.1.1. Variantes
| Variante |
Contenido |
| Próxima Toma |
Siguiente medicamento y hora |
| Racha |
Días de racha actual |
| Adherencia |
Porcentaje del día/semana |
4.1.2. Diseño: Próxima Toma (Pequeño)
┌─────────────────┐
│ 💊 Metformina │
│ │
│ 10:00 AM │
│ │
│ [En 45 min] │
└─────────────────┘
4.1.3. Diseño: Racha (Pequeño)
┌─────────────────┐
│ 🔥 │
│ │
│ 12 │
│ días │
│ │
└─────────────────┘
Dimensiones aproximadas: 4x2 celdas
4.2.1. Variantes
| Variante |
Contenido |
| Próximas Tomas |
Lista de próximos 3 medicamentos |
| Progreso del Día |
Completadas vs pendientes |
| Semana |
Vista de 7 días con indicadores |
┌─────────────────────────────────────┐
│ PRÓXIMAS TOMAS │
├─────────────────────────────────────┤
│ 💊 Metformina 10:00 AM │
│ 💊 Aspirina 12:00 PM │
│ 💊 Omeprazol 02:00 PM │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ HOY 75% │
├─────────────────────────────────────┤
│ ████████████████████░░░░░░░ │
│ │
│ ✓ 6 tomados ○ 2 pendientes │
└─────────────────────────────────────┘
Dimensiones aproximadas: 4x4 celdas
4.3.1. Variantes
| Variante |
Contenido |
| Día Completo |
Todas las tomas del día con estado |
| Calendario Semanal |
Vista de 7 días con adherencia |
| Dashboard |
Resumen completo |
4.3.2. Diseño: Día Completo (Grande)
┌─────────────────────────────────────┐
│ MEDICAMENTOS DE HOY Dic 1 │
├─────────────────────────────────────┤
│ │
│ ✓ 07:00 Metformina 850mg │
│ ✓ 07:00 Omeprazol 20mg │
│ ✓ 12:00 Aspirina 100mg │
│ ○ 19:00 Metformina 850mg │
│ ○ 22:00 Atorvastatina 20mg │
│ │
│ ───────────────────────────────── │
│ Racha: 12 días 🔥 Hoy: 60% │
└─────────────────────────────────────┘
4.3.3. Diseño: Calendario Semanal (Grande)
┌─────────────────────────────────────┐
│ ESTA SEMANA │
├─────────────────────────────────────┤
│ │
│ L M M J V S D │
│ ✓ ✓ ✓ ✓ ◐ ○ ○ │
│ 100 100 100 100 60 -- -- │
│ │
│ ───────────────────────────────── │
│ Semana: 92% Racha: 4 días │
└─────────────────────────────────────┘
5. Funcionalidades
5.1.1. Descripción
Los widgets se actualizan automáticamente para mostrar información relevante.
5.1.2. Frecuencia de Actualización
| Evento |
Actualización |
| Cambio de hora programada |
Inmediata |
| Toma registrada |
Inmediata |
| Cada 15 minutos |
Timeline refresh (iOS) |
| Push silencioso |
Cuando hay cambios (Pro/Perfect) |
5.2.1. Descripción
Acciones disponibles directamente desde el widget.
5.2.2. Acciones por Tamaño
| Tamaño |
Tap en Widget |
Acciones Rápidas |
| Pequeño |
Abre app en medicamento |
Ninguna |
| Mediano |
Abre app en próximas tomas |
Tap en med → marcar tomado |
| Grande |
Abre app en calendario |
Tap en med → marcar tomado |
5.2.3. Acción Rápida: Marcar como Tomado
flowchart TD
A[Widget Mediano/Grande<br/>Usuario toca medicamento específico] --> B[Mostrar confirmación inline]
B --> C["✓ Metformina registrada"]
C --> D[Actualizar widget inmediatamente]
5.3.1. Descripción
Opciones de personalización según tier y nivel de gamificación.
5.3.2. Opciones de Personalización
| Opción |
Free |
Pro |
Perfect |
| Variante de widget |
✓ |
✓ |
✓ |
| Color de tema |
Básico |
Básico + Desbloqueados |
Todos |
| Transparencia |
- |
✓ |
✓ |
| Mostrar racha |
✓ |
✓ |
✓ |
| Widgets personalizados |
- |
Nivel 4+ |
Nivel 4+ |
| Característica |
Soporte |
| Widget pequeño |
✓ |
| Widget mediano |
✓ |
| Widget grande |
✓ |
| Widget de pantalla de bloqueo |
iOS 16+ |
| Actualización en tiempo |
Timeline |
| Intents Configuration |
✓ |
┌───────────────────────┐
│ 💊 10:00 Metformina │
└───────────────────────┘
| Característica |
Soporte |
| Widget pequeño (2x2) |
✓ |
| Widget mediano (4x2) |
✓ |
| Widget grande (4x4) |
✓ |
| Widget redimensionable |
✓ |
| Actualización periódica |
AlarmManager |
| Acciones remotas |
RemoteViews |
Decision ACL5-006: Phased approach - v1.0 visualizacion, v1.1 registro rapido. Priorizar smartwatch.
+---------------------+
| Glucosa 10:30am |
| 115 |
| mg/dL |
| [En rango] |
+---------------------+
+------------------------------------------+
| Mis Mediciones [+] |
|------------------------------------------|
| Glucosa: 115 mg/dL 10:30am [Rango] |
| Presion: 125/82 08:15am [OK] |
| Peso: 72.5 kg 07:00am |
+------------------------------------------+
+------------------------------------------+
| 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% |
+------------------------------------------+
| Tamano |
Tap |
Accion v1.0 |
Accion v1.1 |
| Pequeno |
En widget |
Abre app en historial de mediciones |
Mismo |
| Mediano |
En medicion especifica |
Abre detalle de medicion |
Abre registro rapido |
| Mediano |
En boton [+] |
Abre formulario nueva medicion |
Mismo |
| Grande |
En medicion |
Abre detalle |
Mismo |
| Grande |
En tratamiento pendiente |
Abre detalle |
Marca como completado |
7.5. Indicadores Visuales de Estado
| Estado |
Indicador Visual |
| Valor normal |
Texto verde + icono check |
| Ligeramente fuera de rango |
Texto amarillo |
| Fuera de rango |
Texto naranja + icono advertencia |
| Valor critico |
Texto rojo + icono alerta |
| Tratamiento completado |
Checkbox marcado + tachado |
| Tratamiento pendiente |
Checkbox vacio |
7.6. Disponibilidad por Tier
| Widget |
Free |
Pro |
Perfect |
| Ultima medicion (pequeno) |
Si |
Si |
Si |
| Mediciones del dia (mediano) |
No |
Si |
Si |
| Dashboard salud (grande) |
No |
Si |
Si |
| Registro rapido desde widget |
No |
No |
Si (v1.1) |
| Personalizacion de colores |
No |
Si |
Si |
8.1. Configuracion de Privacidad
| Opción |
Descripción |
Default |
| Mostrar nombres de medicamentos |
Visible en pantalla de inicio |
Sí |
| Modo discreto |
Solo íconos y horas |
No |
| Ocultar en bloqueo |
Widget vacío cuando bloqueado |
No |
8.2. Modo Discreto
┌─────────────────────────────────────┐
│ PRÓXIMAS │
├─────────────────────────────────────┤
│ 💊 •••••••• 10:00 AM │
│ 💊 •••••••• 12:00 PM │
│ 💊 •••••••• 02:00 PM │
└─────────────────────────────────────┘
9. Reglas de Negocio
| ID |
Regla |
| RN-WDG-001 |
Widgets funcionan offline con datos locales |
| RN-WDG-002 |
Actualizacion minima cada 15 minutos |
| RN-WDG-003 |
Accion rapida "marcar tomado" disponible en mediano y grande |
| RN-WDG-004 |
Temas personalizados requieren desbloqueo por nivel (Pro/Perfect) |
| RN-WDG-005 |
Widget de pantalla de bloqueo solo iOS 16+ |
| RN-WDG-006 |
Modo discreto oculta nombres de medicamentos |
| RN-WDG-007 |
Widgets no muestran informacion cuando dispositivo bloqueado (configurable) |
| RN-WDG-008 |
Widgets de eventos de salud muestran indicadores de rango (color) |
| RN-WDG-009 |
Widget de mediciones muestra ultima medicion por tipo |
| RN-WDG-010 |
Registro rapido desde widget solo disponible en Perfect v1.1+ |
10. Modelo de Datos
ConfiguracionWidget {
id: UUID (PK)
usuario_id: UUID (FK)
plataforma: enum [IOS, ANDROID]
tamano: enum [SMALL, MEDIUM, LARGE]
variante: string
tema_color: string
mostrar_nombres: boolean
modo_discreto: boolean
ocultar_bloqueado: boolean
created_at: timestamp
updated_at: timestamp
}
11. Criterios de Aceptacion
| ID |
Criterio |
| AC-001 |
Widget pequeño muestra próxima toma |
| AC-002 |
Widget mediano muestra lista de próximas 3 tomas |
| AC-003 |
Widget grande muestra todas las tomas del día |
| AC-004 |
Widgets se actualizan al registrar una toma |
| AC-005 |
Usuario puede marcar tomado desde widget mediano/grande |
| AC-006 |
Widgets funcionan sin conexión a internet |
| AC-007 |
Usuario puede activar modo discreto |
| AC-008 |
Temas personalizados disponibles según nivel (Pro/Perfect) |
| AC-009 |
iOS soporta widget de pantalla de bloqueo |
| AC-010 |
Android soporta widgets redimensionables |
| AC-011 |
Widget de eventos muestra ultima medicion con indicador de rango |
| AC-012 |
Widget grande de salud muestra mediciones y tratamientos del dia |
| AC-013 |
Indicadores de color reflejan estado de valores (normal/alerta/critico) |
12. Referencias
Documento generado por SpecQueen - La especificación funcional ES el sistema.