Saltar a contenido

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 Relacion
MTS-MED-001 Medicamento PRN extiende MedicamentoPaciente
MTS-ALT-001 Alertas de seguridad PRN
MTS-ADH-001 PRN excluido de metricas de adherencia
MTS-RPT-001 Reportes incluyen seccion PRN
MTS-FAM-001 Permisos de cuidador para PRN
MTS-REG-001 Requisitos regulatorios Mexico
MTS-RN-001 Reglas de negocio centrales
MTS-FLU-001 Flujos generales de usuario

Documento generado por ImpactDrone y UserFlowDrone para SpecQueen La especificacion funcional ES el sistema.

14.1. Fuentes de Investigacion