PRD — TBS: Sistema de Adherencia al Tratamiento de Tuberculosis

Versión: 1.0
Fecha: 2026-04-05
Estado: En desarrollo (piloto Varela)


1. Contexto y Problema

La tuberculosis (TBC) requiere un tratamiento de 6 meses con medicación diaria. El abandono es frecuente por efectos adversos, estigma social y dificultades de acceso. Cada abandono aumenta el riesgo de contagio, genera resistencia bacteriana y causa daño pulmonar irreversible.

El partido de Varela (Buenos Aires) tiene aproximadamente 4.000 casos bajo seguimiento. El sistema actual de control es manual, lo que dificulta la detección temprana de pacientes en riesgo de abandono.

Hipótesis central: Un sistema de recordatorios automatizados + escalado inteligente ante faltas + evidencia de toma reducirá la tasa de abandono y mejorará los tiempos de intervención de los equipos de salud.


2. Objetivos del Producto

Objetivo Métrica de éxito
Aumentar la adherencia al tratamiento Tasa de dosis tomadas ≥ 85%
Reducir tiempo de reacción ante faltas Alerta a promotor en ≤ 24h
Dar visibilidad al equipo de salud Dashboard con datos en tiempo real
Escalar sin aumentar personal 1 promotor puede seguir hasta 50 pacientes

3. Actores (Roles)

3.1 Paciente

3.2 Promotor / Agente comunitario

3.3 Profesional de salud (médico / enfermero)

3.4 Administrador del CAPS

3.5 Autoridades provinciales


4. Canales de Comunicación

Canal Uso Estado
WhatsApp Business API Canal principal de recordatorios y confirmaciones Implementado
Telegram Bot Canal alternativo, usado en desarrollo/piloto Implementado
SMS Fallback para teléfonos sin WhatsApp Planificado
IVR (llamada automática) Fallback para pacientes sin datos móviles Planificado

5. Flujos Principales

5.1 Alta de paciente

  1. Médico o admin registra al paciente (nombre, teléfono, fecha de inicio, promotor asignado)
  2. El sistema crea el registro de dosis diarias desde la fecha de inicio
  3. El paciente recibe mensaje de bienvenida con instrucciones

5.2 Recordatorio y confirmación diaria

  1. El scheduler envía recordatorio al horario configurado por paciente (default: 08:00)
  2. El paciente responde con:
  3. Botón "Tomé" (mínimo, sin evidencia)
  4. Video corto subido via link personalizado con token de un solo uso
  5. El sistema registra la toma con timestamp, calcula si fue a tiempo o tardía (tolerancia configurable, default: 120 min)
  6. Si confirma, se resuelven alertas activas y se actualiza el semáforo a verde

5.3 Escalado ante faltas

Día 0 (sin confirmar)
   └─ Recordatorio al paciente (ya enviado a su hora)

Día 1 sin confirmar
   └─ Alerta tipo "falta_1" → notificación al promotor

Día 3 sin confirmar
   └─ Alerta tipo "falta_3" → escala a médico responsable

Día 7 sin confirmar
   └─ Alerta tipo "abandono_riesgo" → intervención urgente

(Los umbrales son configurables por el admin)

5.4 Verificación de evidencia (video)

  1. El sistema genera un token único por dosis con tiempo de expiración
  2. El paciente abre el link en el celular y graba un video corto (≥ 3 seg)
  3. El backend valida:
  4. Duración mínima del video
  5. Hash SHA-256 (detecta video duplicado / reutilizado)
  6. Timestamp de creación del archivo (no anterior a hoy)
  7. GPS (opcional, si el paciente lo autoriza)
  8. El sistema asigna un score: ok / sospechoso / fraude
  9. Scores sospechosos quedan en cola de revisión manual

6. Dashboard Web

6.1 Vista principal — Lista de pacientes

6.2 Vista de paciente individual

6.3 Vista de promotores

6.4 Métricas globales (admin / autoridades)


7. Anti-fraude en evidencias

El sistema implementa múltiples capas para detectar intentos de eludir la verificación:

Verificación Qué detecta
Hash SHA-256 Video enviado dos veces (mismo archivo)
Duración mínima Archivo de 0 segundos o demasiado corto
creation_time del video Video grabado días anteriores
GPS (con consentimiento) Ubicación fuera del rango esperado
Revisión manual aleatoria Casos que pasaron los filtros automáticos

Los pacientes con score sospechoso son marcados en el dashboard para revisión por el promotor. Los de score fraude generan alerta automática.


8. Modelo de Datos

promotores
  id, nombre, telefono, email, telegram_chat_id

pacientes
  id, nombre, telefono, fecha_inicio, promotor_id, activo
  hora_toma, tolerancia_min, notas, telegram_chat_id

dosis
  id, paciente_id, fecha
  recordatorio_enviado, tomada, tomada_at, tomada_tarde
  evidencia

alertas
  id, paciente_id, tipo, creado, resuelta, resuelta_at

tokens_confirmacion
  id, paciente_id, dosis_id, token, fecha, usado, expira_at

evidencias
  id, dosis_id, paciente_id, token
  video_path, duracion_seg, hash_sha256, creation_time_video
  gps_lat, gps_lon, user_agent, ip
  alerta_duplicado, alerta_duracion, alerta_tiempo, alerta_creation_time
  score

9. Pila Tecnológica (actual)

Capa Tecnología
Backend Python / Flask
Base de datos SQLite (migración a PostgreSQL en escala)
Scheduler APScheduler (recordatorios diarios)
Frontend HTML/JS vanilla (PWA-ready)
Notificaciones WhatsApp Cloud API / Telegram Bot API
Hosting VPS Ubuntu 24.04

10. MVP — Alcance del Piloto Varela

Incluido en MVP

Fuera del MVP (próximas versiones)


11. Riesgos y Mitigaciones

Riesgo Probabilidad Impacto Mitigación
Fraude en evidencias Media Alto Sistema de scoring + revisión manual + chequeos aleatorios
Costo elevado de mensajes Media Medio Mix de canales + negociación con nivel provincial
Baja adopción de pacientes Alta Alto Onboarding presencial en consulta + acompañamiento de promotor
Escalabilidad de SQLite Baja (MVP) Alto (escala) Migración planificada a PostgreSQL
Falta de conectividad Media Medio Subida diferida de evidencias + fallback SMS/IVR
Privacidad / GDPR local Baja Alto Consentimiento explícito para fotos/GPS, cifrado en reposo

12. Privacidad y Seguridad


13. Criterios de Éxito del Piloto

Al finalizar los primeros 3 meses del piloto:

  1. Adherencia ≥ 85% en los pacientes activos del sistema
  2. Tiempo a primera alerta ≤ 24h desde la primera falta
  3. Adopción ≥ 70% de los pacientes usan el canal digital (no requieren contacto manual)
  4. Costo por paciente/mes ≤ umbral acordado con el Ministerio
  5. NPS de promotores ≥ 7/10 (el sistema les ahorra trabajo, no se lo suma)

14. Roadmap

Q2 2026 — Piloto Varela
  - Estabilización del MVP
  - Onboarding de primeros 50 pacientes
  - Ajuste de umbrales de alerta y anti-fraude

Q3 2026 — Iteración
  - Gamificación básica (rachas, metas)
  - Roles diferenciados en dashboard
  - SMS como fallback

Q4 2026 — Escala
  - Migración a PostgreSQL
  - Multi-tenant (otros CAPS)
  - Integración SISA/CAT