Toma progresiva: auto-scroll, cierre automático, countdown en cola y fix filtro por examen
- guardar_toma.php: filtrar firmas por condición del examen seleccionado; corrige countdown espurio y detección de 'completado' cuando hay múltiples tipos de examen. También descarta siguiente_toma_at si ya es pasado (minuto 0). - ver_formulario_enviado.php: auto-scroll a primera firma pendiente al cargar el modal; si el examen se selecciona y la firma no está en DOM, guarda y recarga el iframe. Al completar tomas, cierra el modal directamente sin botón "Finalizar". - get_cola.php: incluye siguiente_toma_at y en_toma_progresiva por turno desde turnero_consentimientos para mostrar cuenta regresiva en tarjetas. - lugar.php: muestra chip de cuenta regresiva en tarjetas de cola para pacientes en toma progresiva; color cambia a warn (<2 min) y crit (¡Ahora!). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
c2605fb274
commit
848dd8e4d0
@@ -99,6 +99,29 @@ if ($area === 'recepcion') {
|
||||
}
|
||||
$cola = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// Enriquecer con datos de toma progresiva (cuenta regresiva en tarjetas de cola)
|
||||
if (!empty($cola)) {
|
||||
$turnoIds = implode(',', array_map('intval', array_column($cola, 'id')));
|
||||
$tomaRows = $pdo->query(
|
||||
"SELECT tc.turno_id, tc.siguiente_toma_at
|
||||
FROM turnero_consentimientos tc
|
||||
JOIN lab_formularios f ON f.id = tc.formulario_id AND f.es_toma_progresiva = 1
|
||||
WHERE tc.turno_id IN ($turnoIds) AND tc.estado = 'en_progreso'
|
||||
ORDER BY tc.siguiente_toma_at ASC"
|
||||
)->fetchAll(PDO::FETCH_ASSOC);
|
||||
$tomaInfo = [];
|
||||
foreach ($tomaRows as $row) {
|
||||
if (!isset($tomaInfo[$row['turno_id']])) {
|
||||
$tomaInfo[$row['turno_id']] = $row['siguiente_toma_at'];
|
||||
}
|
||||
}
|
||||
foreach ($cola as &$t) {
|
||||
$t['en_toma_progresiva'] = isset($tomaInfo[$t['id']]) ? 1 : 0;
|
||||
$t['siguiente_toma_at'] = $tomaInfo[$t['id']] ?? null;
|
||||
}
|
||||
unset($t);
|
||||
}
|
||||
|
||||
// ── Turno actualmente en pantalla (último llamado) ────────────
|
||||
$campoLlamado = $area === 'recepcion' ? 'llamado_recepcion_at' : 'llamado_lugar_at';
|
||||
$estadoActivo = $area === 'recepcion' ? "'en_recepcion'" : "'en_servicio'";
|
||||
|
||||
Reference in New Issue
Block a user