up
This commit is contained in:
@@ -77,48 +77,19 @@ if (empty($examIds)) {
|
||||
jsonError('La solicitud no tiene exámenes registrados.', 422);
|
||||
}
|
||||
|
||||
// ── 3. Obtener formularios de consentimiento (deduplicados) ───
|
||||
// 3a. Consentimientos por tipo de examen
|
||||
$in = implode(',', array_fill(0, count($examIds), '?'));
|
||||
// ── 3. Obtener formularios configurados para este turno ───────
|
||||
$stmt = $pdo->prepare(
|
||||
"SELECT DISTINCT etc.formulario_id, f.nombre AS formulario_nombre
|
||||
FROM exam_tipo_consentimientos etc
|
||||
JOIN lab_formularios f ON f.id = etc.formulario_id
|
||||
WHERE etc.exam_tipo_id IN ({$in})"
|
||||
"SELECT tc.formulario_id, f.nombre AS formulario_nombre
|
||||
FROM turnero_consentimientos tc
|
||||
JOIN lab_formularios f ON f.id = tc.formulario_id
|
||||
WHERE tc.turno_id = ?
|
||||
ORDER BY f.nombre ASC"
|
||||
);
|
||||
$stmt->execute($examIds);
|
||||
$stmt->execute([$turnoId]);
|
||||
$formulariosRequeridos = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
// 3b. Consentimientos por lugar/servicio (de la solicitud)
|
||||
$lugarIdSol = (int)($turno['lugar_id'] ?? 0);
|
||||
if (!$lugarIdSol) {
|
||||
// Intentar leer lugar_id directo de la solicitud si no vino en el join anterior
|
||||
$stmtLugar = $pdo->prepare("SELECT lugar_id FROM turnero_solicitudes WHERE id = ?");
|
||||
$stmtLugar->execute([$turno['solicitud_id']]);
|
||||
$lugarIdSol = (int)($stmtLugar->fetchColumn() ?: 0);
|
||||
}
|
||||
if ($lugarIdSol > 0) {
|
||||
$stmtLc = $pdo->prepare(
|
||||
"SELECT tlc.formulario_id, f.nombre AS formulario_nombre
|
||||
FROM turnero_lugar_consentimientos tlc
|
||||
JOIN lab_formularios f ON f.id = tlc.formulario_id
|
||||
WHERE tlc.lugar_id = ?"
|
||||
);
|
||||
$stmtLc->execute([$lugarIdSol]);
|
||||
foreach ($stmtLc->fetchAll(PDO::FETCH_ASSOC) as $row) {
|
||||
// Deduplicar: solo agregar si aún no está en la lista
|
||||
$yaExiste = false;
|
||||
foreach ($formulariosRequeridos as $fr) {
|
||||
if ((int)$fr['formulario_id'] === (int)$row['formulario_id']) { $yaExiste = true; break; }
|
||||
}
|
||||
if (!$yaExiste) {
|
||||
$formulariosRequeridos[] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($formulariosRequeridos)) {
|
||||
jsonOk(['consentimientos' => [], 'mensaje' => 'Ningún examen ni servicio requiere consentimiento.']);
|
||||
jsonOk(['consentimientos' => [], 'mensaje' => 'Este turno no tiene consentimientos requeridos.']);
|
||||
}
|
||||
|
||||
// ── 4. Generar / recuperar tokens UUID ────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user