public Diagramacion obtenerDiagramacionPorSemana(int idProfesional, DateTime fechaDesde, DateTime fechaHasta)
        {
            EnlaceDatos   enlaceDatos    = new EnlaceDatos();
            SqlDataReader drDiagramacion = enlaceDatos.getDiagramacionPorFecha(idProfesional, fechaDesde);

            if (drDiagramacion.HasRows)
            {
                drDiagramacion.Read();
                Diagramacion diagramacion = new Diagramacion();
                diagramacion.IdDiagramacion = Convert.ToInt32(drDiagramacion[0].ToString());
                diagramacion.FechaAlta      = Convert.ToDateTime(drDiagramacion[1].ToString());
                diagramacion.FechaDesde     = Convert.ToDateTime(drDiagramacion[2].ToString());
                diagramacion.FechaHasta     = Convert.ToDateTime(drDiagramacion[3].ToString());

                SqlDataReader drDetallesDiagramacion = enlaceDatos.getDetallesDeDiagramacionPorSemana(idProfesional, fechaDesde, fechaHasta);
                if (drDetallesDiagramacion.HasRows)
                {
                    while (drDetallesDiagramacion.Read())
                    {
                        DetalleDiagramacion detalle = new DetalleDiagramacion();
                        detalle.Iddetallediagramacion = Convert.ToInt32(drDetallesDiagramacion[0].ToString());
                        detalle.Fecha     = Convert.ToDateTime(drDetallesDiagramacion[1].ToString());
                        detalle.HoraDesde = Convert.ToDateTime(drDetallesDiagramacion[2].ToString());
                        detalle.HoraHasta = Convert.ToDateTime(drDetallesDiagramacion[3].ToString());
                        diagramacion.DetallesDiagramacion.Add(detalle);
                    }
                }
                return(diagramacion);
            }
            else
            {
                return(null);
            }
        }
        public List <Mensaje> obtenerNuevosMensajes(int idpersonaorigen)
        {
            EnlaceDatos   enlace           = new EnlaceDatos();
            SqlDataReader drNuevosMensajes = enlace.getNuevosMensajes(idpersonaorigen, 103, 2, 2);

            if (drNuevosMensajes != null)
            {
                if (drNuevosMensajes.HasRows)
                {
                    List <Mensaje> mensajes = new List <Mensaje>();
                    while (drNuevosMensajes.Read())
                    {
                        int           idMensaje = Convert.ToInt32(drNuevosMensajes[0].ToString());
                        String        contenido = drNuevosMensajes[1].ToString();
                        EstadoMensaje estado    = new EstadoMensaje(Convert.ToInt32(drNuevosMensajes[2].ToString()), "");
                        TipoMensaje   tipo      = new TipoMensaje(Convert.ToInt32(drNuevosMensajes[3].ToString()), "");
                        DateTime      fechaHora = Convert.ToDateTime(drNuevosMensajes[4].ToString());
                        Persona       persona   = new Persona(Convert.ToInt32(drNuevosMensajes[5].ToString()), "", "");
                        Mensaje       mensaje   = new Mensaje(idMensaje, contenido, tipo, estado, fechaHora, persona);
                        mensajes.Add(mensaje);
                    }
                    return(mensajes);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
        public List <Medicamento> obtenerMedicamentos()
        {
            EnlaceDatos        enlaceDatos   = new EnlaceDatos();
            SqlDataReader      drMedicamento = enlaceDatos.getMedicamentos();
            List <Medicamento> lsMedicamento = new List <Medicamento>();

            while (drMedicamento.Read())
            {
                Medicamento             medicamento  = new Medicamento();
                PresentacionMedicamento presentacion = new PresentacionMedicamento();
                Proveedor proveedor = new Proveedor();

                medicamento.IdMedicamento = Convert.ToInt32(drMedicamento[0].ToString());
                medicamento.Nombre        = drMedicamento[1].ToString();
                medicamento.Descripcion   = drMedicamento[2].ToString();

                presentacion.IdPresentacion = Convert.ToInt32(drMedicamento[3].ToString());
                presentacion.Nombre         = drMedicamento[4].ToString();
                presentacion.Descripcion    = drMedicamento[5].ToString();

                proveedor.IdProveedor = Convert.ToInt32(drMedicamento[6].ToString());
                proveedor.Nombre      = drMedicamento[7].ToString();
                proveedor.Fechaalta   = Convert.ToDateTime(drMedicamento[8].ToString());

                medicamento.Presentacion = presentacion;
                medicamento.Proveedor    = proveedor;

                lsMedicamento.Add(medicamento);
            }
            return(lsMedicamento);
        }
        public List <Turno> obtenerTurnosPorSemana(DateTime fechaDesde, DateTime fechaHasta, int idProfesional)
        {
            EnlaceDatos   datos    = new EnlaceDatos();
            SqlDataReader drTurnos = datos.getTurnosPorSemana(fechaDesde, fechaHasta, idProfesional);

            if (drTurnos.HasRows)
            {
                List <Turno> lsTurnos = new List <Turno>();
                while (drTurnos.Read())
                {
                    Turno turno = new Turno();
                    turno.IdTurno    = Convert.ToInt32(drTurnos[0].ToString());
                    turno.FechaTurno = drTurnos.GetDateTime(1);
                    turno.HoraInicio = Convert.ToDateTime(drTurnos[2].ToString());
                    turno.HoraFin    = Convert.ToDateTime(drTurnos[3].ToString());
                    turno.Comentario = drTurnos.GetString(4);

                    EstadoTurno estado = new EstadoTurno();
                    estado.IdEstado = Convert.ToInt32(drTurnos[5].ToString());
                    estado.Nombre   = drTurnos[6].ToString();

                    Paciente paciente = new Paciente();
                    paciente.IdPaciente = Convert.ToInt32(drTurnos[7].ToString());
                    paciente.Apellido   = drTurnos[8].ToString();
                    paciente.Nombre     = drTurnos[9].ToString();

                    turno.EstadoTurno = estado;
                    turno.Paciente    = paciente;
                    lsTurnos.Add(turno);
                }
                return(lsTurnos);
            }
            return(null);
        }
        public Boolean tomarMensaje(Mensaje mensaje)
        {
            EnlaceDatos enlace    = new EnlaceDatos();
            String      contenido = mensaje.Contenido;
            int         idpersona = mensaje.Persona.Idpersona;

            return(enlace.registrarMensaje(contenido, idpersona));
        }
        public Boolean tomarTurnoAConfirmar(Turno turno)
        {
            EnlaceDatos enlace = new EnlaceDatos();

            if (enlace.confirmarTurno(turno.IdTurno))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public List <Turno> obtenerTurnosPorFecha(DateTime fecha)
        {
            EnlaceDatos   enlaceDatos = new EnlaceDatos();
            SqlDataReader drTurnos    = enlaceDatos.getTurnosPorFecha(fecha);

            List <Turno> lsTurnos = new List <Turno>();

            while (drTurnos.Read())
            {
                //lsTurnos.Add(new Turno(Convert.ToDateTime(drTurnos.GetDateTime(0)),Convert.ToDateTime(drTurnos.GetDateTime(1)),Convert.ToDateTime(drTurnos.GetDateTime(2))));
            }
            return(lsTurnos);
        }
        public List <Enfermedad> obtenerEnefermedades()
        {
            EnlaceDatos       enlaceDatos    = new EnlaceDatos();
            SqlDataReader     drEnfermedad   = enlaceDatos.getEnfermedades();
            List <Enfermedad> lsEnfermedades = new List <Enfermedad>();

            while (drEnfermedad.Read())
            {
                Enfermedad enf = new Enfermedad();
                enf.Idenfermedad = Convert.ToInt32(drEnfermedad[0].ToString());
                enf.Nombre       = drEnfermedad[1].ToString();
                lsEnfermedades.Add(enf);
            }
            return(lsEnfermedades);
        }
        public List <Controles> obtenerControles(int idEnfermedad)
        {
            EnlaceDatos      enlaceDatos = new EnlaceDatos();
            SqlDataReader    drControl   = enlaceDatos.getControles(idEnfermedad);
            List <Controles> lsControl   = new List <Controles>();

            while (drControl.Read())
            {
                Controles control = new Controles();
                control.IdControl   = Convert.ToInt32(drControl[0].ToString());
                control.TipoControl = drControl[1].ToString();
                control.Texto       = drControl[2].ToString();

                lsControl.Add(control);
            }
            return(lsControl);
        }
        public List <EstadoTurno> obtenerTodosEstadosTurno()
        {
            EnlaceDatos   enlace    = new EnlaceDatos();
            SqlDataReader drEstados = enlace.getAllEstadosTurno();

            if (drEstados.HasRows)
            {
                List <EstadoTurno> lsEstados = new List <EstadoTurno>();
                while (drEstados.Read())
                {
                    EstadoTurno estados = new EstadoTurno();
                    estados.IdEstado = Convert.ToInt32(drEstados[0].ToString());
                    estados.Nombre   = drEstados.GetString(1);
                    lsEstados.Add(estados);
                }
                return(lsEstados);
            }
            return(null);
        }
        public List <Dia> obtenerDiasSemana()
        {
            EnlaceDatos   enlaceDatos = new EnlaceDatos();
            SqlDataReader drDias      = enlaceDatos.getDiasSemana();

            if (drDias.HasRows)
            {
                List <Dia> lsDias = new List <Dia>();
                while (drDias.Read())
                {
                    Dia dia = new Dia();
                    dia.IdDia  = Convert.ToInt32(drDias[0].ToString());
                    dia.Nombre = drDias[1].ToString();
                    lsDias.Add(dia);
                }
                return(lsDias);
            }
            return(null);
        }
        public List <Practica> obtenerPracticas()
        {
            EnlaceDatos   enlace      = new EnlaceDatos();
            SqlDataReader drPracticas = enlace.getPracticas();

            if (drPracticas.HasRows)
            {
                List <Practica> lsPracticas = new List <Practica>();
                while (drPracticas.Read())
                {
                    Practica practica = new Practica();
                    practica.IdPractica = Convert.ToInt32(drPracticas[0].ToString());
                    practica.Nombre     = drPracticas.GetString(1);
                    practica.Duracion   = Convert.ToInt32(drPracticas[2].ToString());
                    lsPracticas.Add(practica);
                }
                return(lsPracticas);
            }
            return(null);
        }
        public List <Turno> obtenerPacientePorTurno(DateTime date, int idProfesional)
        {
            EnlaceDatos   enlaceDatos = new EnlaceDatos();
            SqlDataReader drPacientes = enlaceDatos.getPacientesPorTurnos(date, idProfesional);
            List <Turno>  lstTurno    = new List <Turno>();

            while (drPacientes.Read())
            {
                Paciente pac = new Paciente();
                Turno    t   = new Turno();

                pac.IdPaciente = Convert.ToInt32(drPacientes[0].ToString());
                pac.Apellido   = drPacientes[1].ToString();
                pac.Nombre     = drPacientes[2].ToString();
                t.Paciente     = pac;
                t.Comentario   = drPacientes[3].ToString();
                t.IdTurno      = Convert.ToInt32(drPacientes[4].ToString());
                lstTurno.Add(t);
            }
            return(lstTurno);
        }
        public Boolean tomarAtencion(List <Practica> practica, Diagnostico diag, Prescripcion pres, DateTime fecha, Turno turno)
        {
            EnlaceDatos enlaceDatos = new EnlaceDatos();

            if (enlaceDatos.registrarAtencion(practica, diag, pres, fecha, turno) == true)
            {
                return(true);
            }
            else
            {
                return(false);
            }
            //SqlDataReader drProfesionales = enlaceDatos.getProfesionalesParaValidar();

            //List<Entidades.Profesional> listaProfesionales = new List<Entidades.Profesional>();
            //if (drProfesionales.HasRows)
            //{
            //    while (drProfesionales.Read())
            //    {
            //        TipoDocumento tipd = new TipoDocumento();
            //        Profesional e = new Profesional();
            //        e.TipoDocumento = tipd;
            //        e.TipoDocumento.IdTipoDocumento = Convert.ToInt32(drProfesionales[0].ToString());
            //        e.NumeroDocumento = drProfesionales[1].ToString();
            //        e.Matricula = drProfesionales[2].ToString();

            //        listaProfesionales.Add(e);
            //    }
            //    for (int i = 0; i < listaProfesionales.Count; i++)
            //    {
            //        if (listaProfesionales[i].Matricula == profesional.Matricula || (listaProfesionales[i].TipoDocumento.IdTipoDocumento == profesional.TipoDocumento.IdTipoDocumento && listaProfesionales[i].NumeroDocumento == profesional.NumeroDocumento))
            //        {
            //            return false;
            //        }
            //    }
            //}
            //enlaceDatos.registrarProfesional(profesional, usuario, esp, dom, lsttel, correo);
            //return true;
        }
        public int tomarTurno(Turno turno)
        {
            DateTime fechaAlta     = turno.FechaAlta;
            int      idProfesional = turno.Profesional.Idprofesional;
            int      idPaciente    = turno.Paciente.IdPaciente;
            DateTime fechaTurno    = turno.FechaTurno;
            DateTime horaInicio    = turno.HoraInicio;
            DateTime horaFin       = turno.HoraFin;
            String   comentario    = turno.Comentario;
            int      idEstado      = turno.EstadoTurno.IdEstado;

            List <int> lsIdPracticas = new List <int>();

            foreach (Practica practica in turno.Practicas)
            {
                lsIdPracticas.Add(practica.IdPractica);
            }

            EnlaceDatos enlace = new EnlaceDatos();

            return(enlace.registrarTurno(fechaAlta, idProfesional, idPaciente, fechaTurno, horaInicio, horaFin, idEstado, comentario, lsIdPracticas));
        }
        public Boolean verificarNuevosMensajes(int idpersonadestino)
        {
            EnlaceDatos enlace = new EnlaceDatos();

            return(enlace.hayNuevosMensajesPorSesion(idpersonadestino));
        }
        public Turno obtenerTurnoPorId(int idTurno)
        {
            EnlaceDatos enlace = new EnlaceDatos();



            ///// Acá corregir. El turno conoce al paciente



            SqlDataReader drTurno    = enlace.getTurnoPorId(idTurno);
            SqlDataReader drPaciente = enlace.getPacientePorTurno(idTurno);

            if (drTurno.HasRows && drPaciente.HasRows)
            {
                drTurno.Read();
                Turno turno = new Turno();
                turno.IdTurno    = Convert.ToInt32(drTurno[0].ToString());
                turno.FechaTurno = drTurno.GetDateTime(1);
                turno.HoraInicio = Convert.ToDateTime(drTurno.GetDateTime(2).ToShortTimeString());
                turno.HoraFin    = drTurno.GetDateTime(3);
                turno.Comentario = drTurno.GetString(4);

                Profesional profesional = new Profesional();
                profesional.Idprofesional = Convert.ToInt32(drTurno[5].ToString());
                profesional.Apellido      = drTurno.GetString(6);
                profesional.Nombre        = drTurno.GetString(7);

                EstadoTurno estado = new EstadoTurno();
                estado.IdEstado = Convert.ToInt32(drTurno[8].ToString());
                estado.Nombre   = drTurno.GetString(9);

                drPaciente.Read();
                Paciente paciente = new Paciente();
                paciente.IdPaciente = Convert.ToInt32(drPaciente[0].ToString());
                paciente.Apellido   = drPaciente.GetString(1);
                paciente.Nombre     = drPaciente.GetString(2);

                turno.EstadoTurno = estado;
                turno.Profesional = profesional;
                turno.Paciente    = paciente;

                SqlDataReader drPracticas = enlace.getPracticasPorTurno(turno.IdTurno);
                {
                    if (drPracticas.HasRows)
                    {
                        List <Practica> practicas = new List <Practica>();
                        while (drPracticas.Read())
                        {
                            Practica practica = new Practica();
                            practica.IdPractica = Convert.ToInt32(drPracticas[0].ToString());
                            practica.Nombre     = drPracticas.GetString(1);
                            practica.Duracion   = Convert.ToInt32(drPracticas[2].ToString());
                            practicas.Add(practica);
                        }
                        turno.Practicas = practicas;
                    }
                }
                return(turno);
            }
            return(null);
        }