130 lines
3.9 KiB
Markdown
130 lines
3.9 KiB
Markdown
# 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 **<i class="fas fa-flask"></i>** (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)
|