turnero: sala de espera entre muestras (toma progresiva)

- DB: columna muestra_espera_at en turnero_turnos
- Panel 'Esperando siguiente muestra' en la cola de lugar.php
  · Muestra pacientes en espera con countdown a siguiente_toma_at
  · Botón 'Llamar' los devuelve a la cola activa
- Botón 'Mandar a espera' en la ficha (visible cuando toma progresiva activa)
  · Desaparece de la cola principal, queda en sección de espera
- get_cola.php: excluye muestra_espera_at IS NOT NULL de cola y activo
  · Agrega array en_espera_muestra en la respuesta
- Nuevas APIs: poner_en_espera_muestra.php, llamar_desde_espera.php

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-27 22:41:34 -05:00
co-authored by Claude Sonnet 4.6
parent e634eb8932
commit 4012ae97be
4 changed files with 181 additions and 10 deletions
@@ -0,0 +1,20 @@
<?php
/**
* POST poner_en_espera_muestra.php
* {turno_id} → mueve el paciente a la sala de espera entre muestras.
* SET muestra_espera_at = NOW(). El turno queda en_servicio pero sale de la cola activa.
*/
require_once __DIR__ . '/_helpers.php';
requireTurnero();
requireMethod('POST');
$input = inputJson();
$turnoId = (int)($input['turno_id'] ?? 0);
if (!$turnoId) jsonError('turno_id requerido');
db()->prepare(
"UPDATE turnero_turnos SET muestra_espera_at = NOW()
WHERE id = ? AND estado = 'en_servicio' AND muestra_espera_at IS NULL"
)->execute([$turnoId]);
jsonOk([], 'Paciente enviado a sala de espera');