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
| Campo |
Tipo |
Obligatorio |
Editable |
Sensible |
| nombre |
string |
Sí |
Sí |
Sí (PII) |
| apellidos |
string |
Sí |
Sí |
Sí (PII) |
| fecha_nacimiento |
date |
Sí |
No* |
Sí (PII) |
| genero |
enum |
No |
Sí |
Sí (PII) |
| email |
string |
Sí |
Sí** |
Sí (PII) |
| telefono |
string |
Sí |
Sí** |
Sí (PII) |
| direccion |
object |
No |
Sí |
Sí (PII) |
| foto_perfil |
binary |
No |
Sí |
Sí (PII) |
Requiere verificación de identidad para cambiar
*Requiere verificación del nuevo valor
| Campo |
Tipo |
Obligatorio |
Editable |
Sensible |
| tipo_sangre |
enum |
No |
Sí |
Sí (PHI) |
| alergias |
array |
No |
Sí |
Sí (PHI) |
| condiciones_cronicas |
array |
No |
Sí |
Sí (PHI) |
| peso |
number |
No |
Sí |
Sí (PHI) |
| altura |
number |
No |
Sí |
Sí (PHI) |
| notas_medicas |
string |
No |
Sí |
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
- Usuario accede a "Mi Perfil"
- Sistema muestra datos actuales organizados por sección
- Usuario selecciona campo a editar
- Sistema muestra editor apropiado al tipo de campo
- Usuario modifica valor
- Sistema valida formato y restricciones
- Si campo es sensible (email/teléfono), requiere verificación
- Sistema guarda cambio y registra en historial
- 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
- Paciente autonomo accede a "Mis Cuidadores"
- Paciente selecciona "Invitar Cuidador Solidario"
- Sistema muestra formulario de invitacion
- Paciente ingresa email o telefono del cuidador
- Paciente define relacion (pareja, hijo/a, amigo/a, otro familiar)
- Paciente selecciona permisos a otorgar:
- Ver medicamentos
- Ver adherencia
- Registrar tomas en mi nombre
- Recibir alertas de tomas
- Recibir alertas criticas de emergencia
- Ver recetas
- Ver citas
- Ver analisis clinicos
- Paciente confirma invitacion
- Sistema envia invitacion con enlace unico (valido 7 dias)
- Sistema registra invitacion pendiente
4.2.3. Flujo: Aceptar Invitacion (Cuidador Solidario)
- Persona recibe invitacion por email/SMS
- Persona accede al enlace de invitacion
- Si no tiene cuenta, sistema inicia registro simplificado
- Si tiene cuenta, sistema solicita login
- Sistema muestra detalles de la invitacion:
- Nombre del paciente
- Permisos otorgados
- Aviso de responsabilidad solidaria
- 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
- Cuidador responsable accede a "Mis Pacientes"
- Sistema verifica limite segun tier:
- Free: 1 paciente
- Pro: 5 pacientes
- Perfect: 10 pacientes
- Si hay espacio, muestra formulario
- Cuidador ingresa datos del dependiente:
- Nombre completo
- Fecha de nacimiento
- Relacion (hijo/a, pupilo, paciente)
- Foto (opcional)
- Condiciones medicas
- Alergias
- Cuidador confirma responsabilidad legal
- Sistema crea perfil de paciente dependiente
- 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.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.
| Campo |
Tipo |
Obligatorio |
Descripción |
| nombre |
string |
Sí |
Nombre del contacto |
| relacion |
enum |
Sí |
Relación con el paciente |
| telefono |
string |
Sí |
Número principal |
| telefono_alt |
string |
No |
Número alternativo |
| email |
string |
No |
Email del contacto |
| orden_contacto |
number |
Sí |
Prioridad de contacto |
| notas |
string |
No |
Instrucciones especiales |
- Paciente accede a "Contactos de Emergencia"
- Paciente selecciona "Añadir Contacto"
- Sistema muestra formulario
- Paciente ingresa datos del contacto
- Sistema valida teléfono
- Sistema envía SMS de verificación al contacto
- Contacto confirma recibiendo el mensaje
- Sistema activa contacto de emergencia
- 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 |
Sí |
| Alergias |
Lista completa de alergias |
No |
| Condiciones |
Condiciones crónicas |
Sí |
| Medicamentos activos |
Lista con dosis y frecuencia |
No |
| Adherencia |
Resumen de últimos 30 días |
Sí |
4.5.3. Flujo: Generar Perfil Compartible
- Paciente accede a "Compartir Perfil Médico"
- Sistema muestra opciones de contenido
- Paciente selecciona secciones a incluir
- Paciente selecciona método de compartir:
- Código QR temporal (15 min)
- PDF descargable
- Enlace temporal (24 horas)
- Sistema genera perfil con datos seleccionados
- Sistema presenta medio elegido
- 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
- Usuario accede a Configuración > Cuenta > Eliminar Cuenta
- Sistema muestra advertencia y consecuencias:
- Datos eliminados permanentemente
- Cuidadores perderán acceso
- Historial no recuperable
- Proceso irreversible
- Sistema solicita motivo de eliminación (opcional)
- Sistema requiere re-autenticación (contraseña + MFA)
- Sistema solicita confirmación escribiendo "ELIMINAR"
- Sistema programa eliminación para 30 días (período de gracia)
- Sistema envía email de confirmación con opción de cancelar
- Sistema notifica a cuidadores de próxima eliminación
4.6.3. Flujo: Cancelar Eliminación
- Usuario accede al enlace en email de confirmación
- Sistema requiere login
- Sistema muestra estado de eliminación programada
- Usuario selecciona "Cancelar Eliminación"
- Sistema cancela proceso
- Sistema confirma cancelación
4.6.4. Proceso de Eliminación (Día 30)
- Sistema verifica que no se canceló
- Sistema anonimiza datos agregados (estadísticas)
- Sistema elimina:
- Datos personales (PII)
- Datos de salud (PHI)
- Imágenes y archivos
- Historial de acceso
- Relaciones con cuidadores
- Sistema conserva (anonimizado):
- Logs de auditoría (6 años - HIPAA)
- Estadísticas agregadas
- 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
}
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.