feat: sistema de notas clínicas para enfermero (ficha + notas libres) y fix lab_reportes métricas
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/**
|
||||
* GET /api/lab/get_notas_domicilio.php
|
||||
* Devuelve todas las notas de un domicilio.
|
||||
*
|
||||
* Parámetros GET:
|
||||
* domicilio_id (requerido)
|
||||
*
|
||||
* Respuesta: { success, data: [ nota, … ] }
|
||||
* Orden: ficha clínica primero, luego libres por created_at ASC
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
requireMethod('GET');
|
||||
|
||||
try {
|
||||
$domId = (int)($_GET['domicilio_id'] ?? 0);
|
||||
if (!$domId) jsonError('domicilio_id requerido');
|
||||
|
||||
$db = Database::getInstance();
|
||||
|
||||
// Verificar acceso: enfermero solo puede ver si está asignado
|
||||
if (userRole() === 'enfermero') {
|
||||
$enfId = enfermeraId();
|
||||
$asig = $db->fetch(
|
||||
"SELECT id FROM lab_asignaciones
|
||||
WHERE domicilio_id = ? AND enfermera_id = ?",
|
||||
[$domId, $enfId]
|
||||
);
|
||||
if (!$asig) jsonError('Sin acceso a este domicilio', 403);
|
||||
}
|
||||
|
||||
$notas = $db->fetchAll(
|
||||
"SELECT n.*, e.nombre_completo AS enfermera_nombre
|
||||
FROM lab_domicilio_notas n
|
||||
LEFT JOIN lab_enfermeras e ON e.id = n.enfermera_id
|
||||
WHERE n.domicilio_id = ?
|
||||
ORDER BY FIELD(n.tipo,'clinica','libre'), n.created_at ASC",
|
||||
[$domId]
|
||||
);
|
||||
|
||||
jsonOk(['data' => $notas]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
error_log('[get_notas_domicilio] ' . $e->getMessage());
|
||||
jsonError($e->getMessage(), 500);
|
||||
}
|
||||
Reference in New Issue
Block a user