//LISTA TURNOS POR MEDICO Y FECHA PARA LLENAR UN DATAGRID// public DataTable TurnosPorMedico(string dni, DateTime fecha) { AccesoDatos conexion = null; DataTable listturno; Turno aux; try { conexion = new AccesoDatos(); conexion.setearConsulta("SELECT TURNOS_PACIENTES.FECHA_TURNO, TURNOS_PACIENTES.HORA_TURNO, " + "PACIENTES.NOMBRE, PACIENTES.APELLIDO, TURNOS_PACIENTES.ID_Paciente, TURNOS_PACIENTES.OBSERVACION, ESTADOS_TURNOS.NOMBRE FROM TURNOS_PACIENTES INNER JOIN PACIENTES ON " + "TURNOS_PACIENTES.ID_Paciente=PACIENTES.NUMERO_DOCUMENTO INNER JOIN ESTADOS_TURNOS ON TURNOS_PACIENTES.ID_ESTADO = ESTADOS_TURNOS.ID WHERE TURNOS_PACIENTES.ID_MEDICO=@IdMedico AND TURNOS_PACIENTES.FECHA_TURNO=@FECHA AND TURNOS_PACIENTES.ID_ESTADO!=@ID_ESTADO ORDER BY TURNOS_PACIENTES.HORA_TURNO"); conexion.Comando.Parameters.AddWithValue("@IdMedico", dni); conexion.Comando.Parameters.AddWithValue("@ID_ESTADO", 4); conexion.Comando.Parameters.AddWithValue("@FECHA", fecha); conexion.abrirConexion(); listturno = new DataTable("Turnos"); listturno.Columns.Add("Hora"); listturno.Columns.Add("Nombre"); listturno.Columns.Add("Apellido"); listturno.Columns.Add("ID_Paciente"); listturno.Columns.Add("Observaciones"); listturno.Columns.Add("Estado"); aux = new Turno(); aux.medico = new Medico(); aux.paciente = new Paciente(); conexion.ejecutarConsulta(); HoraTurno HT = new HoraTurno(); while (conexion.Lector.Read()) { aux.fecha = conexion.Lector.GetDateTime(0); aux.hora = conexion.Lector.GetByte(1); aux.paciente.nombre = conexion.Lector.GetString(2); aux.paciente.apellido = conexion.Lector.GetString(3); aux.paciente.dni = conexion.Lector.GetString(4); aux.comentario = conexion.Lector.GetString(5); HT.Hora = aux.hora; listturno.Rows.Add(HT.ToString(), aux.paciente.nombre, aux.paciente.apellido, aux.paciente.dni, aux.comentario, conexion.Lector.GetString(6)); } listturno.Columns[3].ColumnMapping = MappingType.Hidden; } catch (Exception ex) { return(null); } finally { if (conexion != null) { conexion.cerrarConexion(); } } return(listturno); }
//LISTA FECHAS, MEDICOS Y DIAGNOSTICOS DE UN PACIENTE POR DNI// public List <HistoriaClinica> ListaHistorias(string dni) { AccesoDatos conexion = null; List <HistoriaClinica> list; HistoriaClinica aux; try { conexion = new AccesoDatos(); conexion.setearConsulta("SELECT HISTORIAS_CLINICAS.ID_PACIENTE, MEDICOS.APELLIDO, HISTORIAS_CLINICAS.FECHA_SOLICITUD, " + "HISTORIAS_CLINICAS.DIAGNOSTICO,HISTORIAS_CLINICAS.FEC_PROCESO, HISTORIAS_CLINICAS.USUARIO " + "FROM HISTORIAS_CLINICAS INNER JOIN MEDICOS ON HISTORIAS_CLINICAS.ID_MEDICO=MEDICOS.NUMERO_DOC WHERE HISTORIAS_CLINICAS.ID_PACIENTE=@IdPaciente ORDER BY HISTORIAS_CLINICAS.FEC_PROCESO"); conexion.Comando.Parameters.AddWithValue("@IdPaciente", dni); conexion.abrirConexion(); list = new List <HistoriaClinica>(); conexion.ejecutarConsulta(); HoraTurno HT = new HoraTurno(); while (conexion.Lector.Read()) { aux = new HistoriaClinica(); aux.paciente = new Paciente(); aux.medico = new Medico(); aux.paciente.dni = conexion.Lector.GetString(0); aux.medico.apellido = conexion.Lector.GetString(1); aux.fecha = conexion.Lector.GetDateTime(2); aux.comentario = conexion.Lector.GetString(3); list.Add(aux); } } catch (Exception ex) { return(null); } finally { if (conexion != null) { conexion.cerrarConexion(); } } return(list); }
private void btnAceptar_Click(object sender, EventArgs e) { FechaTurno fecha = (FechaTurno)cbxFecha.SelectedItem; HoraTurno hora = (HoraTurno)cbxHora.SelectedItem; Turno aux = new Turno(); aux.comentario = tbxObservaciones.Text; aux.estado = new Estado(); aux.estado.ID = 2; aux.fecha = new DateTime(fecha.anio, fecha.mes, fecha.dia); aux.hora = hora.Hora; aux.medico = new Medico(); aux.medico.dni = HM.dni; aux.paciente = new Paciente(); aux.paciente.dni = tbxDocumento.Text; if (TN.ExisteTurno(aux) == true) { MessageBox.Show("El turno está ocupado"); return; } if (TN.CrearTurno(aux) == false) { MessageBox.Show("No se pudo crear el turno"); } else { string data = "Estimado " + aux.paciente.nombre + " " + aux.paciente.apellido; data += ", le fue asignado un turno para el día " + aux.fecha.ToString() + " a las " + aux.hora.ToString(); MessageBox.Show("El turno se creó correctamente"); if (TN.EnviarMail(aux.paciente.mail, "Asignación de turno", data) == false) { MessageBox.Show("Error al enviar el mail"); } Medico medico = (Medico)cbxMedico.SelectedItem; Especialidad especialidad = (Especialidad)cbxEspecialidad.SelectedItem; Cargar_fecha(medico, especialidad); } }
//FILTRA LOS HORARIOS DISPONIBLES POR FECHA// public List <HoraTurno> ListaHorarios(HorarioMedico HM, FechaTurno FT) { Horario H = null; for (int i = 0; i < HM.horarios.Count; i++) { H = HM.horarios.ElementAt(i); if (H.dia == FT.dia_semana) { break; } } if (H == null) { return(null); } List <HoraTurno> lista = new List <HoraTurno>(); List <Turno> milista = this.TurnosPorMedicoYFecha(HM.dni, new DateTime(FT.anio, FT.mes, FT.dia)); DateTime ahora = DateTime.Now; DateTime fecha; for (byte i = H.hora_desde; i <= H.hora_hasta; i++) { fecha = new DateTime(FT.anio, FT.mes, FT.dia, i, 0, 0); bool existe = false; if (milista == null) { if (fecha > ahora) { HoraTurno aux = new HoraTurno(); aux.Hora = i; lista.Add(aux); } } else { for (int j = 0; j < milista.Count; j++) { if (milista.ElementAt(j).hora == i) { existe = true; break; } } if (existe == false) { if (fecha > ahora) { HoraTurno aux = new HoraTurno(); aux.Hora = i; lista.Add(aux); } } } } return(lista); }
protected void CrearTurno(object sender, EventArgs e) { try { int IdEspe = int.Parse(this.ddlEspecialidad.SelectedValue); string IdMedico = this.ddlMedico.SelectedValue; string IdPaciente = paciente.dni; string obs = this.tbxObservaciones.Text; int IdFecha = this.ddlFecha.SelectedIndex; int IdHora = this.ddlHora.SelectedIndex; HorarioMedico HM = new HorarioMedico(); HM.dni = IdMedico; HM.id_espe = IdEspe; HorarioMedicoNegocio HMN = new HorarioMedicoNegocio(); HM.horarios = HMN.LeerHorario(HM.dni, HM.id_espe); List <FechaTurno> FT = TN.ListaFechas(HM); FechaTurno IT = FT.ElementAt(IdFecha); List <HoraTurno> HT = TN.ListaHorarios(HM, IT); HoraTurno hora = HT.ElementAt(IdHora); Turno aux = new Turno(); aux.comentario = obs; aux.estado = new Estado(); aux.estado.ID = 2; aux.fecha = new DateTime(IT.anio, IT.mes, IT.dia); aux.hora = hora.Hora; aux.medico = new Medico(); aux.medico.dni = HM.dni; aux.paciente = new Paciente(); aux.paciente.dni = IdPaciente; if (TN.ExisteTurno(aux) == true) { this.respuesta = "El turno solicitado está ocupado"; this.Session.Add("turno", respuesta); this.Session.Add("dni", paciente.dni); this.Session.Add("nombre", paciente.nombre); this.Session.Add("apellido", paciente.apellido); this.Session.Add("medico", ""); this.Session.Add("fecha", ""); } else { if (TN.CrearTurno(aux) == false) { this.respuesta = "No se pudo crear el turno"; this.Session.Add("turno", respuesta); this.Session.Add("dni", paciente.dni); this.Session.Add("nombre", paciente.nombre); this.Session.Add("apellido", paciente.apellido); this.Session.Add("medico", ""); this.Session.Add("fecha", ""); } else { this.respuesta = "El turno se creó correctamente"; this.Session.Add("turno", respuesta); this.Session.Add("dni", paciente.dni); this.Session.Add("nombre", paciente.nombre); this.Session.Add("apellido", paciente.apellido); this.Session.Add("medico", this.ddlMedico.SelectedItem.Text); this.Session.Add("fecha", this.ddlFecha.Text + " " + this.ddlHora.Text); } } this.Response.Redirect("Turno.aspx"); } catch (Exception ex) { } }