Registrar quién crea cada consentimiento del turnero para el pie "Enviado por"
turnero_consentimientos nunca guardó quién lo generó; el pie del documento mostraba el nombre de quien tuviera sesión abierta al verlo, no de quien realmente lo atendió (por eso siempre aparecía el mismo usuario). Se agrega la columna creado_por, se llena en los 6 puntos donde se crea un registro (recepción, envío por WhatsApp, anexar formulario extra, autocreación por examen/lugar), y ver_formulario_enviado.php ahora prioriza ese dato real sobre el usuario de la sesión actual. Los documentos ya firmados antes de este cambio siguen sin ese dato y usan el fallback anterior. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
aacf26168b
commit
8e1f46904c
@@ -31,10 +31,10 @@ if (!$form->fetch()) jsonError('Formulario no encontrado o inactivo.', 404);
|
||||
|
||||
// Crear el consentimiento con token UUID (mismo formato que create_solicitud)
|
||||
$ins = $pdo->prepare(
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, datos_respuestas)
|
||||
VALUES (?, ?, UUID(), 'enviado', '{}')"
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, datos_respuestas, creado_por)
|
||||
VALUES (?, ?, UUID(), 'enviado', '{}', ?)"
|
||||
);
|
||||
$ins->execute([$turnoId, $formularioId]);
|
||||
$ins->execute([$turnoId, $formularioId, adminId()]);
|
||||
$newId = (int)$pdo->lastInsertId();
|
||||
$token = $pdo->query("SELECT token FROM turnero_consentimientos WHERE id = $newId")->fetchColumn();
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@ if ($existente) {
|
||||
);
|
||||
|
||||
$stmt = $pdo->prepare(
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado)
|
||||
VALUES (?, ?, ?, 'pendiente')"
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, creado_por)
|
||||
VALUES (?, ?, ?, 'pendiente', ?)"
|
||||
);
|
||||
$stmt->execute([$turnoId, $formularioId, $token]);
|
||||
$stmt->execute([$turnoId, $formularioId, $token, adminId()]);
|
||||
}
|
||||
|
||||
$url = BASE_URL . 'ver_formulario_enviado.php?token=' . urlencode($token);
|
||||
|
||||
@@ -187,15 +187,15 @@ try {
|
||||
$consentimientosRequeridos = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$stmtCreateConsent = $pdo->prepare(
|
||||
"INSERT IGNORE INTO turnero_consentimientos (turno_id, formulario_id, token, estado)
|
||||
VALUES (?, ?, UUID(), 'pendiente')"
|
||||
"INSERT IGNORE INTO turnero_consentimientos (turno_id, formulario_id, token, estado, creado_por)
|
||||
VALUES (?, ?, UUID(), 'pendiente', ?)"
|
||||
);
|
||||
$stmtRead = $pdo->prepare(
|
||||
"SELECT id, token, estado FROM turnero_consentimientos
|
||||
WHERE turno_id = ? AND formulario_id = ?"
|
||||
);
|
||||
foreach ($consentimientosRequeridos as &$c) {
|
||||
$stmtCreateConsent->execute([$turnoId, $c['formulario_id']]);
|
||||
$stmtCreateConsent->execute([$turnoId, $c['formulario_id'], adminId()]);
|
||||
$stmtRead->execute([$turnoId, $c['formulario_id']]);
|
||||
$row = $stmtRead->fetch(PDO::FETCH_ASSOC);
|
||||
$c['id'] = $row['id'] ?? null;
|
||||
|
||||
@@ -46,7 +46,7 @@ $token = sprintf(
|
||||
mt_rand(0,0xffff), mt_rand(0,0xffff), mt_rand(0,0xffff)
|
||||
);
|
||||
$pdo->prepare(
|
||||
"INSERT IGNORE INTO turnero_consentimientos (turno_id, formulario_id, token, estado) VALUES (?, ?, ?, 'pendiente')"
|
||||
)->execute([$turnoId, $formularioId, $token]);
|
||||
"INSERT IGNORE INTO turnero_consentimientos (turno_id, formulario_id, token, estado, creado_por) VALUES (?, ?, ?, 'pendiente', ?)"
|
||||
)->execute([$turnoId, $formularioId, $token, adminId()]);
|
||||
|
||||
jsonOk(['token' => $token, 'nuevo' => true]);
|
||||
|
||||
@@ -257,8 +257,8 @@ if ($incluirSolicitud) {
|
||||
$existFormIds = array_map('intval', array_column($consentimientos, 'formulario_id'));
|
||||
$stmtIns = $pdo->prepare(
|
||||
"INSERT IGNORE INTO turnero_consentimientos
|
||||
(turno_id, formulario_id, token, estado)
|
||||
VALUES (?, ?, ?, 'pendiente')"
|
||||
(turno_id, formulario_id, token, estado, creado_por)
|
||||
VALUES (?, ?, ?, 'pendiente', ?)"
|
||||
);
|
||||
$creados = 0;
|
||||
foreach ($requeridos as $r) {
|
||||
@@ -271,7 +271,7 @@ if ($incluirSolicitud) {
|
||||
mt_rand(0,0x3fff)|0x8000,
|
||||
mt_rand(0,0xffff), mt_rand(0,0xffff), mt_rand(0,0xffff)
|
||||
);
|
||||
$stmtIns->execute([$turnoId, (int)$r['formulario_id'], $token]);
|
||||
$stmtIns->execute([$turnoId, (int)$r['formulario_id'], $token, adminId()]);
|
||||
$creados++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,8 +103,8 @@ try {
|
||||
WHERE turno_id = ? AND formulario_id = ?"
|
||||
);
|
||||
$stmtInsertar = $pdo->prepare(
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado)
|
||||
VALUES (?, ?, ?, 'pendiente')"
|
||||
"INSERT INTO turnero_consentimientos (turno_id, formulario_id, token, estado, creado_por)
|
||||
VALUES (?, ?, ?, 'pendiente', ?)"
|
||||
);
|
||||
$stmtActualizar = $pdo->prepare(
|
||||
"UPDATE turnero_consentimientos
|
||||
@@ -148,7 +148,7 @@ try {
|
||||
}
|
||||
} else {
|
||||
$token = generarUuid();
|
||||
$stmtInsertar->execute([$turnoId, $formularioId, $token]);
|
||||
$stmtInsertar->execute([$turnoId, $formularioId, $token, adminId()]);
|
||||
$consentId = (int) $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
|
||||
@@ -41,13 +41,15 @@ if ($modoTurnero) {
|
||||
ts.numero_orden,
|
||||
med.nombres AS medico_nombres, med.apellidos AS medico_apellidos,
|
||||
med.cod_especialidad AS medico_especialidad,
|
||||
med.codigo AS medico_codigo, med.docidmedico AS medico_docid
|
||||
med.codigo AS medico_codigo, med.docidmedico AS medico_docid,
|
||||
cu.full_name AS creador_nombre
|
||||
FROM turnero_consentimientos tc
|
||||
JOIN lab_formularios f ON f.id = tc.formulario_id
|
||||
JOIN turnero_turnos t ON t.id = tc.turno_id
|
||||
LEFT JOIN turnero_solicitudes ts ON ts.turno_id = tc.turno_id
|
||||
LEFT JOIN lab_pacientes p ON p.id = COALESCE(ts.paciente_id, t.paciente_id)
|
||||
LEFT JOIN medicos med ON med.id = ts.medico_id
|
||||
LEFT JOIN admin_users cu ON cu.id = tc.creado_por
|
||||
WHERE tc.token = ?",
|
||||
[$tokenTurnero]
|
||||
);
|
||||
@@ -141,7 +143,7 @@ if ($modoTurnero) {
|
||||
'fecha_nacimiento' => $tcRow['fecha_nacimiento'],
|
||||
'paciente_telefono' => $tcRow['paciente_telefono'],
|
||||
'eps' => $tcRow['eps'],
|
||||
'enviado_por_nombre'=> $_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user']['username'] ?? 'Turnero',
|
||||
'enviado_por_nombre'=> $tcRow['creador_nombre'] ?? ($_SESSION['admin_user']['full_name'] ?? $_SESSION['admin_user']['username'] ?? 'Turnero'),
|
||||
'enviado_por_email' => $_SESSION['admin_user']['email'] ?? null,
|
||||
'firma_profesional_svg' => $tcRow['firma_profesional_svg'] ?? null,
|
||||
'datos_cliente' => $tcRow['datos_respuestas'] ?: '{}',
|
||||
|
||||
Reference in New Issue
Block a user