up
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* GET /api/lab/get_stats.php — Estadísticas del dashboard del módulo
|
||||
* Devuelve contadores, pendientes urgentes, agenda hoy y carga de enfermeras.
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
requireMethod('GET');
|
||||
|
||||
try {
|
||||
$om = new OrdenMedica();
|
||||
$dom = new Domicilio();
|
||||
$asig = new Asignacion();
|
||||
$pac = new Paciente();
|
||||
$db = Database::getInstance();
|
||||
|
||||
// ── Órdenes ──────────────────────────────────────────────────────────────
|
||||
$estadosOrdenes = $om->contadorPorEstado();
|
||||
$pendientesViejos = $om->pendientesAntiguos(5);
|
||||
|
||||
// ── Domicilios hoy ───────────────────────────────────────────────────────
|
||||
$estDomHoy = $dom->estadisticasHoy();
|
||||
$sinAsignarHoy = $dom->sinAsignar();
|
||||
|
||||
// ── Carga de enfermeras hoy ──────────────────────────────────────────────
|
||||
$cargaEnfermeras = $asig->cargaHoy();
|
||||
|
||||
// ── Totales generales ────────────────────────────────────────────────────
|
||||
$totalPacientes = $db->fetch('SELECT COUNT(*) AS n FROM lab_pacientes WHERE is_active = 1')['n'] ?? 0;
|
||||
$totalEnfermeras = $db->fetch('SELECT COUNT(*) AS n FROM lab_enfermeras WHERE is_active = 1')['n'] ?? 0;
|
||||
|
||||
// ── Órdenes de hoy ───────────────────────────────────────────────────────
|
||||
$ordenesHoy = $db->fetch(
|
||||
'SELECT COUNT(*) AS n FROM lab_ordenes_medicas WHERE DATE(created_at) = CURDATE()'
|
||||
)['n'] ?? 0;
|
||||
|
||||
// ── Actividad reciente ───────────────────────────────────────────────────
|
||||
$actividadReciente = (new ActividadAdmin())->reciente(10);
|
||||
|
||||
jsonOk([
|
||||
'ordenes' => [
|
||||
'por_estado' => $estadosOrdenes,
|
||||
'pendientes_hoy' => (int)($estadosOrdenes['pendiente'] ?? 0),
|
||||
'en_revision_hoy' => (int)($estadosOrdenes['en_revision'] ?? 0),
|
||||
'pendientes_viejos'=> $pendientesViejos,
|
||||
'total_hoy' => (int)$ordenesHoy,
|
||||
],
|
||||
'domicilios' => [
|
||||
'por_estado' => $estDomHoy,
|
||||
'total_hoy' => array_sum($estDomHoy),
|
||||
'sin_asignar' => count($sinAsignarHoy),
|
||||
'lista_sin_asignar' => $sinAsignarHoy,
|
||||
],
|
||||
'enfermeras' => [
|
||||
'activas' => (int)$totalEnfermeras,
|
||||
'carga_hoy' => $cargaEnfermeras,
|
||||
],
|
||||
'generales' => [
|
||||
'total_pacientes' => (int)$totalPacientes,
|
||||
],
|
||||
'actividad_reciente' => $actividadReciente,
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
jsonError($e->getMessage(), 500);
|
||||
}
|
||||
Reference in New Issue
Block a user