MTS-PRN-001: Modulo de Medicamentos PRN
Identificador: MTS-PRN-001
Version: 1.0.0
Fecha: 2025-12-05
Autor: ImpactDrone, UserFlowDrone
Estado: BORRADOR
1. Vision General
1.1. Proposito
Este modulo gestiona los medicamentos PRN (Pro Re Nata - "segun sea necesario"), que son aquellos que el paciente toma solo cuando los necesita, no siguiendo un horario fijo. El modulo implementa limites de seguridad estrictospara prevenir sobredosis accidentales y permite eltracking de patrones de uso para identificar tendencias que puedan requerir atencion medica.
IMPORTANTE: Este modulo NO sustituye el criterio medico. Los limites de seguridad son orientativos y basados en recomendaciones generales. El usuario siempre debe consultar con su profesional de salud.
1.2. Alcance V1.0
| Caracteristica |
Incluido v1.0 |
Notas |
| Registro de medicamentos PRN |
Si |
Desde catalogo o personalizado |
| Limites de seguridad configurables |
Si |
Por medicamento |
| Alertas de limite alcanzado |
Si |
Bloqueo suave con override |
| Historial de uso PRN |
Si |
Con metricas basicas |
| Deteccion de patrones avanzada |
No |
Version 2.0+ |
| Integracion con IA para recomendaciones |
No |
Version 2.0+ |
| Alertas predictivas |
No |
Version 2.0+ |
1.3. Diferencias con Medicamentos Programados
| Aspecto |
Medicamento Programado |
Medicamento PRN |
| Horario |
Fijo, con alertas automaticas |
Sin horario, toma a demanda |
| Alertas |
Recordatorio de toma |
Alerta de limite alcanzado |
| Adherencia |
% de tomas cumplidas |
Frecuencia de uso |
| Limites |
Por dosis/frecuencia |
Maximo diario + intervalo minimo |
| Patron |
Constante esperado |
Variable, requiere analisis |
| Gamificacion |
Rachas, puntos por toma |
Solo registro, sin gamificacion de tomas |
2. Actores
| Actor |
Descripcion |
Permisos PRN |
| Paciente Independiente |
Gestiona sus propios medicamentos PRN |
CRUD completo, registro de tomas |
| Paciente Dependiente |
Requiere supervision de Cuidador Responsable |
Solo visualizacion; tomas registradas por cuidador |
| Cuidador Responsable |
Tutor legal con control total |
CRUD completo, registro de tomas, override de limites |
| Cuidador Solidario |
Persona de confianza con permisos delegados |
Segun permisos: ver historial, registrar tomas |
Referencia: Ver definicion completa de roles en 08-glosario.md
3. Disponibilidad por Tier
| Funcionalidad |
Free |
Pro |
Perfect |
| Registro de medicamentos PRN |
Si |
Si |
Si |
| Limites de seguridad basicos |
Si |
Si |
Si |
| Historial de uso (30 dias) |
Si |
- |
- |
| Historial de uso (ilimitado) |
- |
Si |
Si |
| Graficas de patrones |
- |
Si |
Si |
| Exportacion de datos PRN |
Manual |
FHIR/CSV |
FHIR/CSV + PDF |
| Alertas de limite a cuidadores |
- |
Si |
Si |
| Analisis de patrones IA |
- |
- |
Si (v2.0) |
Nota Importante: El modulo PRN funciona100% offline en todos los tiers. La sincronizacion cloud es opcional para Pro/Perfect.
4. Funcionalidades
4.1. Registro de Medicamento PRN (MTS-PRN-001-F01)
4.1.1. Descripcion
Permite registrar un medicamento como PRN, diferenciandolo de los medicamentos programados y configurando los parametros de seguridad especificos.
4.1.2. Campos Especificos PRN
| Campo |
Tipo |
Obligatorio |
Descripcion |
tipo_medicamento |
enum |
Si |
Valor fijo: PRN |
indicacion_uso |
string |
Si |
Cuando tomar (ej: "Para dolor de cabeza") |
dosis_por_toma |
string |
Si |
Cantidad por toma (ej: "500mg", "1 tableta") |
max_dosis_diaria |
decimal |
Si |
Limite maximo en 24 horas |
unidad_max_diaria |
enum |
Si |
mg, ml, tabletas, etc. |
intervalo_minimo_horas |
decimal |
Si |
Horas minimas entre dosis |
dias_max_consecutivos |
integer |
No |
Dias maximos de uso continuo (default: null = sin limite) |
instrucciones_especiales |
text |
No |
Notas adicionales (ej: "Con alimentos") |
motivo_prn |
enum |
Si |
DOLOR, ALERGIA, ANSIEDAD, RESPIRATORIO, DIGESTIVO, OTRO |
4.1.3. Medicamentos PRN Comunes Precargados
El catalogo incluye configuraciones por defecto para medicamentos PRN comunes:
| Medicamento |
Dosis Comun |
Max Diario |
Intervalo Min |
Indicacion |
| Paracetamol/Acetaminofen |
500-1000mg |
4000mg |
4h |
Dolor, fiebre |
| Ibuprofeno |
200-400mg |
1200mg (OTC) / 3200mg (Rx) |
4-6h |
Dolor, inflamacion |
| Naproxeno |
220-550mg |
1100mg (OTC) |
8-12h |
Dolor, inflamacion |
| Loratadina |
10mg |
10mg |
24h |
Alergia |
| Cetirizina |
10mg |
10mg |
24h |
Alergia |
| Omeprazol |
20mg |
40mg |
24h |
Acidez |
| Salbutamol inhalador |
2 inhalaciones |
8 inhalaciones |
4h |
Rescate respiratorio |
| Alprazolam* |
0.25-0.5mg |
Segun prescripcion |
Segun prescripcion |
Ansiedad |
| Clonazepam* |
0.5mg |
Segun prescripcion |
Segun prescripcion |
Ansiedad |
*Medicamentos controlados: Requieren prescripcion medica. El sistema solicita configuracion manual de limites segun receta.
4.2. Configuracion de Limites de Seguridad (MTS-PRN-001-F02)
4.2.1. Descripcion
Sistema de limites de seguridad que previene el uso excesivo de medicamentos PRN, con alertas progresivas y bloqueo suave con opcion de override justificado.
4.2.2. Limites de Seguridad por Defecto
flowchart TD
subgraph Niveles["NIVELES DE ALERTA"]
N1["70% del limite diario"]
N2["90% del limite diario"]
N3["100% del limite diario"]
N4["Override solicitado"]
end
N1 --> A1["Alerta informativa"]
N2 --> A2["Alerta prominente"]
N3 --> A3["Bloqueo suave"]
N4 --> A4["Requiere justificacion"]
A1 --> C1["Continuar permitido"]
A2 --> C2["Continuar con confirmacion"]
A3 --> C3["Override requerido"]
A4 --> C4["Registro en audit log"]
4.2.3. Intervalo Minimo Entre Dosis
| Alerta |
Condicion |
Comportamiento |
| Demasiado pronto |
< 50% del intervalo minimo |
Bloqueo con countdown |
| Pronto |
50-100% del intervalo minimo |
Advertencia, permitir con confirmacion |
| OK |
>= 100% del intervalo minimo |
Sin restriccion |
Ejemplo: Paracetamol con intervalo de 4 horas
- < 2 horas desde ultima toma: Bloqueo
- 2-4 horas: Advertencia
-
4 horas: Permitido
4.2.4. Configuracion Personalizada
El usuario o cuidador puede ajustar limites dentro de rangos seguros:
| Parametro |
Minimo Permitido |
Maximo Permitido |
Default |
max_dosis_diaria |
50% del default |
100% del default |
100% |
intervalo_minimo_horas |
Default |
200% del default |
Default |
alerta_70_porciento |
Desactivable |
- |
Activo |
alerta_90_porciento |
No desactivable |
- |
Activo |
bloqueo_100_porciento |
No desactivable |
- |
Activo |
Seguridad: No es posible configurar limites mas permisivos que los defaults del catalogo. Solo se puede ser mas restrictivo.
4.3. Toma de Dosis PRN (MTS-PRN-001-F03)
4.3.1. Descripcion
Registro rapido de tomas PRN con verificacion automatica de limites de seguridad.
4.3.2. Registro de Toma PRN
| Campo |
Tipo |
Obligatorio |
Descripcion |
medicamento_prn_id |
UUID |
Si |
Referencia al medicamento PRN |
timestamp_toma |
datetime |
Si |
Fecha y hora de la toma |
dosis_tomada |
decimal |
Si |
Cantidad tomada |
unidad_dosis |
enum |
Si |
mg, ml, tabletas, etc. |
motivo_toma |
string |
No |
Razon especifica (ej: "Dolor de cabeza intenso") |
intensidad_sintoma |
integer |
No |
Escala 1-10 antes de la toma |
notas |
text |
No |
Observaciones adicionales |
override_aplicado |
boolean |
Si |
Si se ignoro una alerta |
justificacion_override |
string |
Condicional |
Requerido si override = true |
4.3.3. Acceso Rapido
+------------------------------------------+
| [+] Tomar PRN |
+------------------------------------------+
| |
| Medicamentos PRN Activos: |
| |
| [Paracetamol 500mg] [Ibuprofeno 400mg] |
| Hoy: 1000mg/4000mg Hoy: 0mg/1200mg |
| Ultima: hace 3h Ultima: -- |
| |
| [Salbutamol] [+ Otro PRN] |
| Hoy: 2/8 inh |
| Ultima: hace 6h |
| |
+------------------------------------------+
4.4. Alertas de Seguridad (MTS-PRN-001-F04)
4.4.1. Descripcion
Sistema de alertas progresivas para prevenir uso excesivo, con balance entre seguridad y autonomia del paciente.
4.4.2. Tipos de Alertas
| ID |
Tipo |
Severidad |
Comportamiento |
Mensaje |
| ALT-PRN-001 |
Limite 70% |
Info |
Banner discreto |
"Has tomado 70% del maximo diario de [medicamento]" |
| ALT-PRN-002 |
Limite 90% |
Warning |
Modal de advertencia |
"Estas cerca del limite diario. Considera espaciar las tomas." |
| ALT-PRN-003 |
Limite 100% |
Critical |
Bloqueo con override |
"Has alcanzado el limite diario. Consulta a tu medico si el dolor persiste." |
| ALT-PRN-004 |
Intervalo corto |
Warning |
Countdown + bloqueo |
"Espera [X:XX] antes de la siguiente dosis" |
| ALT-PRN-005 |
Uso prolongado |
Info |
Notificacion diaria |
"Llevas [N] dias usando [medicamento]. Considera consultar a tu medico." |
| ALT-PRN-006 |
Patron inusual |
Warning |
Modal (Pro/Perfect) |
"Tu uso de [medicamento] ha aumentado esta semana" |
4.4.3. Comportamiento de Alertas
sequenceDiagram
participant U as Usuario
participant A as App MedTime
participant S as Sistema Alertas
U->>A: Solicita tomar PRN
A->>S: Verificar limites
alt Dentro de limites
S-->>A: OK
A-->>U: Registrar toma
else 70% alcanzado
S-->>A: Alerta INFO
A-->>U: Banner + permitir toma
else 90% alcanzado
S-->>A: Alerta WARNING
A-->>U: Modal advertencia
U->>A: Confirma entender
A-->>U: Registrar toma
else 100% alcanzado
S-->>A: Alerta CRITICAL
A-->>U: Modal bloqueo
U->>A: Solicita override
A-->>U: Solicitar justificacion
U->>A: Proporciona justificacion
A->>S: Registrar override en audit
A-->>U: Registrar toma con flag override
else Intervalo muy corto
S-->>A: Bloqueo temporal
A-->>U: Mostrar countdown
end
4.5. Historial y Patrones de Uso (MTS-PRN-001-F05)
4.5.1. Descripcion
Registro historico de todas las tomas PRN con analisis de patrones para identificar tendencias que puedan requerir atencion medica.
4.5.2. Metricas de Uso
| Metrica |
Descripcion |
Visualizacion |
tomas_por_dia |
Numero de tomas diarias |
Grafica de barras |
dosis_total_diaria |
Suma de dosis en mg/dia |
Linea temporal |
promedio_semanal |
Media de tomas por semana |
Numero + tendencia |
dias_con_uso |
Dias del mes con al menos una toma |
Calendario heat map |
hora_comun |
Hora del dia mas frecuente |
Grafica circular |
motivo_frecuente |
Razon mas comun de toma |
Lista ordenada |
4.5.3. Deteccion de Patrones
| Patron |
Condicion |
Accion |
| Uso creciente |
+30% vs semana anterior |
Notificacion de tendencia |
| Uso diario sostenido |
>= 7 dias consecutivos |
Sugerir consulta medica |
| Horario consistente |
80% de tomas en misma franja |
Sugerir medicamento programado |
| Override frecuente |
>= 3 overrides en 7 dias |
Alerta a cuidador (si aplica) |
5. Flujos de Usuario
5.1. UF-PRN-001: Agregar Medicamento PRN
5.1.1. Diagrama de Flujo
flowchart TD
A[Inicio: Agregar Medicamento] --> B{Tipo de medicamento?}
B -->|Programado| C[Flujo MTS-MED-001]
B -->|PRN| D[Seleccionar medicamento PRN]
D --> E{Encontrado en catalogo?}
E -->|Si| F[Cargar configuracion default]
E -->|No| G[Crear medicamento personalizado]
F --> H[Mostrar limites de seguridad]
G --> I[Configurar limites manualmente]
H --> J{Ajustar limites?}
J -->|No| K[Mantener defaults]
J -->|Si| L[Ajustar dentro de rangos seguros]
I --> M[Validar limites ingresados]
M --> N{Limites validos?}
N -->|No| O[Mostrar error, corregir]
O --> I
N -->|Si| P[Continuar]
K --> P
L --> P
P --> Q[Configurar indicacion de uso]
Q --> R[Configurar alertas]
R --> S[Guardar medicamento PRN]
S --> T[Mostrar en lista PRN]
T --> U[Fin]
5.1.2. Descripcion de Pasos
| Paso |
Actor |
Accion |
Sistema |
| 1 |
Usuario |
Selecciona "Agregar Medicamento" |
Muestra selector de tipo |
| 2 |
Usuario |
Selecciona "PRN / Segun necesidad" |
Muestra buscador de catalogo |
| 3 |
Usuario |
Busca medicamento |
Muestra resultados con tag PRN |
| 4 |
Usuario |
Selecciona medicamento |
Carga limites default del catalogo |
| 5 |
Sistema |
- |
Muestra pantalla de configuracion PRN |
| 6 |
Usuario |
Revisa/ajusta limites de seguridad |
Valida rangos permitidos |
| 7 |
Usuario |
Configura indicacion de uso |
Almacena texto |
| 8 |
Usuario |
Confirma configuracion |
Guarda medicamento PRN |
| 9 |
Sistema |
- |
Muestra medicamento en seccion PRN |
5.2. UF-PRN-002: Registrar Toma PRN
5.2.1. Diagrama de Flujo
flowchart TD
A[Usuario: Tomar PRN] --> B[Seleccionar medicamento PRN]
B --> C[Sistema: Verificar intervalo minimo]
C --> D{Intervalo OK?}
D -->|No, < 50%| E[Mostrar countdown]
E --> F[Esperar o cancelar]
F --> A
D -->|Si, 50-100%| G[Advertencia: Pronto]
G --> H{Continuar?}
H -->|No| I[Cancelar]
H -->|Si| J[Continuar con registro]
D -->|Si, > 100%| J
J --> K[Sistema: Verificar limite diario]
K --> L{Estado limite?}
L -->|< 70%| M[Sin alerta]
L -->|70-89%| N[Banner informativo]
L -->|90-99%| O[Modal advertencia]
L -->|>= 100%| P[Modal bloqueo]
M --> Q[Ingresar dosis]
N --> Q
O --> R{Confirma entender?}
R -->|No| I
R -->|Si| Q
P --> S{Override?}
S -->|No| I
S -->|Si| T[Ingresar justificacion]
T --> Q
Q --> U[Opcional: Motivo de toma]
U --> V[Opcional: Intensidad sintoma 1-10]
V --> W[Confirmar toma]
W --> X[Sistema: Registrar toma]
X --> Y[Actualizar contadores]
Y --> Z[Mostrar confirmacion]
Z --> AA[Fin]
5.2.2. Descripcion de Pasos
| Paso |
Pantalla |
Elementos |
| 1 |
Lista PRN |
Medicamentos PRN activos con status de uso diario |
| 2 |
Verificacion |
Sistema valida intervalos y limites automaticamente |
| 3 |
Alertas |
Modal segun nivel de alerta (si aplica) |
| 4 |
Registro |
Dosis (prefilled), motivo (opcional), intensidad (opcional) |
| 5 |
Confirmacion |
Resumen de toma + proxima disponible |
5.3. UF-PRN-003: Ver Limite Alcanzado
5.3.1. Diagrama de Flujo
flowchart TD
A[Usuario intenta tomar PRN] --> B[Sistema: Limite 100% alcanzado]
B --> C[Mostrar modal de bloqueo]
C --> D["LIMITE DIARIO ALCANZADO
Has tomado 4000mg de Paracetamol hoy.
Este es el maximo recomendado en 24 horas.
El limite se reinicia a las [HH:MM]
(en [X] horas)
Si el dolor persiste, consulta a tu medico."]
D --> E{Accion del usuario}
E -->|Entendido| F[Cerrar modal]
E -->|Necesito tomar de todos modos| G[Pantalla de override]
G --> H["ATENCION: Override de seguridad
Tomar mas de lo recomendado puede
causar dano hepatico severo.
Por que necesitas tomar mas?
[________________________]
[ ] Entiendo los riesgos
[Cancelar] [Confirmar override]"]
H --> I{Override valido?}
I -->|No justificacion| J[Error: Justificacion requerida]
J --> G
I -->|Si| K[Registrar override en audit]
K --> L[Permitir toma]
L --> M[Enviar alerta a cuidador si existe]
M --> N[Fin]
F --> N
5.3.2. Pantalla de Limite Alcanzado
+------------------------------------------+
| LIMITE DIARIO ALCANZADO |
+------------------------------------------+
| |
| [!] Paracetamol |
| |
| Has tomado: 4000mg / 4000mg |
| ================================ 100% |
| |
| El limite se reinicia en: 6h 23min |
| |
| -------------------------------- |
| Si el dolor persiste, considera: |
| - Consultar a tu medico |
| - Usar otro analgesico compatible |
| -------------------------------- |
| |
| [Entendido] |
| |
| Necesito tomar de todos modos > |
| |
+------------------------------------------+
5.4. UF-PRN-004: Flujo de Cuidador para PRN
5.4.1. Diagrama de Flujo
flowchart TD
A[Cuidador: Ver PRN de paciente] --> B{Tipo de cuidador?}
B -->|Cuidador Responsable| C[Acceso completo]
B -->|Cuidador Solidario| D{Permisos otorgados?}
D -->|Sin permiso PRN| E[Solo ver lista de medicamentos]
D -->|Permiso lectura| F[Ver historial de uso]
D -->|Permiso escritura| G[Registrar tomas]
C --> H[Dashboard PRN del paciente]
F --> H
G --> H
H --> I[Ver medicamentos PRN activos]
H --> J[Ver historial de tomas]
H --> K[Ver alertas activas]
I --> L{Accion?}
L -->|Registrar toma| M[Flujo UF-PRN-002 como cuidador]
L -->|Editar limites| N{Es Cuidador Responsable?}
N -->|No| O[Sin permiso para editar]
N -->|Si| P[Editar configuracion PRN]
K --> Q{Alerta de override?}
Q -->|Si| R[Notificacion a cuidador]
R --> S[Revisar justificacion del paciente]
S --> T{Accion cuidador?}
T -->|Contactar paciente| U[Iniciar comunicacion]
T -->|Marcar como revisado| V[Cerrar alerta]
6. Modelo de Datos
6.1. Entidad MedicamentoPRN
MedicamentoPRN {
id: UUID (PK)
medicamento_paciente_id: UUID (FK -> MedicamentoPaciente)
usuario_id: UUID (FK)
// Configuracion PRN
tipo_medicamento: enum [PRN] // Siempre PRN
indicacion_uso: string (encrypted)
motivo_prn: enum [DOLOR, ALERGIA, ANSIEDAD, RESPIRATORIO, DIGESTIVO, OTRO]
dosis_por_toma: string (encrypted)
unidad_dosis: enum [mg, ml, tabletas, gotas, inhalaciones]
// Limites de seguridad
limite_seguridad_id: UUID (FK -> LimiteSeguridad)
// Configuracion de alertas
alerta_70_activa: boolean (default: true)
alerta_90_activa: boolean (default: true) // No desactivable
bloqueo_100_activo: boolean (default: true) // No desactivable
// Metadata
estado: enum [ACTIVO, PAUSADO, FINALIZADO]
fecha_inicio: date
fecha_fin: date (nullable)
notas: text (encrypted)
created_at: timestamp
updated_at: timestamp
}
6.2. Entidad LimiteSeguridad
LimiteSeguridad {
id: UUID (PK)
medicamento_prn_id: UUID (FK)
// Limites configurados
max_dosis_diaria: decimal
unidad_max_diaria: enum [mg, ml, tabletas, gotas, inhalaciones]
intervalo_minimo_horas: decimal
dias_max_consecutivos: integer (nullable)
// Limites del catalogo (referencia, no modificables)
max_dosis_catalogo: decimal
intervalo_catalogo: decimal
// Configuracion de override
override_permitido: boolean (default: true)
override_requiere_justificacion: boolean (default: true)
created_at: timestamp
updated_at: timestamp
}
6.3. Entidad TomaPRN
TomaPRN {
id: UUID (PK)
medicamento_prn_id: UUID (FK)
usuario_id: UUID (FK)
registrado_por_id: UUID (FK) // Usuario que registro (puede ser cuidador)
// Datos de la toma
timestamp_toma: datetime
dosis_tomada: decimal
unidad_dosis: enum
motivo_toma: string (encrypted, nullable)
intensidad_sintoma_antes: integer (1-10, nullable)
intensidad_sintoma_despues: integer (1-10, nullable) // Registrado posteriormente
notas: text (encrypted, nullable)
// Estado de limites al momento de la toma
porcentaje_limite_diario: decimal // % del limite al registrar
tiempo_desde_ultima_toma: interval
// Override
override_aplicado: boolean (default: false)
tipo_override: enum [LIMITE_DIARIO, INTERVALO_MINIMO, null]
justificacion_override: string (encrypted, nullable)
// Audit
ip_hash: string
device_id: string
created_at: timestamp
}
6.4. Entidad PatronUsoPRN
PatronUsoPRN {
id: UUID (PK)
medicamento_prn_id: UUID (FK)
// Periodo analizado
fecha_inicio: date
fecha_fin: date
// Metricas calculadas
total_tomas: integer
promedio_diario: decimal
dias_con_uso: integer
dosis_total_periodo: decimal
hora_mas_frecuente: time
motivo_mas_frecuente: string
// Tendencias
tendencia: enum [ESTABLE, CRECIENTE, DECRECIENTE]
variacion_porcentual: decimal // vs periodo anterior
// Alertas generadas
patron_detectado: enum [NORMAL, USO_CRECIENTE, USO_DIARIO_SOSTENIDO, OVERRIDE_FRECUENTE, null]
alerta_generada: boolean
created_at: timestamp
}
6.5. Diagrama Entidad-Relacion
erDiagram
MedicamentoPaciente ||--o| MedicamentoPRN : "puede ser PRN"
MedicamentoPRN ||--|| LimiteSeguridad : "tiene"
MedicamentoPRN ||--o{ TomaPRN : "registra"
MedicamentoPRN ||--o{ PatronUsoPRN : "genera"
Usuario ||--o{ MedicamentoPRN : "tiene"
Usuario ||--o{ TomaPRN : "registra"
MedicamentoPaciente {
UUID id PK
UUID usuario_id FK
string nombre
enum tipo
}
MedicamentoPRN {
UUID id PK
UUID medicamento_paciente_id FK
string indicacion_uso
enum motivo_prn
string dosis_por_toma
}
LimiteSeguridad {
UUID id PK
UUID medicamento_prn_id FK
decimal max_dosis_diaria
decimal intervalo_minimo_horas
}
TomaPRN {
UUID id PK
UUID medicamento_prn_id FK
datetime timestamp_toma
decimal dosis_tomada
boolean override_aplicado
}
PatronUsoPRN {
UUID id PK
UUID medicamento_prn_id FK
date fecha_inicio
date fecha_fin
enum tendencia
}
7. Reglas de Negocio
Referencia Canonica: Las reglas de negocio centrales se encuentran en 06-reglas-de-negocio.md.
Las siguientes reglas son especificas del modulo PRN.
7.1. Reglas de Limites de Seguridad
| ID |
Regla |
Prioridad |
| RN-PRN-001 |
Todo medicamento PRN debe tener un limite maximo diario configurado |
Alta |
| RN-PRN-002 |
El limite maximo diario no puede exceder el valor del catalogo |
Alta |
| RN-PRN-003 |
Todo medicamento PRN debe tener un intervalo minimo entre dosis |
Alta |
| RN-PRN-004 |
El intervalo minimo no puede ser menor al del catalogo |
Alta |
| RN-PRN-005 |
Medicamentos controlados requieren configuracion manual de limites |
Alta |
| RN-PRN-006 |
Limites de seguridad se validan antes de cada toma |
Alta |
7.2. Reglas de Registro de Tomas
| ID |
Regla |
Prioridad |
| RN-PRN-010 |
Toma dentro de intervalo minimo (< 50%) se bloquea sin override |
Alta |
| RN-PRN-011 |
Toma entre 50-100% del intervalo muestra advertencia |
Media |
| RN-PRN-012 |
Toma al 100% del limite diario requiere override con justificacion |
Alta |
| RN-PRN-013 |
Override se registra en audit log inmutable |
Alta |
| RN-PRN-014 |
El limite diario se reinicia a las 00:00 hora local del usuario |
Media |
| RN-PRN-015 |
Cada toma debe registrar al menos: timestamp, dosis, medicamento |
Alta |
7.3. Reglas de Alertas
| ID |
Regla |
Prioridad |
| RN-PRN-020 |
Alerta al 70% del limite es informativa y desactivable |
Baja |
| RN-PRN-021 |
Alerta al 90% del limite es advertencia y NO desactivable |
Alta |
| RN-PRN-022 |
Bloqueo al 100% es obligatorio y NO desactivable |
Alta |
| RN-PRN-023 |
Override notifica a Cuidador Responsable si existe (Pro/Perfect) |
Alta |
| RN-PRN-024 |
Alertas de patron inusual se envian maximo 1 vez por semana |
Media |
7.4. Reglas de Patrones
| ID |
Regla |
Prioridad |
| RN-PRN-030 |
Patron de uso requiere minimo 7 dias de datos |
Media |
| RN-PRN-031 |
Uso diario sostenido >= 7 dias genera sugerencia de consulta medica |
Media |
| RN-PRN-032 |
Incremento >= 30% semanal se considera "uso creciente" |
Media |
| RN-PRN-033 |
>= 3 overrides en 7 dias genera alerta a cuidador |
Alta |
| RN-PRN-034 |
Patrones se calculan semanalmente en background |
Baja |
7.5. Reglas por Rol
| ID |
Regla |
Prioridad |
| RN-PRN-040 |
Paciente Independiente tiene control total de sus PRN |
Alta |
| RN-PRN-041 |
Paciente Dependiente solo puede ver lista; tomas las registra Cuidador |
Alta |
| RN-PRN-042 |
Cuidador Responsable puede hacer override sin justificacion |
Media |
| RN-PRN-043 |
Cuidador Solidario requiere permiso explicito para registrar tomas PRN |
Alta |
| RN-PRN-044 |
Cuidador Solidario NO puede modificar limites de seguridad |
Alta |
8. Consideraciones de Privacidad
8.1. Datos Sensibles
| Tipo de Dato |
Clasificacion |
Tratamiento |
| Nombre de medicamento PRN |
Sensible |
Cifrado E2E |
| Indicacion de uso |
Sensible |
Cifrado E2E |
| Historial de tomas |
Sensible |
Cifrado E2E |
| Motivo de toma |
Sensible |
Cifrado E2E |
| Intensidad de sintoma |
Sensible |
Cifrado E2E |
| Justificacion de override |
Sensible |
Cifrado E2E |
| Patrones de uso |
Sensible |
Cifrado E2E |
8.2. Cifrado E2E
flowchart LR
subgraph Dispositivo["Dispositivo Usuario"]
D1[Datos PRN en claro]
D2[Cifrado AES-256]
end
subgraph Servidor["Servidor MedTime"]
S1[Solo blobs cifrados]
end
D1 --> D2
D2 --> S1
Note1[Servidor NUNCA ve datos en claro]
Referencia: Ver MTS-REG-001 Seccion 6 para arquitectura E2E completa.
8.3. Consentimiento para Compartir
| Dato Compartido |
Requiere Consentimiento |
Revocable |
| Lista PRN con cuidador |
Si, explicito |
Si |
| Historial de tomas |
Si, explicito |
Si |
| Alertas de override |
Si, al configurar cuidador |
Si |
| Patrones de uso |
Si, explicito |
Si |
9. Integraciones
9.1. Integracion con MTS-MED-001
| Aspecto |
Integracion |
| Catalogo |
PRN usa mismo catalogo de medicamentos |
| MedicamentoPaciente |
PRN extiende MedicamentoPaciente con campos adicionales |
| Interacciones |
Se verifican interacciones entre PRN y medicamentos programados |
| Historial |
PRN aparece en historial unificado de medicamentos |
9.2. Integracion con MTS-ALT-001
| Tipo de Alerta |
Canal |
Configuracion |
| Limite 70% |
In-app banner |
Desactivable |
| Limite 90% |
In-app modal |
No desactivable |
| Limite 100% |
In-app modal + push |
No desactivable |
| Override |
Push a cuidador |
Automatico si cuidador existe |
| Patron inusual |
In-app + push |
Semanal maximo |
9.3. Integracion con MTS-ADH-001
| Metrica |
Tratamiento PRN |
| Adherencia programada |
PRN NO afecta % de adherencia |
| Racha |
PRN NO rompe rachas |
| Estadisticas |
PRN tiene seccion separada |
| Gamificacion |
Tomas PRN NO otorgan puntos |
Justificacion: Los medicamentos PRN son "segun necesidad", por lo que no tiene sentido medir adherencia tradicional ni gamificar su uso.
9.4. Integracion con MTS-RPT-001
| Reporte |
Inclusion PRN |
| Reporte diario |
Lista de tomas PRN del dia |
| Reporte semanal |
Resumen de uso PRN + tendencias |
| Reporte mensual |
Patrones de uso + graficas |
| Exportacion FHIR |
MedicationStatement con flag PRN |
10. Requisitos Regulatorios
10.1. LFPDPPP (Mexico)
| Requisito |
Implementacion |
| Datos sensibles de salud |
Cifrado E2E obligatorio |
| Consentimiento explicito |
Requerido para activar PRN |
| Derechos ARCO |
Exportacion incluye datos PRN |
| Retencion |
6 anos minimo (NOM-024) |
10.2. Disclaimers Obligatorios
| Pantalla |
Disclaimer |
| Agregar PRN |
"Los limites de seguridad son orientativos. Consulte siempre con su medico o farmaceutico." |
| Override |
"Tomar mas de lo recomendado puede causar efectos adversos graves. Si el dolor persiste, consulte a su medico." |
| Patrones |
"Esta informacion es solo para referencia. No constituye diagnostico medico." |
11. API Endpoints
Referencia: Ver 11-estandares-api.md para especificaciones completas.
11.1. Endpoints PRN
| Metodo |
Endpoint |
Descripcion |
Auth |
| GET |
/v1/prn-medications |
Listar medicamentos PRN del usuario |
Bearer |
| POST |
/v1/prn-medications |
Agregar medicamento PRN |
Bearer |
| GET |
/v1/prn-medications/{id} |
Detalle de medicamento PRN |
Bearer |
| PUT |
/v1/prn-medications/{id} |
Actualizar configuracion PRN |
Bearer |
| DELETE |
/v1/prn-medications/{id} |
Eliminar medicamento PRN |
Bearer |
| POST |
/v1/prn-medications/{id}/doses |
Registrar toma PRN |
Bearer |
| GET |
/v1/prn-medications/{id}/doses |
Historial de tomas |
Bearer |
| GET |
/v1/prn-medications/{id}/patterns |
Patrones de uso |
Bearer |
| POST |
/v1/prn-medications/{id}/override |
Registrar override |
Bearer |
11.2. Request/Response Registrar Toma PRN
11.2.1. Request
POST /v1/prn-medications/{id}/doses
{
"timestamp": "2025-12-05T14:30:00Z",
"dose_amount": 500,
"dose_unit": "mg",
"reason": "Dolor de cabeza intenso",
"symptom_intensity": 7,
"override": false,
"notes": null
}
11.2.2. Response (200)
{
"data": {
"dose_id": "uuid",
"medication_prn_id": "uuid",
"timestamp": "2025-12-05T14:30:00Z",
"dose_amount": 500,
"dose_unit": "mg",
"daily_status": {
"total_today": 1500,
"max_daily": 4000,
"percentage": 37.5,
"remaining": 2500
},
"next_dose_available": "2025-12-05T18:30:00Z",
"alert_level": null
}
}
11.2.3. Response (429 - Limite alcanzado sin override)
{
"error": {
"code": "DAILY_LIMIT_REACHED",
"message": "Has alcanzado el limite diario de 4000mg",
"details": {
"total_today": 4000,
"max_daily": 4000,
"resets_at": "2025-12-06T00:00:00Z",
"override_available": true
}
}
}
12. Criterios de Aceptacion
| ID |
Criterio |
| AC-PRN-001 |
Usuario puede agregar medicamento PRN desde catalogo o personalizado |
| AC-PRN-002 |
Sistema muestra limites de seguridad del catalogo al agregar PRN |
| AC-PRN-003 |
Usuario puede ajustar limites solo hacia valores mas restrictivos |
| AC-PRN-004 |
Sistema bloquea toma si intervalo minimo no se ha cumplido (< 50%) |
| AC-PRN-005 |
Sistema muestra advertencia entre 50-100% del intervalo |
| AC-PRN-006 |
Sistema muestra alerta informativa al 70% del limite diario |
| AC-PRN-007 |
Sistema muestra advertencia prominente al 90% del limite diario |
| AC-PRN-008 |
Sistema bloquea toma al 100% del limite sin override |
| AC-PRN-009 |
Override requiere justificacion y se registra en audit log |
| AC-PRN-010 |
Override notifica a Cuidador Responsable si existe |
| AC-PRN-011 |
Historial de tomas PRN disponible con metricas de uso |
| AC-PRN-012 |
Sistema detecta patron de uso creciente y notifica |
| AC-PRN-013 |
Tomas PRN NO afectan calculo de adherencia ni rachas |
| AC-PRN-014 |
Datos PRN se cifran E2E |
| AC-PRN-015 |
Modulo funciona 100% offline |
13. Casos de Error
13.1. ERR-PRN-001: Limite Diario Excedido
| Campo |
Valor |
| Codigo |
ERR-PRN-001 |
| Descripcion |
Usuario intenta registrar toma que excede limite diario |
| Causa |
Suma de dosis del dia + nueva dosis > max_dosis_diaria |
| Deteccion |
Validacion pre-registro |
| Accion Usuario |
Modal con opciones: [Entendido] [Override con justificacion] |
| Accion Sistema |
Bloquear toma hasta override o nuevo dia |
| Severidad |
Alta |
| Recuperacion |
Override con justificacion o esperar reinicio de limite |
13.2. ERR-PRN-002: Intervalo Minimo No Respetado
| Campo |
Valor |
| Codigo |
ERR-PRN-002 |
| Descripcion |
Usuario intenta tomar PRN antes del intervalo minimo |
| Causa |
Tiempo desde ultima toma < intervalo_minimo_horas |
| Deteccion |
Validacion pre-registro |
| Accion Usuario |
Countdown hasta proxima toma disponible |
| Accion Sistema |
Bloquear si < 50%, advertir si 50-100% |
| Severidad |
Media-Alta |
| Recuperacion |
Esperar tiempo restante |
13.3. ERR-PRN-003: Override de Seguridad Sin Justificacion
| Campo |
Valor |
| Codigo |
ERR-PRN-003 |
| Descripcion |
Usuario intenta override sin proporcionar justificacion |
| Causa |
Campo justificacion_override vacio o < 10 caracteres |
| Deteccion |
Validacion de formulario |
| Accion Usuario |
Solicitar justificacion valida |
| Accion Sistema |
No permitir override sin justificacion |
| Severidad |
Media |
| Recuperacion |
Proporcionar justificacion o cancelar |
14. Referencias Cruzadas
Documento generado por ImpactDrone y UserFlowDrone para SpecQueen
La especificacion funcional ES el sistema.
14.1. Fuentes de Investigacion