Saltar a contenido

Modulo de Widgets

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

3. Plataformas Soportadas

Plataforma Tecnología Versión Mínima
iOS WidgetKit iOS 14+
Android App Widgets / Glance Android 8+

4. Tamaños de Widget

4.1. Widget Pequeño (Small)

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       │
│                 │
└─────────────────┘

4.2. Widget Mediano (Medium)

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

4.2.2. Diseño: Próximas Tomas (Mediano)

┌─────────────────────────────────────┐
│  PRÓXIMAS TOMAS                     │
├─────────────────────────────────────┤
│  💊 Metformina         10:00 AM     │
│  💊 Aspirina           12:00 PM     │
│  💊 Omeprazol          02:00 PM     │
└─────────────────────────────────────┘

4.2.3. Diseño: Progreso del Día (Mediano)

┌─────────────────────────────────────┐
│  HOY                    75%         │
├─────────────────────────────────────┤
│  ████████████████████░░░░░░░        │
│                                     │
│  ✓ 6 tomados    ○ 2 pendientes     │
└─────────────────────────────────────┘

4.3. Widget Grande (Large)

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. Actualización de Widgets (MTS-WDG-001-F01)

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. Interacción con Widget (MTS-WDG-001-F02)

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. Personalización de Widgets (MTS-WDG-001-F03)

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+

6. Widgets Específicos por Plataforma

6.1. iOS (WidgetKit)

Característica Soporte
Widget pequeño
Widget mediano
Widget grande
Widget de pantalla de bloqueo iOS 16+
Actualización en tiempo Timeline
Intents Configuration

6.1.1. Widget de Pantalla de Bloqueo (iOS 16+)

┌───────────────────────┐
│ 💊 10:00 Metformina   │
└───────────────────────┘

6.2. Android (Glance/App Widgets)

Característica Soporte
Widget pequeño (2x2)
Widget mediano (4x2)
Widget grande (4x4)
Widget redimensionable
Actualización periódica AlarmManager
Acciones remotas RemoteViews

7. Widgets para Eventos de Salud (ACL5-006)

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

7.1. Widget Pequeno: Ultima Medicion

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

7.2. Widget Mediano: 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.3. Widget Grande: 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.4. Interaccion con Widgets de Eventos

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. Privacidad en Widgets

8.1. Configuracion de Privacidad

Opción Descripción Default
Mostrar nombres de medicamentos Visible en pantalla de inicio
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

10.1. Entidad ConfiguracionWidget

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.