From dfe3a01feecd398b06cf3f7accb72cc452ff1bba Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Tue, 23 Jun 2026 09:54:41 -0500 Subject: [PATCH] =?UTF-8?q?Recepci=C3=B3n:=20vincular=20paciente=20at?= =?UTF-8?q?=C3=B3micamente=20al=20crear=20token=20de=20firma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit create_consent_token.php ahora acepta paciente_id y lo vincula al turno si aún no lo tiene, eliminando la carrera con vincular_paciente.php (fire-and-forget). Ya no hace falta refrescar para firmar el consentimiento. Co-Authored-By: Claude Opus 4.8 --- modules/turnero/api/create_consent_token.php | 10 +++++++++- modules/turnero/views/recepcion.php | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/turnero/api/create_consent_token.php b/modules/turnero/api/create_consent_token.php index fa44bd4..2ab7803 100644 --- a/modules/turnero/api/create_consent_token.php +++ b/modules/turnero/api/create_consent_token.php @@ -15,6 +15,7 @@ requireTurnero(); $datos = inputJson(); $turnoId = (int)($datos['turno_id'] ?? 0); $formularioId = (int)($datos['formulario_id'] ?? 0); +$pacienteIdReq = (int)($datos['paciente_id'] ?? 0); if (!$turnoId) jsonError('turno_id requerido.'); if (!$formularioId) jsonError('formulario_id requerido.'); @@ -27,7 +28,14 @@ $stmt->execute([$turnoId]); $turno = $stmt->fetch(PDO::FETCH_ASSOC); if (!$turno) jsonError('Turno no encontrado.', 404); -$pacienteId = $turno['paciente_id']; +$pacienteId = (int)$turno['paciente_id']; +// Si el turno aún no tiene paciente pero la petición trae uno válido, vincularlo aquí +// (evita la carrera con vincular_paciente.php que se llamaba fire-and-forget). +if (!$pacienteId && $pacienteIdReq) { + $upd = $pdo->prepare("UPDATE turnero_turnos SET paciente_id = ? WHERE id = ?"); + $upd->execute([$pacienteIdReq, $turnoId]); + $pacienteId = $pacienteIdReq; +} if (!$pacienteId) jsonError('El turno no tiene paciente vinculado.'); // Verificar que el formulario existe diff --git a/modules/turnero/views/recepcion.php b/modules/turnero/views/recepcion.php index 77a1128..0a2803d 100644 --- a/modules/turnero/views/recepcion.php +++ b/modules/turnero/views/recepcion.php @@ -568,7 +568,7 @@ async function abrirFormularioLugar(formularioId, nombre) { const res = await fetch(API + 'create_consent_token.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ turno_id: turnoActivo.id, formulario_id: formularioId }), + body: JSON.stringify({ turno_id: turnoActivo.id, formulario_id: formularioId, paciente_id: pacienteActivo?.id || null }), }); const json = await res.json(); if (json.ok && (json.data?.url || json.url)) { @@ -1208,7 +1208,7 @@ async function firmarConsentimiento(formularioId, nombre) { const res = await fetch(API + 'create_consent_token.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ turno_id: turnoActivo.id, formulario_id: formularioId }), + body: JSON.stringify({ turno_id: turnoActivo.id, formulario_id: formularioId, paciente_id: pacienteActivo?.id || null }), }); const json = await res.json(); if (json.ok && (json.url || json.data?.url)) {