# 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 ```bash 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: ```bash 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: ```bash 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)