Beispiel #1
0
        /// <summary>
        /// Elimina una cita de la base de datos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            string nombreTxt = nombre.Text.Trim();
            string correoTxt = correo.Value.Trim();
            string fechaTxt  = fecha.Text.Trim();
            string horaT     = horaTxt.Text.Trim();

            ManejadorCita manejador = new ManejadorCita();

            string codigoMedico = Session["codigoMedico"].ToString();


            string confirmacion = manejador.CancelarCita(codigoMedico, fechaTxt, horaT);


            if (!confirmacion.Contains("error"))
            {
                if (!correoTxt.Equals(""))
                {
                    BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cancelación de cita",
                                                               "Estimado usuario:\n\n" +
                                                               "La Clínica Pediátrica Divino Niño le informa que se ha cancelado la " +
                                                               "cita de atención médica con la siguiente descripción:\n" +
                                                               "Paciente: " + nombreTxt + "\n" +
                                                               "Médico: " + Session["nombreMedico"].ToString() + "\n" +
                                                               "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" +
                                                               "Hora: " + horaT);
                }
            }


            LimpiarCampos();

            MostrarAgenda(diaSeleccionado, confirmacion);
        }
        private void CargarCitas()
        {
            string cuenta = Session["Cuenta"].ToString();

            ManejadorCita manejador = new ManejadorCita();

            listaCitas.Clear();

            string confirmacion = manejador.CargarCitasUsuario(listaCitas, cuenta);

            gridCitas.DataSource = listaCitas;
            gridCitas.DataBind();

            if (confirmacion.Contains("error"))
            {
                MostrarMensaje(confirmacion);
            }
            else
            {
                if (listaCitas.Count == 0)
                {
                    MostrarMensaje("No tiene citas pendientes");
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Carga la lista de pacientes vinculados a la cuenta en un dropdownlist
        /// </summary>
        private void CargarPacientes()
        {
            try
            {
                listaPacientes.Clear();

                ManejadorCita manejador = new ManejadorCita();

                string cuenta = Session["Cuenta"].ToString();

                string confirmacion = manejador.CargarPacientes(listaPacientes, cuenta);

                if (confirmacion.Contains("error"))
                {
                    MostrarMensaje(confirmacion);
                }
                else
                {
                    foreach (BLPacienteCita p in listaPacientes)
                    {
                        nombrePaciente.Items.Add(new ListItem(p.NombrePaciente));
                    }

                    nombrePaciente.Items.Insert(0, new ListItem("Seleccionar"));
                    nombrePaciente.SelectedIndex = 0;
                    nombrePaciente.Items[0].Attributes.Add("disabled", "disabled");
                }
            }
            catch (Exception ex)
            {
                Elog.save(this, ex);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Envia los datos del formulario a base de datos para almacenar una nueva cita
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnCrear_Click(object sender, EventArgs e)
        {
            if (ValidarDatos())
            {
                // Recuperación de los campos de texto

                string nombreTxt   = nombre.Text.Trim();
                string edadTxt     = edad.Text.Trim();
                string correoTxt   = correo.Value.Trim();
                string telefonoTxt = telefono.Value.Trim();
                string fechaTxt    = fecha.Text.Trim();
                string horaT       = horaTxt.Text.Trim();

                int numTel = 0;

                if (!telefonoTxt.Equals(""))
                {
                    numTel = int.Parse(telefonoTxt);
                }



                // Enviar datos para guardar en la base de datos

                ManejadorCita manejador = new ManejadorCita();

                string codigoMedico = Session["codigoMedico"].ToString();

                string confirmacion = manejador.CrearCita(codigoMedico, nombreTxt, edadTxt, correoTxt, numTel, fechaTxt, horaT);

                if (!confirmacion.Contains("error"))
                {
                    if (!correoTxt.Equals(""))
                    {
                        BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cita Médica",
                                                                   "Estimado usuario:\n\n" +
                                                                   "La Clínica Pediátrica Divino Niño le informa que se ha programado una " +
                                                                   "cita de atención médica. Los detalles de la misma se describen a continuación:\n" +
                                                                   "Paciente: " + nombreTxt + "\n" +
                                                                   "Médico: " + Session["nombreMedico"].ToString() + "\n" +
                                                                   "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" +
                                                                   "Hora: " + horaT);
                    }
                }


                LimpiarCampos();

                MostrarAgenda(diaSeleccionado, confirmacion);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Agenda una nueva cita para el paciente seleccionado
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void agendarCita_Click(object sender, EventArgs e)
        {
            if (ValidarEntradas())
            {
                string nombreTxt   = nombrePaciente.SelectedValue;
                string edadTxt     = edad.Text.Trim();
                string correoTxt   = correo.Text.Trim();
                string telefonoTxt = telefono.Text.Trim();
                string fechaTxt    = fecha.SelectedValue;
                string horaT       = hora.SelectedValue;

                int numTel = 0;

                if (!telefonoTxt.Equals(""))
                {
                    numTel = int.Parse(telefonoTxt);
                }

                // Enviar datos para guardar en la base de datos

                ManejadorCita manejador = new ManejadorCita();

                string codigoMedico = medico.SelectedValue;

                string confirmacion = manejador.CrearCita(codigoMedico, nombreTxt, edadTxt, correoTxt, numTel, fechaTxt, horaT);

                if (!confirmacion.Contains("error"))
                {
                    if (!correoTxt.Equals(""))
                    {
                        BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cita Médica",
                                                                   "Estimado usuario:\n\n" +
                                                                   "La Clínica Pediátrica Divino Niño le informa que se ha programado una " +
                                                                   "cita de atención médica. Los detalles de la misma se describen a continuación:\n" +
                                                                   "Paciente: " + nombreTxt + "\n" +
                                                                   "Médico: " + medico.SelectedItem.ToString() + "\n" +
                                                                   "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" +
                                                                   "Hora: " + horaT);
                    }
                }

                Session["confirmacionCreacion"] = confirmacion;

                Response.Redirect("ListaCitas.aspx");
            }
            else
            {
                MostrarMensaje("Favor completar los datos que se le solicitan");
            }
        }
        protected void gridCitas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "cancelar")
            {
                ManejadorCita manejador = new ManejadorCita();

                int indice = Convert.ToInt32(e.CommandArgument);

                GridViewRow filaSeleccionada = gridCitas.Rows[indice];
                string      nombrePaciente   = Formato(filaSeleccionada.Cells[0].Text.Trim());
                string      nombreMedico     = Formato(filaSeleccionada.Cells[1].Text.Trim());
                string      fecha            = Formato(filaSeleccionada.Cells[2].Text.Trim());
                string      hora             = Formato(filaSeleccionada.Cells[3].Text.Trim());
                string      correoTxt        = Session["Cuenta"].ToString();

                string confirmacion = "";


                foreach (BLCita cita in listaCitas)
                {
                    if (cita.Nombre.Equals(nombrePaciente) && cita.Fecha.Equals(fecha) && cita.Hora.Equals(hora))
                    {
                        confirmacion = manejador.CancelarCita(cita.CodigoMedico, fecha, hora);

                        if (!confirmacion.Contains("error"))
                        {
                            if (!correoTxt.Equals(""))
                            {
                                BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cancelación de cita",
                                                                           "Estimado usuario:\n\n" +
                                                                           "La Clínica Pediátrica Divino Niño le informa que se ha cancelado la " +
                                                                           "cita de atención médica con la siguiente descripción:\n" +
                                                                           "Paciente: " + nombrePaciente + "\n" +
                                                                           "Médico: " + nombreMedico + "\n" +
                                                                           "Fecha: " + (DateTime.Parse(fecha)).ToLongDateString() + "\n" +
                                                                           "Hora: " + hora);
                            }
                        }


                        break;
                    }
                }

                MostrarMensaje(confirmacion);
                CargarCitas();
            }
        }
Beispiel #7
0
        /// <summary>
        /// Obtiene el horario del medico y las citas que estan agendadas para una fecha en particular
        /// </summary>
        /// <param name="fecha">Fecha</param>
        /// <param name="presionoBoton">Presiono boton</param>
        private void MostrarAgenda(DateTime fecha, string presionoBoton)
        {
            try
            {
                diaSeleccionado = fecha;

                string codigoMedico = Session["codigoMedico"].ToString();

                listaCitas.Clear();

                string fechaSeleccionada = diaSeleccionado.ToShortDateString();

                ManejadorCita manejadorCita = new ManejadorCita();

                string confirmacion = manejadorCita.CargarCitas(listaCitas, codigoMedico, fechaSeleccionada);



                // Si no hubo problema al cargar las citas se procede a cargar la disponibilidad

                if (!confirmacion.Contains("error"))
                {
                    // Se obtiene la agenda de disponibilidad del medico para el dia seleccionado

                    ManejadorAgenda manejadorAgenda = new ManejadorAgenda();

                    string nombreDia = diaSeleccionado.ToString("dddd", new CultureInfo("es-ES")).ToUpperInvariant();
                    string nombreMes = diaSeleccionado.ToString("MMMM", new CultureInfo("es-ES")).ToUpperInvariant();
                    int    numeroDia = diaSeleccionado.Day;

                    nombreDia = nombreDia.Substring(0, 1).ToUpper() + nombreDia.Substring(1).ToLower();
                    nombreMes = nombreMes.Substring(0, 1).ToUpper() + nombreMes.Substring(1).ToLower();


                    BLAgendaEstandar blDia = new BLAgendaEstandar();

                    blDia.CodigoMedico = codigoMedico;
                    blDia.Dia          = nombreDia;

                    confirmacion = manejadorAgenda.CargarDisponibilidad(blDia);



                    if (!confirmacion.Contains("error"))
                    {
                        // Se crea una lista de items a mostrar en el grid

                        List <ListaItem> agenda = new List <ListaItem>();

                        //  Si la lista de citas y de disponibilidad esta vacia

                        if ((listaCitas.Count == 0) && (blDia.HoraInicio == null))
                        {
                            confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " no hay eventos";
                        }
                        else
                        {
                            // Si no hay disponibilidad pero si hay citas pedientes

                            if ((listaCitas.Count > 0) && (blDia.HoraInicio == null))
                            {
                                confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " tiene citas pendientes";

                                foreach (BLCita cita in listaCitas)
                                {
                                    agenda.Add(new ListaItem(cita.Hora, "Ocupado"));
                                }
                            }

                            string segundaConfirmacion = manejadorAgenda.ObtenerDuracionCita(codigoMedico);

                            bool duracionCapturada = true;

                            int duracionCita = 0;

                            try
                            {
                                duracionCita = int.Parse(segundaConfirmacion);
                            }
                            catch (Exception)
                            {
                                duracionCapturada = false;
                            }

                            if ((!segundaConfirmacion.Contains("error")) && (duracionCapturada))
                            {
                                //////////////////////////////////////////////////

                                DateTime horaInicio = DateTime.Now;
                                DateTime horaFin    = DateTime.Now;
                                DateTime temporal   = DateTime.Now;

                                if (blDia.HoraInicio != null)
                                {
                                    horaInicio = DateTime.Parse(blDia.HoraInicio);
                                    horaFin    = DateTime.Parse(blDia.HoraFin);
                                    temporal   = horaInicio;
                                }

                                string t      = "";
                                string estado = "";


                                // Si la lista de citas esta vacia pero hay disponibilidad

                                if ((listaCitas.Count == 0) && (blDia.HoraInicio != null))
                                {
                                    confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " no tiene citas pendientes";


                                    while (temporal < horaFin)
                                    {
                                        t = ConvertirFormato(temporal);

                                        temporal = temporal.AddMinutes(duracionCita);

                                        agenda.Add(new ListaItem(t, "Disponible"));
                                    }
                                }


                                // Si hay disponibilidad y citas

                                if ((listaCitas.Count > 0) && (blDia.HoraInicio != null))
                                {
                                    confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " tiene citas pendientes";


                                    // Primero se incluye la disponibilidad

                                    while (temporal < horaFin)
                                    {
                                        t = ConvertirFormato(temporal);

                                        temporal = temporal.AddMinutes(duracionCita);

                                        agenda.Add(new ListaItem(t, "Disponible"));
                                    }


                                    // Luego se incluyen las citas

                                    bool existe = false;

                                    foreach (BLCita cita in listaCitas)
                                    {
                                        foreach (ListaItem elemento in agenda)
                                        {
                                            if (elemento.Hora.Equals(cita.Hora))
                                            {
                                                elemento.Estado = "Ocupado";
                                                existe          = true;
                                                break;
                                            }
                                            else
                                            {
                                                existe = false;
                                            }
                                        }
                                        if (existe == false)
                                        {
                                            agenda.Add(new ListaItem(cita.Hora, "Ocupado"));
                                        }
                                    }

                                    // Se ordena la lista

                                    agenda.Sort((x, y) => string.Compare(x.Hora, y.Hora));
                                }
                            }
                            else
                            {
                                confirmacion = "Ocurrió un error al cargar la duración de las citas o esta no se ha establecido";
                            }
                            /////////////////////////////////////////////
                        }

                        vistaAgenda.DataSource = agenda;
                        vistaAgenda.DataBind();
                        //  vistaAgenda.HeaderRow.TableSection = TableRowSection.TableHeader;
                    }
                }

                if (!presionoBoton.Equals(""))
                {
                    confirmacion = presionoBoton;
                }

                MostrarMensaje(confirmacion);
            }
            catch (Exception ex)
            {
                Elog.save(this, ex);
            }
        }
Beispiel #8
0
        /// <summary>
        /// Cargar la lista de horas disponibles para el medico
        /// </summary>
        private void CargarHoras(string codigoMedico)
        {
            hora.Items.Clear();

            string fechaSeleccionada = fecha.SelectedValue;

            DateTime temporal = DateTime.Parse(fechaSeleccionada);

            string nombreDia = temporal.ToString("dddd", new CultureInfo("es-ES")).ToUpperInvariant();

            nombreDia = nombreDia.Substring(0, 1).ToUpper() + nombreDia.Substring(1).ToLower();

            BLAgendaEstandar dia = ObtenerDia(nombreDia);

            if (dia != null)
            {
                DateTime        horaInicio      = DateTime.Parse(dia.HoraInicio);
                DateTime        horaFin         = DateTime.Parse(dia.HoraFin);
                DateTime        i               = horaInicio;
                ManejadorAgenda manejadorAgenda = new ManejadorAgenda();

                string confirmacion = manejadorAgenda.ObtenerDuracionCita(codigoMedico);

                bool duracionCapturada = true;

                int duracionCita = 0;

                try
                {
                    duracionCita = int.Parse(confirmacion);
                }
                catch (Exception)
                {
                    duracionCapturada = false;
                }

                if ((!confirmacion.Contains("error")) && (duracionCapturada))
                {
                    string            t          = "";
                    List <ListaHoras> listaHoras = new List <ListaHoras>();

                    while (i < horaFin)
                    {
                        t = ConvertirFormato(i);

                        i = i.AddMinutes(duracionCita);

                        listaHoras.Add(new ListaHoras(t));
                    }

                    ManejadorCita manejadorCita = new ManejadorCita();

                    List <BLCita> horasCitas = new List <BLCita>();

                    confirmacion = manejadorCita.CargarHorasCita(horasCitas, codigoMedico, fechaSeleccionada);

                    if (!confirmacion.Contains("error"))
                    {
                        foreach (BLCita h in horasCitas)
                        {
                            for (int j = 0; j < listaHoras.Count; j++)
                            {
                                if (listaHoras[j].Hora.Equals(h.Hora))
                                {
                                    listaHoras.RemoveAt(j);
                                }
                            }
                        }
                        foreach (ListaHoras elemento in listaHoras)
                        {
                            hora.Items.Add(new ListItem(elemento.Hora));
                        }
                        string disponible = "Seleccionar";

                        if (listaHoras.Count == 0)
                        {
                            disponible = "No disponible";
                        }

                        hora.Items.Insert(0, new ListItem(disponible));
                        hora.SelectedIndex = 0;
                        hora.Items[0].Attributes.Add("disabled", "disabled");
                    }
                    else
                    {
                        MostrarMensaje(confirmacion);
                    }
                }
                else
                {
                    MostrarMensaje(confirmacion);
                }
            }
        }