Saltar a contenido

MTS-INT-002: Motor de Interacciones Medicamentos-Estudios

Identificador: MTS-INT-002 Version: 1.1.0 Fecha: 2025-12-08 Autor: ImpactDrone, ComplianceDrone Ultima Revision: Directiva del Director - Regla de 100 registros Estado: BORRADOR Prioridad: ALTA (Seguridad del paciente) Dependencias: MTS-EST-001, MTS-MED-001, MTS-CIT-001, MTS-INT-001

NOTA IMPORTANTE (v1.1.0): Este documento ha sido actualizado para cumplir con la directiva del director:"Ningun catalogo >100 registros se descarga al dispositivo". El modelo anterior de descarga OTA de 500-1000+ reglas ha sido reemplazado por un modelo de mini-cache embebido (<100 reglas criticas) + busqueda online.



1. Vision General

1.1. Proposito

Este modulo implementa el motor de deteccion de interacciones entre medicamentos activos del paciente y estudios medicos o tratamientos programados. Su proposito es:

  1. Prevenir resultados alterados: Detectar medicamentos que pueden falsear resultados de laboratorio
  2. Asegurar seguridad en procedimientos: Alertar sobre medicamentos que deben suspenderse antes de biopsias, cirugias o estudios invasivos
  3. Evitar complicaciones: Identificar incompatibilidades entre medicamentos y tratamientos (ej: contraste yodado)
  4. Gestionar restricciones post-tratamiento: Informar sobre medicamentos que no deben tomarse despues de ciertos procedimientos

DISCLAIMER LEGAL: La informacion sobre interacciones medicamento-estudio es solo orientativa y NO sustituye las instrucciones del profesional de salud. Siempre siga las indicaciones de su medico o laboratorio.

1.2. Alcance V1.0

1.2.1. Incluido en V1.0

  • Mini-cache embebido con <100 interacciones medicamento-estudio mas criticas (suspensiones obligatorias pre-procedimiento)
  • Busqueda online para verificacion completa (requiere cuenta y conexion)
  • Deteccion automatica al agendar citas de tipo estudio/tratamiento
  • Alertas de suspension pre-procedimiento
  • Recordatorios programados para suspension de medicamentos
  • Informacion sobre medicamentos que alteran resultados de laboratorio
  • Funcionamiento offline limitado con mini-cache (tier Free sin cuenta)
  • Cache local de reglas aplicables al usuario (solo las detectadas para sus medicamentos/estudios)

Directiva del Director: Ningun catalogo >100 registros se descarga al dispositivo. Ver seccion 5.3 para arquitectura de datos.

1.2.2. Diferido a Versiones Futuras

  • Motor de IA para analisis de combinaciones complejas (Perfect)
  • Integracion con calendarios de farmacias para ajuste de surtido
  • Exportacion automatica de lista de medicamentos para laboratorio

1.3. Diferencias con MTS-INT-001

Aspecto MTS-INT-001 MTS-INT-002
Enfoque Medicamento vs Medicamento Medicamento vs Estudio/Tratamiento
Trigger principal Agregar medicamento Agendar cita de estudio
Tipo de riesgo Interacciones farmacologicas Interferencia diagnostica, seguridad procedimental
Accion tipica Evitar combinacion Suspender temporalmente, ajustar timing
Temporalidad Concurrencia continua Ventana temporal definida
Severidad CONTRAINDICADO a MENOR CRITICO, IMPORTANTE, INFORMATIVO
flowchart LR
    subgraph MTS-INT-001
        A[Medicamento A] <--> B[Medicamento B]
        C[Interaccion Farmacologica]
    end

    subgraph MTS-INT-002
        D[Medicamento] --> E[Estudio/Tratamiento]
        F[Ventana Temporal]
        G[Accion: Suspender/Informar]
    end

    style MTS-INT-001 fill:#f9d71c
    style MTS-INT-002 fill:#1ca3ec

2. Actores

Actor Descripcion Interaccion con Motor
Paciente Independiente Gestiona su salud Recibe alertas, decide sobre suspension
Paciente Dependiente Requiere asistencia Visualiza alertas, cuidador actua
Cuidador Responsable Gestiona paciente Recibe alertas, gestiona suspensiones
Sistema MTS-INT-002 Motor automatizado Detecta interacciones, genera alertas
Sistema MTS-CIT-001 Modulo de citas Solicita verificacion al agendar
Sistema MTS-NTF-001 Notificaciones Envia recordatorios de suspension

3. Disponibilidad por Tier

Arquitectura de Datos (Directiva del Director): Ningun catalogo >100 registros se descarga al dispositivo. El motor utiliza un modelo hibrido de mini-cache local + busqueda online.

3.1. Arquitectura de Datos por Tier

Componente Free sin cuenta Free con cuenta Pro Perfect
Mini-cache embebido <100 reglas criticas <100 reglas criticas <100 reglas criticas <100 reglas criticas
Busqueda online No Si (basica) Si (completa) Si (completa + IA)
Cache del usuario No Reglas detectadas Reglas detectadas Reglas detectadas
Base consultable Solo mini-cache Base MedTime servidor Base MedTime + regionales Base completa + DrugBank

3.2. Mini-Cache Embebido (<100 Reglas)

El mini-cache incluye SOLO las interacciones mas criticas que requieren accion inmediata:

Categoria Ejemplos Cantidad Estimada
Suspensiones obligatorias anticoagulantes Warfarina, DOACs antes de biopsias/cirugias ~25 reglas
Incompatibilidades criticas Metformina + contraste yodado ~15 reglas
Interferencias de alto riesgo Biotina + troponina (falsos negativos cardiacos) ~20 reglas
Suspensiones pre-procedimiento comunes Levotiroxina antes de gammagrama ~30 reglas
Total <100 reglas

Criterio de inclusion en mini-cache: Solo reglas con severidad CRITICO o IMPORTANTE donde la omision de la alerta puede resultar en dano al paciente o procedimiento fallido.

3.3. Free sin Cuenta

Funcionalidad Disponible Notas
Mini-cache embebido Si <100 interacciones criticas
Deteccion al agendar cita Si Solo contra mini-cache
Alertas de suspension Si Con tiempos estandar
Recordatorios programados Si Via MTS-NTF-001
Busqueda online No Requiere crear cuenta
Cache de reglas personales No Requiere crear cuenta

3.4. Free con Cuenta

Funcionalidad Disponible Notas
Todo de Free sin cuenta Si -
Busqueda online basica Si Base MedTime servidor
Cache de reglas personales Si Solo reglas detectadas para el usuario
Historial de alertas Si Ultimos 6 meses
Disclaimer de privacidad Si Se muestra antes de busqueda

3.5. Pro

Funcionalidad Disponible Notas
Todo de Free con cuenta Si -
Busqueda online completa Si Base MedTime + regionales
Interacciones por region Si Medicamentos locales
Historial de alertas Si Ultimos 2 anos
Busqueda automatica Si Al agendar cita (con disclaimer inicial)

3.6. Perfect

Funcionalidad Disponible Notas
Todo de Pro Si -
Verificacion con DrugBank Si Incluida en busqueda online
Analisis IA contextual Si Claude analiza combinaciones
Alertas personalizadas Si Basadas en historial medico
Export para profesionales Si PDF con lista de medicamentos
Recomendaciones de timing Si Optimizacion de horarios de suspension

4. Tipos de Interaccion

4.1. Afecta Resultado de Estudio (INT2-AFE)

Medicamentos que interfieren con los valores de pruebas de laboratorio, causando resultados falsos positivos o negativos.

4.1.1. Mecanismos de Interferencia

Mecanismo Descripcion Ejemplos
Analitico Interfiere con el metodo de medicion Biotina en inmunoensayos
Biologico Altera el valor real del analito Estatinas alteran enzimas hepaticas
Pre-analitico Afecta la muestra Hemolisis por anticoagulantes

4.1.2. Ejemplos Documentados

Medicamento Estudio Afectado Efecto Tiempo Suspension Fuente
Biotina Pruebas tiroideas (TSH, T3, T4) Falsos negativos TSH, falsos positivos T3/T4 48-72h FDA Safety Alert
Biotina Troponina cardiaca Falsos negativos (riesgo vital) 48-72h AACC Guidance
Levotiroxina TSH Valores alterados Tomar muestra antes de dosis Guias endocrinologia
Aspirina Tiempo de sangrado Prolonga resultado 7 dias (si indicado) CHEST Guidelines
Vitamina C Glucosa, sangre oculta Interferencia analitica 48h Estudios clinicos
Omeprazol/IBP pHmetria esofagica Falsea resultados 7 dias Guias gastro
Antihistaminicos Pruebas de alergia Falsos negativos 5-7 dias EAACI Guidelines
Hierro Colonoscopia Obscurece visualizacion 5-7 dias ASGE Guidelines

4.1.3. Modelo de Alerta AFE

+--------------------------------------------------+
| AVISO: MEDICAMENTO PUEDE AFECTAR RESULTADO       |
+--------------------------------------------------+

Estudio programado: Perfil Tiroideo
Fecha: 10 de Diciembre, 8:00 AM

MEDICAMENTO DETECTADO: Biotina (5000 mcg)

EFECTO: La biotina interfiere con los inmunoensayos
utilizados en pruebas de tiroides, causando:
- TSH: Resultado FALSAMENTE BAJO
- T3/T4: Resultado FALSAMENTE ALTO
- Puede simular hipertiroidismo (Graves)

RECOMENDACION:
Suspender biotina 48-72 horas antes del estudio.
Ultima dosis permitida: 7 de Diciembre PM

+--------------------------------------------------+
| Fuente: FDA Safety Communication, AACC Guidance  |
+--------------------------------------------------+

[ ] Entiendo y ajustare mi medicacion

[Mas informacion]           [Entendido]

+--------------------------------------------------+
IMPORTANTE: Consulte con su medico antes de
suspender cualquier medicamento.
+--------------------------------------------------+

4.2. Requiere Suspension Pre-Procedimiento (INT2-SUS)

Medicamentos que deben suspenderse antes de procedimientos invasivos por riesgo de sangrado, complicaciones anestesicas u otros efectos adversos.

4.2.1. Anticoagulantes y Antiplaquetarios

Medicamento Categoria Procedimiento Tiempo Suspension Reinicio Fuente
Warfarina VKA Biopsias, cirugias 3-5 dias 24-48h post CHEST 2022
Rivaroxaban DOAC Alto riesgo sangrado 48h 24-48h post CHEST 2022
Apixaban DOAC Alto riesgo sangrado 48h 24-48h post CHEST 2022
Dabigatran DOAC Alto riesgo sangrado 3-5 dias (segun ClCr) 24-48h post CHEST 2022
Clopidogrel Antiplaquetario Biopsias, cirugias 5-7 dias Variable ASRA Guidelines
Aspirina Antiplaquetario Algunos procedimientos 7 dias Variable Guias especificas

4.2.2. Otros Medicamentos con Suspension Requerida

Medicamento Procedimiento Tiempo Suspension Razon
Levotiroxina Gammagrama tiroideo 4-6 semanas Interfiere captacion I-131
Broncodilatadores Espirometria basal 4-8h (corta accion) / 24h (larga) Falsea funcion pulmonar
Betabloqueadores Prueba de esfuerzo Consultar cardiologo Limita respuesta cardiaca
Bifosfonatos Gammagrama oseo Informar al servicio Altera captacion
Procinetacos Manometria esofagica 48-72h Altera motilidad

4.2.3. Modelo de Alerta SUS

+--------------------------------------------------+
| SUSPENSION DE MEDICAMENTO REQUERIDA              |
+--------------------------------------------------+

Procedimiento programado: Biopsia de piel
Fecha: 15 de Diciembre, 10:00 AM

MEDICAMENTO: Warfarina 5mg

ACCION REQUERIDA: SUSPENDER
Ultima dosis permitida: 10 de Diciembre (5 dias antes)
Reinicio estimado: 16 de Diciembre (24h despues)

RAZON: Riesgo de sangrado excesivo durante
y despues de la biopsia.

IMPORTANTE:
- INR objetivo antes del procedimiento: < 1.5
- Posible necesidad de puente con heparina
- Consulte con su medico anticoagulante

+--------------------------------------------------+
| Fuente: CHEST Guidelines 2022                    |
+--------------------------------------------------+

[ ] He consultado con mi medico esta suspension

[Agregar recordatorio]    [Entendido]

+--------------------------------------------------+

4.3. Incompatibilidad con Tratamiento (INT2-INC)

Medicamentos que no deben administrarse concurrentemente con ciertos tratamientos medicos debido a riesgos de toxicidad o efectos adversos severos.

4.3.1. Interacciones Criticas Documentadas

Medicamento Tratamiento Riesgo Accion Fuente
Metformina TAC/Angio con contraste yodado Acidosis lactica Suspender 48h antes y despues ACR/NKF 2019
Metformina Estudios con contraste (eGFR<60) Acidosis lactica agravada Suspender, verificar creatinina post CAR Guidance
AINEs Quimioterapia nefrotoxica Dano renal aditivo Evitar durante ciclo Guias oncologia
Antidiabeticos Estudios con ayuno prolongado Hipoglucemia Ajustar dosis Guias diabetes
Litio Diureticos en procedimientos Toxicidad litio Monitorear niveles Guias psiquiatria

4.3.2. Caso Especial: Metformina y Contraste Yodado

flowchart TD
    A[Paciente toma Metformina] --> B{Estudio con contraste?}
    B -->|No| C[Sin accion especial]
    B -->|Si| D{eGFR del paciente?}

    D -->|eGFR >= 60| E[Suspender al momento del contraste]
    D -->|eGFR 30-59| F[Suspender 48h antes]
    D -->|eGFR < 30| G[CONTRAINDICADO contraste]

    E --> H[Reiniciar 48h despues si creatinina estable]
    F --> H
    G --> I[Consultar alternativas con medico]

    style G fill:#ff4444,color:#fff
    style F fill:#ff8c00,color:#fff
    style E fill:#ffcc00,color:#000

4.3.3. Modelo de Alerta INC

+--------------------------------------------------+
| INCOMPATIBILIDAD MEDICAMENTO-TRATAMIENTO         |
+--------------------------------------------------+

Tratamiento programado: Tomografia con contraste IV
Fecha: 12 de Diciembre, 9:00 AM

MEDICAMENTO: Metformina 850mg

RIESGO: ACIDOSIS LACTICA
La combinacion de metformina con contraste yodado
puede causar acidosis lactica, especialmente si
hay deterioro de funcion renal.

PROTOCOLO RECOMENDADO:
1. Suspender metformina 48 horas antes del estudio
   Ultima dosis: 10 de Diciembre AM
2. Mantenerse bien hidratado
3. Reiniciar metformina 48 horas DESPUES del estudio
   Primera dosis: 14 de Diciembre AM
4. SOLO si creatinina permanece estable

VERIFICAR:
[ ] Mi ultima creatinina fue: _____ mg/dL
[ ] Mi eGFR estimado es: _____ mL/min

+--------------------------------------------------+
| Fuente: ACR-NKF Consensus 2019, CAR Guidance 2022|
+--------------------------------------------------+

[Agregar recordatorios]    [Consultar medico]

+--------------------------------------------------+
IMPORTANTE: No reinicie metformina sin verificar
que su funcion renal no haya cambiado.
+--------------------------------------------------+

4.4. Restriccion Post-Tratamiento (INT2-POS)

Restricciones sobre medicamentos que no deben tomarse inmediatamente despues de ciertos procedimientos o tratamientos.

4.4.1. Restricciones Comunes

Tratamiento Medicamento Restringido Duracion Razon
Endoscopia con sedacion Sedantes, alcohol 24h Efecto aditivo sedacion
Procedimiento con anestesia Opioides (excepto prescritos) 24-48h Depresion respiratoria
Quimioterapia AINEs 48-72h Toxicidad renal aditiva
Gammagrama Levotiroxina Reiniciar segun indicacion Depende del estudio
Biopsia hepatica Anticoagulantes Esperar indicacion Riesgo sangrado
Colonoscopia Fibra, laxantes 24h Dieta de transicion

4.4.2. Modelo de Alerta POS

+--------------------------------------------------+
| RESTRICCION POST-PROCEDIMIENTO                   |
+--------------------------------------------------+

Procedimiento realizado: Colonoscopia con sedacion
Fecha: Hoy

RESTRICCIONES DE MEDICACION:

Por las proximas 24 HORAS evitar:
[ ] Sedantes o tranquilizantes
[ ] Alcohol en cualquier cantidad
[ ] Medicamentos que causen somnolencia

MEDICAMENTOS QUE PUEDE TOMAR:
[X] Sus medicamentos habituales (con agua)
[X] Analgesicos suaves si tiene molestias

SIGNOS DE ALARMA (buscar atencion medica):
- Sangrado abundante
- Dolor abdominal severo
- Fiebre > 38C
- Mareo persistente

+--------------------------------------------------+
| Informacion de: Guias ASGE                       |
+--------------------------------------------------+

[Entendido]

+--------------------------------------------------+

5. Base de Datos de Interacciones

5.1. Estructura

5.1.1. Modelo InteraccionMedicamentoEstudio

InteraccionMedicamentoEstudio {
  id: UUID (PK)

  // Medicamento (referencia a MTS-CAT-001)
  medicamento_codigo: string           // Codigo del catalogo
  principio_activo: string             // Nombre generico
  categoria_terapeutica: string        // ATC nivel 2

  // Estudio/Tratamiento (referencia a MTS-EST-001)
  estudio_codigo: string               // Codigo del catalogo estudios
  estudio_categoria: enum              // LAB, IMG, ESP, TRT, etc.
  estudio_subcategoria: string         // QUI, TC, CAR, etc.

  // Tipo de interaccion
  tipo_interaccion: enum [AFE, SUS, INC, POS]

  // Clasificacion
  severidad: enum [CRITICO, IMPORTANTE, INFORMATIVO]
  nivel_evidencia: enum [ALTA, MEDIA, BAJA]

  // Detalles de la interaccion
  descripcion: text
  mecanismo: text
  efecto: text

  // Accion requerida
  accion: enum [SUSPENDER, AJUSTAR, INFORMAR, MONITOREAR]
  tiempo_antes_horas: integer          // Horas antes del estudio
  tiempo_despues_horas: integer        // Horas despues para reiniciar/restriccion
  instrucciones_especiales: text

  // Condiciones
  aplica_si_dosis_mayor: decimal       // Solo si dosis > X
  aplica_si_funcion_renal_menor: integer // Solo si eGFR < X
  excepciones: text

  // Fuentes
  fuente_primaria: string
  referencias: array<string>
  fecha_evidencia: date

  // Metadata
  activa: boolean
  paises_aplica: array<string>
  created_at: timestamp
  updated_at: timestamp
}

5.1.2. Niveles de Severidad

Nivel Codigo Descripcion Comportamiento UI
CRITICO 3 Riesgo vital o dano significativo Alerta bloqueante, requiere confirmacion explicita
IMPORTANTE 2 Puede afectar resultado o seguridad Alerta prominente, recordatorios automaticos
INFORMATIVO 1 Informacion util, bajo riesgo Nota informativa, sin bloqueo
flowchart LR
    A[Severidad] --> C["CRITICO (Rojo)"]
    A --> I["IMPORTANTE (Naranja)"]
    A --> IN["INFORMATIVO (Azul)"]

    C --> C1[Bloqueo + Confirmacion]
    I --> I1[Alerta + Recordatorios]
    IN --> IN1[Nota informativa]

    style C fill:#ff4444,color:#fff
    style I fill:#ff8c00,color:#fff
    style IN fill:#4444ff,color:#fff

5.2. Fuentes

5.2.1. Fuentes Primarias

Fuente Tipo Cobertura Actualizacion
FDA Drug Safety Communications Regulatorio Alertas criticas USA Continua
AACC Guidance Documents Clinico Interferencias laboratorio Anual
CHEST Guidelines Clinico Anticoagulacion perioperatoria Cada 3 anos
ACR-NKF Consensus Clinico Contraste y funcion renal Segun evidencia
Guias de sociedades medicas Clinico Por especialidad Variable
DrugBank Comercial Interacciones generales Diario
Base MedTime curada Interno Adaptacion regional Mensual

5.2.2. Proceso de Curacion

flowchart TD
    A[Identificar interaccion en literatura] --> B[Evaluar nivel de evidencia]
    B --> C{Evidencia suficiente?}
    C -->|No| D[Marcar para revision futura]
    C -->|Si| E[Clasificar tipo INT2-XXX]
    E --> F[Asignar severidad]
    F --> G[Redactar descripcion para paciente]
    G --> H[Definir tiempos de accion]
    H --> I[Validar con farmaceutico clinico]
    I --> J[Agregar a base de datos]
    J --> K[QA y pruebas]
    K --> L[Desplegar en siguiente release]

5.3. Arquitectura de Datos e Interacciones

Directiva del Director: Ningun catalogo >100 registros se descarga al dispositivo.

5.3.1. Modelo de Datos Hibrido

flowchart TD
    subgraph DISPOSITIVO["DISPOSITIVO LOCAL"]
        MC["Mini-Cache Embebido<br/><100 reglas criticas"]
        UC["Cache del Usuario<br/>Solo reglas detectadas"]
    end

    subgraph SERVIDOR["SERVIDOR MEDTIME"]
        BF["Base Completa<br/>1000+ reglas"]
        DB["DrugBank API"]
        IA["Motor IA<br/>(Perfect)"]
    end

    MC -->|Verificacion offline| D1[Deteccion Local]
    UC -->|Reglas ya conocidas| D1

    D1 -->|Sin conexion| R1[Resultado parcial]
    D1 -->|Con conexion| S1[Busqueda Online]

    S1 -->|Consulta anonima| BF
    BF -->|Reglas aplicables| S1
    S1 -->|Tier Perfect| DB
    S1 -->|Tier Perfect| IA

    S1 -->|Guardar detectadas| UC
    S1 --> R2[Resultado completo]

    style MC fill:#90EE90
    style UC fill:#87CEEB
    style BF fill:#FFB6C1

5.3.2. Estrategia por Componente

Componente Ubicacion Tamano Actualizacion
Mini-cache embebido APK/IPA <100 reglas Con actualizacion de app
Cache del usuario SQLite local Variable (solo detectadas) Automatico al detectar
Base servidor Cloud MedTime 1000+ reglas Continua
DrugBank API externa Completa Tiempo real

5.3.3. Flujo de Deteccion por Conectividad

flowchart TD
    A[Usuario agenda estudio] --> B{Tiene cuenta?}

    B -->|No| C[Verificar solo mini-cache]
    C --> D[Resultado: Solo criticas detectadas]
    D --> E[Sugerir crear cuenta para verificacion completa]

    B -->|Si| F{Tiene conexion?}

    F -->|No| G[Verificar mini-cache + cache usuario]
    G --> H[Resultado: Parcial offline]
    H --> I[Marcar para verificacion online posterior]

    F -->|Si| J{Primera busqueda automatica?}

    J -->|Si| K[Mostrar disclaimer privacidad]
    K --> L{Usuario acepta?}
    L -->|No| M[Solo verificacion local]
    L -->|Si| N[Busqueda online]

    J -->|No| N

    N --> O[Servidor retorna reglas aplicables]
    O --> P[Guardar en cache usuario]
    P --> Q[Resultado: Completo]

    style D fill:#FFD700
    style H fill:#FFA500
    style Q fill:#90EE90

5.3.4. Contenido del Mini-Cache Embebido

El mini-cache se actualiza SOLO con releases de la app y contiene:

Prioridad Tipo Criterio Ejemplos
1 - Critico INT2-SUS Anticoagulantes antes de procedimientos invasivos Warfarina, Rivaroxaban, Apixaban
2 - Critico INT2-INC Incompatibilidades con riesgo vital Metformina + contraste (eGFR<30)
3 - Alto INT2-AFE Interferencias con riesgo de falso negativo critico Biotina + Troponina
4 - Alto INT2-SUS Suspensiones pre-procedimiento comunes Levotiroxina antes de gammagrama

5.3.5. Cache del Usuario (Solo Reglas Detectadas)

CacheInteraccionUsuario {
  id: UUID (PK)
  user_id: UUID (FK)

  // Regla detectada
  interaccion_hash: string         // Hash de la regla (no el contenido completo)
  medicamento_codigo: string       // Codigo del medicamento del usuario
  estudio_categoria: string        // Categoria del estudio

  // Contenido cacheado (cifrado)
  regla_contenido: text (encrypted) // Contenido completo de la regla
  severidad: enum
  tipo_interaccion: enum

  // Metadata
  detectada_en: timestamp          // Cuando se detecto
  ultima_verificacion: timestamp   // Ultima vez que se verifico vigencia
  vigente: boolean                 // Si sigue siendo aplicable

  created_at: timestamp
  updated_at: timestamp
}

Privacidad: El cache del usuario esta cifrado con su clave personal. El servidor NO almacena que reglas tiene cada usuario en su cache.


6. Funcionalidades

6.1. Verificacion al Agendar Cita

6.1.1. Flujo de Verificacion

sequenceDiagram
    participant U as Usuario
    participant CIT as MTS-CIT-001
    participant EST as MTS-EST-001
    participant INT2 as MTS-INT-002
    participant MED as MTS-MED-001

    U->>CIT: Crear nueva cita
    CIT->>EST: Seleccionar tipo de estudio
    EST-->>CIT: Codigo estudio (ej: IMG-TC-004)

    CIT->>INT2: Verificar interacciones(estudio_codigo)
    INT2->>MED: Obtener medicamentos activos
    MED-->>INT2: Lista de medicamentos

    loop Para cada medicamento
        INT2->>INT2: Buscar interaccion(med, estudio)
    end

    alt Interacciones encontradas
        INT2-->>CIT: Lista de interacciones + alertas
        CIT-->>U: Mostrar alertas ANTES de confirmar
        U->>CIT: Confirmar con conocimiento
        CIT->>INT2: Programar recordatorios
    else Sin interacciones
        INT2-->>CIT: OK, sin interacciones
        CIT-->>U: Confirmar cita normalmente
    end

6.1.2. Algoritmo de Deteccion (Modelo Hibrido)

# PSEUDOCODIGO - Deteccion de interacciones con modelo hibrido
def verificar_interacciones_estudio(estudio_codigo: str, usuario: Usuario) -> ResultadoDeteccion:
    """
    Verifica interacciones usando modelo hibrido:
    1. Mini-cache embebido (<100 reglas criticas)
    2. Cache del usuario (reglas ya detectadas)
    3. Busqueda online (si tiene cuenta y conexion)
    """
    resultado = ResultadoDeteccion()
    medicamentos = obtener_medicamentos_activos()
    estudio = catalogo_estudios.obtener(estudio_codigo)

    # PASO 1: Verificar contra mini-cache embebido (SIEMPRE disponible)
    for med in medicamentos:
        interacciones_criticas = mini_cache.buscar(
            principio_activo=med.principio_activo,
            estudio_categoria=estudio.categoria
        )
        for inter in interacciones_criticas:
            if aplica_interaccion(inter, med, usuario):
                resultado.agregar(inter, fuente="mini_cache")

    # PASO 2: Verificar contra cache del usuario (si tiene cuenta)
    if usuario.tiene_cuenta:
        for med in medicamentos:
            interacciones_cache = cache_usuario.buscar(
                user_id=usuario.id,
                medicamento_codigo=med.codigo,
                estudio_categoria=estudio.categoria
            )
            for inter in interacciones_cache:
                if inter.vigente and aplica_interaccion(inter, med, usuario):
                    resultado.agregar(inter, fuente="cache_usuario")

    # PASO 3: Busqueda online (si tiene cuenta Y conexion Y consentimiento)
    if usuario.tiene_cuenta and hay_conexion() and usuario.acepto_busqueda_online:
        # Verificar si es primera busqueda automatica
        if es_busqueda_automatica and not usuario.mostro_disclaimer_busqueda:
            mostrar_disclaimer_privacidad()
            if not usuario.acepta_disclaimer:
                resultado.marcar_parcial("Usuario rechazo busqueda online")
                return resultado
            usuario.mostro_disclaimer_busqueda = True

        # Realizar busqueda online anonimizada
        consulta_anonima = anonimizar_consulta(medicamentos, estudio)
        interacciones_servidor = servidor.buscar_interacciones(consulta_anonima)

        for inter in interacciones_servidor:
            if aplica_interaccion(inter, med, usuario):
                resultado.agregar(inter, fuente="servidor")
                # Guardar en cache del usuario para uso offline futuro
                cache_usuario.guardar(usuario.id, inter)

    # Si no tiene cuenta, sugerir crear una
    if not usuario.tiene_cuenta and len(resultado.interacciones) > 0:
        resultado.sugerencia = "Crea una cuenta gratuita para verificacion completa"
    elif not usuario.tiene_cuenta:
        resultado.sugerencia = "Verificacion limitada. Crea cuenta para busqueda completa"

    # Ordenar por severidad
    resultado.ordenar_por_severidad()
    resultado.marcar_fuentes()  # Indica de donde vino cada resultado

    return resultado


def anonimizar_consulta(medicamentos: List, estudio: Estudio) -> ConsultaAnonima:
    """
    Prepara consulta anonima segun INV-013.
    El servidor VE: categorias de medicamentos, categoria de estudio
    El servidor NO VE: quien es el usuario, medicamentos especificos, dosis
    """
    return ConsultaAnonima(
        session_token=generar_token_efimero(),
        categorias_medicamentos=[med.categoria_atc for med in medicamentos],
        principios_activos_hash=[hash(med.principio_activo) for med in medicamentos],
        estudio_categoria=estudio.categoria,
        region_generalizada=obtener_region_generalizada()
    )


def aplica_interaccion(interaccion, medicamento, paciente) -> bool:
    """
    Verifica si una interaccion aplica segun condiciones.
    """
    # Verificar dosis minima
    if interaccion.aplica_si_dosis_mayor:
        if medicamento.dosis < interaccion.aplica_si_dosis_mayor:
            return False

    # Verificar funcion renal (si aplica)
    if interaccion.aplica_si_funcion_renal_menor:
        egfr = paciente.ultimo_egfr or 60  # Default conservador
        if egfr >= interaccion.aplica_si_funcion_renal_menor:
            return False

    return True

Nota sobre Privacidad: El algoritmo sigue el protocolo de anonimizacion INV-013. El servidor puede ver QUE medicamentos y estudios se consultan (en forma de categorias), pero NO puede ver QUIEN hace la consulta.

6.2. Alerta de Preparacion

6.2.1. Generacion de Alertas

Cuando se detectan interacciones, el sistema genera alertas estructuradas:

Tipo Contenido Timing
AFE Informacion sobre interferencia + recomendacion Al agendar + recordatorio
SUS Instrucciones de suspension + fechas exactas Al agendar + recordatorios multiples
INC Advertencia critica + protocolo Al agendar (bloqueante)
POS Restricciones post-procedimiento Dia del procedimiento

6.2.2. Pantalla de Alertas Multiples

+--------------------------------------------------+
| ALERTAS DE PREPARACION PARA SU ESTUDIO           |
+--------------------------------------------------+

Estudio: TAC Abdominal con Contraste
Fecha: 20 de Diciembre, 8:00 AM

Se detectaron 2 alertas relacionadas con sus medicamentos:

+--------------------------------------------------+
| [!] CRITICO - Metformina 850mg                   |
+--------------------------------------------------+
| Accion: SUSPENDER 48 horas antes y despues       |
| Ultima dosis: 18 de Diciembre AM                 |
| Reiniciar: 22 de Diciembre (si creatinina OK)    |
| Razon: Riesgo de acidosis lactica con contraste  |
+--------------------------------------------------+

+--------------------------------------------------+
| [i] INFORMATIVO - Aspirina 100mg                 |
+--------------------------------------------------+
| Accion: INFORMAR al tecnico radiologo            |
| Puede continuar tomandola normalmente            |
| Razon: Solo para registro del procedimiento      |
+--------------------------------------------------+

[ ] He leido y entendido estas alertas
[ ] Consultare con mi medico si tengo dudas

[Cancelar cita]    [Agregar recordatorios]    [Confirmar]

+--------------------------------------------------+
IMPORTANTE: No suspenda medicamentos sin consultar
con su medico, especialmente si son para condiciones
cronicas como diabetes, hipertension o coagulacion.
+--------------------------------------------------+

6.3. Recordatorio de Suspension

6.3.1. Programacion de Recordatorios

Para interacciones tipo SUS (suspension requerida), el sistema programa automaticamente:

Recordatorio Cuando Contenido
Inicial Al confirmar cita Resumen de acciones requeridas
Previo 24h antes de iniciar suspension "Manana es su ultima dosis de [med]"
Dia de suspension Dia de ultima dosis "Hoy es su ultima dosis de [med] antes del estudio"
Dia de estudio Manana del estudio "Recuerde: no tome [med] hoy"
Post-estudio Segun tiempo indicado "Ya puede reiniciar [med] si todo fue bien"

6.3.2. Modelo de Recordatorio

+--------------------------------------------------+
| RECORDATORIO: Suspension de Warfarina            |
+--------------------------------------------------+

HOY es su ULTIMA DOSIS de Warfarina antes de su
procedimiento del 15 de Diciembre.

Procedimiento: Biopsia de piel
En: 5 dias

INSTRUCCIONES:
1. Tome su dosis de Warfarina HOY como siempre
2. A partir de MANANA, NO tome Warfarina
3. Continue con sus otros medicamentos normalmente

IMPORTANTE:
- Si tiene algun sangrado inusual, contacte a su medico
- Lleve su INR mas reciente al procedimiento

+--------------------------------------------------+

[Entendido]    [Llamar a mi medico]

+--------------------------------------------------+

6.4. Confirmacion Post-Estudio

6.4.1. Seguimiento Post-Procedimiento

Para interacciones tipo SUS e INC, el sistema solicita confirmacion post-estudio:

+--------------------------------------------------+
| SEGUIMIENTO POST-PROCEDIMIENTO                   |
+--------------------------------------------------+

Procedimiento realizado: TAC con Contraste
Fecha: 20 de Diciembre

MEDICAMENTO SUSPENDIDO: Metformina 850mg

ANTES DE REINICIAR:
El protocolo indica reiniciar metformina 48 horas
despues del estudio, SOLO si:
- No tuvo reacciones adversas al contraste
- Su funcion renal permanece estable

PREGUNTAS DE VERIFICACION:
1. Tuvo alguna reaccion durante o despues del estudio?
   ( ) No, todo estuvo bien
   ( ) Si, describa: ________________

2. Le indicaron algun problema con su creatinina?
   ( ) No / No me hicieron prueba
   ( ) Si, me indicaron: ________________

Si ambas respuestas son negativas, puede reiniciar
metformina el 22 de Diciembre.

[Reiniciar medicamento]    [Consultar medico primero]

+--------------------------------------------------+

7. Flujos de Usuario

7.1. Flujo Principal: Agendar Cita con Deteccion

flowchart TD
    A[Usuario inicia crear cita] --> B[Selecciona tipo: Estudio/Tratamiento]
    B --> C[Busca en catalogo MTS-EST-001]
    C --> D[Selecciona estudio especifico]

    D --> E{Motor INT2: Verificar interacciones}
    E --> F[Obtener medicamentos activos]
    F --> G[Buscar en base de interacciones]

    G --> H{Interacciones encontradas?}
    H -->|No| I[Continuar flujo normal de cita]
    H -->|Si| J[Clasificar por severidad]

    J --> K{Hay CRITICAS?}
    K -->|Si| L[Mostrar alerta bloqueante]
    L --> M{Usuario confirma?}
    M -->|No| N[Cancelar creacion de cita]
    M -->|Si| O[Registrar confirmacion]

    K -->|No| O
    O --> P[Mostrar todas las alertas]
    P --> Q{Usuario acepta?}
    Q -->|No| N
    Q -->|Si| R[Crear cita con flag de interacciones]

    R --> S[Programar recordatorios via MTS-NTF-001]
    S --> T[Guardar interacciones detectadas en evento]
    T --> U[Mostrar resumen con fechas de suspension]

    I --> V[Crear cita estandar]

7.2. Flujo Alternativo: Agregar Medicamento con Estudio Programado

flowchart TD
    A[Usuario agrega nuevo medicamento] --> B[MTS-MED-001 procesa]
    B --> C{Hay estudios/tratamientos programados?}

    C -->|No| D[Continuar flujo normal MTS-MED-001]
    C -->|Si| E[Obtener lista de citas futuras]

    E --> F[Motor INT2: Verificar contra cada cita]
    F --> G{Interacciones encontradas?}

    G -->|No| D
    G -->|Si| H[Mostrar alerta retroactiva]

    H --> I[Informar sobre estudios afectados]
    I --> J[Listar acciones requeridas]
    J --> K[Ofrecer reprogramar o ajustar]

    K --> L{Usuario decide}
    L -->|Continuar| M[Agregar medicamento con advertencia]
    L -->|Reprogramar| N[Ir a MTS-CIT-001 para modificar cita]

    M --> O[Actualizar recordatorios existentes]

7.3. Flujo de Recordatorios Automaticos

sequenceDiagram
    participant SYS as Sistema MTS-INT-002
    participant NTF as MTS-NTF-001
    participant U as Usuario

    Note over SYS: Cita con Warfarina suspension<br/>5 dias antes: iniciar suspension

    SYS->>NTF: Programar recordatorio (T-6 dias)
    SYS->>NTF: Programar recordatorio (T-5 dias, ultima dosis)
    SYS->>NTF: Programar recordatorio (T-1 dia)
    SYS->>NTF: Programar recordatorio (T, dia del estudio)
    SYS->>NTF: Programar recordatorio (T+1 dia, reinicio)

    Note over NTF: T-6 dias
    NTF->>U: "Manana es su ultima dosis de Warfarina"

    Note over NTF: T-5 dias
    NTF->>U: "HOY es su ultima dosis de Warfarina"

    Note over NTF: T-1 dia
    NTF->>U: "Recuerde: NO tome Warfarina manana"

    Note over NTF: T (dia del estudio)
    NTF->>U: "NO tome Warfarina hoy - Dia del procedimiento"

    Note over NTF: T+1 dia
    NTF->>U: "Puede reiniciar Warfarina segun indicacion medica"
    NTF->>U: Mostrar pantalla de confirmacion post-estudio

8. Modelo de Datos

8.1. Entidades

8.1.1. InteraccionMedicamentoEstudio (base de datos)

InteraccionMedicamentoEstudio {
  id: UUID (PK)

  // Claves de busqueda
  medicamento_codigo: string (idx)
  principio_activo: string (idx)
  categoria_terapeutica: string (idx)
  estudio_codigo: string (idx)
  estudio_categoria: enum (idx)
  estudio_subcategoria: string (idx)

  // Clasificacion
  tipo_interaccion: enum [AFE, SUS, INC, POS]
  severidad: enum [CRITICO, IMPORTANTE, INFORMATIVO]
  nivel_evidencia: enum [ALTA, MEDIA, BAJA]

  // Contenido
  titulo: string
  descripcion: text
  mecanismo: text
  efecto: text
  accion: enum [SUSPENDER, AJUSTAR, INFORMAR, MONITOREAR]

  // Tiempos
  tiempo_antes_horas: integer
  tiempo_despues_horas: integer
  instrucciones_timing: text

  // Condiciones
  aplica_si_dosis_mayor: decimal (nullable)
  aplica_si_funcion_renal_menor: integer (nullable)
  excepciones: text (nullable)

  // Fuentes
  fuente_primaria: string
  referencias: jsonb
  fecha_evidencia: date

  // Metadata
  activa: boolean
  version: integer
  created_at: timestamp
  updated_at: timestamp
}

8.1.2. InteraccionDetectadaEvento (por evento/cita)

InteraccionDetectadaEvento {
  id: UUID (PK)
  evento_id: UUID (FK -> EventoMedico)

  // Interaccion detectada
  interaccion_id: UUID (FK -> InteraccionMedicamentoEstudio)
  medicamento_usuario_id: UUID (FK -> MedicamentoUsuario)

  // Snapshot al momento de deteccion
  medicamento_nombre: string (encrypted)
  estudio_nombre: string (encrypted)
  severidad: enum
  tipo_interaccion: enum
  accion_requerida: text (encrypted)

  // Estado
  usuario_confirmo: boolean
  fecha_confirmacion: timestamp
  usuario_consulto_medico: boolean

  // Recordatorios
  recordatorios_programados: jsonb

  // Seguimiento
  medicamento_suspendido: boolean
  fecha_suspension: timestamp
  medicamento_reiniciado: boolean
  fecha_reinicio: timestamp
  notas_seguimiento: text (encrypted)

  created_at: timestamp
  updated_at: timestamp
}

8.1.3. RecordatorioSuspension

RecordatorioSuspension {
  id: UUID (PK)
  interaccion_evento_id: UUID (FK -> InteraccionDetectadaEvento)

  // Tipo de recordatorio
  tipo: enum [PREVIO, DIA_SUSPENSION, PRE_ESTUDIO, POST_ESTUDIO, REINICIO]

  // Programacion
  fecha_hora_programada: timestamp
  enviado: boolean
  fecha_envio: timestamp

  // Contenido
  titulo: string (encrypted)
  mensaje: text (encrypted)

  // Respuesta usuario
  usuario_confirmo: boolean
  fecha_confirmacion: timestamp

  created_at: timestamp
}

8.2. Relaciones

+---------------------------+
| InteraccionMedicamento    |
| Estudio (Base)            |
+---------------------------+
| id (PK)                   |
| medicamento_codigo        |
| estudio_codigo            |
| tipo_interaccion          |
| severidad                 |
+------------+--------------+
             |
             | 1:N (detectada en eventos)
             |
+------------v--------------+       +-------------------+
| InteraccionDetectada      |       | EventoMedico      |
| Evento                    |------>| (MTS-CIT-001)     |
+---------------------------+       +-------------------+
| id (PK)                   |       | id (PK)           |
| evento_id (FK)            |       | tipo              |
| interaccion_id (FK)       |       | fecha_hora        |
| medicamento_usuario_id    |       | estudio_ref       |
| usuario_confirmo          |       +-------------------+
| estado_suspension         |
+------------+--------------+
             |
             | 1:N (recordatorios)
             |
+------------v--------------+
| RecordatorioSuspension    |
+---------------------------+
| id (PK)                   |
| interaccion_evento_id (FK)|
| tipo                      |
| fecha_programada          |
| enviado                   |
+---------------------------+

9. Reglas de Negocio

Directiva del Director (v1.1.0): Ningun catalogo >100 registros se descarga al dispositivo.

9.1. Reglas de Arquitectura de Datos

ID Regla Validacion Referencia
RN-INT2-100 Mini-cache embebido NO debe exceder 100 reglas Build time Directiva Director
RN-INT2-101 Solo reglas CRITICO/IMPORTANTE en mini-cache Curacion Directiva Director
RN-INT2-102 Base completa permanece en servidor, NUNCA se descarga Sistema Directiva Director
RN-INT2-103 Cache del usuario solo almacena reglas detectadas para SUS medicamentos Sistema Privacidad
RN-INT2-104 Cache del usuario esta cifrado con clave personal Sistema HIPAA
RN-INT2-105 Busqueda online requiere cuenta (Free con cuenta o superior) Sistema Modelo de negocio
RN-INT2-106 Busqueda online requiere disclaimer de privacidad aceptado Sistema Privacidad

9.2. Reglas de Deteccion y Alertas

ID Regla Validacion
RN-INT2-001 Toda interaccion mostrada incluye disclaimer legal Sistema
RN-INT2-002 Interacciones CRITICAS requieren confirmacion explicita para agendar Sistema
RN-INT2-003 Motor de deteccion funciona offline con mini-cache (<100 reglas criticas) Sistema
RN-INT2-004 Verificacion online disponible para Free con cuenta, completa para Pro/Perfect Sistema
RN-INT2-005 Recordatorios de suspension se programan automaticamente Sistema
RN-INT2-006 Fuente y fecha de evidencia siempre visibles en alertas Sistema
RN-INT2-007 Usuario puede confirmar suspension manualmente en cualquier momento Usuario
RN-INT2-008 Post-estudio requiere confirmacion antes de sugerir reinicio Sistema
RN-INT2-009 Historial de interacciones detectadas se mantiene 6 anos (HIPAA) Sistema
RN-INT2-010 Interacciones detectadas se almacenan con el evento de cita Sistema
RN-INT2-011 Al agregar medicamento, verificar contra estudios futuros programados Sistema
RN-INT2-012 Tiempos de suspension se calculan automaticamente segun fecha de cita Sistema
RN-INT2-013 Si hay interaccion INC (incompatibilidad), ofrecer reprogramar cita Sistema
RN-INT2-014 Analisis IA solo disponible para tier Perfect Sistema
RN-INT2-015 Consultas al servidor siguen protocolo de anonimizacion INV-013 Sistema

9.3. Reglas de Privacidad para Busqueda Online

ID Regla Validacion
RN-INT2-PRI-001 El servidor VE categorias de medicamentos y estudios consultados Arquitectura
RN-INT2-PRI-002 El servidor NO VE quien es el usuario que consulta Arquitectura
RN-INT2-PRI-003 Disclaimer de privacidad obligatorio antes de primera busqueda automatica Sistema
RN-INT2-PRI-004 Disclaimer resumido en cada busqueda manual Sistema
RN-INT2-PRI-005 Usuario puede revocar consentimiento de busqueda online en cualquier momento Usuario

10. Consideraciones de Privacidad

10.1. Anonimizacion para Consultas

Para usuarios Pro y Perfect que usan verificacion online, se aplica el protocolo de anonimizacion definido en INV-010:

10.1.1. Datos Transmitidos (Anonimizados)

DATOS QUE SE ENVIAN:
{
  session_token: "a7f2b9c3...",      // Token efimero, no vinculado a usuario
  categorias_medicamentos: [         // Generalizadas, no especificas
    "biguanida",
    "ieca"
  ],
  categoria_estudio: "IMG-TC",       // Solo categoria, no estudio especifico
  region_generalizada: "centro_mx"   // Generalizada
}

DATOS QUE NO SE ENVIAN:
- user_id
- device_id
- nombres de medicamentos especificos
- dosis
- nombre del estudio especifico
- fecha exacta
- cualquier identificador

10.1.2. Flujo de Consulta Anonima

sequenceDiagram
    participant D as Dispositivo
    participant A as Anonimizador Local
    participant S as Servidor MedTime

    D->>A: Lista medicamentos + estudio
    Note over A: Generalizar a categorias<br/>Eliminar identificadores<br/>Generar token efimero

    A->>S: Consulta anonima {categorias, estudio_cat}
    Note over S: NO sabe quien consulta<br/>Solo procesa categorias

    S-->>A: Interacciones por categoria
    A->>D: Mapear a medicamentos especificos del usuario

10.2. Cifrado E2E

Dato Clasificacion Cifrado
Interacciones detectadas PHI Cifrado con clave del usuario
Nombre de medicamento en alerta PHI Cifrado E2E
Fechas de suspension PHI Cifrado E2E
Confirmaciones del usuario PHI Cifrado E2E
Historial de interacciones PHI Cifrado E2E, retencion 6 anos
Cache de reglas del usuario PHI Cifrado con clave del usuario

10.3. Disclaimer de Privacidad para Busqueda Online

NUEVO en v1.1.0: La busqueda online requiere disclaimer explicito sobre privacidad.

10.3.1. Cuando se Muestra el Disclaimer

Escenario Disclaimer Frecuencia
Primera busqueda automatica (Pro/Perfect) Completo Una vez (al habilitar)
Busqueda manual Resumido Cada vez
Busqueda automatica posterior No Ya acepto previamente

10.3.2. Contenido del Disclaimer (Busqueda Automatica)

+--------------------------------------------------+
| VERIFICACION DE INTERACCIONES ONLINE             |
+--------------------------------------------------+

Para ofrecerte una verificacion mas completa de
interacciones medicamento-estudio, MedTime puede
consultar nuestra base de datos en el servidor.

IMPORTANTE - LEE ESTO:

LO QUE EL SERVIDOR VE:
- Categorias de tus medicamentos (ej: "antidiabetico")
- Tipo de estudio que programaste (ej: "tomografia")
- Tu region general (ej: "Mexico")

LO QUE EL SERVIDOR NO VE:
- Tu identidad (nombre, email, cuenta)
- Nombres especificos de medicamentos
- Dosis de tus medicamentos
- Fecha exacta de tu estudio
- Ningun dato que te identifique

La consulta es ANONIMA. No podemos vincular
esta busqueda contigo.

[ ] Entiendo y acepto la verificacion online
[ ] Prefiero solo verificacion local (limitada)

+--------------------------------------------------+
| Ver detalles tecnicos de anonimizacion (INV-013) |
+--------------------------------------------------+

[Cancelar]                    [Continuar]

10.3.3. Contenido del Disclaimer (Busqueda Manual)

+--------------------------------------------------+
| BUSQUEDA DE INTERACCIONES                        |
+--------------------------------------------------+

Esta busqueda consultara el servidor de MedTime.

Recordatorio: El servidor vera las CATEGORIAS de
tus medicamentos y estudio, pero NO tu identidad.

[Buscar]                      [Cancelar]

10.3.4. Persistencia del Consentimiento

Preferencia Almacenamiento Revocable
Acepto busqueda automatica Preferencias usuario (local) Si, en Configuracion > Privacidad
Rechazo busqueda automatica Preferencias usuario (local) Puede cambiar de opinion

10.3.5. Reglas de Negocio del Disclaimer

ID Regla
RN-INT2-DIS-001 Disclaimer completo se muestra UNA vez al habilitar busqueda automatica
RN-INT2-DIS-002 Disclaimer resumido se muestra en CADA busqueda manual
RN-INT2-DIS-003 Usuario puede revocar consentimiento en Configuracion > Privacidad
RN-INT2-DIS-004 Sin consentimiento, solo se usa mini-cache + cache del usuario
RN-INT2-DIS-005 El texto del disclaimer debe ser claro sobre QUE ve y QUE NO ve el servidor

11. Integraciones

11.1. Con MTS-EST-001 (Catalogo de Estudios)

Integracion Descripcion
Lectura Obtiene datos del estudio (codigo, categoria, subcategoria)
Trigger Invocado cuando usuario selecciona estudio del catalogo
Datos Usa taxonomia de estudios para buscar interacciones

11.2. Con MTS-MED-001 (Medicamentos del Paciente)

Integracion Descripcion
Lectura Obtiene lista de medicamentos activos del paciente
Trigger Al agregar medicamento, verifica contra estudios programados
Datos Principio activo, categoria terapeutica, dosis

11.3. Con MTS-CIT-001 (Citas y Eventos)

Integracion Descripcion
Bidireccional Verifica interacciones al agendar, almacena con evento
Trigger Creacion/modificacion de citas tipo estudio/tratamiento
Datos Almacena InteraccionDetectadaEvento vinculado al evento

11.4. Con MTS-NTF-001 (Notificaciones)

Integracion Descripcion
Escritura Programa recordatorios de suspension
Trigger Al confirmar cita con interacciones detectadas
Datos RecordatorioSuspension con fechas y mensajes

11.5. Con MTS-INT-001 (Motor de Interacciones Medicamento-Medicamento)

Integracion Descripcion
Complementaria MTS-INT-001 verifica entre medicamentos, MTS-INT-002 verifica contra estudios
Compartido Comparten estructura de severidad y modelo de alertas
Datos Usan mismo catalogo de medicamentos (MTS-CAT-001)

12. Requisitos Regulatorios

12.1. HIPAA Compliance

Requisito Implementacion
PHI Protection Interacciones detectadas cifradas E2E
Minimum Necessary Solo se accede a medicamentos y estudios necesarios
Audit Trail Log de detecciones y confirmaciones por 6 anos
User Control Usuario puede ver y exportar historial de interacciones

12.2. FDA 21 CFR Part 11

Requisito Implementacion
Data Integrity Hash de interacciones detectadas
Attribution Timestamp y confirmacion del usuario
Source Documentation Referencia a fuentes clinicas en cada interaccion

12.3. Requisitos de Disclaimer

Regulacion Requisito Implementacion
HIPAA Informacion medica educativa Disclaimer visible
FTC No sustituye consejo medico Mensaje en cada alerta
Responsabilidad Usuario debe consultar profesional Checkbox de confirmacion

13. Criterios de Aceptacion

13.1. Criterios de Arquitectura de Datos (Directiva Director)

ID Criterio
AC-INT2-100 Mini-cache embebido contiene <100 reglas
AC-INT2-101 Mini-cache solo incluye reglas CRITICO/IMPORTANTE
AC-INT2-102 Base completa de reglas NUNCA se descarga al dispositivo
AC-INT2-103 Busqueda online disponible para usuarios con cuenta
AC-INT2-104 Cache del usuario solo almacena reglas detectadas para sus medicamentos

13.2. Criterios de Funcionalidad

ID Criterio
AC-INT2-001 Deteccion contra mini-cache en < 100ms (local)
AC-INT2-002 Interacciones CRITICAS bloquean hasta confirmacion explicita
AC-INT2-003 Disclaimer visible en todas las alertas de interaccion
AC-INT2-004 Motor funciona offline con mini-cache (<100 reglas criticas)
AC-INT2-005 Verificacion online disponible para Free con cuenta, Pro y Perfect
AC-INT2-006 Recordatorios se programan automaticamente para suspensiones
AC-INT2-007 Fechas de suspension se calculan correctamente segun fecha de cita
AC-INT2-008 Al agregar medicamento, se verifican estudios futuros
AC-INT2-009 Fuente y fecha de evidencia visibles en alertas
AC-INT2-010 Historial de interacciones accesible al usuario
AC-INT2-011 Consultas online siguen protocolo de anonimizacion INV-013
AC-INT2-012 Post-estudio solicita confirmacion antes de sugerir reinicio

13.3. Criterios de Privacidad

ID Criterio
AC-INT2-PRI-001 Disclaimer de privacidad se muestra antes de primera busqueda automatica
AC-INT2-PRI-002 Disclaimer resumido se muestra en cada busqueda manual
AC-INT2-PRI-003 Usuario puede revocar consentimiento de busqueda online
AC-INT2-PRI-004 Sin consentimiento, solo se usa mini-cache + cache del usuario

14. Casos de Error

14.1. ERR-INT2-001: Base Local Corrupta

Campo Valor
Codigo ERR-INT2-001
Descripcion Base de datos de interacciones corrupta o no disponible
Accion Usuario "No fue posible verificar interacciones. Por favor reinstale la app o contacte soporte."
Accion Sistema Intentar reconstruir base desde backup, notificar a telemetria
Severidad Alta

14.2. ERR-INT2-002: Verificacion Online Falla

Campo Valor
Codigo ERR-INT2-002
Descripcion Servicio de verificacion online no disponible
Accion Usuario "Verificacion con base local. Para analisis completo, intente con conexion estable."
Accion Sistema Fallback a base local, encolar verificacion para reintento
Severidad Media

14.3. ERR-INT2-003: Estudio No Reconocido

Campo Valor
Codigo ERR-INT2-003
Descripcion Estudio personalizado sin codigo de catalogo
Accion Usuario "No podemos verificar interacciones automaticamente para este estudio. Consulte con su medico sobre sus medicamentos."
Accion Sistema Mostrar advertencia generica, ofrecer verificacion manual
Severidad Baja

15. Disclaimers Obligatorios

15.1. Disclaimer General

AVISO IMPORTANTE: La informacion sobre interacciones entre
medicamentos y estudios medicos proporcionada por MedTime
es solo orientativa y NO sustituye las instrucciones de su
medico, laboratorio o centro de salud.

SIEMPRE siga las instrucciones especificas que le proporcione
el profesional de salud que ordeno el estudio.

NO suspenda ningun medicamento sin consultar con su medico,
especialmente si trata condiciones cronicas como diabetes,
hipertension, problemas cardiacos o trastornos de coagulacion.

15.2. Disclaimer por Tipo de Alerta

Tipo Disclaimer Adicional
AFE "Esta informacion es sobre posibles interferencias con resultados. Su laboratorio puede tener protocolos especificos."
SUS "Los tiempos de suspension son guias generales. Su medico puede indicar tiempos diferentes segun su caso."
INC "Esta es una interaccion documentada. Consulte URGENTEMENTE con su medico antes de proceder."
POS "Siga las instrucciones especificas que le dio el centro donde se realizo el procedimiento."

15.3. Disclaimer de Fuentes

La informacion sobre interacciones se basa en:
- Comunicaciones de seguridad de la FDA
- Guias de la AACC (Asociacion Americana de Quimica Clinica)
- Guias CHEST para anticoagulacion perioperatoria
- Consenso ACR-NKF sobre contraste y funcion renal
- Literatura medica revisada por pares

Ultima actualizacion de base de datos: [fecha]

16. Referencias Cruzadas

16.1. Documentos de Especificacion

Documento Relacion Notas
MTS-EST-001 Dependencia Catalogo de estudios y tratamientos
MTS-MED-001 Dependencia Lista de medicamentos del paciente
MTS-CIT-001 Integracion Modulo de citas donde se invocan verificaciones
MTS-INT-001 Complementario Motor de interacciones medicamento-medicamento
MTS-NTF-001 Integracion Sistema de notificaciones para recordatorios
MTS-CAT-001 Referencia Catalogo de medicamentos
MTS-TIE-001 Referencia Limites por tier
MTS-PRI-001 Cumplimiento Requisitos de privacidad

16.2. Protocolos de Anonimizacion

Documento Relacion Notas
INV-010 Referencia Protocolo de anonimizacion para medicamentos
INV-013 Referencia Protocolo de anonimizacion para interacciones med-estudio

16.3. Directivas del Director (v1.1.0)

Directiva Descripcion Impacto en Este Documento
Regla de 100 Registros Ningun catalogo >100 registros se descarga al dispositivo Cambio de modelo OTA a mini-cache + busqueda online

Nota: La directiva de 100 registros aplica a todos los catalogos del sistema. Para este modulo, significa que el mini-cache embebido esta limitado a <100 reglas de interacciones criticas, y el resto se consulta online.


17. Anexo A: Mini-Cache Embebido V1.0

NOTA: Este anexo lista las interacciones incluidas en elmini-cache embebido (<100 reglas). La base completa en el servidor contiene 1000+ reglas adicionales accesibles via busqueda online.

17.1. Interacciones AFE (Afecta Resultado) - En Mini-Cache

Medicamento Estudio Efecto Suspension
Biotina (>5mg) TSH, T3, T4 Falsos resultados 48-72h
Biotina (>5mg) Troponina Falsos negativos 48-72h
Vitamina C (>1g) Glucosa Interferencia 48h
Vitamina C (>1g) Sangre oculta heces Falsos negativos 48h
Aspirina Tiempo sangrado Prolonga 7 dias
IBP (Omeprazol, etc) pHmetria Falsea 7 dias
Antihistaminicos Pruebas alergia piel Falsos negativos 5-7 dias
Levotiroxina TSH Altera valores Antes de dosis
Estatinas Enzimas hepaticas Puede elevar Informar
Hierro oral Colonoscopia Obscurece 5-7 dias

17.2. Interacciones SUS (Requiere Suspension) - En Mini-Cache

Medicamento Procedimiento Tiempo Antes Tiempo Despues
Warfarina Biopsias 3-5 dias 24-48h
Rivaroxaban Alto riesgo sangrado 48h 24-48h
Apixaban Alto riesgo sangrado 48h 24-48h
Dabigatran Alto riesgo sangrado 3-5 dias 24-48h
Clopidogrel Biopsias, cirugia 5-7 dias Variable
Levotiroxina Gammagrama tiroideo 4-6 semanas Segun indicacion
Broncodilatadores Espirometria 4-24h Inmediato
Betabloqueadores Prueba esfuerzo Consultar Inmediato

17.3. Interacciones INC (Incompatibilidad) - En Mini-Cache

Medicamento Tratamiento Riesgo Protocolo
Metformina Contraste yodado Acidosis lactica Suspender 48h antes/despues
Metformina (eGFR<30) Contraste yodado Riesgo aumentado CONTRAINDICADO
AINEs Quimio nefrotoxica Dano renal aditivo Evitar durante ciclo
Litio Cirugia con diureticos Toxicidad Monitoreo estrecho

17.4. Interacciones POS (Restriccion Post) - En Mini-Cache

Tratamiento Restriccion Duracion
Sedacion endoscopia Sedantes, alcohol 24h
Anestesia general Opioides no prescritos 24-48h
Gammagrama Reinicio levotiroxina Segun indicacion
Biopsia con riesgo Anticoagulantes Esperar indicacion

17.5. Conteo Total del Mini-Cache

Tipo Cantidad Prioridad
AFE - Afecta Resultado ~20 Alta (riesgo falsos negativos criticos)
SUS - Requiere Suspension ~25 Critica (anticoagulantes)
INC - Incompatibilidad ~15 Critica (riesgo vital)
POS - Restriccion Post ~10 Media
TOTAL <100 Cumple directiva

Documento generado por ImpactDrone + ComplianceDrone para SpecQueen Version 1.1.0 - Actualizado por directiva del Director: Regla de 100 registros La especificacion funcional ES el sistema

17.5.1. Fuentes de Investigacion