`;
},
@@ -756,6 +795,23 @@ function esc(s) {
({ '<':'<','>':'>','&':'&','"':'"',"'":''' }[c]));
}
+// ── Acordeón domicilios ────────────────────────────────────────────────────
+function toggleDomCard(headerEl) {
+ const body = headerEl.nextElementSibling;
+ const chev = headerEl.querySelector('.dom-chev');
+ const open = body.classList.toggle('open');
+ if (chev) chev.classList.toggle('open', open);
+}
+
+function toggleFinalizados(btnEl) {
+ const sec = document.getElementById('seccion-fin');
+ const chev = btnEl.querySelector('.fin-chev');
+ const open = btnEl.classList.toggle('open');
+ if (sec) sec.style.display = open ? '' : 'none';
+ if (chev) chev.classList.toggle('open', open);
+}
+// ──────────────────────────────────────────────────────────────────────────
+
// Resolver ruta de imagen: evita duplicar "uploads/media/"
function resImg(f) {
if (!f) return '';
@@ -2109,18 +2165,14 @@ const notasManager = {
- ${!esMenor ? `` : ''}
`;
if (!esMenor && fc.acudiente_nombre) {
- document.getElementById('ns-acudiente-bloque').classList.remove('d-none');
+ // paciente no reconocido como menor por fecha de nacimiento
+ // pero tenía datos del acudiente guardados → se mantienen ocultos
}
this._abrirSheet();
},
diff --git a/lab_domicilios.php b/lab_domicilios.php
index bfe1331..2cc51ce 100644
--- a/lab_domicilios.php
+++ b/lab_domicilios.php
@@ -140,6 +140,10 @@ $domIdParam = (int)($_GET['id'] ?? 0);
Detalle
+
+
+
+
+
+
+
+
Informe de domicilio
+
+
+
+
+
+
+
+
Datos del paciente
+
+
Nombre
+
Tipo doc.
+
Nº documento
+
Teléfono
+
Correo
+
Dirección
+
Seguro/tipo
+
Fecha servicio
+
Exámenes
+
+
+
+
Ficha clínica
+
+
Antecedentes
+
Medicamentos
+
Acudiente
+
+
+
+
+
Notas del enfermero
+
+
+
+
+
+
@@ -534,6 +584,7 @@ function domQuitarOrden() {
}
const COLOR_DOM = { programado:'secondary', confirmado:'info', en_camino:'primary', en_domicilio:'warning', completado:'success', cancelado:'danger', reprogramado:'dark' };
let domSeleccionado = = $domIdParam ?: 'null' ?>;
+let _domActual = null; // objeto completo del domicilio activo en el panel de detalle
let paginaActual = 1;
let _listaToken = 0; // anti race-condition
@@ -643,11 +694,13 @@ async function verDomicilio(id) {
document.getElementById('detail-id').textContent = `#${id}`;
document.getElementById('detail-body').innerHTML = '
';
document.getElementById('btn-editar-dom').classList.remove('d-none');
+ document.getElementById('btn-informe-dom').classList.remove('d-none');
const r = await fetch(`api/lab/get_domicilios.php?id=${id}&no_stats=1`);
const d = await r.json();
const dom = d.domicilio;
if (!dom) return;
+ _domActual = dom;
// Botones de estado
const SIGUIENTES = {
@@ -758,16 +811,127 @@ async function verDomicilio(id) {