@@ -489,7 +474,6 @@ function renderCola(snap) {
const items = snap.cola || [];
const espera = items.filter(t => t.estado === 'en_espera_lugar');
document.getElementById('badge-count').textContent = espera.length;
- _actualizarNavCola(items);
const lista = document.getElementById('cola-items');
if (!items.length) {
@@ -500,74 +484,52 @@ function renderCola(snap) {
lista.innerHTML = items.map(t => {
const enServicio = t.estado === 'en_servicio';
const esActivo = turnoActivo?.id == t.id;
- const onclick = enServicio
- ? `enfocarFicha()`
- : `llamarTurnoEspecifico(${t.id})`;
- const badge = enServicio
- ? `
+
${t.prioridad_codigo}
${escHtml(t.codigo)}
${escHtml(t.paciente_nombre || 'Paciente')}
- ${badge}
+
+
+ LLAMAR
+
`;
}).join('');
}
-function enfocarFicha() {
- document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
-}
-
-// ── Navegación entre turnos en espera ─────────────────────────
-let _navItems = []; // lista de turnos en_espera_lugar actual
-let _navIdx = -1; // índice seleccionado
-
-function _actualizarNavCola(items) {
- _navItems = items.filter(t => t.estado === 'en_espera_lugar');
- // Mantener idx si el turno seleccionado sigue en lista
- if (_navIdx >= _navItems.length) _navIdx = _navItems.length - 1;
- const nav = document.getElementById('nav-cola');
- if (_navItems.length > 0) {
- nav.style.removeProperty('display');
- if (_navIdx < 0) _navIdx = 0;
- _renderNavPreview();
- } else {
- nav.style.display = 'none';
- _navIdx = -1;
- document.getElementById('nav-preview').innerHTML =
- `
— ninguno seleccionado —`;
+async function rellamarDesdeCard(turnoId) {
+ // Enfocar la ficha si es el activo
+ if (turnoActivo?.id == turnoId) {
+ document.getElementById('ficha-turno')?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
-}
-
-function _renderNavPreview() {
- const t = _navItems[_navIdx];
- if (!t) return;
- document.getElementById('nav-preview').innerHTML =
- `
${t.prioridad_codigo}
-
${escHtml(t.codigo)}
-
${escHtml(t.paciente_nombre || '')}
-
`;
- // Resaltar la card en la lista
- document.querySelectorAll('.cola-card').forEach(el => el.classList.remove('nav-selected'));
- const cards = document.querySelectorAll('#cola-items .cola-card');
- if (cards[_navIdx]) cards[_navIdx].classList.add('nav-selected');
-}
-
-function navCola(dir) {
- if (!_navItems.length) return;
- _navIdx = (_navIdx + dir + _navItems.length) % _navItems.length;
- _renderNavPreview();
-}
-
-async function llamarNavActual() {
- if (_navIdx < 0 || !_navItems[_navIdx]) return;
- await llamarTurnoEspecifico(_navItems[_navIdx].id);
+ // Re-llamar via API para actualizar llamado_at y notificar display
+ const res = await fetch(API + 'llamar_turno.php', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ area: 'lugar', lugar_id: lugarId, turno_id: turnoId }),
+ });
+ const json = await res.json();
+ if (json.ok && json.turno) anunciarTurno(json.turno.codigo);
}
// ── Llamar siguiente ──────────────────────────────────────────