Hola amigos, pasaré a explicar lo que quiero hacer.
Tengo un cliente que tiene una clínica dental y desea que agregue una agenda semanal al sistema web que estoy desarrollando para su negocio, dicha agenda se debe ver más o menos así:
AGENDA DEL: Dr. Juan Pérez
FECHA ACTUAL: 12/11/2011
(link -> Ver semana anterior || Ver próxima semana)
(link -> Ver mes anterior || Ver próximo mes)
(link -> Ver año anterior || Ver próximo año)
(link -> Ver modo mes || Ver en modo diario)
HORA\DÍA LUNES MARTES MIÉRCOLES JUEVES VIERNES
8:00
8:30
9:00
9:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
En el campo de 8:00 del Lunes se mostrará el cuadro de cita del paciente Luis Jiménez y finalizará en el campo de las 9:30, así sucesivamente.
En los espacios en blanco (horas disponibles), el dentista podrá dar un clic y se visualizará un pequeño cuadro en el cual podrá ingresar el nombre del paciente a quien asignará la cita, en dicho campo al momento de digitar el nombre del paciente, se deberá mostrar una lista de coincidencias similar a la de facebook, además de esto, deberá indicar la hora de inicio que por defecto será en la del campo al que le haya dado clic y la hora final, por otro lado, podrá indicar el tratamiento que realizará, aquí hay un detalle, el tratamiento puede durar 1 o más sesiones (citas), por lo que deberá poder elegir la cantidad de sesiones que durará el tratamiento y el número de sesión de la misma, por ejemplo, el paciente Renato Vizcarra acude a la clínica para que le realicen una ortopedia maxilar la cuál durará 5 sesiones, por lo que en la primera sesión se deberá indicar el número de sesión (en este caso 1) y al realizar el registro de la segunda sesión, deberá aparecer una lista de los tratamientos en curso del paciente, al momento de elegir uno, automáticamente aparecerá el número de sesión en un campo (en este caso aparecerá "sesión: 2" y así sucesivamente, además, se deberá ingresar el costo del tratamiento el cual puede ser pagado en una o más sesiones, por ejemplo, el tratamiento del ejemplo cuesta $50, el paciente decide pagar $15 en la primera cita, por lo que en el cuadro de "pago realizado" se deberá ingresar dicha cantidad, para la siguiente cita, el costo del tratamiento deberá aparecer automáticamente y ya realizado el descuento por haberse realizado un pago en la cita anterior, los pagos se podrán realizar incluso después de haber finalizado el tratamiento. Cada cuadro de cita deberá tener un determinado color:
Rojo: Pendiente
Verde: Atendido
Las horas disponibles aparecerán en blanco
Por otro lado, se podrá ingresar, a modo de comentario, un detalle de lo realizado en la cita, en el caso de los tratamientos de varias sesiones, el dentista podrá cambiar el estado de la misma (del tratamiento, no de la cita) de "en curso" a "finalizado", del mismo modo, podrá cambiar el estado de la cita de "pendiente" a "atendido", finalmente, deberá darle clic a un botón para guardar todos estos datos en una base de datos, de modo que al querer visualizar un tratamiento en curso, atendido, una cita atendida o pendiente, los datos cargarán desde la base de datos.
Desde el modo de vista general de la agenda, el dentista podrá modificar la hora de inicio y/o final de una determinada cita con sólo darle clic al borde superior y/o inferior del cuadro de la cita y arrastrando el puntero del mouse hacia arriba o abajo, así mismo, podrá cambiar el día de la cita arrastrando el cuadro de la cita a otra día de la semana. Al realizar este cambio, las horas inicial, final y día asignado, deberán cambiar y guardarse en la base de datos de manera automática. No se podrá programar una hora inicial o final si existe conflicto con otra ya programada.
Con sólo darle un clic al cuadro de una determinada cita, deberá aparecer un cuadro emergente similar al del registro de citas para poder modificar los datos de la misma o cancelarla.
Cabe recordar que esta agenda corresponde a cada uno de los dentistas que laboran en la clínica, por lo que cuando un determinado dentista se loguea en el sistema, sólo se mostrarán los datos de las citas que se le asignaron.
Nota: Se debe generar un ID de cada tratamiento y sesión del tratamiento.