Saltar a contenido

Modulo de Gestion de Usuarios

Identificador: MTS-USR-001 Version: 2.1.0 Fecha: 2025-12-02 Ultima Revision: Iteracion 10 - ACL9-002 Verificacion escalonada de tutela Autor: SpecQueen Decision: ACL8-001 - Unificacion cuidadores/perfiles vinculados


1. Proposito

Este modulo gestiona los perfiles de usuarios del sistema MedTime, incluyendo pacientes, cuidadores y las relaciones entre ellos. Define el modelo unificado de perfiles que distingue entre cuidadores solidarios y cuidadores responsables.

2. Actores

Actor Descripcion Tier
Paciente Autonomo Usuario principal mayor de edad, propietario de datos de salud Free/Pro/Perfect
Paciente Dependiente Menor de edad o adulto incapaz bajo responsabilidad de un cuidador Pro/Perfect
Cuidador Solidario Persona de confianza que apoya al paciente (pareja, amigos, hijos adultos) Pro/Perfect
Cuidador Responsable Tutor legal o profesional con responsabilidad sobre pacientes Pro/Perfect
Perfil Vinculado Usuario con acceso limitado sin responsabilidades de cuidado Pro/Perfect
Contacto de Emergencia Persona que solo recibe alertas criticas (sin acceso a datos) Free/Pro/Perfect
Profesional de Salud Medico u otro profesional verificado con acceso a pacientes Portal Clinico (v2.0+)

3. Modelo Unificado de Cuidadores (ACL8-001)

Decision del Director Round 8: Los cuidadores se distinguen en dos tipos segun su nivel de responsabilidad.

3.1. Cuidador Solidario

Aspecto Descripcion
Definicion Persona de confianza del paciente que apoya en la gestion de medicacion y salud
Relaciones tipicas Pareja, amigos cercanos, hijos adultos, padres de pacientes adultos
Control El paciente es el usuario principal y mantiene control total sobre su cuenta
Responsabilidad De apoyo, sin responsabilidad legal sobre el paciente
Permisos Configurados por el paciente, revocables en cualquier momento
Alertas Recibe alertas segun configuracion del paciente

3.2. Cuidador Responsable

Aspecto Descripcion
Definicion Persona con responsabilidad legal o medica sobre el paciente
Relaciones tipicas Padres de menores, tutores legales de adultos incapaces, profesionales de salud
Control El cuidador es el usuario principal de la cuenta
Responsabilidad Legal y/o medica sobre uno o mas pacientes
Permisos Control total sobre los perfiles de pacientes a su cargo
Limites por tier Free: 1 paciente, Pro: 5 pacientes, Perfect: 10 pacientes

3.3. Diferencias Clave

Caracteristica Cuidador Solidario Cuidador Responsable
Quien es el titular de la cuenta El paciente El cuidador
Quien otorga permisos El paciente El cuidador (auto-otorgados)
Puede revocar el paciente Si, en cualquier momento No (es menor/incapaz)
Acceso a datos Segun permisos otorgados Completo a pacientes a cargo
Recibe alertas criticas Si Si
Puede actuar en emergencia Segun permisos Si, siempre
Registro de tomas Segun permisos Si, siempre
Modificar medicamentos No Si

3.4. Diagrama de Relaciones

flowchart TD
    subgraph "Cuenta del Paciente Autonomo"
        PA[Paciente Autonomo]
        PA --> CS1[Cuidador Solidario 1]
        PA --> CS2[Cuidador Solidario 2]
        PA --> PV1[Perfil Vinculado 1]
        PA --> CE1[Contacto Emergencia]
    end

    subgraph "Cuenta del Cuidador Responsable"
        CR[Cuidador Responsable]
        CR --> PD1[Paciente Dependiente 1]
        CR --> PD2[Paciente Dependiente 2]
        CR --> CSR1[Cuidador Solidario del CR]
    end

    subgraph "Transicion a los 18"
        PD1 -.->|Cumple 18 anos| PA2[Nueva Cuenta Autonoma]
    end

3.5. Reglas de Negocio del Modelo Unificado

ID Regla
RN-CUI-001 Un usuario solo puede ser cuidador responsable O paciente autonomo, no ambos
RN-CUI-002 Un cuidador responsable tier Free solo puede tener 1 paciente a cargo
RN-CUI-003 Un cuidador responsable tier Pro puede tener hasta 5 pacientes a cargo
RN-CUI-004 Un cuidador responsable tier Perfect puede tener hasta 10 pacientes a cargo
RN-CUI-005 Un paciente autonomo puede designar hasta 5 cuidadores solidarios
RN-CUI-006 Un cuidador solidario debe aceptar la invitacion para activar el rol
RN-CUI-007 El paciente autonomo puede revocar a un cuidador solidario en cualquier momento
RN-CUI-008 Un cuidador solidario puede desvincularse voluntariamente
RN-CUI-009 Al cumplir 18 anos, un paciente dependiente puede migrar a cuenta autonoma
RN-CUI-010 La transicion a los 18 anos es obligatoria antes de los 18.5 anos

3.6. Actor: Profesional de Salud (Nuevo en v1.7.0)

Nota Iteracion 13: Clinical NO es un tier de suscripcion. Es un rol para profesionales de salud verificados, planificado para Portal Clinico v2.0+. Ver Portal Medicos.

Aspecto Descripcion
Definicion Profesional de salud con cedula profesional verificada
Verificacion Automatica via cedulaprofesional.sep.gob.mx (Mexico)
Acceso Solo lectura de pacientes que otorgan consentimiento
Funcionalidades Dashboard de pacientes, alertas, exportar reportes

3.6.1. Flujo: Registro de Profesional de Salud

flowchart TD
    A[Profesional descarga MedTime] --> B[Selecciona 'Soy Profesional de Salud']
    B --> C[Ingresa datos personales]
    C --> D[Ingresa cedula profesional]
    D --> E{API SEP/CONACEM}
    E -->|Cedula valida| F[Verificar coincidencia de datos]
    E -->|Cedula no encontrada| G[Ofrecer verificacion manual]
    F -->|Datos coinciden| H[Crear cuenta Clinical]
    F -->|Datos no coinciden| G
    G --> I[Subir documentacion]
    I --> J[Revision manual 24-48h]
    J -->|Aprobado| H
    J -->|Rechazado| K[Notificar y ofrecer opciones]
    H --> L[Onboarding Clinical]
    L --> M[Dashboard vacio - invitar pacientes]

3.6.2. Permisos del Profesional de Salud

Permiso Descripcion Requiere Consentimiento
ver_medicamentos Ver lista de medicamentos del paciente Si
ver_adherencia Ver estadisticas de adherencia Si
ver_recetas Ver recetas digitalizadas Si
ver_citas Ver calendario de citas Si
ver_analisis Ver resultados de analisis Si
exportar_reporte Generar PDF para historia clinica Si
recibir_alertas Recibir alertas de pacientes en riesgo Si (opt-in por paciente)

3.6.3. Reglas de Negocio del Actor Profesional

ID Regla
RN-PROF-001 Profesional no puede modificar datos del paciente (solo lectura)
RN-PROF-002 Profesional no puede ver datos sin consentimiento explicito del paciente
RN-PROF-003 Paciente puede revocar acceso en cualquier momento
RN-PROF-004 Profesional recibe notificacion cuando paciente revoca acceso
RN-PROF-005 Audit log de cada acceso del profesional a datos de paciente
RN-PROF-006 Cedula debe re-verificarse anualmente

4. Funcionalidades

4.1. Perfil de Paciente (MTS-USR-001-F01)

4.1.1. Descripción 3.1

Gestión completa del perfil de paciente incluyendo datos personales, médicos y preferencias.

4.1.2. Datos del Perfil

4.1.2.1. Información Personal
Campo Tipo Obligatorio Editable Sensible
nombre string Sí (PII)
apellidos string Sí (PII)
fecha_nacimiento date No* Sí (PII)
genero enum No Sí (PII)
email string Sí** Sí (PII)
telefono string Sí** Sí (PII)
direccion object No Sí (PII)
foto_perfil binary No Sí (PII)

Requiere verificación de identidad para cambiar
*Requiere verificación del nuevo valor

4.1.2.2. Información Médica Básica
Campo Tipo Obligatorio Editable Sensible
tipo_sangre enum No Sí (PHI)
alergias array No Sí (PHI)
condiciones_cronicas array No Sí (PHI)
peso number No Sí (PHI)
altura number No Sí (PHI)
notas_medicas string No Sí (PHI)
4.1.2.3. Preferencias del Sistema
Campo Tipo Default Descripción
idioma enum Según país es, en, pt
zona_horaria string Auto-detectada IANA timezone
formato_hora enum 24h 12h, 24h
tema enum system light, dark, system
unidades_peso enum kg kg, lb
unidades_altura enum cm cm, ft
4.1.2.4. Preferencias de Notificación
Campo Tipo Default Descripción
notif_push boolean true Notificaciones push
notif_sms boolean false Recordatorios por SMS
notif_email boolean true Resumen por email
notif_sonido boolean true Sonido en notificaciones
notif_vibracion boolean true Vibración en notificaciones
modo_no_molestar object null Horarios de silencio

4.1.3. Flujo: Editar Perfil

  1. Usuario accede a "Mi Perfil"
  2. Sistema muestra datos actuales organizados por sección
  3. Usuario selecciona campo a editar
  4. Sistema muestra editor apropiado al tipo de campo
  5. Usuario modifica valor
  6. Sistema valida formato y restricciones
  7. Si campo es sensible (email/teléfono), requiere verificación
  8. Sistema guarda cambio y registra en historial
  9. Sistema confirma actualización

4.1.4. Reglas de Negocio

ID Regla
RN-USR-001 Cambio de email requiere verificación del nuevo email
RN-USR-002 Cambio de teléfono requiere verificación por SMS
RN-USR-003 Fecha de nacimiento solo editable con verificación de identidad
RN-USR-004 Foto de perfil máximo 5MB, formatos JPG/PNG
RN-USR-005 Historial de cambios se mantiene por 2 años

4.2. Gestion de Cuidadores Solidarios (MTS-USR-001-F02)

Actualizado en Iteracion 9: Refleja el modelo unificado de cuidadores.

4.2.1. Descripcion 3.2

Permite a un paciente autonomo designar cuidadores solidarios con permisos especificos para apoyar en su tratamiento. Los cuidadores solidarios son personas de confianza sin responsabilidad legal.

4.2.2. Flujo: Invitar Cuidador Solidario

  1. Paciente autonomo accede a "Mis Cuidadores"
  2. Paciente selecciona "Invitar Cuidador Solidario"
  3. Sistema muestra formulario de invitacion
  4. Paciente ingresa email o telefono del cuidador
  5. Paciente define relacion (pareja, hijo/a, amigo/a, otro familiar)
  6. Paciente selecciona permisos a otorgar:
  7. Ver medicamentos
  8. Ver adherencia
  9. Registrar tomas en mi nombre
  10. Recibir alertas de tomas
  11. Recibir alertas criticas de emergencia
  12. Ver recetas
  13. Ver citas
  14. Ver analisis clinicos
  15. Paciente confirma invitacion
  16. Sistema envia invitacion con enlace unico (valido 7 dias)
  17. Sistema registra invitacion pendiente

4.2.3. Flujo: Aceptar Invitacion (Cuidador Solidario)

  1. Persona recibe invitacion por email/SMS
  2. Persona accede al enlace de invitacion
  3. Si no tiene cuenta, sistema inicia registro simplificado
  4. Si tiene cuenta, sistema solicita login
  5. Sistema muestra detalles de la invitacion:
  6. Nombre del paciente
  7. Permisos otorgados
  8. Aviso de responsabilidad solidaria
  9. Sistema muestra texto legal de responsabilidad:
   "Al aceptar ser cuidador solidario de [nombre],
   te comprometes a:
   - Usar la informacion solo para apoyar su tratamiento
   - Respetar su privacidad y confidencialidad
   - Responder a alertas criticas cuando sea posible

   Recuerda que [nombre] mantiene control total sobre
   sus datos y puede revocar tu acceso en cualquier momento."
   ```

7. Cuidador acepta terminos
8. Sistema activa relacion paciente-cuidador solidario
9. Sistema notifica al paciente de aceptacion

#### 4.2.4. Flujo: Revocar Acceso de Cuidador Solidario

1. Paciente accede a "Mis Cuidadores"
2. Paciente selecciona cuidador a remover
3. Sistema muestra confirmacion con implicaciones:
   - El cuidador dejara de recibir alertas
   - Perdera acceso a todos los datos
   - Sera notificado de la revocacion
4. Paciente confirma revocacion
5. Sistema elimina permisos inmediatamente
6. Sistema notifica al cuidador de revocacion
7. Sistema registra evento en audit log

#### 4.2.5. Permisos de Cuidador Solidario

| Permiso | Descripcion | Default | Configurable |
| --------- | ------------- | --------- | -------------- |
| ver_medicamentos | Ver lista de medicamentos del paciente | Si | Si |
| ver_adherencia | Ver estadisticas de adherencia | Si | Si |
| registrar_tomas | Confirmar/omitir tomas en nombre del paciente | No | Si |
| recibir_alertas_tomas | Recibir notificaciones de tomas omitidas | Si | Si |
| recibir_alertas_criticas | Recibir alertas de emergencia | Si | No (siempre activo para cuidadores) |
| ver_recetas | Ver recetas digitalizadas | No | Si |
| ver_citas | Ver calendario de citas | No | Si |
| ver_analisis | Ver resultados de analisis | No | Si |

#### 4.2.6. Reglas de Negocio 3.2

| ID | Regla |
| ---- | ------- |
| RN-USR-010 | Maximo 5 cuidadores solidarios activos por paciente |
| RN-USR-011 | Invitacion expira en 7 dias |
| RN-USR-012 | Cuidador solidario puede apoyar hasta 10 pacientes simultaneamente |
| RN-USR-013 | Paciente puede modificar permisos en cualquier momento |
| RN-USR-014 | Revocacion de acceso es efectiva inmediatamente |
| RN-USR-015 | Cuidador solidario recibe alertas criticas aunque desactive otras alertas |

---

### 4.3. Gestion de Cuidadores Responsables (MTS-USR-001-F02B)

#### 4.3.1. Descripcion

Los cuidadores responsables son usuarios que tienen a su cargo uno o mas pacientes dependientes (menores de edad o adultos incapaces). El cuidador responsable es el titular de la cuenta.

#### 4.3.2. Flujo: Crear Cuenta de Cuidador Responsable (ACL9-002)

> **Decision del Director Round 9 (PREG-R9-002)**: Opcion C - Verificacion escalonada. Declaracion para comenzar, documentacion si hay disputa.

##### 4.3.2.1. Flujo Principal (Verificacion Escalonada)

```mermaid
flowchart TD
    A[Usuario selecciona Soy cuidador] --> B[Mostrar opciones de relacion]
    B --> C{Tipo de relacion?}

    C -->|Padre/Madre de menor| D[Declaracion jurada simple]
    C -->|Tutor legal| E[Declaracion jurada + indicar tipo tutela]
    C -->|Cuidador profesional| F[Flujo de verificacion profesional]

    D --> G[Checkbox de responsabilidad]
    E --> G
    F --> H[Solicitar credenciales profesionales]

    G --> I[Usuario acepta declaracion]
    I --> J[Cuenta creada con estado DECLARADO]
    J --> K[Puede agregar dependientes inmediatamente]

    H --> L{Credenciales validas?}
    L -->|Si| M[Cuenta creada con estado VERIFICADO]
    L -->|No| N[Revision manual 24-48h]
4.3.2.2. Estados de Verificacion de Tutela
Estado Descripcion Permisos
DECLARADO Solo declaracion jurada aceptada Completos, sujeto a disputa
DOCUMENTADO Documentacion subida, pendiente revision Completos
VERIFICADO Documentacion revisada y aprobada Completos
DISPUTADO Otro adulto reclama acceso/tutela Limitados hasta resolucion
4.3.2.3. Flujo de Disputa de Tutela
flowchart TD
    A[Otro adulto solicita acceso al menor] --> B[Sistema detecta perfil existente]
    B --> C[Notificar a cuidador actual]
    C --> D{Cuidador actual tiene documentacion?}

    D -->|No - Solo declarado| E[Solicitar documentacion a cuidador actual]
    D -->|Si - Documentado/Verificado| F[Solicitar documentacion a solicitante]

    E --> G{Cuidador sube documentos en 7 dias?}
    G -->|Si| H[Revision manual de ambas partes]
    G -->|No| I[Cuenta pasa a DISPUTADO]

    F --> J{Solicitante tiene documentacion valida?}
    J -->|Si| H
    J -->|No| K[Rechazar solicitud]

    H --> L{Quien tiene tutela legal?}
    L -->|Cuidador actual| M[Confirmar y cerrar disputa]
    L -->|Solicitante| N[Transferir control al solicitante]
    L -->|Ambos| O[Crear acceso compartido]
    L -->|Indeterminado| P[Escalar a soporte legal]

    I --> Q[Bloquear modificaciones hasta resolucion]
4.3.2.4. Declaracion Jurada (Pantalla)
+--------------------------------------------------+
| DECLARACION DE RESPONSABILIDAD                    |
+--------------------------------------------------+

Al registrar a [Nombre del menor] como dependiente,
declaro bajo protesta de decir verdad que:

[ ] Soy el padre, madre o tutor legal del menor
[ ] Tengo la custodia legal o comparto la custodia
[ ] Estoy autorizado para gestionar su informacion de salud
[ ] Notificare a MedTime si mi situacion legal cambia

IMPORTANTE:
Si otro adulto con derecho legal sobre el menor
solicita acceso, se te pedira documentacion de tutela.

Tipo de relacion:
[Padre/Madre v]

[ ] He leido y acepto esta declaracion

[Cancelar]                    [Continuar]
+--------------------------------------------------+
4.3.2.5. Documentos Aceptados para Verificacion de Tutela
Documento Pais Situacion
Acta de nacimiento Todos Padres biologicos
Sentencia de custodia Todos Custodia legal
Tutela legal Mexico Tutores designados judicialmente
Guardianship decree USA Legal guardians
Termo de guarda Brasil Guardioes legais
Carta poder notariada Todos Cuidadores temporales
4.3.2.6. Audit Trail de Tutela (HIPAA-TUT-001)

Añadido Iteración 11: Registro inmutable de eventos de tutela para cumplimiento HIPAA.

Campo Descripción Ejemplo
timestamp Fecha/hora UTC del evento 2025-12-02T10:30:00Z
actor_id Usuario que realizó la acción UUID del cuidador
accion Tipo de evento CREAR_TUTELA, DISPUTAR, VERIFICAR, REVOCAR
estado_anterior Estado antes del cambio DECLARADO
estado_nuevo Estado después del cambio VERIFICADO
metadata Datos adicionales (cifrados) Tipo documento, notas
ip_address IP del actor (hasheada) hash(IP)

Retención: 6 años desde la fecha del evento (HIPAA). Inmutabilidad: Registros append-only, no modificables ni eliminables.

4.3.2.7. Reglas de Negocio de Verificacion de Tutela
ID Regla
RN-TUT-001 Declaracion jurada suficiente para comenzar a usar la app
RN-TUT-002 Documentacion requerida solo si hay disputa o reclamo
RN-TUT-003 Plazo de 7 dias para subir documentacion en caso de disputa
RN-TUT-004 Cuenta DISPUTADA: puede ver datos pero no modificar
RN-TUT-005 Revision manual de disputas en maximo 72 horas
RN-TUT-006 Decisiones de tutela pueden apelarse una vez
RN-TUT-007 Cuidadores profesionales requieren verificacion desde el inicio
RN-TUT-008 Audit trail de eventos de tutela: retención 6 años, inmutable (HIPAA)

4.3.3. Flujo: Agregar Paciente Dependiente

  1. Cuidador responsable accede a "Mis Pacientes"
  2. Sistema verifica limite segun tier:
  3. Free: 1 paciente
  4. Pro: 5 pacientes
  5. Perfect: 10 pacientes
  6. Si hay espacio, muestra formulario
  7. Cuidador ingresa datos del dependiente:
  8. Nombre completo
  9. Fecha de nacimiento
  10. Relacion (hijo/a, pupilo, paciente)
  11. Foto (opcional)
  12. Condiciones medicas
  13. Alergias
  14. Cuidador confirma responsabilidad legal
  15. Sistema crea perfil de paciente dependiente
  16. Cuidador puede agregar medicamentos inmediatamente

4.3.4. Permisos del Cuidador Responsable

Permiso Descripcion Aplicacion
control_total Acceso completo a datos del dependiente Automatico
modificar_medicamentos Agregar/editar/eliminar medicamentos Automatico
registrar_tomas Confirmar tomas del dependiente Automatico
ver_todo Acceso a toda la informacion de salud Automatico
exportar_datos Exportar informacion del dependiente Automatico
compartir_con_terceros Compartir con medicos u otros Automatico

4.3.5. Reglas de Negocio Cuidador Responsable

ID Regla
RN-CRE-001 Cuidador responsable es titular unico de la cuenta
RN-CRE-002 Limite de pacientes dependientes segun tier (Free:1, Pro:5, Perfect:10)
RN-CRE-003 Dependientes menores de 13 anos no tienen acceso a la app
RN-CRE-004 Dependientes 13-17 anos pueden tener acceso de solo lectura (opcional)
RN-CRE-005 A los 18 anos, dependiente debe migrar a cuenta autonoma
RN-CRE-006 Cuidador responsable recibe todas las alertas de sus dependientes
RN-CRE-007 Cuidador responsable puede designar cuidadores solidarios para sus dependientes

4.4. Contactos de Emergencia (MTS-USR-001-F03)

4.4.1. Descripción 3.3

Gestión de contactos para notificaciones de emergencia cuando el paciente no responde a alertas críticas.

4.4.2. Disponibilidad por Tier

Tier Funcionalidad
Free Puede registrar contactos como datos de referencia (sin alertas automáticas)
Pro Hasta 10 contactos con alertas automáticas habilitadas
Perfect Hasta 10 contactos con alertas automáticas y opciones avanzadas

Nota Tier Free: Los contactos se almacenan localmente como información de referencia para emergencias manuales. No hay alertas automáticas ni notificaciones ya que el tier Free no tiene conexión a servidor.

4.4.3. Datos del Contacto

Campo Tipo Obligatorio Descripción
nombre string Nombre del contacto
relacion enum Relación con el paciente
telefono string Número principal
telefono_alt string No Número alternativo
email string No Email del contacto
orden_contacto number Prioridad de contacto
notas string No Instrucciones especiales

4.4.4. Flujo: Añadir Contacto de Emergencia

  1. Paciente accede a "Contactos de Emergencia"
  2. Paciente selecciona "Añadir Contacto"
  3. Sistema muestra formulario
  4. Paciente ingresa datos del contacto
  5. Sistema valida teléfono
  6. Sistema envía SMS de verificación al contacto
  7. Contacto confirma recibiendo el mensaje
  8. Sistema activa contacto de emergencia
  9. Sistema notifica al paciente de activación

4.4.5. Condiciones de Activación de Emergencia

Condición Acción
3 tomas críticas consecutivas omitidas Notificar primer contacto
Sin respuesta de primer contacto (30 min) Escalar a segundo contacto
Paciente marca "necesito ayuda" Notificar todos los contactos

4.4.6. Reglas de Negocio 3.3

ID Regla
RN-USR-020 Mínimo 1 contacto de emergencia recomendado (Pro/Perfect)
RN-USR-021 Máximo 10 contactos de emergencia con alertas automáticas (Pro/Perfect)
RN-USR-022 Contacto debe verificar teléfono para activarse (Pro/Perfect)
RN-USR-023 Paciente puede desactivar emergencias temporalmente (Pro/Perfect)
RN-USR-024 Tier Free puede registrar contactos como datos de referencia sin alertas
RN-USR-025 Tier Free: contactos no requieren verificación (solo almacenamiento local)

4.5. Perfil Médico Compartible (MTS-USR-001-F04)

4.5.1. Descripción 3.4

Permite generar un resumen médico para compartir con profesionales de salud.

4.5.2. Contenido del Perfil Compartible

Sección Incluye Opcional
Identificación Nombre, edad, género No
Datos vitales Tipo de sangre, peso, altura
Alergias Lista completa de alergias No
Condiciones Condiciones crónicas
Medicamentos activos Lista con dosis y frecuencia No
Adherencia Resumen de últimos 30 días

4.5.3. Flujo: Generar Perfil Compartible

  1. Paciente accede a "Compartir Perfil Médico"
  2. Sistema muestra opciones de contenido
  3. Paciente selecciona secciones a incluir
  4. Paciente selecciona método de compartir:
  5. Código QR temporal (15 min)
  6. PDF descargable
  7. Enlace temporal (24 horas)
  8. Sistema genera perfil con datos seleccionados
  9. Sistema presenta medio elegido
  10. Sistema registra generación en audit log

4.5.4. Reglas de Negocio 3.4

ID Regla
RN-USR-030 QR expira en 15 minutos
RN-USR-031 Enlace temporal expira en 24 horas
RN-USR-032 PDF incluye marca de agua con fecha/hora
RN-USR-033 Máximo 10 generaciones por día
RN-USR-034 Cada acceso al perfil se registra en audit log

4.6. Eliminación de Cuenta (MTS-USR-001-F05)

4.6.1. Descripción 3.5

Permite al usuario eliminar completamente su cuenta y datos del sistema.

4.6.2. Flujo Principal

  1. Usuario accede a Configuración > Cuenta > Eliminar Cuenta
  2. Sistema muestra advertencia y consecuencias:
  3. Datos eliminados permanentemente
  4. Cuidadores perderán acceso
  5. Historial no recuperable
  6. Proceso irreversible
  7. Sistema solicita motivo de eliminación (opcional)
  8. Sistema requiere re-autenticación (contraseña + MFA)
  9. Sistema solicita confirmación escribiendo "ELIMINAR"
  10. Sistema programa eliminación para 30 días (período de gracia)
  11. Sistema envía email de confirmación con opción de cancelar
  12. Sistema notifica a cuidadores de próxima eliminación

4.6.3. Flujo: Cancelar Eliminación

  1. Usuario accede al enlace en email de confirmación
  2. Sistema requiere login
  3. Sistema muestra estado de eliminación programada
  4. Usuario selecciona "Cancelar Eliminación"
  5. Sistema cancela proceso
  6. Sistema confirma cancelación

4.6.4. Proceso de Eliminación (Día 30)

  1. Sistema verifica que no se canceló
  2. Sistema anonimiza datos agregados (estadísticas)
  3. Sistema elimina:
  4. Datos personales (PII)
  5. Datos de salud (PHI)
  6. Imágenes y archivos
  7. Historial de acceso
  8. Relaciones con cuidadores
  9. Sistema conserva (anonimizado):
  10. Logs de auditoría (6 años - HIPAA)
  11. Estadísticas agregadas
  12. Sistema envía confirmación final

4.6.5. Reglas de Negocio 3.5

ID Regla
RN-USR-040 Período de gracia de 30 días antes de eliminación
RN-USR-041 Usuario puede cancelar durante período de gracia
RN-USR-042 Audit logs se retienen 6 años (HIPAA) anonimizados
RN-USR-043 Re-autenticación obligatoria para confirmar
RN-USR-044 Notificación obligatoria a cuidadores

5. Modelo de Datos

5.1. Entidad Usuario (Actualizada v2.0)

Usuario {
  id: UUID (PK)
  email: string (unique, encrypted, nullable para Free anonimo)
  telefono: string (unique, encrypted, nullable para Free anonimo)
  password_hash: string
  nombre: string (encrypted)
  apellidos: string (encrypted)
  fecha_nacimiento: date (encrypted)
  genero: enum [M, F, O, NS]
  pais: string

  // Tipo de cuenta (Nuevo v2.0)
  tipo_cuenta: enum [PACIENTE_AUTONOMO, CUIDADOR_RESPONSABLE, PROFESIONAL_SALUD]
  tier: enum [FREE, PRO, PERFECT]
  es_anonimo: boolean (default: false)  // Para tier Free sin registro

  // Preferencias de internacionalizacion (Iteracion 13)
  idioma_preferido: string (default: sistema, ej: es-MX, en-US, pt-BR)
  unidades_preferidas: jsonb {
    peso: enum [kg, lb],
    altura: enum [cm, ft_in],
    temperatura: enum [celsius, fahrenheit],
    glucosa: enum [mg_dl, mmol_l],
    volumen: enum [ml, oz]
  }

  estado: enum [ACTIVO, SUSPENDIDO, ELIMINACION_PENDIENTE, ELIMINADO]
  fecha_registro: timestamp
  fecha_ultimo_acceso: timestamp
  mfa_habilitado: boolean
  mfa_metodos: array
  preferencias: jsonb

  // Limites segun tier y tipo
  max_dependientes: integer  // Calculado: Free=1, Pro=5, Perfect=10
  max_cuidadores_solidarios: integer  // Fijo: 5

  created_at: timestamp
  updated_at: timestamp
}

5.2. Entidad PerfilMedico

PerfilMedico {
  id: UUID (PK)
  usuario_id: UUID (FK)
  tipo_sangre: enum (encrypted)
  peso: decimal (encrypted)
  altura: decimal (encrypted)
  alergias: array (encrypted)
  condiciones_cronicas: array (encrypted)
  notas_medicas: text (encrypted)
  created_at: timestamp
  updated_at: timestamp
}

5.3. Entidad RelacionCuidador (Actualizada v2.0)

RelacionCuidador {
  id: UUID (PK)
  paciente_id: UUID (FK)
  cuidador_id: UUID (FK)
  tipo_cuidador: enum [SOLIDARIO, RESPONSABLE]
  estado: enum [PENDIENTE, ACTIVO, REVOCADO, MIGRADO]
  relacion: enum [PAREJA, HIJO_A, PADRE_MADRE, AMIGO_A, TUTOR_LEGAL, PROFESIONAL_SALUD, OTRO]
  permisos: jsonb
  fecha_invitacion: timestamp
  fecha_aceptacion: timestamp
  fecha_revocacion: timestamp
  invitacion_token: string (hashed)
  notas: text (encrypted)
  created_at: timestamp
  updated_at: timestamp
}

5.4. Entidad PacienteDependiente (Nueva v2.0)

PacienteDependiente {
  id: UUID (PK)
  cuidador_responsable_id: UUID (FK -> Usuario)
  nombre: string (encrypted)
  apellidos: string (encrypted)
  fecha_nacimiento: date (encrypted)
  genero: enum [M, F, O, NS]
  relacion: enum [HIJO_A, PUPILO, PACIENTE_MEDICO, OTRO]
  foto_url: string (encrypted)
  alergias: array (encrypted)
  condiciones_cronicas: array (encrypted)
  acceso_app: boolean (default: false)
  nivel_acceso: enum [NINGUNO, SOLO_LECTURA] (default: NINGUNO)
  fecha_migracion: timestamp (nullable)
  cuenta_migrada_id: UUID (FK -> Usuario, nullable)
  created_at: timestamp
  updated_at: timestamp
}

5.5. Entidad ContactoEmergencia

ContactoEmergencia {
  id: UUID (PK)
  usuario_id: UUID (FK)
  nombre: string (encrypted)
  relacion: enum
  telefono: string (encrypted)
  telefono_alt: string (encrypted)
  email: string (encrypted)
  orden_contacto: integer
  verificado: boolean
  activo: boolean
  notas: text (encrypted)
  created_at: timestamp
  updated_at: timestamp
}

6. Criterios de Aceptación

ID Criterio
AC-001 Paciente puede completar su perfil con información personal y médica
AC-002 Cambio de email/teléfono requiere verificación del nuevo valor
AC-003 Paciente puede invitar hasta 10 cuidadores con permisos selectivos
AC-004 Cuidador puede aceptar o rechazar invitación
AC-005 Paciente puede revocar acceso de cuidador en cualquier momento
AC-006 Contactos de emergencia deben verificar su teléfono
AC-007 Perfil compartible puede generarse como QR, PDF o enlace temporal
AC-008 Eliminación de cuenta tiene período de gracia de 30 días
AC-009 Todos los datos PII/PHI están cifrados en base de datos
AC-010 Historial de cambios de perfil disponible por 2 años

7. Referencias


Documento generado por SpecQueen - La especificación funcional ES el sistema.