/// <summary>
        /// Reestablece una visita
        /// </summary>
        /// <param name="idEvolucion">id de la visita a reestablecer</param>
        /// <returns>canidad de registros afectados</returns>
        public int ReestablecerVisita(int?idEvolucion)
        {
            int rpta = 0;

            try
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    if (idEvolucion != null)
                    {
                        tblEvolucion tblEvolucion = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion).First();
                        tblEvolucion.habilitado = 1;

                        rpta = bd.SaveChanges();
                    }
                    else
                    {
                        rpta = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                rpta = 0;
            }
            return(rpta);
        }
Example #2
0
        /// <summary>
        /// Eliminación de un usuario de la base de datos
        /// </summary>
        /// <param name="idUsuario">Id del usuario a eliminarse</param>
        /// <returns>Cantidad de registros afectados</returns>
        public int Eliminar(int idUsuario)
        {
            int rpta = 0;

            try
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    //Busqueda del usuario que coindida con el id de entrada
                    tblUsuario usuario = (from user in bd.tblUsuario
                                          where user.idUsuario == idUsuario
                                          select user).First();
                    if (usuario != null) //si el usuario existe se elimina
                    {
                        bd.tblUsuario.Remove(usuario);
                        rpta = bd.SaveChanges();
                    }
                    else//Error
                    {
                        rpta = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                rpta = 0;
            }
            return(rpta);
        }
        /// <summary>
        /// Filtro de busqueda en base al string de entrada
        /// </summary>
        /// <param name="busqueda"></param>
        /// <returns>Vista parcial con los resultados de conicidencia</returns>
        public ActionResult Filtro(String busqueda)
        {
            List <Cie10CLS> listaEnfermedades = new List <Cie10CLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                if (busqueda == null || busqueda == "")
                {
                    listaEnfermedades.Add(new Cie10CLS
                    {
                        codigo     = "",
                        enfermedad = "Ingrese código o término exacto"
                    });
                }
                else
                {
                    listaEnfermedades = (from cie10 in bd.tblCIE10
                                         where cie10.enfermedad.Contains(busqueda) ||
                                         cie10.codigo.Contains(busqueda)
                                         select new Cie10CLS
                    {
                        codigo = cie10.codigo,
                        enfermedad = cie10.enfermedad,
                        titulo = cie10.titulo,
                        capitulo = cie10.capitulo
                    }).ToList();
                }

                return(PartialView("_TablaCIE", listaEnfermedades));
            }
        }
        /// <summary>
        /// Restablecimiento de pacientes
        /// </summary>
        /// <param name="idPaciente">id del paciente a reestablecer</param>
        /// <returns>cantidad de registros afectados</returns>
        public int ReestablecerPaciente(int?idPaciente)
        {
            int rpta = 0;

            try
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    if (idPaciente != null)
                    {
                        tblPaciente         tblPaciente        = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                        tblHistoriaClinica  tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();
                        List <tblEvolucion> listaEvoluciones   = bd.tblEvolucion.Where(p => p.idHistoriaClinica == tblHistoriaClinica.idHistoriaClinica && p.habilitado == 0).ToList();
                        foreach (var item in listaEvoluciones)
                        {
                            item.habilitado = 1;
                        }
                        tblHistoriaClinica.habilitado = 1;
                        tblPaciente.habilitado        = 1;

                        rpta = bd.SaveChanges();
                    }
                    else
                    {
                        rpta = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                rpta = 0;
            }
            return(rpta);
        }
        /// <summary>
        /// GET: Evolucion
        /// </summary>
        /// <param name="idPaciente">id del paciente en consulta</param>
        /// <returns>Vista Index con los datos de evolución de un paciente</returns>
        public ActionResult Index(int idPaciente)
        {
            List <EvolucionCLS> listaEvoluciones = new List <EvolucionCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                tblPaciente tblPaciente = bd.tblPaciente.Where(p => p.idPaciente.Equals(idPaciente)).First();
                ViewBag.nombrePaciente = tblPaciente.nombres + " " + tblPaciente.apellidos;
                ViewBag.idPaCiente     = tblPaciente.idPaciente;
                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();
                ViewBag.idHistoriaClinica = tblHistoriaClinica.idHistoriaClinica;

                listaEvoluciones = (from evolucion in bd.tblEvolucion
                                    join historiaClinica in bd.tblHistoriaClinica
                                    on evolucion.idHistoriaClinica equals historiaClinica.idHistoriaClinica
                                    join paciente in bd.tblPaciente
                                    on historiaClinica.idPaciente equals paciente.idPaciente
                                    where evolucion.habilitado == 1 &&
                                    paciente.idPaciente == idPaciente
                                    select new EvolucionCLS
                {
                    idEvolucion = evolucion.idEvolucion,
                    motivoConsulta = evolucion.motivoConsulta,
                    fechaVisita = (DateTime)evolucion.fechaVisita
                }).ToList();
            }
            return(View(listaEvoluciones));
        }
Example #6
0
        /// <summary>
        /// Filtro de busqueda en base a los parametros de entrada
        /// </summary>
        /// <param name="nombreUsuario">Busqueda por nombre</param>
        /// <returns>vista parcial con la lista de coincidencias de la busqueda</returns>
        public ActionResult Filtro(String nombreUsuario)
        {
            List <UsuarioCLS> listaUsuario = new List <UsuarioCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                if (nombreUsuario == null) //Si el criterio de busqueda es nulo devuelve todos los usuarios
                {
                    listaUsuario = (from usuario in bd.tblUsuario
                                    select new UsuarioCLS
                    {
                        idUsuario = usuario.idUsuario,
                        nombreUsuario = usuario.nombresUsuario + " " + usuario.apellidosUsuario,
                        rolUsuario = usuario.rolUsuario,
                        aliasUsuario = usuario.aliasUsuario,
                        correoUsuario = usuario.correoUsuario
                    }).ToList();
                }
                else //coincidencias con el criterio de busqueda
                {
                    listaUsuario = (from usuario in bd.tblUsuario
                                    where (usuario.nombresUsuario.Contains(nombreUsuario) ||
                                           usuario.apellidosUsuario.Contains(nombreUsuario))
                                    select new UsuarioCLS
                    {
                        idUsuario = usuario.idUsuario,
                        nombreUsuario = usuario.nombresUsuario + " " + usuario.apellidosUsuario,
                        rolUsuario = usuario.rolUsuario,
                        aliasUsuario = usuario.aliasUsuario,
                        correoUsuario = usuario.correoUsuario
                    }).ToList();
                }
                return(PartialView("_TablaUsuarios", listaUsuario));//Vista parcial con resultados de busqueda
            }
        }
        /// <summary>
        /// Elimina un registro de visita
        /// </summary>
        /// <param name="idEvolucion">id de la Evolución a eliminar</param>
        /// <returns>cantidad de registros afectados</returns>
        public int EliminarVisita(int?idEvolucion)
        {
            int rpta = 0;

            try
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    if (idEvolucion != null)
                    {
                        tblEvolucion    tblEvolucion = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion).First();
                        List <tblFotos> listaFotos   = bd.tblFotos.Where(p => p.idEvolucion == tblEvolucion.idEvolucion).ToList();
                        foreach (var item in listaFotos)
                        {
                            bd.tblFotos.Remove(item);
                        }
                        bd.tblEvolucion.Remove(tblEvolucion);

                        rpta = bd.SaveChanges();
                    }
                    else
                    {
                        rpta = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                rpta = 0;
            }
            return(rpta);
        }
Example #8
0
        /// <summary>
        /// verificación de identidad
        /// </summary>
        /// <param name="usuarioCLS">credenciales de atenticación</param>
        /// <returns>mensaje de error o exito</returns>
        public string Login(UsuarioCLS usuarioCLS)
        {
            string mensaje = "";

            //se remueven los ´parámetros de usuario no empleados en la autenticación
            ModelState.Remove("apellidoUsuario");
            ModelState.Remove("cedulaUsuario");
            ModelState.Remove("nombreUsuario");
            ModelState.Remove("rolUsuario");
            ModelState.Remove("correoUsuario");

            //verificación de los datos llenos
            if (!ModelState.IsValid)
            {
                var query = (from state in ModelState.Values //valores
                             from error in state.Errors      //mensajes
                             select error.ErrorMessage).ToList();
                mensaje += "<ul class='list-group'>";
                foreach (var item in query)
                {
                    mensaje += "<li class='list-group-item'>" + item + "</li>";
                }
                mensaje += "</ul>";
            }
            else
            {
                string aliasUsuario      = usuarioCLS.aliasUsuario;
                string contraseñaUsuario = usuarioCLS.contraseñaUsuario;
                //Cifrar y comparar con lo de la bdd
                SHA256Managed sha                 = new SHA256Managed();
                byte[]        byteContra          = Encoding.Default.GetBytes(contraseñaUsuario);
                byte[]        byteContraCifrado   = sha.ComputeHash(byteContra);
                string        cadenaContraCifrada = BitConverter.ToString(byteContraCifrado).Replace("-", "");

                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    int numeroVeces = bd.tblUsuario.Where(p => p.aliasUsuario == aliasUsuario && p.contraseñaUsuario == cadenaContraCifrada).Count();

                    if (numeroVeces == 1)//existe un usuario con esos datos
                    {
                        tblUsuario tblUsuario = bd.tblUsuario.Where(p => p.aliasUsuario == aliasUsuario && p.contraseñaUsuario == cadenaContraCifrada).First();
                        mensaje = tblUsuario.rolUsuario;
                        //Todo el objeto Usuario para el session
                        Session["Usuario"] = tblUsuario;
                        //Variable session para permitir ciertas vistas de acuerdo al rol de usuario
                        Session["Rol"]           = tblUsuario.rolUsuario;
                        Session["NombreUsuario"] = tblUsuario.nombresUsuario + " " + tblUsuario.apellidosUsuario;
                        Session["cedula"]        = tblUsuario.cedulaUsuario;
                        Session["codigoMSP"]     = tblUsuario.codigoMSP;
                    }
                }
            }
            return(mensaje);
        }
        /// <summary>
        /// Acción para desactivar una evolución
        /// </summary>
        /// <param name="idEvolucion">id de la evolución a desactivarse</param>
        /// <returns>Retorna al index de evoluciones del paciente</returns>
        public ActionResult Desactivar(int idEvolucion)
        {
            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                tblEvolucion tblEvolucion = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion).First();

                tblEvolucion.habilitado = 0;

                bd.SaveChanges();
                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idHistoriaClinica == tblEvolucion.idHistoriaClinica).First();

                return(RedirectToAction("Index", new { idPaciente = tblHistoriaClinica.idPaciente }));
            }
        }
        public void llenarSeguros()
        {
            List <SelectListItem> listaSeguros;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaSeguros = (from seguros in bd.tblSeguroMedico
                                select new SelectListItem
                {
                    Text = seguros.nombreSeguro,
                    Value = seguros.idSeguroMedico.ToString()
                }).ToList();
                listaSeguros.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaSeguros = listaSeguros;
            }
        }
        private void llenarReligion()
        {
            List <SelectListItem> listaReligion;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaReligion = (from religion in bd.tblReligion
                                 select new SelectListItem
                {
                    Text = religion.nombreReligion,
                    Value = religion.idReligion.ToString()
                }).ToList();
                listaReligion.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaReligion = listaReligion;
            }
        }
        private void llenarLateralidad()
        {
            List <SelectListItem> listaLateralidad;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaLateralidad = (from lateralidad in bd.tblLateralidad
                                    select new SelectListItem
                {
                    Text = lateralidad.nombreLateralidad,
                    Value = lateralidad.idLateralidad.ToString()
                }).ToList();
                listaLateralidad.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaLateralidad = listaLateralidad;
            }
        }
        private void llenarTipoDiscpacidad()
        {
            List <SelectListItem> listaTipoDiscapacidad;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaTipoDiscapacidad = (from tipoDiscapacidad in bd.tblTipoDiscapacidad
                                         select new SelectListItem
                {
                    Text = tipoDiscapacidad.tipo,
                    Value = tipoDiscapacidad.idTipoDiscapacidad.ToString()
                }).ToList();
                listaTipoDiscapacidad.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaTipoDiscapacidad = listaTipoDiscapacidad;
            }
        }
        private void llenarOrientacionSexual()
        {
            List <SelectListItem> listaOrientacionSexual;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaOrientacionSexual = (from orientacionSexual in bd.tblOrientacionSexual
                                          select new SelectListItem
                {
                    Text = orientacionSexual.nombreOrientacionSexual,
                    Value = orientacionSexual.idOrientacionSexual.ToString()
                }).ToList();
                listaOrientacionSexual.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaOrientacionSexual = listaOrientacionSexual;
            }
        }
        private void llenarIdentidadGenero()
        {
            List <SelectListItem> listaIdentidadGenero;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaIdentidadGenero = (from identidadGenero in bd.tblIdentidadGenero
                                        select new SelectListItem
                {
                    Text = identidadGenero.nombreIdentidadGenero,
                    Value = identidadGenero.idIdentidadGenero.ToString()
                }).ToList();
                listaIdentidadGenero.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaIdentidadGenero = listaIdentidadGenero;
            }
        }
Example #16
0
        /// <summary>
        /// GET: Usuario
        /// </summary>
        /// <returns>Vista Index con la lista de usuarios registrados</returns>
        public ActionResult Index()
        {
            List <UsuarioCLS> listaUsuario = new List <UsuarioCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaUsuario = (from usuario in bd.tblUsuario
                                select new UsuarioCLS
                {
                    idUsuario = usuario.idUsuario,
                    nombreUsuario = usuario.nombresUsuario + " " + usuario.apellidosUsuario,
                    rolUsuario = usuario.rolUsuario,
                    aliasUsuario = usuario.aliasUsuario,
                    correoUsuario = usuario.correoUsuario
                }).ToList();
            }
            return(View(listaUsuario));
        }
        public void llenarSangre()
        {
            List <SelectListItem> listaSangre;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaSangre = (from sangre in bd.tblTipoSangre
                               select new SelectListItem
                {
                    Text = sangre.sangre,
                    Value = sangre.idTipoSangre.ToString()
                }).ToList();
                listaSangre.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaSangre = listaSangre;
            }
        }
        /// <summary>
        /// Cambia el estado habilitado a 0 de un paciente y su información relacionada
        /// </summary>
        /// <param name="idPaciente">id del paciente a ser desactivado</param>
        /// <returns>Vista Index</returns>
        public ActionResult Desactivar(int idPaciente)
        {
            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                tblPaciente        tblPaciente        = bd.tblPaciente.Where(p => p.idPaciente.Equals(idPaciente)).First();
                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();
                tblPaciente.habilitado        = 0;
                tblHistoriaClinica.habilitado = 0;
                List <tblEvolucion> listaEvoluciones = bd.tblEvolucion.Where(p => p.idHistoriaClinica == tblHistoriaClinica.idHistoriaClinica).ToList();
                foreach (var item in listaEvoluciones)
                {
                    item.habilitado = 0;
                }

                bd.SaveChanges();
                return(RedirectToAction("Index"));
            }
        }
        /// <summary>
        /// GET: Paciente
        /// </summary>
        /// <returns>Vista Index con la lista de pacientes registrados</returns>
        public ActionResult Index()
        {
            List <PacienteCLS> listaPacientes = new List <PacienteCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaPacientes = (from paciente in bd.tblPaciente
                                  where paciente.habilitado == 1
                                  select new PacienteCLS
                {
                    idPaciente = paciente.idPaciente,
                    cedula = paciente.cedula,
                    nombres = paciente.nombres + " " + paciente.apellidos,
                }
                                  ).ToList();
            }
            return(View(listaPacientes));
        }
        private void llenarEstadoCivil()
        {
            List <SelectListItem> listaEstadoCivil;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaEstadoCivil = (from estadoCivil in bd.tblEstadoCivil
                                    select new SelectListItem
                {
                    Text = estadoCivil.nombreEstadoCivil,
                    Value = estadoCivil.idEstadoCivil.ToString()
                }).ToList();
                listaEstadoCivil.Insert(0, new SelectListItem {
                    Text = "--Seleccione--", Value = ""
                });
                ViewBag.listaEstadoCivil = listaEstadoCivil;
            }
        }
        /// <summary>
        /// // GET: AdministracionPacientes
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            List <PacienteCLS>  listaPacientesDesactivados   = new List <PacienteCLS>();
            List <EvolucionCLS> listaEvolucionesDesactivadas = new List <EvolucionCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                listaPacientesDesactivados = (from historiaClinica in bd.tblHistoriaClinica
                                              join paciente in bd.tblPaciente
                                              on historiaClinica.idPaciente equals paciente.idPaciente
                                              where historiaClinica.habilitado == 0 &&
                                              paciente.habilitado == 0
                                              select new PacienteCLS
                {
                    idPaciente = paciente.idPaciente,
                    cedula = paciente.cedula,
                    nombres = paciente.nombres + " " + paciente.apellidos,
                    idHistoriaClinica = historiaClinica.idHistoriaClinica
                }).ToList();

                listaEvolucionesDesactivadas = (from evolucion in bd.tblEvolucion
                                                join historiaClinica in bd.tblHistoriaClinica
                                                on evolucion.idHistoriaClinica equals historiaClinica.idHistoriaClinica
                                                join paciente in bd.tblPaciente
                                                on historiaClinica.idPaciente equals paciente.idPaciente
                                                where evolucion.habilitado == 0
                                                select new EvolucionCLS
                {
                    idPaciente = paciente.idPaciente,
                    cedula = paciente.cedula,
                    nombresPaciente = paciente.nombres + " " + paciente.apellidos,
                    idHistoriaClinica = historiaClinica.idHistoriaClinica,
                    idEvolucion = evolucion.idEvolucion,
                    motivoConsulta = evolucion.motivoConsulta,
                    fechaVisita = (DateTime)evolucion.fechaVisita
                }).ToList();
            }

            ViewBag.listaPacientesDesactivados   = listaPacientesDesactivados;
            ViewBag.listaEvolucionesDesactivadas = listaEvolucionesDesactivadas;

            return(View());
        }
        /// <summary>
        /// Accion para retornar la vista con información del paciente necesaria para crear una evolucion
        /// </summary>
        /// <param name="idHistoriaClinica">id de la historia clínica</param>
        /// <returns>Vista agregar con los datos del paciente e historia no visibles</returns>
        public ActionResult Agregar(int idHistoriaClinica)
        {
            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == idHistoriaClinica).First();
                ViewBag.idHistoriaClinica             = tblHistoriaClinica.idHistoriaClinica;
                ViewBag.idAntecedenteGinecoObstetrico = tblHistoriaClinica.idAntecedenteGinecoObstetrico;

                tblPaciente tblPaciente = bd.tblPaciente.Where(p => p.idPaciente == tblHistoriaClinica.idPaciente).First();
                ViewBag.nombrePaciente = tblPaciente.nombres + " " + tblPaciente.apellidos;
                ViewBag.idPaciente     = tblPaciente.idPaciente;

                ViewBag.fechaActual = System.DateTime.Now.ToString("yyyy-MM-dd");



                tblEvolucion tblEvolucion = bd.tblEvolucion.ToList().Last();
            }
            return(View());
        }
        /// <summary>
        /// Eliminación total de un paciente
        /// </summary>
        /// <param name="idPaciente">id del paciente a eleiminar</param>
        /// <returns>cantidad de registros afectado</returns>
        public int EliminarPaciente(int?idPaciente)
        {
            int rpta = 0;

            try
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    if (idPaciente != null)
                    {
                        tblPaciente         tblPaciente        = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                        tblHistoriaClinica  tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();
                        List <tblEvolucion> listaEvoluciones   = bd.tblEvolucion.Where(p => p.idHistoriaClinica == tblHistoriaClinica.idHistoriaClinica).ToList();
                        List <tblFotos>     listaFotos         = new List <tblFotos>();
                        foreach (var item in listaEvoluciones)
                        {
                            List <tblFotos> tblFotos = bd.tblFotos.Where(p => p.idEvolucion == item.idEvolucion).ToList();
                            foreach (var item2 in tblFotos)
                            {
                                bd.tblFotos.Remove(item2);
                            }
                            bd.tblEvolucion.Remove(item);
                        }
                        bd.tblHistoriaClinica.Remove(tblHistoriaClinica);
                        bd.tblPaciente.Remove(tblPaciente);

                        rpta = bd.SaveChanges();
                    }
                    else
                    {
                        rpta = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                rpta = 0;
            }
            return(rpta);
        }
        /// <summary>
        /// Filtro en base a los criterios de búsqueda
        /// </summary>
        /// <param name="busqueda">Criterio de bpusqueda escrito, cédula o nombre</param>
        /// <returns>Lista con coincidencias de busqueda en la vista parcial</returns>
        public ActionResult Filtro(string busqueda)
        {
            List <PacienteCLS> listaPacientes = new List <PacienteCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                if (busqueda == null) //Si la busqueda es nula devuelve todos los registros
                {
                    listaPacientes = (from paciente in bd.tblPaciente
                                      where paciente.habilitado == 1
                                      select new PacienteCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombres = paciente.nombres + " " + paciente.apellidos,
                    }
                                      ).ToList();
                }
                else //coincidencias de búsqueda
                {
                    listaPacientes = (from paciente in bd.tblPaciente
                                      where paciente.habilitado == 1 &&
                                      (paciente.nombres.Contains(busqueda) ||
                                       paciente.apellidos.Contains(busqueda)) ||
                                      paciente.cedula.Contains(busqueda)
                                      select new PacienteCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombres = paciente.nombres + " " + paciente.apellidos,
                    }
                                      ).ToList();
                }
                return(PartialView("_TablaPacientes", listaPacientes));
            }
        }
Example #25
0
        /// <summary>
        /// Recuperación de contraseña con correo y cédula
        /// </summary>
        /// <param name="correo">correo al que se va a enviar la nueva contraseña</param>
        /// <param name="cedula">cedula del usuario</param>
        /// <returns>cantidad de registros afectados</returns>
        public string RecuperarContra(string correo, string cedula)
        {
            string mensaje = "";

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                int cantidad = 0;
                cantidad = bd.tblUsuario.Where(p => p.correoUsuario == correo && p.cedulaUsuario == cedula).Count();
                if (cantidad == 0)
                {
                    mensaje = "No existe un a persona registrada con esa informacion";
                }
                else
                {
                    tblUsuario tblUsuario = bd.tblUsuario.Where(p => p.correoUsuario == correo && p.cedulaUsuario == cedula).First();

                    //Modificar su clave con un numero aleatorio de 4 cifras
                    Random ra = new Random();
                    int    n1 = ra.Next(1000, 9999);

                    string nuevaContra = n1.ToString();
                    //cifrar clave
                    SHA256Managed sha                 = new SHA256Managed();
                    byte[]        byteContra          = Encoding.Default.GetBytes(nuevaContra);
                    byte[]        byteContraCifrado   = sha.ComputeHash(byteContra);
                    string        cadenaContraCifrada = BitConverter.ToString(byteContraCifrado).Replace("-", "");

                    tblUsuario.contraseñaUsuario = cadenaContraCifrada; //guardado de la nueva contraseña
                    mensaje = bd.SaveChanges().ToString();

                    //Envio del correo
                    Correo.enviarCorreo(correo, "RECUPERACION DE CLAVE - CONSULTORIO DERMATOLÓGICO", "Su clave ha sido reestablecida, su nueva clave es: " + nuevaContra, Server.MapPath("~/Resources/PersonasCorreo.txt"));
                }
            }
            return(mensaje);
        }
        /// <summary>
        /// Filtro en base a nombre apellido o cedula
        /// </summary>
        /// <param name="busqueda">string de búsqueda</param>
        /// <returns>Vista con coincidencias en base al criterio de busqueda</returns>
        public ActionResult Filtro(String busqueda)
        {
            List <PacienteCLS>  listaPacientesDesactivados   = new List <PacienteCLS>();
            List <EvolucionCLS> listaEvolucionesDesactivadas = new List <EvolucionCLS>();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                if (busqueda == null)
                {
                    listaPacientesDesactivados = (from historiaClinica in bd.tblHistoriaClinica
                                                  join paciente in bd.tblPaciente
                                                  on historiaClinica.idPaciente equals paciente.idPaciente
                                                  where historiaClinica.habilitado == 0 &&
                                                  paciente.habilitado == 0
                                                  select new PacienteCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombres = paciente.nombres + " " + paciente.apellidos,
                        idHistoriaClinica = historiaClinica.idHistoriaClinica
                    }).ToList();

                    listaEvolucionesDesactivadas = (from evolucion in bd.tblEvolucion
                                                    join historiaClinica in bd.tblHistoriaClinica
                                                    on evolucion.idHistoriaClinica equals historiaClinica.idHistoriaClinica
                                                    join paciente in bd.tblPaciente
                                                    on historiaClinica.idPaciente equals paciente.idPaciente
                                                    where evolucion.habilitado == 0
                                                    select new EvolucionCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombresPaciente = paciente.nombres + " " + paciente.apellidos,
                        idHistoriaClinica = historiaClinica.idHistoriaClinica,
                        idEvolucion = evolucion.idEvolucion,
                        motivoConsulta = evolucion.motivoConsulta,
                        fechaVisita = (DateTime)evolucion.fechaVisita
                    }).ToList();
                }
                else
                {
                    listaPacientesDesactivados = (from historiaClinica in bd.tblHistoriaClinica
                                                  join paciente in bd.tblPaciente
                                                  on historiaClinica.idPaciente equals paciente.idPaciente
                                                  where historiaClinica.habilitado == 0 &&
                                                  paciente.habilitado == 0 &&
                                                  ((paciente.cedula.Contains(busqueda) ||
                                                    (paciente.nombres.Contains(busqueda) ||
                                                     paciente.apellidos.Contains(busqueda))))
                                                  select new PacienteCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombres = paciente.nombres + " " + paciente.apellidos,
                        idHistoriaClinica = historiaClinica.idHistoriaClinica
                    }).ToList();

                    listaEvolucionesDesactivadas = (from evolucion in bd.tblEvolucion
                                                    join historiaClinica in bd.tblHistoriaClinica
                                                    on evolucion.idHistoriaClinica equals historiaClinica.idHistoriaClinica
                                                    join paciente in bd.tblPaciente
                                                    on historiaClinica.idPaciente equals paciente.idPaciente
                                                    where evolucion.habilitado == 0 &&
                                                    ((paciente.cedula.Contains(busqueda) ||
                                                      (paciente.nombres.Contains(busqueda) ||
                                                       paciente.apellidos.Contains(busqueda))))
                                                    select new EvolucionCLS
                    {
                        idPaciente = paciente.idPaciente,
                        cedula = paciente.cedula,
                        nombresPaciente = paciente.nombres + " " + paciente.apellidos,
                        idHistoriaClinica = historiaClinica.idHistoriaClinica,
                        idEvolucion = evolucion.idEvolucion,
                        motivoConsulta = evolucion.motivoConsulta,
                        fechaVisita = (DateTime)evolucion.fechaVisita
                    }).ToList();
                }
            }

            ViewBag.listaPacientesDesactivados   = listaPacientesDesactivados;
            ViewBag.listaEvolucionesDesactivadas = listaEvolucionesDesactivadas;

            return(PartialView("_TablaDesactivados"));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="idEvolucion">id de Evolución actual</param>
        /// <param name="idPaciente">id del paciente en la visita</param>
        /// <param name="fechaDesde">Fecha inicial de reposo</param>
        /// <param name="fechaHasta">Fecha final de reposo</param>
        /// <returns>Archivo PDF con el certificado de reposo</returns>
        public FileResult reposoPDF(int idEvolucion, int idPaciente, DateTime fechaDesde, DateTime fechaHasta)
        {
            Document doc = new Document();

            byte[] buffer;

            using (MemoryStream ms = new MemoryStream())
            {
                PdfWriter.GetInstance(doc, ms);//guardar el doc en memoria
                doc.Open();
                Image png = Image.GetInstance(new Uri(Server.MapPath("~/Resources/Galenus.png")));
                png.ScalePercent(24f);
                doc.Add(png);
                //IMAGEN
                Paragraph info1    = new Paragraph(nombreMedico + ",M.D.");
                Paragraph info2    = new Paragraph("Médico Dermatólogo");
                Paragraph info3    = new Paragraph("PARIS N43 - 212 Y RÍO COCA");
                Paragraph info4    = new Paragraph("TELÉFONO 2263720");
                Paragraph fechaHoy = new Paragraph("Fecha de emisión: " + DateTime.Now.ToString("yyyy-MM-dd"));
                info1.Alignment    = Element.ALIGN_CENTER;
                info2.Alignment    = Element.ALIGN_CENTER;
                info3.Alignment    = Element.ALIGN_CENTER;
                info4.Alignment    = Element.ALIGN_CENTER;
                fechaHoy.Alignment = Element.ALIGN_RIGHT;
                doc.Add(info1);
                doc.Add(info2);
                doc.Add(info3);
                doc.Add(info4);
                doc.Add(fechaHoy);

                Paragraph espacio = new Paragraph(" ");
                doc.Add(espacio);
                Paragraph titulo = new Paragraph("CERTIFICADO DE REPOSO");
                titulo.Alignment = Element.ALIGN_CENTER;
                doc.Add(titulo);
                doc.Add(espacio);

                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    tblPaciente  tblPaciente     = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                    tblEvolucion tblEvolucion    = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion && p.habilitado == 1).First();
                    Paragraph    nombresPaciente = new Paragraph("Nombres y apellidos del paciente:    " + tblPaciente.nombres + " " + tblPaciente.apellidos);
                    doc.Add(nombresPaciente);
                    Paragraph cedulaPaciente = new Paragraph("Cédula de identidad:  " + tblPaciente.cedula);
                    doc.Add(cedulaPaciente);
                    Paragraph edad = new Paragraph("Edad:   " + (DateTime.Today.Year - tblPaciente.fechaNacimiento.Value.Year).ToString() + " años");
                    doc.Add(edad);
                    doc.Add(espacio);
                    Paragraph fechaconsulta = new Paragraph("Fecha de atención: " + tblEvolucion.fechaVisita.ToString());
                    doc.Add(fechaconsulta);
                    Paragraph diagnostico = new Paragraph("Diagnóstico:     " + tblEvolucion.diagnostico);
                    doc.Add(diagnostico);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);

                    Paragraph r1 = new Paragraph("Reposo por: " + (fechaHasta - fechaDesde).TotalDays.ToString() + " día/días");
                    doc.Add(r1);
                    doc.Add(espacio);

                    Paragraph r2 = new Paragraph("Desde: " + fechaDesde.ToString("dd-MM-yyyy"));
                    doc.Add(r2);
                    r2 = new Paragraph("       " + Convert.ToDecimal(fechaDesde.Day.ToString()).NumeroALetras()
                                       + " DE " + fechaDesde.ToString("MMMM").ToUpper()
                                       + " DE " + Convert.ToDecimal(fechaDesde.Year.ToString()).NumeroALetras());
                    doc.Add(r2);

                    Paragraph r3 = new Paragraph("Hasta: " + fechaHasta.ToString("dd-MM-yyyy"));
                    doc.Add(r3);
                    r3 = new Paragraph("       " + Convert.ToDecimal(fechaHasta.Day.ToString()).NumeroALetras()
                                       + " DE " + fechaHasta.ToString("MMMM").ToUpper()
                                       + " DE " + Convert.ToDecimal(fechaHasta.Year.ToString()).NumeroALetras());
                    doc.Add(r3);

                    Convert.ToDecimal(fechaDesde.Day.ToString()).NumeroALetras();


                    doc.Add(espacio);
                    Paragraph att = new Paragraph("atentamente;");
                    doc.Add(att);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);

                    Paragraph lineaFirma = new Paragraph("__________________________");
                    doc.Add(lineaFirma);
                    info1.Alignment = Element.ALIGN_LEFT;
                    info2.Alignment = Element.ALIGN_LEFT;
                    doc.Add(info1);
                    doc.Add(info2);
                    doc.Add(espacio);
                    Paragraph codigomsp = new Paragraph("MSP " + codigoMSP);
                    doc.Add(codigomsp);
                    Paragraph cedulaMD = new Paragraph("CI: " + cedulaMedico);
                    doc.Add(cedulaMD);
                }
                doc.Close();
                buffer = ms.ToArray();
            }
            return(File(buffer, "application/pdf"));
        }
        /// <summary>
        /// Creación del documento con toda la información de la historia clínica del paciente
        /// </summary>
        /// <param name="idEvolucion">id de Evolución actual</param>
        /// <returns>Archivo PDF con la información del paciente</returns>
        public FileResult InfoPacientePDF(int idPaciente)
        {
            Document doc = new Document();

            byte[] buffer;
            using (MemoryStream ms = new MemoryStream())
            {
                PdfWriter.GetInstance(doc, ms);//guardar el doc en memoria
                doc.Open();
                Image png = Image.GetInstance(new Uri(Server.MapPath("~/Resources/Galenus.png")));
                png.ScalePercent(24f);
                doc.Add(png);
                //IMAGEN
                Paragraph info1    = new Paragraph(nombreMedico + ",M.D.");
                Paragraph info2    = new Paragraph("Médico Dermatólogo");
                Paragraph info3    = new Paragraph("PARIS N43 - 212 Y RÍO COCA");
                Paragraph info4    = new Paragraph("TELÉFONO 2263720");
                Paragraph fechaHoy = new Paragraph("Fecha de emisión: " + DateTime.Now.ToString("yyy-MM-dd"));
                info1.Alignment    = Element.ALIGN_CENTER;
                info2.Alignment    = Element.ALIGN_CENTER;
                info3.Alignment    = Element.ALIGN_CENTER;
                info4.Alignment    = Element.ALIGN_CENTER;
                fechaHoy.Alignment = Element.ALIGN_RIGHT;
                doc.Add(info1);
                doc.Add(info2);
                doc.Add(info3);
                doc.Add(info4);
                doc.Add(fechaHoy);

                Paragraph espacio = new Paragraph(" ");
                doc.Add(espacio);
                doc.Add(espacio);

                using (var bd = new  BDD_ConsultorioDermatologicoEntities())
                {
                    tblPaciente tblPaciente = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                    Paragraph   p0          = new Paragraph("- - - DATOS PERSONALES DEL PACIENTE - - -");
                    p0.Alignment = Element.ALIGN_CENTER;
                    doc.Add(p0);
                    doc.Add(espacio);
                    Paragraph p1 = new Paragraph("Nombre del paciente: " + tblPaciente.nombres + " " + tblPaciente.apellidos);
                    doc.Add(p1);
                    Paragraph p2 = new Paragraph("Cédula: " + tblPaciente.cedula);
                    doc.Add(p2);
                    Paragraph p3 = new Paragraph("Fecha de nacimiento: " + tblPaciente.fechaNacimiento.Value.ToString("yyyy-MM-dd"));
                    doc.Add(p3);
                    Paragraph p4 = new Paragraph("Identidad de Género: " + tblPaciente.tblIdentidadGenero.nombreIdentidadGenero);
                    doc.Add(p4);
                    if (tblPaciente.tblOrientacionSexual != null)
                    {
                        Paragraph p5 = new Paragraph("Orientación Sexual: " + tblPaciente.tblOrientacionSexual.nombreOrientacionSexual);
                        doc.Add(p5);
                    }
                    if (tblPaciente.ciudadNacimiento != null)
                    {
                        Paragraph p6 = new Paragraph("Ciudad de nacimiento: " + tblPaciente.ciudadNacimiento);
                        doc.Add(p6);
                    }
                    if (tblPaciente.ciudadResidencia != null)
                    {
                        Paragraph p7 = new Paragraph("Ciudad de residencia: " + tblPaciente.ciudadResidencia);
                        doc.Add(p7);
                    }
                    if (tblPaciente.ocupacion != null)
                    {
                        Paragraph p8 = new Paragraph("Ocupación: " + tblPaciente.ocupacion);
                        doc.Add(p8);
                    }
                    if (tblPaciente.profesion != null)
                    {
                        Paragraph p9 = new Paragraph("Profesión: " + tblPaciente.profesion);
                        doc.Add(p9);
                    }
                    if (tblPaciente.idTipoDiscapacidad != null && tblPaciente.porcentajeDiscapacidad != 0)
                    {
                        Paragraph p10 = new Paragraph("Tipo discapacidad: " + tblPaciente.tblTipoDiscapacidad.tipo);
                        doc.Add(p10);
                        Paragraph p11 = new Paragraph("Porcentaje de discapacidad: " + tblPaciente.porcentajeDiscapacidad.ToString());
                        doc.Add(p11);
                    }
                    if (tblPaciente.tblEstadoCivil != null)
                    {
                        Paragraph p12 = new Paragraph("Estado civil: " + tblPaciente.tblEstadoCivil.nombreEstadoCivil);
                        doc.Add(p12);
                    }
                    if (tblPaciente.tblLateralidad != null)
                    {
                        Paragraph p13 = new Paragraph("Lateralidad: " + tblPaciente.tblLateralidad.nombreLateralidad);
                        doc.Add(p13);
                    }
                    if (tblPaciente.tblNivelEducacion != null)
                    {
                        Paragraph p14 = new Paragraph("Nivel de educación: " + tblPaciente.tblNivelEducacion.nombreNivelEducacion);
                        doc.Add(p14);
                    }
                    Paragraph p15 = new Paragraph("Dirección: " + tblPaciente.direccion);
                    doc.Add(p15);
                    Paragraph p16 = new Paragraph("Teléfono personal: " + tblPaciente.telefonoPersonal);
                    doc.Add(p16);
                    if (tblPaciente.telefonoResidencial != null)
                    {
                        Paragraph p17 = new Paragraph("Teléfono residencial: " + tblPaciente.telefonoResidencial);
                        doc.Add(p17);
                    }
                    Paragraph p18 = new Paragraph("Correo electrónico: " + tblPaciente.correoElectronico);
                    doc.Add(p18);
                    Paragraph p19 = new Paragraph("Religión: " + tblPaciente.tblReligion.nombreReligion);
                    doc.Add(p19);
                    Paragraph p20 = new Paragraph("Nombre contacto de emergencia: " + tblPaciente.tblContactoEmergencia.nombreContactoEmergencia);
                    doc.Add(p20);
                    Paragraph p21 = new Paragraph("Teléfono contacto de emergencia: " + tblPaciente.tblContactoEmergencia.telefonoContactoEmergencia);
                    doc.Add(p21);
                    tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == idPaciente).First();
                    doc.Add(espacio);
                    doc.Add(espacio);
                    Paragraph p23 = new Paragraph("- - - HISTORIA CLÍNICA DEL PACIENTE - - -");
                    p23.Alignment = Element.ALIGN_CENTER;
                    doc.Add(p23);
                    doc.Add(espacio);
                    Paragraph p24 = new Paragraph("Id historia clínica: " + tblHistoriaClinica.idHistoriaClinica);
                    doc.Add(p24);
                    Paragraph p25 = new Paragraph("Seguro médico: " + tblHistoriaClinica.tblSeguroMedico.nombreSeguro);
                    doc.Add(p25);
                    Paragraph p26 = new Paragraph("Tipo de sangre: " + tblHistoriaClinica.tblTipoSangre.sangre);
                    doc.Add(p26);
                    Paragraph p27 = new Paragraph("Antecedente familiar clínico: " + tblHistoriaClinica.antecedenteFamiliarClinico);
                    doc.Add(p27);
                    Paragraph p28 = new Paragraph("Antecedente familiar quirúrgico: " + tblHistoriaClinica.antecedenteFamiliarQuirurgico);
                    doc.Add(p28);
                    Paragraph p29 = new Paragraph("Antecedente personal clínico: " + tblHistoriaClinica.antecedentePersonalClinico);
                    doc.Add(p29);
                    Paragraph p30 = new Paragraph("Antecedente personal quirúrgico: " + tblHistoriaClinica.antecedentePersonalQuirurgico);
                    doc.Add(p30);
                    Paragraph p31 = new Paragraph("Antecedente personal alérgico: " + tblHistoriaClinica.antecedentePersonalAlergico);
                    doc.Add(p31);
                    Paragraph p32 = new Paragraph("Antecedente personal vacunas: " + tblHistoriaClinica.antecedentePersonalVacunas);
                    doc.Add(p32);
                    if (tblHistoriaClinica.idAntecedenteGinecoObstetrico != null)
                    {
                        Paragraph p33 = new Paragraph("Menarquia: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.menarquia);
                        doc.Add(p33);
                        Paragraph p36 = new Paragraph("Gestas: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.gestas);
                        doc.Add(p36);
                        Paragraph p37 = new Paragraph("Partos: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.partos);
                        doc.Add(p37);
                        Paragraph p38 = new Paragraph("Cesárea: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.cesarea);
                        doc.Add(p38);
                        Paragraph p39 = new Paragraph("Abortos: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.abortos);
                        doc.Add(p39);
                        Paragraph p40 = new Paragraph("Hijos vivos: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.hijosVivos);
                        doc.Add(p40);
                        Paragraph p41 = new Paragraph("Hijos muertos: " + tblHistoriaClinica.tblAntecedenteGinecoObstetrico.hijosMuertos);
                        doc.Add(p41);
                    }
                    if (tblHistoriaClinica.idAntecedenteReprodMasculino != null)
                    {
                        Paragraph p44 = new Paragraph("Enfermedades de transmisión sexual: " + tblHistoriaClinica.tblAntecedenteReprodMasculino.ets);
                        doc.Add(p44);
                        Paragraph p45 = new Paragraph("Pareja sexual: " + tblHistoriaClinica.tblAntecedenteReprodMasculino.parejaSexual);
                        doc.Add(p45);
                    }

                    Paragraph p46 = new Paragraph("Uso de tabaco: " + tblHistoriaClinica.tabaco);
                    doc.Add(p46);
                    Paragraph p47 = new Paragraph("Uso de alcohol: " + tblHistoriaClinica.alcohol);
                    doc.Add(p47);
                    Paragraph p48 = new Paragraph("Uso de otras drogas: " + tblHistoriaClinica.otrasDrogas);
                    doc.Add(p48);
                    Paragraph p49 = new Paragraph("Actividad física: " + tblHistoriaClinica.actividadFisica);
                    doc.Add(p49);
                    Paragraph p50 = new Paragraph("Medicación habitual: " + tblHistoriaClinica.medicacionHabitual);
                    doc.Add(p50);

                    doc.Add(espacio);
                    doc.Add(espacio);
                    Paragraph p51 = new Paragraph("- - - HISTORIAL DE VISITAS / EVOLUCIÓN - - -");
                    p51.Alignment = Element.ALIGN_CENTER;
                    doc.Add(p51);
                    doc.Add(espacio);
                    PdfPTable table  = new PdfPTable(3);//tabla de 3 col
                    float[]   values = new float[3] {
                        70, 150, 150
                    };                       //anchos de col
                    table.SetWidths(values); //anchos asignados a la tabla
                                             //creando las Celdas
                                             //creando celdas y poniendo color ademas dealinear el contenido al centro
                    PdfPCell celda1 = new PdfPCell(new Phrase("Fecha"));
                    celda1.BackgroundColor     = new BaseColor(130, 130, 130);
                    celda1.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    table.AddCell(celda1);

                    PdfPCell celda2 = new PdfPCell(new Phrase("Motivo de consulta"));
                    celda2.BackgroundColor     = new BaseColor(130, 130, 130);
                    celda2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    table.AddCell(celda2);

                    PdfPCell celda3 = new PdfPCell(new Phrase("Diagnóstico"));
                    celda3.BackgroundColor     = new BaseColor(130, 130, 130);
                    celda3.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    table.AddCell(celda3);

                    List <tblEvolucion> listaEvoluciones = bd.tblEvolucion.Where(p => p.idHistoriaClinica == tblHistoriaClinica.idHistoriaClinica && p.habilitado == 1).ToList();
                    foreach (var item in listaEvoluciones)
                    {
                        Paragraph fechaVisita = new Paragraph(item.fechaVisita.Value.ToString());
                        table.AddCell(fechaVisita);
                        Paragraph motivoConsulta = new Paragraph(item.motivoConsulta);
                        table.AddCell(motivoConsulta);
                        Paragraph diagnostico = new Paragraph(item.diagnostico);
                        table.AddCell(diagnostico);
                    }
                    doc.Add(table);
                }
                doc.Close();
                buffer = ms.ToArray();
            }
            return(File(buffer, "application/pdf"));
        }
        /// <summary>
        /// Creación de un certificado de asistencia al consultorio
        /// </summary>
        /// <param name="idEvolucion">id de Evolución actual</param>
        /// <param name="idPaciente">id del paciente en la visita</param>
        /// <returns>Archivo PDF con el certificado de asistencia</returns>
        public FileResult asistenciaPDF(int idEvolucion, int idPaciente, string notas)
        {
            Document doc = new Document();

            byte[] buffer;

            using (MemoryStream ms = new MemoryStream())
            {
                PdfWriter.GetInstance(doc, ms);//guardar el doc en memoria
                doc.Open();
                Image png = Image.GetInstance(new Uri(Server.MapPath("~/Resources/Galenus.png")));
                png.ScalePercent(24f);
                doc.Add(png);
                //IMAGEN
                Paragraph info1    = new Paragraph(nombreMedico + ",M.D.");
                Paragraph info2    = new Paragraph("Médico Dermatólogo");
                Paragraph info3    = new Paragraph("PARIS N43 - 212 Y RÍO COCA");
                Paragraph info4    = new Paragraph("TELÉFONO 2263720");
                Paragraph fechaHoy = new Paragraph("Fecha de emisión: " + DateTime.Now.ToString("yyyy-MM-dd"));
                info1.Alignment    = Element.ALIGN_CENTER;
                info2.Alignment    = Element.ALIGN_CENTER;
                info3.Alignment    = Element.ALIGN_CENTER;
                info4.Alignment    = Element.ALIGN_CENTER;
                fechaHoy.Alignment = Element.ALIGN_RIGHT;
                doc.Add(info1);
                doc.Add(info2);
                doc.Add(info3);
                doc.Add(info4);
                doc.Add(fechaHoy);

                Paragraph espacio = new Paragraph(" ");
                doc.Add(espacio);
                Paragraph titulo = new Paragraph("CERTIFICADO DE ASISTENCIA");
                titulo.Alignment = Element.ALIGN_CENTER;
                doc.Add(titulo);
                doc.Add(espacio);

                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    tblPaciente  tblPaciente     = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                    tblEvolucion tblEvolucion    = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion && p.habilitado == 1).First();
                    Paragraph    nombresPaciente = new Paragraph("Nombres y apellidos del paciente:    " + tblPaciente.nombres + " " + tblPaciente.apellidos);
                    doc.Add(nombresPaciente);
                    Paragraph cedulaPaciente = new Paragraph("Cédula de identidad:  " + tblPaciente.cedula);
                    doc.Add(cedulaPaciente);
                    Paragraph edad = new Paragraph("Edad:   " + (DateTime.Today.Year - tblPaciente.fechaNacimiento.Value.Year).ToString() + " años");
                    doc.Add(edad);
                    doc.Add(espacio);
                    Paragraph fechaconsulta = new Paragraph("Fecha de atención: " + tblEvolucion.fechaVisita.ToString());
                    doc.Add(fechaconsulta);
                    Paragraph motivoConsulta = new Paragraph("Motivo de consulta:   " + tblEvolucion.motivoConsulta);
                    doc.Add(motivoConsulta);
                    Paragraph diagnostico = new Paragraph("Diagnóstico:     " + tblEvolucion.diagnostico);
                    doc.Add(diagnostico);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);

                    Paragraph certifico = new Paragraph("CERTIFICO QUE EL PACIENTE ACUDIÓ EN ESTA FECHA A CONSULTA MEDICA DERMATOLÓGICA ");
                    doc.Add(certifico);
                    if (notas != "")
                    {
                        doc.Add(espacio);
                        Paragraph nota = new Paragraph("Notas adicionales: " + notas);
                        doc.Add(nota);
                    }

                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);

                    Paragraph lineaFirma = new Paragraph("__________________________");
                    doc.Add(lineaFirma);
                    info1.Alignment = Element.ALIGN_LEFT;
                    info2.Alignment = Element.ALIGN_LEFT;
                    doc.Add(info1);
                    doc.Add(info2);
                    doc.Add(espacio);
                    Paragraph codigomsp = new Paragraph("MSP " + codigoMSP);
                    doc.Add(codigomsp);
                    Paragraph cedulaMD = new Paragraph("CI: " + cedulaMedico);
                    doc.Add(cedulaMD);
                }
                doc.Close();
                buffer = ms.ToArray();
            }
            return(File(buffer, "application/pdf"));
        }
        /// <summary>
        /// Creación de la prescripción recetada en la visita actual
        /// </summary>
        /// <param name="idEvolucion">id de Evolución actual</param>
        /// <param name="idPaciente">id del paciente en la visita</param>
        /// <returns>Archivo PDF con la prescripción de la visita</returns>
        public FileResult prescripcionPDF(int idEvolucion, int idPaciente)
        {
            Document doc = new Document();

            byte[] buffer;

            using (MemoryStream ms = new MemoryStream())
            {
                PdfWriter.GetInstance(doc, ms);//guardar el doc en memoria
                doc.Open();
                Image png = Image.GetInstance(new Uri(Server.MapPath("~/Resources/Galenus.png")));
                png.ScalePercent(24f);
                doc.Add(png);
                //IMAGEN
                Paragraph info1    = new Paragraph(nombreMedico + ",M.D.");
                Paragraph info2    = new Paragraph("Médico Dermatólogo");
                Paragraph info3    = new Paragraph("PARIS N43 - 212 Y RÍO COCA");
                Paragraph info4    = new Paragraph("TELÉFONO 2263720");
                Paragraph fechaHoy = new Paragraph("Fecha de emisión: " + DateTime.Now.ToString("yyyy-MM-dd"));
                info1.Alignment    = Element.ALIGN_CENTER;
                info2.Alignment    = Element.ALIGN_CENTER;
                info3.Alignment    = Element.ALIGN_CENTER;
                info4.Alignment    = Element.ALIGN_CENTER;
                fechaHoy.Alignment = Element.ALIGN_RIGHT;
                doc.Add(info1);
                doc.Add(info2);
                doc.Add(info3);
                doc.Add(info4);
                doc.Add(fechaHoy);

                Paragraph espacio = new Paragraph(" ");
                doc.Add(espacio);

                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    tblPaciente  tblPaciente     = bd.tblPaciente.Where(p => p.idPaciente == idPaciente).First();
                    tblEvolucion tblEvolucion    = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion && p.habilitado == 1).First();
                    Paragraph    nombresPaciente = new Paragraph("Nombres y apellidos del paciente:    " + tblPaciente.nombres + " " + tblPaciente.apellidos);
                    doc.Add(nombresPaciente);
                    Paragraph cedulaPaciente = new Paragraph("Cédula de identidad:  " + tblPaciente.cedula);
                    doc.Add(cedulaPaciente);
                    Paragraph edad = new Paragraph("Edad:   " + (DateTime.Today.Year - tblPaciente.fechaNacimiento.Value.Year).ToString() + " años");
                    doc.Add(edad);
                    doc.Add(espacio);
                    Paragraph fechaconsulta = new Paragraph("Fecha de atención: " + tblEvolucion.fechaVisita.ToString());
                    doc.Add(fechaconsulta);
                    Paragraph motivoConsulta = new Paragraph("Motivo de consulta:   " + tblEvolucion.motivoConsulta);
                    doc.Add(motivoConsulta);
                    Paragraph diagnostico = new Paragraph("Diagnóstico:     " + tblEvolucion.diagnostico);
                    doc.Add(diagnostico);
                    doc.Add(espacio);
                    doc.Add(espacio);
                    doc.Add(espacio);

                    PdfPTable table        = new PdfPTable(2);//tabla de 2 col
                    float[]   anchoColumna = new float[2] {
                        50, 50
                    };                             //anchos de col
                    table.SetWidths(anchoColumna); //anchos asignados a la tabla

                    PdfPCell celda1 = new PdfPCell(new Phrase("Prescripción"));
                    celda1.BackgroundColor     = new BaseColor(130, 130, 130);
                    celda1.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    table.AddCell(celda1);

                    PdfPCell celda2 = new PdfPCell(new Phrase("Recomendaciones"));
                    celda2.BackgroundColor     = new BaseColor(130, 130, 130);
                    celda2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
                    table.AddCell(celda2);


                    Paragraph prescripcion = new Paragraph(tblEvolucion.prescripcion);
                    table.AddCell(prescripcion);
                    Paragraph recomendaciones = new Paragraph(tblEvolucion.recomendaciones);
                    table.AddCell(recomendaciones);

                    doc.Add(table);
                }
                doc.Close();
                buffer = ms.ToArray();
            }
            return(File(buffer, "application/pdf"));
        }