Files
whatsapp/api/lab/get_notas_domicilio.php
T

47 lines
1.3 KiB
PHP

<?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);
}