prepare($query)->execute([$table]); return $result; } function createPatient($pdo, $data) { $query = "INSERT INTO paciente (nombre, apellido, fecha_de_nacimiento, documento_identificativo, tipo_documento, direccion, localidad, provincia, pais) VALUES (?,?,?,?,?,?,?,?,?)"; $pdo->prepare($query)->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"], $data["documento_identificativo"], $data["tipo_documento"], $data["direccion"], $data["localidad"], $data["provincia"], $data["pais"]]); return "Paciente creado con éxito"; } function editPatient($pdo, $data, $id) { $query = "UPDATE paciente SET nombre=?, apellido=?, fecha_de_nacimiento=?, documento_identificativo=?, tipo_documento=?, direccion=?, localidad=?, provincia=?, pais=? WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"], $data["documento_identificativo"], $data["tipo_documento"], $data["direccion"], $data["localidad"], $data["provincia"], $data["pais"], $id]); return "Paciente modificado con éxito"; } function deletePatient($pdo, string $id) { $check = "SELECT * FROM informes where paciente = ?"; $result = $pdo->prepare($check); $result->execute([$id]); if ($result->columnCount() == 0) { $statement = "DELETE FROM paciente where id=?"; $pdo->prepare($statement)->execute([$id]); return "El paciente se ha eliminado correctamente"; } return "No se puede eliminar el paciente dado que tiene citas"; } function createHoliday($pdo, $data) { if (!empty($data["medico"])) { $query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (?,?,?)"; $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]); } else { $query = "INSERT INTO festivo (fecha_festivo, tipo_festivo) VALUES (?,?)"; $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"]]); } return "Festivo creado con éxito"; } function editHoliday($pdo, $data, $id) { $query = "UPDATE festivo SET fecha_festivo=?, tipo_festivo=?, medico=? WHERE id=?"; $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"], $id]); return "Festivo modificado con éxito"; } function deleteHoliday($pdo, $id) { $statement = "DELETE FROM festivo where id=?"; $pdo->prepare($statement)->execute([$id]); return "Festivo borrado con éxito"; } function createUser($pdo, $data) { $query = "INSERT INTO usuario (nombre, usuario, contraseña, rol, correo) VALUES (?,?,?,?,?)"; $pdo->prepare($query)->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"]]); return "Usuario creado con éxito"; } function editUser($pdo, $data, $id) { $query = "UPDATE usuario SET nombre=?, usuario=?, contraseña=?, rol=?, correo=? WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"], $id]); return "Usuario modificado con éxito"; } function deactivateUser($pdo, $data, $id) { $query = "UPDATE usuario SET fecha_baja=now() WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$id]); return "Usuario desactivado con éxito"; } function listUsers($pdo) { $query = "SELECT usuario.nombre, usuario.usuario, rol.nombre, usuario.correo, usuario.id, fecha_baja FROM usuario INNER JOIN rol ON usuario.rol = rol.codigo"; $result = $pdo->query($query)->fetchAll(); return $result; } function fetchUserData($pdo, string $id) { $query = "SELECT * FROM usuario WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$id]); $data = $result->fetch(); return $data; } function findUser($pdo, $input) { $input = "%$input%"; $query = "SELECT usuario.nombre, usuario.usuario, rol.nombre, usuario.correo, usuario.id, fecha_baja FROM usuario, rol WHERE usuario.rol=rol.codigo AND (usuario.nombre LIKE ? OR usuario.usuario LIKE ? OR usuario.correo LIKE ?)"; $result = $pdo->prepare($query); $result->execute([$input, $input, $input]); $data = $result->fetchAll(); return $data; } function listPatients($pdo) { $query = "SELECT paciente.id, paciente.nombre, paciente.apellido, paciente.fecha_de_nacimiento, paciente.documento_identificativo, paciente.tipo_documento, paciente.direccion, municipios.nombre, provincias.provincia, paciente.pais, cita.id, informe.titulo FROM paciente INNER JOIN municipios ON paciente.localidad = municipios.id_municipio INNER JOIN provincias ON paciente.provincia = provincias.id_provincia LEFT JOIN cita ON paciente.id=cita.paciente LEFT JOIN informe ON paciente.id=informe.paciente GROUP BY paciente.id, cita.id, informe.titulo"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function fetchPatientData($pdo, string $id) { $query = "SELECT * FROM paciente WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$id]); $data = $result->fetch(); return $data; } function findPatient($pdo, $input) { $input = "%$input%"; $query = "SELECT * FROM paciente WHERE nombre LIKE ? OR apellido LIKE ? OR documento_identificativo LIKE ?"; $result = $pdo->prepare($query); $result->execute([$input, $input, $input]); $data = $result->fetchAll(); return $data; } function fetchCities($pdo, $id) { $query = "SELECT * FROM municipios WHERE id_provincia=?"; $result = $pdo->prepare($query); $result->execute([$id]); $data = $result->fetchAll(); return $data; } function fetchRegions($pdo) { $query = "SELECT * FROM provincias"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function fetchHolidays($pdo) { $query = "SELECT festivo.id, festivo.fecha_festivo, festivo.tipo_festivo, usuario.nombre FROM festivo LEFT JOIN usuario ON festivo.medico = usuario.id"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function listDoctors($pdo) { $query = "SELECT * FROM usuario where rol=2"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function fetchHolidayData($pdo, string $id) { $query = "SELECT * FROM festivo WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$id]); $data = $result->fetch(); return $data; } function listReports($pdo) { $query = "SELECT informe.id, informe.titulo, informe.fecha, informe.hora, paciente.apellido, usuario.nombre FROM informe INNER JOIN paciente ON paciente.id = informe.paciente INNER JOIN usuario ON usuario.id = informe.medico"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function createReport($pdo, $data) { $query = "INSERT INTO informe (fecha, hora, paciente, titulo, contenido, medico) VALUES (?,?,?,?,?,?)"; $pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["paciente"], $data["titulo"], $data["contenido"], $data["medico"]]); return "Informe creado con éxito"; } function editReport($pdo, $data, $id) { $query = "UPDATE informe SET fecha=?, hora=?, paciente=?, titulo=?, contenido=?, medico=? WHERE id=?"; $pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["paciente"], $data["titulo"], $data["contenido"], $data["medico"], $id]); return "Informe modificado con éxito"; } function deleteReport($pdo, $id) { $statement = "DELETE FROM informe where id=?"; $pdo->prepare($statement)->execute([$id]); return "Informe borrado con éxito"; } function fetchPatients($pdo) { $query = "SELECT id, apellido from paciente"; $result = $pdo->prepare($query); $result->execute(); $data = $result->fetchAll(); return $data; } function fetchReportData($pdo, string $id) { $query = "SELECT * FROM informe WHERE id=?"; $result = $pdo->prepare($query); $result->execute([$id]); $data = $result->fetch(); return $data; } function fetchLoginData($pdo, $data) { $query = "SELECT usuario, contraseña, rol FROM usuario WHERE usuario=? AND fecha_baja IS NULL"; $result = $pdo->prepare($query); $result->execute([$data["usuario"]]); $data = $result->fetch(); return $data; } function checkExistingCalendar($pdo, $data) { $query = "SELECT * from calendario WHERE medico=?"; $result = $pdo->prepare($query); $result->execute([$data["medico"]]); $data = $result->fetch(); return $data; } function configureCalendar($pdo, $data) { $existing = checkExistingCalendar($pdo, $data); if (!$existing) { $query = "INSERT INTO calendario (hora_inicio_mañana, hora_fin_mañana, hora_inicio_tarde, hora_fin_tarde, horario, sabado_habil, domingo_habil, duracion_cita_por_defecto, medico) VALUES (?,?,?,?,?,?,?,?,?)"; $pdo->prepare($query)->execute([$data["hora_inicio_mañana"], $data["hora_fin_mañana"], $data["hora_inicio_tarde"], $data["hora_fin_tarde"], $data["horario"], $data["sabado_habil"], $data["domingo_habil"], $data["duracion_cita_por_defecto"], $data["medico"]]); } else { $query = "UPDATE calendario SET hora_inicio_mañana=?, hora_fin_mañana=?, hora_inicio_tarde=?, hora_fin_tarde=?, horario=?, sabado_habil=?, domingo_habil=?, duracion_cita_por_defecto=?, medico=? WHERE medico=?"; $pdo->prepare($query)->execute([$data["hora_inicio_mañana"], $data["hora_fin_mañana"], $data["hora_inicio_tarde"], $data["hora_fin_tarde"], $data["horario"], $data["sabado_habil"], $data["domingo_habil"], $data["duracion_cita_por_defecto"], $data["medico"], $data["medico"]]); } return "Calendario configurado con éxito"; } function fetchCalendarEvents($pdo, $doctor) { $query = "SELECT * from cita WHERE medico=?"; $result = $pdo->prepare($query); $result->execute([$doctor]); $data = $result->fetchAll(PDO::FETCH_ASSOC); return $data; } function fetchCalendarSettings($pdo, $doctor) { $query = "SELECT * from calendario WHERE medico=?"; $result = $pdo->prepare($query); $result->execute([$doctor]); $data = $result->fetch(PDO::FETCH_ASSOC); if(empty($data[8])){ $data[8] = 60; } return $data; } function fetchDoctorHolidays($pdo, $doctor) { $query = "SELECT * FROM festivo WHERE medico IS NULL OR medico=?"; $result = $pdo->prepare($query); $result->execute([$doctor]); $data = $result->fetchAll(PDO::FETCH_ASSOC); return $data; } function createAppointment($pdo, $data){ $query = "INSERT INTO cita (fecha, hora, duracion, medico, observaciones, paciente) VALUES (?,?,?,?,?,?)"; $pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["duracion"], $data["medico"], $data["observaciones"], $data["paciente"]]); return "Cita creada con éxito"; }