prepare("SELECT id, estado FROM turnero_turnos WHERE id = ?"); $stmt->execute([$turnoId]); $turno = $stmt->fetch(PDO::FETCH_ASSOC); if (!$turno) jsonError('Turno no encontrado.', 404); // ── Consentimientos ─────────────────────────────────────────── $stmt = $pdo->prepare( "SELECT tc.id, tc.turno_id, tc.formulario_id, tc.token, tc.estado, tc.enviado_at, tc.firmado_at, f.nombre AS formulario_nombre FROM turnero_consentimientos tc LEFT JOIN lab_formularios f ON f.id = tc.formulario_id WHERE tc.turno_id = ? ORDER BY tc.id ASC" ); $stmt->execute([$turnoId]); $consentimientos = $stmt->fetchAll(PDO::FETCH_ASSOC); $respuesta = [ 'turno_id' => $turnoId, 'turno_estado' => $turno['estado'], 'consentimientos' => $consentimientos, ]; // ── Datos adicionales si solicita solicitud ─────────────────── if ($incluirSolicitud) { $stmt = $pdo->prepare( "SELECT s.id, s.turno_id, s.paciente_id, s.lugar_id, s.total_cobrado, s.metodo_pago, s.observaciones, s.creado_at, l.nombre AS lugar_nombre FROM turnero_solicitudes s LEFT JOIN turnero_lugares l ON l.id = s.lugar_id WHERE s.turno_id = ? LIMIT 1" ); $stmt->execute([$turnoId]); $solicitud = $stmt->fetch(PDO::FETCH_ASSOC) ?: null; $paciente = null; $examenes = []; if ($solicitud) { // Paciente $stmt = $pdo->prepare( "SELECT id, nombre_completo, tipo_documento, numero_documento, fecha_nacimiento, telefono FROM lab_pacientes WHERE id = ?" ); $stmt->execute([$solicitud['paciente_id']]); $paciente = $stmt->fetch(PDO::FETCH_ASSOC) ?: null; // Exámenes $stmt = $pdo->prepare( "SELECT et.id, et.codigo, et.nombre, et.categoria FROM turnero_examen_items tei JOIN exam_tipos et ON et.id = tei.exam_tipo_id WHERE tei.solicitud_id = ? ORDER BY et.categoria, et.nombre" ); $stmt->execute([$solicitud['id']]); $examenes = $stmt->fetchAll(PDO::FETCH_ASSOC); } $respuesta['solicitud'] = $solicitud; $respuesta['paciente'] = $paciente; $respuesta['examenes'] = $examenes; } jsonOk($respuesta);