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)) {