Mostrar Turnos de profesionales programadas

Estoy diseñando un software para un hospital, por un lado en la base de datos esta su correspondiente carga, relacionada con una especialidad, y con una tabla agenda, que esta tabla tiene los campos, id_agenda, id_profesional, fecha_ini, fecha_fin, hora_ini, hora_fin, día, intervalo.

Que es lo que debe almacenar la tabla esta:

Que el medico con un POR Id, atiende los días Lunes de 14:00 Hs a 16:00 Hs desde la fecha 01/01/20019 hasta el 30/01/2019, entonces de esa forma en pantalla, en código HTML me va a mostrar todos los turnos disponibles que hay para dar de este medico.

Por otro lado va haber una tabla llamada CITA que va a contener un ID_cita, un ID_medico un ID_paciente, dia_tuno, hora_turno, detalle_turno (esta se relación con otra tabla que almacena los código correspondiente a esa atención-

Ahora el problema lo tengo en como hago para mostrar todos los días, ¿y dentro de ese día todos los horarios disponibles de un profesional? Que a su vez va a tener que verificar con la tabla CITA que si alguno esta ocupado ya lo muestre como NO DISPONIBLE.

Lo que logre hacer hasta ahora manipulando 5 variables, en código PHP sin conectarlo a la base de datos, es mostrar una tabla con turnos de 01/01/2019 hasta 30/01/2019 correspondiente a los días lunes del horario de 8:00 a 10:00 con intervalo de 15 minutos. Hasta ahora perfecto, luego deberé verificar cuales de los que muestra estén ocupado o no. Peor ahora el problema es que al conectarlo a la BD, tengo en la tabla agenda varias filas de las cuales puedo mostrar turnos para generar la grilla y ahí tengo el problema como poder realizar esto.

1 respuesta

Respuesta

Lo que buscas es mostrar los espacios dentro de la agenda de cada profesional donde no hay citas.

Si un profesional atiende los Lunes entre el 01-01-2019 y el 10-12-2019, de 10:00 a 16:00 y cada cita dura 30 minutos.

Con esta información puedes generar todas las potenciales citas.

Lo que te queda es consultar a la base de datos cuáles de estas están efectivamente reservadas y quitarlas de las opciones a ofrecer...

Sería algo así como armar un SQL:

SELECT ID_cita,  dia_tuno, hora_turno
FROM CITA
WHERE (dia_turno = ? and hora_turno = ? AND ID_medico = ?) OR...

Y repetir el OR para todos los turnos que haz generado.

Al final, recorres el resultado y simplemente quitas de tu opción los turnos que aparezcan allí.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas