Toma de muestras: mostrar el F-LAB-08 en los turnos de solo entrega

Cuando recepción marca "solo entrega de muestras", el puesto de toma no
mostraba ningún formulario. No era que no se generara: el backend ya lo
creaba por la vía del lugar —los ocho puestos de toma, Pediatría y
Ginecología tienen vinculado el formulario 16— y era la interfaz la que lo
escondía. En 30 días: 59 turnos de solo entrega, 34 con el F-LAB-08 ya
creado, 0 firmados.

Eran tres bloqueos, no uno:
- la sección de formularios se ocultaba por solo_muestras, y como los puestos
  de toma van en modo embebido, esa sección es la única vía para abrirlo;
- no se cargaba el formulario embebido;
- ni se refrescaba la lista cada 5 s, así que al firmar no se habría visto
  el cambio.

Se conserva la exención del bloqueo para finalizar (línea 1685): el
formulario aparece y se puede llenar, pero un turno de solo entrega no queda
atrapado si no se firma. Cerrar la cola por esto sería peor que el problema
que resuelve.

Estos turnos no traen exámenes, así que la lista solo puede contener los
formularios del puesto: no hay riesgo de que aparezcan consentimientos de
exámenes que no aplican.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-12 09:20:47 -05:00
co-authored by Claude Opus 5
parent b3a6be8f17
commit 0ec0edf245
+15 -9
View File
@@ -1355,9 +1355,11 @@ async function seleccionarSinLlamar(turnoId) {
mostrarCabeceraTurno(t);
await cargarFichaSolicitud(t.id);
clearInterval(pollingConsentId);
if (!_esSoloEntrega(t))
pollingConsentId = setInterval(() => actualizarConsentimientos(turnoActivo?.id), 5000);
if (LUGAR_FORM_MODO === 'embebido' && lugarId && !_esSoloEntrega(t))
// También para solo entrega de muestras: a esos turnos les corresponde el
// formulario del puesto, así que la lista tiene que refrescarse igual o al
// firmar no se vería el cambio.
pollingConsentId = setInterval(() => actualizarConsentimientos(turnoActivo?.id), 5000);
if (LUGAR_FORM_MODO === 'embebido' && lugarId)
cargarFormEmbebido(t.id);
mostrarFichaMobile();
}
@@ -1400,9 +1402,8 @@ async function abrirFicha(turno) {
mostrarCabeceraTurno(turno);
await cargarFichaSolicitud(turno.id);
clearInterval(pollingConsentId);
if (!_esSoloEntrega(turno))
pollingConsentId = setInterval(() => actualizarConsentimientos(turnoActivo?.id), 5000);
if (LUGAR_FORM_MODO === 'embebido' && lugarId && !_esSoloEntrega(turno))
pollingConsentId = setInterval(() => actualizarConsentimientos(turnoActivo?.id), 5000);
if (LUGAR_FORM_MODO === 'embebido' && lugarId)
cargarFormEmbebido(turno.id);
mostrarFichaMobile();
}
@@ -1468,10 +1469,15 @@ async function cargarFichaSolicitud(turnoId) {
const esSoloMuestras = !!(sol && sol.solo_muestras == 1);
document.getElementById('badge-solo-muestras')?.classList.toggle('d-none', !esSoloMuestras);
// Ocultar sección consentimientos y formulario embebido cuando es solo entrega
// La sección de formularios ya NO se esconde por ser solo entrega de
// muestras. Esos turnos no traen exámenes, pero sí les corresponde el
// formulario del puesto (F-LAB-08, Datos Toma de Muestras): el backend
// se lo venía creando y la interfaz lo ocultaba, así que se acumulaban
// creados y sin firmar. Quién se muestra lo decide renderConsentimientos
// según lo que realmente haya que llenar.
const secConsent = document.getElementById('sec-consent');
const secForm = document.getElementById('sec-form-embebido');
if (secConsent) secConsent.classList.toggle('d-none', esSoloMuestras);
if (secConsent) secConsent.classList.remove('d-none');
if (secForm) secForm.classList.add('d-none');
// Embarazada
@@ -2230,7 +2236,7 @@ function resetFicha() {
_muestrasActivas = [];
const secMuestras = document.getElementById('sec-muestras');
if (secMuestras) secMuestras.classList.add('d-none');
// Restaurar sección consent (puede haber sido ocultada por turno solo-muestras)
// Dejar la sección visible para la siguiente ficha
document.getElementById('sec-consent')?.classList.remove('d-none');
document.getElementById('badge-solo-muestras')?.classList.add('d-none');
document.getElementById('ficha-orden').classList.add('d-none');