Saltar a contenido

MedTime - Flujos de Usuario

Identificador: MTS-FLU-001 Version: 1.7.0 Fecha: 2025-12-05 Ultima Revision: Iteracion 13 - Seccion flujos PRN agregada Autor: SpecQueen



1. Introducción

Este documento describe los flujos principales de usuario en MedTime, desde el registro inicial hasta las operaciones diarias.

2. Flujos Principales

2.1. Onboarding - Registro de Nuevo Usuario

Los flujos de onboarding varían según el tier seleccionado por el usuario.

2.1.1. Onboarding Tier Free (100% Local)

flowchart TD
    A[Inicio] --> B[Seleccionar Tier: Free]
    B --> C[Crear Cuenta Local]
    C --> D[Configurar PIN/Biometria]
    D --> E[Aviso de Privacidad]
    E --> F[Configurar Habitos]
    F --> G[Anadir 1er Medicamento]
    G --> H[Dashboard Principal]
2.1.1.1. Pasos Detallados (Tier Free)
Paso Descripción Obligatorio
1 Seleccionar tier Free
2 Crear cuenta local (nombre, contraseña local)
3 Configurar PIN o biometría para acceso local
4 Leer y aceptar aviso de privacidad
5 Configurar horarios habituales Recomendado
6 Añadir primer medicamento (manual) Recomendado
7 Acceder al dashboard -

Nota Tier Free: No requiere verificación de teléfono, email ni conexión a internet. Todos los datos se almacenan localmente. Sin acceso a cuidadores, OCR, ni sincronización.


2.1.2. Onboarding Tier Pro/Perfect (Con Servidor)

Nota OBS-031 (Iteracion 13): El consentimiento de datos de salud en el paso de Aviso de Privacidad es para elprocesamiento de datos en servidor. Las imagenes de recetas seanonimizan localmente antes de enviar al OCR del servidor, por lo que no contienen datos identificables del paciente. El consentimiento cubre: sincronizacion cloud, procesamiento de adherencia en servidor, y funcionalidades que requieren datos en la nube.

flowchart TD
    A[Inicio] --> B[Seleccionar Tier Pro/Perfect]
    B --> C[Login Social Google/Apple]
    C --> D[Aviso de Privacidad + Consentimiento Datos Salud]
    D --> E[Configurar Habitos]
    E --> F[Anadir 1er Medicamento]
    F --> G[Dashboard Principal]

V1.0: Solo autenticacion social disponible (Google o Apple). No hay registro con email/contrasena.

2.1.2.1. Pasos Detallados (Tier Pro/Perfect)
Paso Descripcion Obligatorio Nota
1 Seleccionar tier Pro o Perfect Si Solo Paciente Independiente selecciona tier
2 Seleccionar metodo de login social (Google o Apple) Si V1.0: Solo autenticacion social
3 Leer y aceptar aviso de privacidad Si Incluye consentimiento datos salud (checkbox + biometria)
4 Configurar horarios habituales Recomendado -
5 Anadir primer medicamento Recomendado -
6 Acceder al dashboard - -

V1.0: Solo autenticacion social disponible. No hay registro con email/contrasena. La verificacion de telefono por SMS y MFA adicional (TOTP) se planifican paraV1.5+.

Nota Tier Pro/Perfect: Requiere conexion a internet para crear cuenta. Habilita sincronizacion, cuidadores (Pro: 1 sync, Perfect: 5 sync), OCR (Pro: 3/mes, Perfect: 30/mes), y todas las funcionalidades avanzadas.

Clarificacion Consentimiento (OBS-031): El consentimiento de datos de salud se requiere porque Pro/Perfect almacena datos en servidor cloud. Las imagenes procesadas por OCR se anonimizanantes de enviarse al servidor (se remueven metadatos EXIF, datos del paciente, y cualquier informacion identificable). Solo se procesan los textos extraidos de medicamentos.

2.1.3. Flujo Maestro de Registro y Primera Autenticacion (UF-REG-001)

Flujo Canonico: Este flujo consolida todos los pasos de registro y primera autenticacion, referenciando los modulos correspondientes.

IMPORTANTE OBS-032 (Iteracion 13): Solo elPaciente Independienteselecciona tier. LosCuidadores SolidariosyPacientes DependientesNO seleccionan tier - obtienen tier Free automaticamente. LosCuidadores Responsables seleccionan tier para gestionar a sus dependientes.

flowchart TD
    A[App Instalada - Primera Apertura] --> B[Splash Screen]
    B --> C[Onboarding: Seleccion de Rol]

    C --> D{Tipo de Usuario?}
    D -->|Paciente Independiente| E[Seleccionar Tier]
    D -->|Cuidador Responsable| F[Seleccionar Tier para gestionar dependientes]
    D -->|Cuidador Solidario| G[Registro via Invitacion - Tier Free automatico]
    D -->|Paciente Dependiente| H[Gestionado por Cuidador Responsable]

    E --> I{Tier Seleccionado?}
    F --> I

    I -->|Free| J[Cuenta Local - MTS-AUTH-001-F01]
    I -->|Pro/Perfect| K[Login Social Google/Apple - V1.0]

    G --> L[Aceptar Invitacion]
    L --> M[Crear cuenta Free vinculada]

    H --> N[No tiene cuenta propia - perfil en cuenta del CR]

    J --> O[Configurar PIN/Biometria]
    K --> R
    M --> O

    O --> R[Aceptar Aviso de Privacidad]

    R --> S[Configurar Habitos - MTS-ONB-001]
    S --> T[Primera Receta/Medicamento]
    T --> U[Dashboard Principal]

V1.0: Para Pro/Perfect, el registro se realiza exclusivamente via login social (Google o Apple). No hay verificacion de email separada ni configuracion MFA adicional en V1.0. Estas funcionalidades se planifican paraV1.5+.

2.1.3.1. Precondiciones
Condición Descripción
App instalada Descargada de App Store/Play Store
Primera apertura Sin datos previos en dispositivo
Conexión Free: no requerida / Pro/Perfect: requerida
2.1.3.2. Flujo Principal
Paso Acción Módulo de Referencia Nota V1.0
1 Splash screen y carga inicial MTS-ONB-001 -
2 Selección de rol (4 tipos de usuario) MTS-USR-001 -
3 Selección de tier (Free/Pro/Perfect) MTS-PAY-001 -
4 Registro: Free=local, Pro/Perfect=login social MTS-AUTH-001 V1.0: Solo Google/Apple
5 ~~Verificación de email (solo Pro/Perfect)~~ MTS-AUTH-001 V1.5+: No aplica en V1.0
6 ~~Configuración MFA (opcional Pro/Perfect)~~ MTS-AUTH-001 V1.5+: No aplica en V1.0
7 Aceptación de privacidad y consentimientos MTS-PRI-001 -
8 Configuración de hábitos iniciales MTS-ONB-001 -
9 Primera receta o medicamento MTS-MED-001 -
10 Acceso a dashboard principal - -
2.1.3.3. Referencias Cruzadas
Módulo Flujos Detallados
MTS-AUTH-001 F01-F09: Registro, login, MFA, recuperación
MTS-ONB-001 Onboarding completo y tutoriales
MTS-USR-001 Modelo de 4 roles de usuario
MTS-PRI-001 Consentimientos y privacidad

2.2. Flujo Diario - Toma de Medicamentos

flowchart TD
    A[Notificacion de Toma] --> B[Tomado]
    A --> C[Posponer]
    A --> D[Ignorar]
    B --> E[Registrar]
    C --> F[Reprogramar +30 min]
    D --> G[Recordatorio posterior]
    E --> H[Actualizar Adherencia]
    F --> H
    G --> H

2.2.1. Escenarios

Escenario Flujo
Confirma desde notificación Tap "Tomado" → Registra → Actualiza racha
Confirma desde app Abre evento → Confirma → Registra
Pospone Tap "Posponer" → Reprograma +30min
No responde Recordatorio → Recordatorio → Marca omitido
Toma tardía Abre app → Ve evento pasado → Confirma con hora real

2.3. Anadir Medicamento desde Receta

OBS-033 (Iteracion 13): El flujo varia segun el tier del usuario. Free procesa todo localmente, Pro/Perfect consultan catalogo en servidor.

2.3.1. Flujo Tier Free (100% Local)

flowchart TD
    A[Anadir Medicamento] --> B{Metodo?}
    B -->|Manual| C[Formulario entrada manual]
    B -->|Desde Receta| D[Capturar Foto]

    D --> E[Procesar OCR LOCAL]
    E --> F{OCR exitoso?}
    F -->|Si| G[Extraer datos de imagen]
    F -->|No| H[Solicitar entrada manual]

    G --> I[Buscar en catalogo LOCAL offline]
    C --> I
    H --> I

    I --> J{Encontrado?}
    J -->|Si| K[Precargar datos del catalogo]
    J -->|No| L[Usuario completa datos manualmente]

    K --> M[Usuario verifica/ajusta datos]
    L --> M
    M --> N[Configurar Horarios]
    N --> O[Verificar Interacciones LOCAL]
    O --> P[Activar Medicamento]

Nota Free: Sin acceso a catalogo en servidor. Solo catalogo offline precargado (~5000 medicamentos comunes). OCR basico local sin IA avanzada.

2.3.2. Flujo Tier Pro/Perfect (Con Servidor)

flowchart TD
    A[Anadir Medicamento] --> B{Metodo?}
    B -->|Manual| C[Formulario entrada manual]
    B -->|Desde Receta| D[Capturar Foto/PDF]

    D --> E[Anonimizar imagen LOCALMENTE]
    E --> F[Remover metadatos EXIF]
    F --> G[Enviar a OCR servidor]

    G --> H{OCR exitoso?}
    H -->|Si| I[Extraer datos estructurados]
    H -->|No| J[Solicitar recaptura o entrada manual]

    I --> K[Consultar catalogo SERVIDOR]
    C --> K
    J --> K

    K --> L{Encontrado en catalogo?}
    L -->|Si| M[Precargar datos completos + interacciones]
    L -->|No| N[Usuario completa datos + solicitar inclusion]

    M --> O[Usuario verifica/ajusta datos]
    N --> O
    O --> P[Configurar Horarios segun habitos]
    P --> Q[Verificar Interacciones en SERVIDOR]
    Q --> R{Interacciones detectadas?}
    R -->|Si| S[Mostrar alertas con detalle]
    R -->|No| T[Activar Medicamento]
    S --> U{Usuario confirma?}
    U -->|Si| T
    U -->|No| V[Volver a editar]

Nota Pro/Perfect: - Anonimizacion: Antes de enviar imagen al servidor, se remueven: metadatos EXIF, datos del paciente visibles, informacion de ubicacion - Catalogo servidor: Base de datos completa con >100,000 medicamentos y verificacion de interacciones en tiempo real - OCR avanzado: IA especializada en recetas medicas con >95% de precision


2.4. Flujo de Cuidador

OBS-034 (Iteracion 13): Los Cuidadores Solidarios son invitados por usuarios Pro/Perfect. Los Cuidadores Responsables crean cuenta propia y agregan dependientes. Ambos tipos de cuidador obtienen funcionalidad Free (sin costo).

2.4.1. Flujo Cuidador Solidario (Invitado por Pro/Perfect)

flowchart TD
    subgraph "PACIENTE PRO/PERFECT"
        A[Abrir Mis Cuidadores] --> B[Invitar Cuidador Solidario]
        B --> C[Ingresar email/telefono]
        C --> D[Seleccionar permisos]
        D --> E[Enviar invitacion]
    end

    subgraph "CUIDADOR SOLIDARIO"
        F[Recibe invitacion email/SMS] --> G{Tiene cuenta MedTime?}
        G -->|Si| H[Login con cuenta existente]
        G -->|No| I[Crear cuenta FREE automatica]
        H --> J[Ver detalles de invitacion]
        I --> J
        J --> K[Aceptar terminos de cuidador]
        K --> L[Cuenta vinculada al paciente]
        L --> M[Ver datos segun permisos otorgados]
    end

    E --> F
    L --> N[Paciente recibe notificacion de aceptacion]

Nota CS: El Cuidador Solidariosiempre tiene tier Free independientemente del tier del paciente que lo invita. No paga suscripcion. Solo puede ser invitado por usuarios Pro/Perfect.

2.4.2. Flujo Cuidador Responsable (Crea cuenta propia)

flowchart TD
    A[Descargar MedTime] --> B[Seleccionar Soy Cuidador Responsable]
    B --> C[Seleccionar tier para gestionar dependientes]
    C --> D{Tier seleccionado?}

    D -->|Free| E[Crear cuenta local - max 1 dependiente]
    D -->|Pro| F[Login social Google/Apple - max 5 dependientes - V1.0]
    D -->|Perfect| G[Login social Google/Apple - max 10 dependientes - V1.0]

    E --> H[Declaracion jurada de tutela]
    F --> H
    G --> H

    H --> J[Agregar primer dependiente]
    J --> K[Ingresar datos del dependiente]
    K --> L[Dashboard del Cuidador Responsable]

    L --> M{Invitar Cuidador Solidario para dependiente?}
    M -->|Si| N[Flujo de invitacion igual que 2.4.1]
    M -->|No| O[Gestionar dependientes]

Nota CR: El Cuidador ResponsableSI selecciona tier porque es el titular de la cuenta y gestiona dependientes. Puede invitar Cuidadores Solidarios para ayudar con sus dependientes (solo si tiene Pro/Perfect).


2.5. Flujo de Verificación de Tutela (UF-TUT-001)

Añadido Iteración 11: Guía de documentos y proceso de verificación de tutela.

2.5.1. Proceso de Agregar Paciente Dependiente con Tutela

flowchart TD
    A[Cuidador accede a Mis Pacientes] --> B[Agregar Dependiente]
    B --> C[Declarar relacion tutela]
    C --> D[Estado: DECLARADO - Funciona pero puede ser disputado]
    D --> E{Alguien disputa?}
    E -->|No - Nadie disputa| F[Operacion normal]
    E -->|Si - Alguien disputa| G[Subir documentos de tutela]
    G --> H[Revision manual max 72h]
    H --> I{Resultado revision}
    I -->|Aprobado| J[VERIFICADO]
    I -->|Rechazado| K[REVOCADO]
    J --> F

2.5.2. Documentos Aceptados por País

Documento México USA Brasil Situación
Acta de nacimiento Padres biológicos
Sentencia de custodia Custodia legal
Tutela legal - - Tutores judiciales
Guardianship decree - - Legal guardians
Termo de guarda - - Guardiões legais
Carta poder notariada Cuidadores temporales

2.5.3. Formatos y Requisitos de Documentos

Aspecto Requisito
Formatos válidos PDF, JPG, PNG
Tamaño máximo 10 MB por documento
Calidad Legible, sin recortes
Vigencia Documento vigente (si aplica fecha)
Autenticidad Se valida con autoridades (si aplica)

Ver especificación completa en MTS-USR-001 - Sección Tutela


2.6. Flujo de Emergencia

flowchart TD
    A[3+ tomas criticas omitidas] --> B[Confirmacion al paciente 5 min]
    B --> C{Respuesta paciente?}
    C -->|Cancela| D[FIN]
    C -->|Confirma/No responde| E[Contactar Emergencia #1]
    E --> F{Respuesta contacto #1?}
    F -->|Responde| G[FIN]
    F -->|Sin respuesta 30 min| H[Contactar Emergencia #2]

3. Flujos por Actor

OBS-035 (Iteracion 13): Flujos separados por los 4 roles del sistema: Paciente Independiente (PI), Cuidador Solidario (CS), Cuidador Responsable (CR), Paciente Dependiente (PD).

3.1. Paciente Independiente (PI) - Flujos Principales

Flujo Frecuencia Complejidad Tier
Confirmar toma de medicamento Diaria, multiple Baja Todos
Ver dashboard de hoy Diaria Baja Todos
Ver estadisticas de adherencia Semanal Baja Todos
Anadir nuevo medicamento Ocasional Media Todos
Digitalizar receta con OCR Ocasional Media Pro/Perfect
Invitar cuidadores solidarios Rara Media Pro/Perfect
Configurar permisos de cuidadores Rara Media Pro/Perfect
Exportar datos Rara Baja Todos
Compartir perfil medico Ocasional Baja Pro/Perfect
Gestionar integraciones (Health Connect/Kit) Rara Media Perfect

3.2. Cuidador Solidario (CS) - Flujos Principales

El CS es invitado por un PI Pro/Perfect. Su cuenta siempre es Free.

Flujo Frecuencia Complejidad Requiere Permiso
Ver medicamentos del paciente Semanal Baja ver_medicamentos
Ver adherencia del paciente Diaria Baja ver_adherencia
Recibir alertas de omision Variable Baja recibir_alertas_tomas
Recibir alertas criticas/emergencia Variable Baja Siempre activo
Registrar toma en nombre del paciente Ocasional Baja registrar_tomas
Ver recetas del paciente Ocasional Baja ver_recetas
Ver citas del paciente Ocasional Baja ver_citas
Ver analisis clinicos Ocasional Baja ver_analisis
Desvincularse del paciente Rara Baja Siempre disponible

3.3. Cuidador Responsable (CR) - Flujos Principales

El CR es titular de cuenta y gestiona pacientes dependientes. Selecciona su propio tier.

Flujo Frecuencia Complejidad Tier CR
Ver dashboard de todos los dependientes Diaria Baja Todos
Confirmar toma de dependiente Diaria, multiple Baja Todos
Agregar/editar medicamentos de dependiente Ocasional Media Todos
Agregar nuevo dependiente Rara Media Segun limite tier
Digitalizar receta de dependiente Ocasional Media Pro/Perfect
Invitar CS para ayudar con dependiente Rara Media Pro/Perfect
Ver estadisticas de adherencia de dependientes Semanal Baja Todos
Configurar alertas de emergencia Rara Media Todos
Gestionar tutela/documentacion Rara Alta Pro/Perfect
Preparar transicion a los 18 anos Rara Alta Todos

3.4. Paciente Dependiente (PD) - Flujos Principales

El PD no tiene cuenta propia. Su perfil existe dentro de la cuenta del CR.

Flujo Frecuencia Complejidad Edad Acceso
Ver sus medicamentos (solo lectura) Diaria Baja 13-17 Opcional
Ver su calendario de tomas Diaria Baja 13-17 Opcional
Recibir notificaciones en su dispositivo Variable Baja 13-17 Opcional
Sin acceso a la app - - <13 CR gestiona todo
Migrar a cuenta autonoma Una vez Alta 18 Obligatorio

3.4.1. Matriz de Acceso por Edad del Dependiente

Edad Acceso App Puede Confirmar Tomas Puede Editar Notificaciones
0-12 Ninguno No No Solo al CR
13-15 Solo lectura (opcional) No No Opcional
16-17 Solo lectura (opcional) Si (con supervision) No Opcional
18+ Migracion obligatoria a PI Si Si Propias

4. Flujos de Error

4.1. Error de Conexión

flowchart TD
    A[Accion Requiere Red] --> B[Sin conexion]
    B --> C[Guardar localmente]
    C --> D[Sincronizar al reconectar]

4.2. Error de OCR

OBS-036 (Iteracion 13): Ampliar opciones de recuperacion ante error de OCR.

flowchart TD
    A[Procesar Receta OCR] --> B{Resultado OCR?}

    B -->|Exito alta confianza| C[Mostrar datos extraidos]
    B -->|Exito baja confianza| D[Resaltar campos dudosos en amarillo]
    B -->|Falla total| E[Mostrar pantalla de error con opciones]

    C --> F[Usuario verifica y confirma]
    D --> G[Usuario corrige campos marcados]

    E --> H{Opcion seleccionada?}
    H -->|Recapturar foto| I[Abrir camara nuevamente]
    H -->|Seleccionar de galeria| J[Abrir selector de imagenes]
    H -->|Entrada manual| K[Formulario de captura manual]
    H -->|Cancelar| L[Volver sin guardar]

    I --> M{Mejor iluminacion/enfoque?}
    M -->|Si| A
    M -->|No| E

    J --> N[Seleccionar imagen existente]
    N --> A

    K --> O[Usuario ingresa datos manualmente]

    F --> P[Guardar medicamento]
    G --> P
    O --> P

4.2.1. Pantalla de Error OCR

+--------------------------------------------------+
| NO PUDIMOS LEER LA RECETA                         |
+--------------------------------------------------+

La imagen no pudo procesarse correctamente.
Esto puede deberse a:
- Poca iluminacion
- Imagen borrosa o desenfocada
- Receta parcialmente visible
- Formato de receta no reconocido

OPCIONES:
+--------------------------------------------------+
| [Camara] Tomar nueva foto                         |
|          Asegurate de buena iluminacion           |
+--------------------------------------------------+
| [Galeria] Seleccionar otra imagen                 |
|          Elige una foto existente                 |
+--------------------------------------------------+
| [Teclado] Ingresar manualmente                    |
|          Captura los datos tu mismo               |
+--------------------------------------------------+

[Cancelar]
+--------------------------------------------------+

5. Flujos de Widgets (ACL4-007)

Referencia: Modulo de Widgets

5.1. Flujo: Widget Pequeno (2x2) - Proxima Toma

flowchart TD
    A[Usuario ve widget en pantalla principal] --> B[Widget muestra: Medicamento + Hora + Countdown]
    B --> C{Usuario interactua?}
    C -->|Tap en widget| D[Abre app en pantalla de toma actual]
    C -->|No interactua| E[Widget se actualiza cada 15 min]
    D --> F[Usuario puede confirmar toma en app]
    E --> B
    F --> G[Widget se actualiza inmediatamente]
    G --> H[Muestra siguiente toma pendiente]

5.2. Flujo: Widget Mediano (4x2) - Lista de Tomas

flowchart TD
    A[Usuario ve widget mediano] --> B[Widget muestra: 3 proximas tomas + racha]
    B --> C{Usuario interactua?}
    C -->|Tap en toma especifica| D{Tipo de accion?}
    C -->|Tap en area general| E[Abre app en lista de hoy]
    C -->|Tap en racha| F[Abre estadisticas de adherencia]
    D -->|Tap rapido| G[Marca toma como completada]
    D -->|Long press| H[Abre detalle del medicamento]
    G --> I[Haptic feedback + checkmark]
    I --> J[Widget se actualiza]
    J --> K[Muestra siguiente toma en lista]

5.3. Flujo: Widget Grande (4x4) - Calendario del Dia

flowchart TD
    A[Usuario ve widget grande] --> B[Widget muestra: Todas las tomas del dia con estado]
    B --> C{Usuario interactua?}
    C -->|Tap en toma pendiente| D[Opciones inline]
    C -->|Tap en toma completada| E[Ver detalle/hora de toma]
    C -->|Tap en toma saltada| F[Ver/editar razon]
    C -->|Tap en boton +| G[Agregar toma no programada]
    D --> H{Seleccion?}
    H -->|Tomar ahora| I[Registra toma + actualiza widget]
    H -->|Posponer| J[Reprograma + muestra nuevo horario]
    H -->|Saltar| K[Solicita razon opcional]
    K --> L[Registra omision + actualiza widget]

5.4. Flujo: Modo Discreto en Widgets

flowchart TD
    A[Usuario activa modo discreto en app] --> B[Configuracion se propaga a widgets]
    B --> C[Widgets ocultan nombres de medicamentos]
    C --> D[Muestran solo iconos + horas]
    D --> E{Usuario interactua?}
    E -->|Tap en widget| F[Abre app - muestra nombres completos]
    E -->|Tap en toma especifica| G[Confirmacion sin mostrar nombre]
    G --> H[Widget muestra: Toma registrada]

5.5. Flujo: Actualizacion Automatica de Widgets

flowchart TD
    A[Evento de cambio] --> B{Tipo de evento?}
    B -->|Toma registrada| C[Actualizar inmediatamente]
    B -->|Nuevo medicamento| C
    B -->|Cambio de horario| C
    B -->|Timeline refresh iOS| D[Actualizar cada 15 min]
    B -->|Push silencioso| C
    C --> E[Recalcular proximas tomas]
    D --> E
    E --> F[Actualizar UI del widget]
    F --> G[Mostrar datos actualizados]

6. Flujos de Smartwatch (ACL4-008)

Referencia: Modulo de Smartwatch

6.1. Flujo: Notificacion de Toma en Smartwatch

flowchart TD
    A[Hora programada de toma] --> B[Sistema envia notificacion]
    B --> C[Smartwatch vibra + muestra alerta]
    C --> D{Accion del usuario?}
    D -->|Tap Tomado| E[Registra toma]
    D -->|Tap Posponer| F[Muestra opciones de tiempo]
    D -->|Tap Saltar| G[Solicita razon rapida]
    D -->|Ignorar| H[Recordatorio en 5 min]
    E --> I[Haptic feedback confirmacion]
    I --> J[Actualiza complicacion]
    J --> K[Sincroniza con telefono]
    F --> L{Tiempo seleccionado?}
    L -->|15 min| M[Reprograma alerta]
    L -->|30 min| M
    L -->|60 min| M
    M --> N[Actualiza complicacion]
    G --> O{Razon?}
    O -->|No tengo medicamento| P[Registra omision]
    O -->|Efectos secundarios| P
    O -->|Olvide| P
    O -->|Otra| P
    P --> Q[Actualiza complicacion]
    H --> C

6.2. Flujo: Uso de App Standalone en Reloj

flowchart TD
    A[Usuario abre app MedTime en reloj] --> B[Vista principal: Proxima toma]
    B --> C{Navegacion?}
    C -->|Scroll abajo| D[Lista de tomas del dia]
    C -->|Tap en proxima toma| E[Detalle del medicamento]
    C -->|Tap en racha| F[Estadisticas resumidas]
    D --> G{Seleccion de toma?}
    G -->|Tap en toma pendiente| H[Opciones: Tomar/Posponer/Saltar]
    G -->|Tap en toma completada| I[Ver hora de registro]
    G -->|Tap en toma saltada| J[Ver razon registrada]
    E --> K[Muestra: Nombre, Dosis, Instrucciones]
    K --> L{Accion?}
    L -->|Marcar tomado| M[Registra + haptic + regresa]
    L -->|Volver| B

6.3. Flujo: Interaccion con Complicacion (Pro/Perfect)

flowchart TD
    A[Usuario ve caratula con complicacion MedTime] --> B{Tipo de complicacion?}
    B -->|Circular pequena| C[Muestra: Icono + numero pendientes]
    B -->|Modular pequena| D[Muestra: Hora + nombre corto]
    B -->|Modular grande| E[Muestra: Proximos 2 medicamentos]
    B -->|Grafica| F[Muestra: Barra progreso del dia]
    C --> G{Tap?}
    D --> G
    E --> G
    F --> G
    G -->|Si| H[Abre app MedTime en reloj]
    H --> I[Vista: Lista de tomas del dia]
    I --> J{Scroll?}
    J -->|Si| K[Ver mas tomas]
    J -->|No| L{Tap en toma?}
    L -->|Si| M[Opciones: Confirmar/Posponer]

6.4. Flujo: Modo Discreto en Smartwatch

flowchart TD
    A[Usuario necesita privacidad] --> B{Metodo de activacion?}
    B -->|Desde app telefono| C[Configuracion > Privacidad > Modo discreto]
    B -->|Desde app reloj| D[Menu rapido > Modo discreto]
    B -->|Gesto en reloj| E[Palm cover para silenciar]
    C --> F[Sincroniza configuracion al reloj]
    D --> F
    E --> G[Activa temporalmente 2 horas]
    F --> H{Duracion?}
    H -->|Permanente| I[Activo hasta desactivar]
    H -->|Temporal| J[Configurar duracion]
    I --> K[Aplicar modo discreto]
    J --> K
    G --> K
    K --> L[Notificaciones: Solo vibracion suave]
    L --> M[Texto generico: Recordatorio pendiente]
    M --> N[Sin nombre de medicamento visible]

6.5. Flujo: Sincronizacion Reloj sin Telefono

flowchart TD
    A[Reloj pierde conexion con telefono] --> B{Tipo de reloj?}
    B -->|Apple Watch GPS+Cellular| C[Intenta conexion WiFi/LTE]
    B -->|Apple Watch GPS only| D[Usa cache local]
    B -->|Wear OS| E[Depende del modelo]
    C --> F{Conexion disponible?}
    F -->|Si| G[Sync directo a cloud - Pro/Perfect]
    F -->|No| D
    D --> H[Cache de ultimas 24 horas]
    H --> I[Alertas funcionan offline]
    I --> J[Registros se guardan localmente]
    J --> K{Reconecta con telefono?}
    K -->|Si| L[Sync automatico de pendientes]
    K -->|No - timeout 48h| M[Notificar usuario de datos pendientes]
    L --> N[Resolver conflictos por timestamp]
    N --> O[Datos sincronizados]
    G --> O

6.6. Flujo: Haptics y Feedback Tactil

flowchart TD
    A[Evento en smartwatch] --> B{Tipo de evento?}
    B -->|Recordatorio normal| C[Patron: Vibracion estandar]
    B -->|Recordatorio urgente| D[Patron: Vibracion intensa x2]
    B -->|Confirmacion de toma| E[Patron: Tap haptico suave]
    B -->|Racha lograda| F[Patron: Celebracion]
    B -->|Error/Problema| G[Patron: Vibracion triple corta]
    C --> H[Usuario siente feedback]
    D --> H
    E --> H
    F --> H
    G --> H
    H --> I{Configuracion usuario?}
    I -->|Haptics activados| J[Ejecutar patron]
    I -->|Haptics desactivados| K[Solo visual]

7. Flujos de Eventos de Salud (ACL5-001)

Referencia: Modulo de Eventos de Salud

7.1. Flujo: Registrar Medicion Manual

flowchart TD
    A[Usuario abre seccion Eventos de Salud] --> B[Selecciona tipo de medicion]
    B --> C{Tipo seleccionado?}
    C -->|Glucosa| D[Formulario glucosa]
    C -->|Presion arterial| E[Formulario presion]
    C -->|Peso| F[Formulario peso]
    C -->|Temperatura| G[Formulario temperatura]
    C -->|Otro| H[Formulario generico]
    D --> I[Ingresa valor en mg/dL]
    E --> J[Ingresa sistolica/diastolica + pulso]
    F --> K[Ingresa peso en kg]
    G --> L[Ingresa temperatura en C]
    H --> M[Ingresa valor y unidad]
    I --> N{Valor critico?}
    J --> N
    K --> N
    L --> N
    M --> N
    N -->|Si| O[Mostrar alerta visual]
    N -->|No| P[Mostrar valor normal]
    O --> Q[Usuario confirma registro]
    P --> Q
    Q --> R[Guardar medicion]
    R --> S{Alertar contacto emergencia?}
    S -->|Si - valor critico| T[Notificar contacto de emergencia]
    S -->|No| U[Actualizar historial]
    T --> U
    U --> V[Mostrar confirmacion]

7.2. Flujo: Importar Medicion de Health Connect/HealthKit

flowchart TD
    A[Health Connect/HealthKit detecta nueva medicion] --> B[Observer notifica a MedTime]
    B --> C{Integracion activa?}
    C -->|Si| D[Leer datos de la medicion]
    C -->|No| E[Ignorar]
    D --> F{Medicion duplicada?}
    F -->|Si| G[Marcar como ya sincronizada]
    F -->|No| H[Crear evento de salud en MedTime]
    H --> I[Marcar fuente como externa]
    I --> J{Valor critico?}
    J -->|Si| K[Generar alerta igual que manual]
    J -->|No| L[Registro silencioso]
    K --> M[Actualizar graficas y widgets]
    L --> M
    G --> N[No duplicar]

7.3. Flujo: Registrar Tratamiento No Farmacologico

OBS-037 (Iteracion 13): Las fotos de tratamiento secifran localmente en el dispositivoantes de cualquier almacenamiento o sincronizacion. El consentimiento adicional se requiere paracompartir las fotos con terceros (cuidadores, profesionales), NO para tomarlas y almacenarlas cifradas. Ver MTS-PRI-001 seccion 4.4.

flowchart TD
    A[Usuario abre Eventos de Salud] --> B[Selecciona Tratamientos]
    B --> C{Tipo de tratamiento?}
    C -->|Curacion| D[Formulario curacion]
    C -->|Dialisis| E[Formulario dialisis]
    C -->|Terapia fisica| F[Formulario terapia]
    C -->|Nebulizacion| G[Formulario nebulizacion]
    C -->|Inyeccion| H[Formulario inyeccion]
    C -->|Otro| I[Formulario generico]
    D --> J[Campos: hora inicio, duracion, zona, notas]
    E --> K[Campos: hora inicio, duracion, tipo, litros]
    F --> L[Campos: hora, duracion, ejercicios, progreso]
    G --> M[Campos: hora, medicamento, duracion]
    H --> N[Campos: hora, medicamento, zona, lote]
    I --> O[Campos: hora, duracion, notas]
    J --> P{Agregar foto?}
    K --> P
    L --> P
    M --> P
    N --> P
    O --> P
    P -->|Si| Q[Capturar foto]
    P -->|No| R[Guardar sin foto]
    Q --> S[Cifrar foto LOCALMENTE con clave del usuario]
    S --> T[Guardar foto cifrada]
    T --> U{Tier Pro/Perfect y sync activo?}
    U -->|Si| V[Sincronizar foto cifrada a cloud]
    U -->|No| W[Solo almacenamiento local]
    V --> X[Mostrar confirmacion]
    W --> X
    R --> X

7.3.1. Clarificacion sobre Consentimiento de Fotos (OBS-037)

Accion Requiere Consentimiento Adicional? Motivo
Tomar foto de tratamiento No Es dato del propio usuario, cifrado localmente
Almacenar foto cifrada en dispositivo No Datos propios, cifrados con clave del usuario
Sincronizar foto cifrada a cloud No Ya cubierto por consentimiento general de datos salud
Compartirfoto con cuidador Si Tercero accede a datos sensibles
Compartirfoto con profesional Si Tercero accede a datos sensibles
Descargar foto por tercero Si (adicional) Tercero obtiene copia permanente

Nota de Cifrado: Las fotos se cifran con AES-256 usando una clave derivada de las credenciales del usuario. Ni MedTime ni terceros pueden ver las fotos sin autorizacion explicita del paciente. Ver MTS-SEC-001 para detalles de cifrado.

7.4. Flujo: Configurar Template de Recordatorios

flowchart TD
    A[Usuario accede a Configuracion de Eventos] --> B[Selecciona Templates de Recordatorios]
    B --> C{Template predefinido o personalizado?}
    C -->|Predefinido| D[Mostrar lista de templates]
    C -->|Personalizado| E[Crear template manual]
    D --> F{Seleccion?}
    F -->|Diabetico Tipo 1| G[Glucosa: ayuno, pre-comidas, post-comidas, noche]
    F -->|Diabetico Tipo 2| H[Glucosa: ayuno, pre-almuerzo, pre-cena]
    F -->|Hipertenso| I[Presion: manana, noche]
    F -->|Control de peso| J[Peso: semanal]
    F -->|Personalizado| E
    G --> K[Previsualizar horarios]
    H --> K
    I --> K
    J --> K
    E --> L[Seleccionar tipo de medicion]
    L --> M{Tipo de recordatorio?}
    M -->|Hora fija| N[Configurar horas especificas]
    M -->|Evento disparador| O[Seleccionar evento - Pro/Perfect]
    N --> K
    O --> P[Configurar offset - antes/despues]
    P --> K
    K --> Q[Usuario confirma configuracion]
    Q --> R[Activar recordatorios]
    R --> S[Mostrar en calendario junto con medicamentos]

7.5. Flujo: Alerta de Valor Critico

flowchart TD
    A[Usuario registra medicion] --> B{Valor dentro de rangos?}
    B -->|Normal| C[Registro normal]
    B -->|Atencion| D[Alerta amarilla - solo visual]
    B -->|Critico bajo| E[Alerta roja - critico]
    B -->|Critico alto| E
    D --> F[Mostrar banner de atencion]
    F --> G[Sugerir accion - ej: comer algo]
    G --> H[Guardar con flag de atencion]
    E --> I[Mostrar alerta modal critica]
    I --> J{Contacto de emergencia configurado?}
    J -->|Si| K{Notificar contacto?}
    J -->|No| L[Sugerir configurar contacto]
    K -->|Usuario acepta| M[Enviar notificacion a contacto]
    K -->|Usuario rechaza| N[Registrar rechazo de notificacion]
    M --> O[Guardar con flag critico + notificado]
    N --> P[Guardar con flag critico + no notificado]
    L --> P
    C --> Q[Actualizar historial]
    H --> Q
    O --> Q
    P --> Q

7.6. Flujo: Ver Graficas de Eventos de Salud

flowchart TD
    A[Usuario abre Historial de Eventos] --> B{Tier del usuario?}
    B -->|Free| C[Graficas basicas con rangos]
    B -->|Pro/Perfect| D[Graficas avanzadas completas]
    C --> E[Mostrar grafica lineal simple]
    E --> F[Indicar rangos objetivo]
    F --> G[Filtrar por periodo: 7/30/90 dias]
    D --> H[Mostrar grafica interactiva]
    H --> I[Indicar rangos + tendencias]
    I --> J[Mostrar correlaciones con medicamentos]
    J --> K[Filtrar por periodo: 7/30/90/365 dias]
    K --> L{Exportar datos?}
    G --> L
    L -->|Si| M[Generar PDF/CSV]
    L -->|No| N[Continuar visualizando]
    M --> O[Descargar o compartir]

7.7. Flujo: Registrar Medicion desde Smartwatch

OBS-038 (Iteracion 13): Corregida terminologia. "Complicacion" es termino especifico de Apple Watch. Usamos "widget de medicion" como termino generico para ambas plataformas.

flowchart TD
    A[Usuario abre MedTime en smartwatch] --> B[Navega a Eventos de Salud]
    B --> C[Selecciona tipo de medicion]
    C --> D{Metodo de entrada?}
    D -->|Digital Crown - Apple Watch| E[Girar para ajustar valor]
    D -->|Bezel rotativo - Wear OS| F[Girar para ajustar valor]
    D -->|Taps +/-| G[Incrementar/decrementar]
    E --> H[Mostrar valor grande en pantalla]
    F --> H
    G --> H
    H --> I[Usuario confirma con tap]
    I --> J{Valor critico?}
    J -->|Si| K[Haptic intenso + alerta visual]
    J -->|No| L[Haptic confirmacion]
    K --> M[Guardar medicion]
    L --> M
    M --> N{Telefono conectado?}
    N -->|Si| O[Sincronizar inmediatamente]
    N -->|No| P[Encolar para sync posterior]
    O --> Q[Actualizar widget de medicion en caratula]
    P --> Q

Nota terminologica: En Apple Watch se llama "complicacion", en Wear OS se llama "tile" o "complication" tambien. Usamos "widget de medicion" como termino funcional neutro.


8. Flujos de Onboarding Adaptativo (ACL6-006)

Decision ACL6-006: Onboarding adaptativo por tier, con opcion de saltar.

OBS-039 (Iteracion 13): Onboarding detallado por TIER y ROL. Los 4 roles tienen flujos diferentes.

8.1. Estructura de Onboarding por Tier y Rol

8.1.1. Matriz Tier x Rol

Rol Free Pro Perfect
Paciente Independiente (PI) Cuenta local, sin verificacion Login social (V1.0) Login social + integraciones (V1.0)
Cuidador Responsable (CR) 1 dependiente max 5 dependientes max 10 dependientes max
Cuidador Solidario (CS) Siempre Free (invitado) N/A N/A
Paciente Dependiente (PD) Sin cuenta propia Sin cuenta propia Sin cuenta propia

V1.0: Pro y Perfect usan login social exclusivamente (Google/Apple). Verificacion email/telefono y MFA adicional planificados paraV1.5+.

8.1.2. Pasos por Rol

Rol Pasos Obligatorios Pasos Opcionales Tiempo Nota V1.0
PI Free Cuenta local, PIN, privacidad Habitos, tour, 1er med 2-3 min -
PI Pro Login social (Google/Apple), privacidad + Cuidadores 2-3 min V1.0: Solo login social
PI Perfect Login social (Google/Apple), privacidad + Integraciones 2-3 min V1.0: Solo login social
CR Free Cuenta local, declaracion tutela, 1er dependiente Tour 3-4 min -
CR Pro Login social, declaracion tutela + Multiples dependientes 3-4 min V1.0: Solo login social
CR Perfect Login social, declaracion tutela + Invitar CS para dependientes 3-4 min V1.0: Solo login social
CS Aceptar invitacion, crear cuenta Free Tour 1-2 min -
PD N/A (no tiene onboarding propio) N/A N/A -

V1.0: Tiempos de onboarding reducidos para Pro/Perfect al eliminar verificacion de email/telefono y MFA. Estas funcionalidades se planifican paraV1.5+.

8.2. Flujo de Onboarding por Rol

8.2.1. Paciente Independiente (PI)

flowchart TD
    A[PI inicia app] --> B{Selecciona tier?}
    B -->|Free| C[Cuenta local + PIN]
    B -->|Pro| D[Login social Google/Apple - V1.0]
    B -->|Perfect| E[Login social Google/Apple - V1.0]

    C --> F[Aviso de privacidad]
    D --> F
    E --> F

    F --> I{Tour guiado?}
    I -->|Si| J[Tour 5 pantallas]
    I -->|Saltar| K[Config habitos]
    J --> K

    K --> L{Primer medicamento?}
    L -->|Si| M[Asistente receta/med]
    L -->|Despues| N[Dashboard]
    M --> N

    N --> O{Tier Pro/Perfect?}
    O -->|Si| P{Invitar cuidadores?}
    O -->|No| Q[Onboarding PI completado]
    P -->|Si| R[Flujo invitacion CS]
    P -->|Despues| Q
    R --> Q

V1.0: Pro y Perfect usan login social exclusivamente. Verificacion de email/telefono y MFA adicional planificados paraV1.5+.

8.2.2. Cuidador Responsable (CR)

flowchart TD
    A[CR inicia app] --> B[Selecciona Soy Cuidador Responsable]
    B --> C{Selecciona tier?}
    C -->|Free| D[Cuenta local + PIN]
    C -->|Pro| E[Login social Google/Apple - V1.0]
    C -->|Perfect| F[Login social Google/Apple - V1.0]

    D --> G[Aviso privacidad]
    E --> G
    F --> G

    G --> I[Declaracion jurada de tutela]
    I --> J[Agregar primer dependiente]
    J --> K[Datos del dependiente]
    K --> L[Medicamentos del dependiente]

    L --> M{Tour guiado?}
    M -->|Si| N[Tour especifico CR]
    M -->|Saltar| O[Dashboard CR]
    N --> O

    O --> P{Tier Pro/Perfect - Mas dependientes?}
    P -->|Si| Q[Agregar otro dependiente]
    P -->|No| R[Onboarding CR completado]
    Q --> K

V1.0: Pro y Perfect usan login social exclusivamente. Verificacion adicional y MFA planificados paraV1.5+.

8.2.3. Cuidador Solidario (CS)

flowchart TD
    A[CS recibe invitacion] --> B[Abre link en email/SMS]
    B --> C{Tiene cuenta MedTime?}
    C -->|Si| D[Login]
    C -->|No| E[Crear cuenta Free]

    E --> F[Nombre y PIN]
    F --> G[Aviso privacidad simplificado]

    D --> H[Ver detalles invitacion]
    G --> H

    H --> I[Nombre paciente y permisos]
    I --> J[Aceptar terminos de CS]
    J --> K[Cuenta vinculada]

    K --> L{Tour rapido?}
    L -->|Si| M[Tour 3 pantallas para CS]
    L -->|Saltar| N[Dashboard CS]
    M --> N
    N --> O[Onboarding CS completado]

8.3. Opcion de Saltar en Cada Paso

Paso PI CR CS Consecuencia
Cuenta/Registro Obligatorio Obligatorio Obligatorio Requerido
Aviso privacidad Obligatorio Obligatorio Obligatorio Legal
Declaracion tutela N/A Obligatorio N/A Legal CR
Tour guiado Saltable Saltable Saltable Menu ayuda
Config habitos Saltable Saltable N/A Defaults
Primer medicamento Saltable Saltable N/A Dashboard vacio
Invitar cuidadores Saltable Saltable N/A Configuracion

8.4. Tour Guiado por Rol

8.4.1. Tour Paciente Independiente (5 pantallas)

Pantalla Contenido Interaccion
1. Bienvenida Proposito de MedTime Tap continuar
2. Dashboard Elementos principales Highlight
3. Agregar Medicamento Proceso de captura Demo interactivo
4. Notificaciones Alertas y recordatorios Preview
5. Estadisticas Gamificacion y logros Preview

8.4.2. Tour Cuidador Responsable (5 pantallas)

Pantalla Contenido Interaccion
1. Bienvenida CR Tu rol como cuidador Tap continuar
2. Mis Dependientes Gestionar perfiles Highlight
3. Dashboard Multi Ver todos los dependientes Demo
4. Registrar Tomas Confirmar por dependiente Demo interactivo
5. Alertas CR Recibir alertas de todos Preview

8.4.3. Tour Cuidador Solidario (3 pantallas)

Pantalla Contenido Interaccion
1. Tu Rol Apoyo al paciente Tap continuar
2. Permisos Que puedes ver/hacer Highlight
3. Alertas Como recibiras alertas Preview

9. Sistema de Tutoriales (ACL6-007)

Decision ACL6-007: Sistema completo de tutoriales (guiados + videos + FAQ) desde v1.0.

9.1. Tipos de Tutoriales

Tipo Formato Duracion Disponibilidad
Guiados Overlay interactivo 30-60 seg En contexto
Videos Animaciones cortas 60-90 seg Centro de ayuda
FAQ Texto + imagenes Variable Centro de ayuda
Tooltips Texto breve 5 seg Primera vez que ve elemento

9.2. Catalogo de Tutoriales

OBS-040 (Iteracion 13): TUT-001 corregido para reflejar flujo principal de receta o medicamento individual.

ID Tema Tipo Trigger
TUT-001 Agregar receta o medicamento individual Guiado Primera vez en pantalla de agregar
TUT-002 Confirmar toma Tooltip Primera notificacion
TUT-003 Ver estadisticas Guiado Primera vez en stats
TUT-004 Digitalizar receta con OCR Video Primera vez en captura foto (Pro/Perfect)
TUT-005 Configurar cuidador Guiado Primera vez en cuidadores
TUT-006 Modo offline FAQ Primera vez sin conexion
TUT-007 Exportar datos Video Primera vez en privacidad
TUT-008 Widgets Guiado Primera instalacion de widget
TUT-009 Smartwatch Video Primera conexion de reloj
TUT-010 Eventos de salud Guiado Primera vez en eventos
TUT-011 Medicamento PRN (segun necesidad) Guiado Primera vez agregando PRN
TUT-012 Interacciones medicamentosas Video Primera alerta de interaccion

9.3. Flujo de Tutorial Guiado

flowchart TD
    A[Usuario entra a pantalla nueva] --> B{Tutorial disponible?}
    B -->|Si| C{Ya vio este tutorial?}
    B -->|No| D[Continuar normalmente]

    C -->|No| E[Mostrar prompt de tutorial]
    C -->|Si| D

    E --> F{Usuario acepta?}
    F -->|Si| G[Iniciar tutorial guiado]
    F -->|No gracias| H[Marcar como rechazado]
    F -->|No mostrar de nuevo| I[Marcar como completado]

    H --> D
    I --> D

    G --> J[Mostrar paso 1 con highlight]
    J --> K{Siguiente paso?}
    K -->|Si| L[Mostrar paso N con highlight]
    K -->|No - completado| M[Mostrar felicitacion]

    L --> K

    M --> N[Marcar como completado]
    N --> O[Ofrecer ver video relacionado]
    O --> D

9.4. Centro de Ayuda con Tutoriales

mindmap
  root((CENTRO DE AYUDA))
    Tutoriales en Video
      Primeros pasos
      Gestion de medicamentos
      Digitalizar recetas
      Configurar alertas
      Usar widgets
      Smartwatch
      Eventos de salud
    Guias Paso a Paso
      Lista de tutoriales guiados
      Ver/Repetir cualquier tutorial
    Preguntas Frecuentes
      Cuenta y registro
      Medicamentos
      Notificaciones
      Privacidad
      Suscripciones
      Problemas tecnicos

10. Sistema de Busqueda Global (ACL6-008)

Decision ACL6-008: Busqueda global + filtros avanzados desde v1.0.

10.1. Ambitos de Busqueda

Ambito Contenido Indexado Filtros
Medicamentos Nombre, principio activo, notas Activo/Inactivo
Recetas Medico, medicamentos, notas Fecha, medico
Citas Medico, especialidad, notas Fecha, tipo
Eventos de salud Tipo, valores, notas Fecha, tipo
Ayuda FAQ, tutoriales Categoria
Configuracion Opciones de menu Seccion

10.2. Flujo de Busqueda Global

flowchart TD
    A[Usuario toca barra de busqueda] --> B[Mostrar teclado + sugerencias recientes]
    B --> C[Usuario escribe query]
    C --> D{Query >= 2 caracteres?}

    D -->|Si| E[Buscar en todos los ambitos]
    D -->|No| F[Mostrar sugerencias]

    E --> G[Mostrar resultados agrupados]
    G --> H{Resultados encontrados?}

    H -->|Si| I[Mostrar por categoria]
    H -->|No| J[Mostrar Sin resultados + sugerencias]

    I --> K{Usuario aplica filtros?}
    K -->|Si| L[Filtrar resultados]
    K -->|No| M[Resultados completos]

    L --> N[Usuario selecciona resultado]
    M --> N

    N --> O[Navegar a pantalla de detalle]
    O --> P[Resaltar match del query]

10.3. Interfaz de Busqueda

+--------------------------------------------------+
| [Icono lupa] Buscar en MedTime...          [X]   |
+--------------------------------------------------+
| RECIENTES                                        |
| > Metformina                                     |
| > Dr. Garcia                                     |
+--------------------------------------------------+
| SUGERENCIAS                                      |
| > Agregar medicamento                            |
| > Ver estadisticas                               |
| > Configurar alertas                             |
+--------------------------------------------------+

10.4. Resultados de Busqueda

+--------------------------------------------------+
| [Icono lupa] metfor                        [X]   |
+--------------------------------------------------+
| MEDICAMENTOS (2)                                 |
| > Metformina 850mg - Activo                      |
| > Metformina 500mg - Inactivo                    |
+--------------------------------------------------+
| RECETAS (1)                                      |
| > Receta Dr. Garcia - 15/10/2025                 |
+--------------------------------------------------+
| AYUDA (3)                                        |
| > Como cambiar dosis de medicamento              |
| > Que hacer si olvido una toma                   |
| > Agregar medicamento manualmente                |
+--------------------------------------------------+
| [Ver todos los resultados]                       |
+--------------------------------------------------+

10.5. Filtros Avanzados

Filtro Opciones Aplicable a
Fecha Hoy, Esta semana, Este mes, Personalizado Recetas, Citas, Eventos
Estado Activo, Inactivo, Todos Medicamentos
Tipo Lista dinamica segun ambito Eventos, Citas
Medico Lista de medicos conocidos Recetas, Citas

11. Flujos de Error

11.1. Error de Conexion

flowchart TD
    A[Accion requiere red] --> B[Detecta sin conexion]
    B --> C[Guardar accion localmente]
    C --> D[Mostrar indicador offline]
    D --> E{Conexion restaurada?}
    E -->|Si| F[Sincronizar automaticamente]
    E -->|No| G[Reintentar periodicamente]
    F --> H[Confirmar sincronizacion]
    G --> E

11.2. Error de OCR

flowchart TD
    A[Procesar receta con OCR] --> B{Resultado OCR?}
    B -->|Exito alta confianza| C[Mostrar datos extraidos]
    B -->|Exito baja confianza| D[Resaltar campos dudosos]
    B -->|Falla| E[Mostrar opciones]
    C --> F[Usuario verifica y confirma]
    D --> G[Usuario corrige campos marcados]
    E --> H{Seleccion?}
    H -->|Reintentar| I[Nueva foto/mejor iluminacion]
    H -->|Entrada manual| J[Formulario de captura]
    I --> A
    J --> K[Usuario ingresa datos manualmente]
    F --> L[Guardar receta]
    G --> L
    K --> L

12. Flujos Adicionales (Iteración 11)

12.1. Agregar Medicamento sin Codigo de Barras (UF-MED-002)

Flujo para agregar medicamentos cuando no se tiene empaque o codigo de barras disponible.

OBS-041 (Iteracion 13): Diagrama corregido - removidos caracteres especiales que causaban error de parseo Mermaid.

flowchart TD
    A[Usuario abre Agregar Medicamento] --> B{Metodo de entrada?}

    B -->|Codigo de barras| C[Escanear con camara]
    B -->|Busqueda por nombre| D[Escribir nombre del medicamento]
    B -->|Entrada manual| E[Formulario completo]

    C --> F{Codigo reconocido?}
    F -->|Si| G[Mostrar datos del medicamento]
    F -->|No| D

    D --> H{Resultados encontrados?}
    H -->|Si| I[Mostrar lista de coincidencias]
    H -->|No| J[Sugerir alternativas o Agregar personalizado]

    I --> K[Usuario selecciona medicamento]
    J --> E

    K --> L[Configurar horarios y dosis]
    G --> L
    E --> L

    L --> M[Verificar interacciones]
    M --> N{Interacciones?}
    N -->|Ninguna| O[Guardar medicamento]
    N -->|Encontradas| P[Mostrar advertencias]
    P --> Q{Usuario continua?}
    Q -->|Si| O
    Q -->|No| R[Cancelar o modificar]

12.1.1. Pantalla de Entrada Manual

+--------------------------------------------------+
| AGREGAR MEDICAMENTO PERSONALIZADO                 |
+--------------------------------------------------+

Nombre del medicamento *
[_________________________________]

Principio activo
[_________________________________]

Forma farmacéutica *
[Tableta ] [Cápsula] [Jarabe] [Inyectable] [Otro]

Concentración
[___________] [mg ]

Laboratorio (opcional)
[_________________________________]

Notas adicionales
[_________________________________]
[_________________________________]

+--------------------------------------------------+
| [Cancelar]                    [Guardar y configurar] |
+--------------------------------------------------+

12.2. Resolver Conflicto Entre Cuidadores Responsables (UF-FAM-002)

Nota Terminologica (Iteracion 13): "Tutor" ha sido reemplazado por "Cuidador Responsable" segun decision ACL12-002.

OBS-042 (Iteracion 13): Diagrama corregido - removidos caracteres especiales que causaban error de parseo Mermaid.

Flujo para manejar cuando dos Cuidadores Responsables editan simultaneamente datos de un dependiente.

flowchart TD
    A[CR-A guarda cambios] --> B[Sistema detecta conflicto de version]
    B --> C[Mostrar pantalla de resolucion]

    C --> D[Ver cambios de ambos cuidadores]
    D --> E{Tipo de conflicto?}

    E -->|Mismo campo| F[Mostrar valores en conflicto]
    E -->|Campos diferentes| G[Auto-merge posible]

    F --> H{CR-A decide}
    H -->|Mantener mis cambios| I[Sobrescribir version de CR-B]
    H -->|Aceptar cambios del otro| J[Descartar mis cambios]
    H -->|Combinar manualmente| K[Abrir editor de merge]

    G --> L[Combinar automaticamente]
    L --> M[Notificar a ambos cuidadores]

    I --> N[Notificar a CR-B cambios sobrescritos]
    J --> O[Confirmar descarte]
    K --> P[Usuario edita campos manualmente]
    P --> Q[Guardar version combinada]

    N --> R[Registrar en audit log]
    O --> R
    Q --> R
    M --> R

Leyenda: CR-A = Cuidador Responsable A, CR-B = Cuidador Responsable B

12.2.1. Pantalla de Resolución de Conflictos

+--------------------------------------------------+
| CONFLICTO DETECTADO                               |
+--------------------------------------------------+

Otro cuidador responsable ([email]) modificó este perfil hace 2 minutos.

┌─────────────────────────────────────────────────┐
 CAMPO: Alergias                                  
├─────────────────────────────────────────────────┤
 Versión de [Mamá]:      Tu versión:            
 "Penicilina, Sulfa"     "Penicilina"           
└─────────────────────────────────────────────────┘

[Ver todos los cambios (3)]

+--------------------------------------------------+
| [Mantener mi versión]  [Aceptar otra]  [Combinar] |
+--------------------------------------------------+

12.3. Recuperacion de Fallo de Pago via IAP (UF-PAY-001)

OBS-043 (Iteracion 13): Flujo reestructurado para V1.0 solo IAP. Sin pasarela propia, sin PayPal, sin tarjetas directas. Solo App Store / Google Play.

Flujo para recuperar suscripcion despues de un pago fallido en IAP.

flowchart TD
    A[App Store o Play Store detecta pago fallido] --> B[Notificar a MedTime via webhook]
    B --> C[MedTime notifica usuario]

    C --> D{Usuario actua?}
    D -->|Si - Gestionar suscripcion| E[Abrir configuracion de suscripcion]
    D -->|No| F[Recordatorio dia 3]

    E --> G{Plataforma?}
    G -->|iOS| H[Abrir App Store - Suscripciones]
    G -->|Android| I[Abrir Play Store - Suscripciones]

    H --> J[Usuario actualiza metodo pago en App Store]
    I --> K[Usuario actualiza metodo pago en Play Store]

    J --> L{Pago exitoso?}
    K --> L

    L -->|Si| M[Store notifica a MedTime]
    L -->|No| N[Usuario ve error en Store]

    M --> O[Restaurar suscripcion Pro/Perfect]
    N --> P{Reintentar?}
    P -->|Si| E
    P -->|No| Q[Volver al dashboard]

    F --> R[Recordatorio dia 5]
    R --> S[Sin accion dia 7]
    S --> T[Downgrade INMEDIATO a Free]
    T --> U[Notificar cuenta ahora Free]
    U --> V[Ofrecer reactivar desde Store]

    O --> W[Confirmar suscripcion activa]

Nota V1.0: MedTime no gestiona metodos de pago directamente. Toda la gestion de pagos ocurre en App Store (iOS) o Play Store (Android). MedTime solo recibe webhooks de estado de suscripcion.

12.3.1. Pantalla de Recuperacion de Pago (V1.0 IAP)

+--------------------------------------------------+
| PROBLEMA CON TU SUSCRIPCION                       |
+--------------------------------------------------+

Tu suscripcion Pro no pudo renovarse.
Actualiza tu metodo de pago para continuar.

Estado: Pro (expira en 3 dias)
Precio: $4.99 USD/mes

+--------------------------------------------------+
| [Gestionar en App Store]                          |
|  o                                                |
| [Gestionar en Play Store]                         |
+--------------------------------------------------+

Si no actualizas, tu cuenta cambiara a Free
automaticamente y perderas acceso a:
- Sincronizacion cloud
- Acceso de cuidadores
- OCR avanzado

Tus datos se conservaran cifrados por 7 anos.

[Continuar como Free]    [Gestionar Suscripcion]
+--------------------------------------------------+

12.4. Flujo de Medicamento con Fotos de Referencia (UF-MED-003)

Flujo para agregar fotos del medicamento real como referencia visual.

OBS-044 (Iteracion 13): Diagrama corregido - removidos caracteres especiales que causaban error de parseo Mermaid.

flowchart TD
    A[Usuario en detalle de medicamento] --> B[Tocar Agregar foto]
    B --> C{Fuente de imagen?}

    C -->|Camara| D[Abrir camara]
    C -->|Galeria| E[Seleccionar de galeria]

    D --> F[Tomar foto del empaque o pastillas]
    E --> G[Elegir imagen existente]

    F --> H[Vista previa de foto]
    G --> H

    H --> I{Foto aceptable?}
    I -->|Si| J[Recortar o ajustar si necesario]
    I -->|No| K[Reintentar]
    K --> C

    J --> L[Cifrar y guardar foto localmente]
    L --> M{Tier permite sync?}
    M -->|Pro o Perfect| N[Sincronizar foto cifrada a cloud]
    M -->|Free| O[Solo almacenar local]

    N --> P[Foto visible en todos los dispositivos]
    O --> Q[Foto solo en este dispositivo]

    P --> R[Mostrar en detalle del medicamento]
    Q --> R

12.4.1. Uso de la Foto

Ubicación Uso
Detalle de medicamento Referencia visual para identificar
Alerta de toma Mostrar miniatura para confirmar
Compartir con cuidador Verificar que es el medicamento correcto
Reabastecimiento Mostrar empaque para comprar igual

13. Flujos de Pago y Suscripcion (Iteracion 13)

Referencia Completa: MTS-PAY-001: Pagos y Suscripciones

13.1. UF-006: Upgrade Free a Pro (via IAP)

Proceso de conversion de usuario Free a suscriptor Pro usando In-App Purchase.

Decisiones del Director (Iteracion 13):

  • Solo IAP (App Store / Google Play) para v1.0
  • Sin Stripe ni pasarela web propia
  • 7 dias de prueba gratuita
flowchart TD
    A[Usuario Free selecciona Upgrade] --> B[Mostrar comparativa planes]
    B --> C[Usuario selecciona Pro]
    C --> D{Periodo}
    D -->|Mensual| E[$4.99/mes]
    D -->|Anual| F[$49.99/ano]
    E --> G[Iniciar IAP]
    F --> G
    G --> H{Plataforma}
    H -->|iOS| I[StoreKit 2]
    H -->|Android| J[Google Play Billing]
    I --> K{Compra OK?}
    J --> K
    K -->|Si| L[Verificar receipt]
    K -->|No| M[Error - volver]
    L --> N[Activar Pro]
    N --> O[Migrar datos a cloud]
    O --> P[Dashboard Pro]

Ver flujo completo: PAY-F01 en MTS-PAY-001


13.2. UF-007: Downgrade Pro a Free (Sin Grace Period)

Proceso de downgrade cuando pago falla o usuario lo solicita. Sin periodo de gracia - el downgrade es inmediato.

Decisiones del Director (Iteracion 13):

  • Sin grace period - Downgrade inmediato cuando pago falla
  • Datos cloud conservados 7 anos (cifrados)
  • Wizard de seleccion de datos disponible
flowchart TD
    A[Pago falla] --> B[Notificar usuario]
    B --> C[Downgrade INMEDIATO]
    C --> D[Desactivar sync cloud]
    D --> E[Cuidadores pierden acceso]
    E --> F[Datos quedan cifrados 7 anos]
    F --> G[Usuario es Free]
    G --> H{Actualiza pago?}
    H -->|Si| I[Restaurar Pro inmediatamente]
    H -->|No| J[Continuar como Free]

Ver flujo completo: PAY-F04 en MTS-PAY-001


14. Indice Consolidado de Flujos de Onboarding (Iteracion 13)

OBS-045 (Iteracion 13): Todos los flujos de onboarding consolidados en un solo indice con referencias cruzadas.

14.1. Ubicacion Canonica de Flujos de Onboarding

Aspecto Ubicacion en este documento Referencia externa
Onboarding Adaptativo por Tier y Rol Seccion 8 -
Matriz Tier x Rol 8.1.1 -
Pasos por Rol 8.1.2 -
Flujo PI 8.2.1 -
Flujo CR 8.2.2 -
Flujo CS 8.2.3 -
Tours por Rol 8.4 -
Registro y Primera Autenticacion Seccion 2.1.3 MTS-AUTH-001
Tutoriales Seccion 9 -
Modulo Completo Onboarding - MTS-ONB-001

14.2. Resumen de Flujos de Onboarding por Codigo

Flujo Descripcion Obligatorio Seccion
UF-REG-001 Registro y primera autenticacion Si 2.1.3
ONB-F01 Primera apertura de la app Si 8.2
ONB-F02 Registro de cuenta por rol Si 8.2
ONB-F03 Configuracion de perfil Si 8.2
ONB-F04 Primera receta/medicamento (Wizard) No 8.2
ONB-F05 Configuracion de notificaciones No 8.2
ONB-F06 Tutorial interactivo por rol No 8.4, 9
ONB-F07 Seleccion de plan (solo PI, CR) Segun rol 8.2
ONB-F08 Vinculacion de cuidador No 2.4
ONB-F09 Configuracion de wearable No 6

14.3. Decisiones Clave (Iteracion 13)

  • Wizard de Receta: El flujo principal es por receta medica O medicamento individual (corregido OBS-040)
  • 4 Roles de Usuario: Paciente Independiente (PI), Cuidador Responsable (CR), Cuidador Solidario (CS), Paciente Dependiente (PD)
  • Solo 3 Tiers: Free, Pro, Perfect (el Portal Clinico para profesionales es producto separado v2.0+)
  • Solo IAP: In-App Purchase exclusivamente para v1.0
  • CS/PD no seleccionan tier: Obtienen Free automaticamente (corregido OBS-032)

14.4. Flujo Maestro de Autenticacion (Simplificado)

Para flujo completo ver Seccion 2.1.3

V1.0: Pro/Perfect usan exclusivamente login social (Google/Apple). No hay MFA adicional en V1.0.

flowchart TD
    A[Usuario abre app] --> B{Primera vez?}
    B -->|Si| C[Ir a Seccion 8.2 segun rol]
    B -->|No| D{Tiene sesion?}

    D -->|Si valida| E[Dashboard]
    D -->|No o Expirada| F{Tipo cuenta?}

    F -->|Free local| G[PIN o Biometria local]
    F -->|Pro o Perfect| H[Login social Google/Apple - V1.0]

    G --> E
    H --> E

V1.5+: Se agregara verificacion adicional con MFA (TOTP) y verificacion de telefono.

14.5. Referencias Cruzadas de Onboarding

Si necesitas... Ve a...
Flujo completo por rol Seccion 8.2
Que pasos son saltables Seccion 8.3
Contenido de tours Seccion 8.4
Sistema de tutoriales Seccion 9
Flujo de cuidadores Seccion 2.4
Especificacion completa MTS-ONB-001

15. Flujos de Medicamentos PRN

Los flujos detallados para medicamentos PRN (Pro Re Nata) estan documentados en el modulo especifico.

Ver: MTS-PRN-001 - Medicamentos PRN

15.1. Flujos Disponibles

ID Flujo Descripcion Seccion en MTS-PRN-001
UF-PRN-001 Registrar Toma PRN Usuario registra toma de medicamento a demanda Seccion 5.1
UF-PRN-002 Configurar Limites Configuracion de dosis maxima e intervalo minimo Seccion 5.2
UF-PRN-003 Alerta de Limite Sistema alerta cuando se acerca al limite diario Seccion 5.3
UF-PRN-004 Override con Justificacion Usuario solicita override del bloqueo de limite Seccion 5.4

Nota: Los medicamentos PRN funcionan 100% offline. Las alertas de limite se procesan localmente.


16. Referencias

16.1. Documentos de Arquitectura

16.2. Modulos del Sistema

16.3. Modulos de Interfaz

16.4. Modulos de Datos de Salud

16.5. Historial de Cambios (Iteracion 13)

OBS Seccion Cambio Aplicado
OBS-031 2.1.2 Clarificacion consentimiento datos salud en onboarding Pro/Perfect
OBS-032 2.1.3 CS y PD no seleccionan tier - obtienen Free automatico
OBS-033 2.3 Flujo anadir medicamento diferenciado por tier (local vs servidor)
OBS-034 2.4 Flujos separados para CS (invitado) y CR (crea cuenta)
OBS-035 3 Flujos separados por los 4 roles (PI, CS, CR, PD)
OBS-036 4.2 Opciones de recaptura/galeria en error OCR
OBS-037 7.3 Clarificacion consentimiento fotos tratamiento (cifrado local)
OBS-038 7.7 Corregido "complicacion" a "widget de medicion"
OBS-039 8 Onboarding detallado por tier Y rol
OBS-040 9.2 TUT-001 corregido a "receta o medicamento individual"
OBS-041 12.1 Diagrama Mermaid UF-MED-002 corregido
OBS-042 12.2 Diagrama Mermaid UF-FAM-002 corregido
OBS-043 12.3 UF-PAY-001 reestructurado para V1.0 solo IAP
OBS-044 12.4 Diagrama Mermaid UF-MED-003 corregido
OBS-045 14 Indice consolidado de flujos de onboarding

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