Files
whatsapp/README_LAB.md
2026-03-10 18:42:51 -05:00

3.9 KiB

Módulo Administrativo — Laboratorio Clínico

Módulo add-on para el sistema de chatbot WhatsApp que permite gestionar órdenes médicas recibidas como imágenes, domicilios, enfermeras y pacientes.


Instalación

1. Ejecutar migraciones de base de datos

php migrations/20260302_lab_run_migrations.php

Crea 7 tablas nuevas sin modificar las existentes:

  • lab_pacientes
  • lab_enfermeras
  • lab_ordenes_medicas
  • lab_domicilios
  • lab_asignaciones
  • lab_autorizaciones
  • lab_actividad_admin

Para deshacer:

php migrations/20260302_lab_run_migrations.php --rollback

2. Verificar instalación

Accede desde el navegador (con sesión admin activa):

https://tu-servidor/lab_status.php

O desde CLI:

php lab_status.php

Archivos del módulo

Vistas PHP

Archivo Descripción
lab_dashboard.php Panel principal con estadísticas en tiempo real
lab_ordenes.php Gestión de órdenes médicas (estados, imágenes, historial)
lab_pacientes.php CRUD de pacientes, vinculación con usuarios WhatsApp
lab_domicilios.php Agenda de domicilios y asignación de enfermeras
lab_enfermeras.php CRUD de enfermeras y visualización de agenda diaria
lab_reportes.php Trazabilidad, log de actividad, exportación CSV
lab_status.php Verificador de estado del módulo

Clases (models)

Ubicadas en classes/lab/:

  • ActividadAdmin.php — Base de trazabilidad
  • Paciente.php — Modelo de pacientes
  • Enfermera.php — Modelo de enfermeras
  • OrdenMedica.php — Modelo de órdenes médicas con flujo de estados
  • Domicilio.php — Modelo de domicilios con flujo de estados
  • Asignacion.php — Modelo de asignaciones enfermera ↔ domicilio

API REST

Ubicados en api/lab/:

Endpoint Método Descripción
get_pacientes.php GET Lista paginada de pacientes
save_paciente.php POST Crear/actualizar paciente
get_ordenes.php GET Lista/detalle de órdenes
save_orden.php POST Crear/actualizar orden
autorizar_orden.php POST Cambiar estado de una orden
get_domicilios.php GET Lista/detalle de domicilios
save_domicilio.php POST Crear/actualizar domicilio
get_enfermeras.php GET Lista de enfermeras + agenda
save_enfermera.php POST Crear/actualizar enfermera
get_asignaciones.php GET Asignaciones por fecha
save_asignacion.php POST Asignar/liberar/completar enfermera
get_actividad.php GET Log de actividad con filtros
get_stats.php GET Estadísticas para dashboard
crear_desde_whatsapp.php GET/POST Crear orden desde conversación activa

Flujos de estado

Órdenes médicas

pendiente → en_revision → autorizada → en_domicilio → completada
                       ↘ rechazada

Domicilios

programado → confirmado → en_camino → en_domicilio → completado
                       ↘ cancelado
                       ↘ reprogramado

Integración con el chatbot

En conversations.php, los mensajes de imagen entrantes tienen un botón (verde) en las acciones del mensaje. Al hacer click:

  1. Se abre un modal con la imagen adjunta
  2. El operador busca o selecciona un paciente (o usa el contacto de la conversación)
  3. Completa datos opcionales (médico, exámenes, ayuno)
  4. Se crea la orden en estado pendiente

Exportaciones CSV

Disponibles desde lab_reportes.php:

  • Órdenes médicas del período — incluye estado, médico, exámenes
  • Domicilios del período — incluye enfermera asignada, dirección, estado
  • Pacientes — catálogo completo con total de órdenes

Requisitos

  • PHP 8.2+
  • MariaDB 10.11+ (o MySQL 8+)
  • Bootstrap 5.3 (ya incluido en el sistema)
  • Font Awesome 6.4 (ya incluido en el sistema)
  • uploads/media/ con permisos de escritura (755/775)