Esempio n. 1
0
        public void GuardarPaciente(int dni, string nombre, string appPaterno, string appMaterno, int tipoCliente)
        {
            Paciente bPaciente = new Paciente();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    bPaciente.Nombre          = nombre;
                    bPaciente.ApellidoPaterno = appPaterno;
                    bPaciente.ApellidoMaterno = appMaterno;
                    bPaciente.dni             = dni;
                    bPaciente.IdTipoPaciente  = tipoCliente;

                    bdRicardo.Paciente.Add(bPaciente);
                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public void CambiarEstadoInsumo(int idrequerimiento, int idinsumo, int idestado)
 {
     try
     {
         using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
         {
             Requerimiento_Insumo req = bdRicardo.Requerimiento_Insumo.Where(f => f.IdRequerimientoInsumo == idrequerimiento && f.IdInsumo == idinsumo).First();
             req.IdEstado     = idestado;
             req.EsAutorizado = (idestado == 1 ? true : false);//1=aprobado;2=noaprobado
             bdRicardo.SaveChanges();
         }
     }
     catch (EntityException exx)
     {
         if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
         {
             throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
         }
         else
         {
             throw exx;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public BEAtencionSalaObservacion InsumoMantenimiento()
        {
            BEAtencionSalaObservacion atencion = new BEAtencionSalaObservacion();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    atencion.ListadoMedicos = bdRicardo.PersonalEmergencia.ToList();
                    atencion.ListadoInsumo  = bdRicardo.Insumo.ToList();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(atencion);
        }
Esempio n. 4
0
 public void AprobarDesaprobar(int idrequerimiento, bool esAprobado)
 {
     try
     {
         using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
         {
             RequerimientoTurno req = bdRicardo.RequerimientoTurno.Where(h => h.IdRequerimientoTurno == idrequerimiento).First();
             req.EsAprobado = esAprobado;
             bdRicardo.SaveChanges();
         }
     }
     catch (EntityException exx)
     {
         if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
         {
             throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
         }
         else
         {
             throw exx;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 5
0
        public BETriaje ListarSintomasPacientes()
        {
            BETriaje triaje = new BETriaje();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    triaje.ListadoSintomas     = bdRicardo.Sintoma.OrderBy(g => g.Descripcion).ToList();
                    triaje.ListadoTipoPaciente = bdRicardo.TipoPaciente.ToList();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(triaje);
        }
Esempio n. 6
0
        public void EliminarAtencionSalaObservacion(int idTicketEmergencia)
        {
            int idTicketSala = 0;

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    idTicketSala = Convert.ToInt32(bdRicardo.TicketEmergencia.Where(f => f.IdTicketEmergencia == idTicketEmergencia).First().IdTicketSala);

                    bdRicardo.Triaje.RemoveRange(bdRicardo.Triaje.Where(g => g.IdTicketEmergencia == idTicketEmergencia).ToList());
                    bdRicardo.TicketEmergencia.Remove(bdRicardo.TicketEmergencia.Where(f => f.IdTicketEmergencia == idTicketEmergencia).First());
                    bdRicardo.TicketSalaObservacion.Remove(bdRicardo.TicketSalaObservacion.Where(h => h.IdTicketSala == idTicketSala).First());

                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 7
0
        public string GetSintomaById(string sintoma)
        {
            string cadenaJson = string.Empty;

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var listado = bdRicardo.Sintoma.Where(g => g.Descripcion.Contains(sintoma)).
                                  Select(h => new
                    {
                        id   = h.IdSintoma,
                        name = h.Descripcion
                    }).ToList();
                    cadenaJson = JsonConvert.SerializeObject(listado);
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(cadenaJson);
        }
Esempio n. 8
0
        public string GetPacientesById(string nombrepaciente)
        {
            string cadenaJson = string.Empty;

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var listado = bdRicardo.Paciente.Where(g => g.Nombre.Contains(nombrepaciente) || g.ApellidoPaterno.Contains(nombrepaciente) || g.ApellidoMaterno.Contains(nombrepaciente)).
                                  Select(h => new
                    {
                        id   = h.IdPaciente,
                        name = h.Nombre + " " + h.ApellidoPaterno + " " + h.ApellidoMaterno
                    }).ToList();
                    cadenaJson = JsonConvert.SerializeObject(listado);
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(cadenaJson);
        }
Esempio n. 9
0
 public void ModificarTurno(int iddetalleturno, int idpersonal, int idestado, string motivo)
 {
     try
     {
         using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
         {
             DetalleTurno req = bdRicardo.DetalleTurno.Where(f => f.IdDetalleTurno == iddetalleturno).First();
             req.IdPersonalEmergencia = idpersonal;
             req.IdEstado             = idestado;//1=aprobado;2=noaprobado
             req.Comentario           = motivo;
             bdRicardo.SaveChanges();
         }
     }
     catch (EntityException exx)
     {
         if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
         {
             throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
         }
         else
         {
             throw exx;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 10
0
        public Paciente BuscarPaciente(int dni)
        {
            Paciente bPaciente;

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    bPaciente = bdRicardo.Paciente.Where(f => f.dni == dni).FirstOrDefault();
                    if (bPaciente != null)
                    {
                        bPaciente.TipoPaciente = bdRicardo.TipoPaciente.Where(g => g.IdTipoPaciente == bPaciente.IdTipoPaciente).FirstOrDefault();
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(bPaciente);
        }
Esempio n. 11
0
        public BEAtencionSalaObservacion AtencionSalaObservacion()
        {
            BEAtencionSalaObservacion atencion = new BEAtencionSalaObservacion();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    Destino destino = new Destino()
                    {
                        IdDestino = -1, Descripcion = "-Todos-"
                    };
                    atencion.ListadoDestino = bdRicardo.Destino.ToList();
                    atencion.ListadoDestino.Insert(0, destino);

                    PersonalEmergencia personal = new PersonalEmergencia()
                    {
                        IdPersonalEmergencia = -1, Nombres = "-Todos-", ApellidoMaterno = string.Empty, ApellidoPaterno = string.Empty
                    };
                    atencion.ListadoMedicos = bdRicardo.PersonalEmergencia.ToList();
                    atencion.ListadoMedicos.Insert(0, personal);

                    Paciente paciente = new Paciente()
                    {
                        IdPaciente = -1, Nombre = "-Todos-", ApellidoMaterno = string.Empty, ApellidoPaterno = string.Empty
                    };
                    atencion.ListadoPacientes = bdRicardo.Paciente.ToList();
                    atencion.ListadoPacientes.Insert(0, paciente);

                    PersonalEmergencia medico = new PersonalEmergencia()
                    {
                        IdPersonalEmergencia = -1, Nombres = "-Todos-", ApellidoMaterno = string.Empty, ApellidoPaterno = string.Empty
                    };
                    atencion.ListadoMedicos = bdRicardo.PersonalEmergencia.ToList();
                    atencion.ListadoMedicos.Insert(0, medico);

                    atencion.ListadoTratamiento         = bdRicardo.Tratamiento.ToList();
                    atencion.ListadoMedicoMantenimiento = bdRicardo.PersonalEmergencia.ToList();
                    atencion.ListadoEstados             = bdRicardo.Estados.ToList();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(atencion);
        }
Esempio n. 12
0
        public List <BETurnoMedico> BuscarTurno(string fecha)
        {
            List <BETurnoMedico> listado = new List <BETurnoMedico>();

            try
            {
                DateTime dfechaFin = DateTime.ParseExact(fecha + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var reporte = bdRicardo.DetalleTurno.
                                  Where(h => h.Fecha.Day == dfechaFin.Day && h.Fecha.Month == dfechaFin.Month && h.Fecha.Year == dfechaFin.Year).Select(g => new
                    {
                        g.IdDetalleTurno,
                        Personal = g.PersonalEmergencia.Nombres + " " + g.PersonalEmergencia.ApellidoPaterno + " " + g.PersonalEmergencia.ApellidoMaterno,
                        g.Turno.Rango1,
                        g.Turno.Rango2,
                        g.Turno.NombreTurno,
                        g.Fecha,
                        g.IdPersonalEmergencia,
                        g.IdEstado,
                        g.Comentario
                    }).ToList();

                    foreach (var item in reporte)
                    {
                        BETurnoMedico fila = new BETurnoMedico();
                        fila.BotonModificar =
                            "<button type='button' onclick=\"ModificarTurnoMedico(" + item.IdDetalleTurno.ToString() + ",'" + item.Rango1 + "','" + item.Rango2 + "','" + item.Fecha.ToString("dd/MM/yyyy") + "','" + item.NombreTurno + "'," + (item.IdPersonalEmergencia == null ? 0 : item.IdPersonalEmergencia) + "," + item.IdEstado + ",'" + item.Comentario + "');\" " +
                            " class='btn btn-primary btn-xs' >Modificar</button>";
                        fila.Inicio   = item.Rango1;
                        fila.Fin      = item.Rango2;
                        fila.Personal = item.Personal;
                        fila.Turno    = item.NombreTurno;
                        fila.Dia      = item.Fecha.ToString("dd/MM/yyyy");
                        listado.Add(fila);
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(listado);
        }
Esempio n. 13
0
        public void NuevoTurno(string fechainicio, string fechafin)
        {
            try
            {
                DateTime dfechaInicio = DateTime.ParseExact(fechainicio + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                DateTime dfechaFin    = DateTime.ParseExact(fechafin + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    List <Turno>        turnos     = bdRicardo.Turno.ToList();
                    List <DetalleTurno> detlistado = new List <DetalleTurno>();

                    DateTime fechacontador = dfechaInicio.AddDays(-1);
                    while (dfechaInicio <= dfechaFin)
                    {
                        dfechaInicio  = dfechaInicio.AddDays(1);
                        fechacontador = fechacontador.AddDays(1);
                        foreach (Turno item in turnos)
                        {
                            if (bdRicardo.DetalleTurno.Where(f => f.Fecha.Day == fechacontador.Day && f.Fecha.Month == fechacontador.Month && f.Fecha.Year == fechacontador.Year).Count() == 0)
                            {
                                DetalleTurno det = new DetalleTurno();
                                det.Fecha    = fechacontador;
                                det.IdEstado = 2;
                                det.IdTurno  = item.IdTurno;
                                detlistado.Add(det);
                            }
                        }
                    }

                    bdRicardo.DetalleTurno.AddRange(detlistado);
                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 14
0
        public void EliminarAtencionEmergencia(int idTicketEmergencia)
        {
            TicketEmergencia        bTicket = new TicketEmergencia();
            List <Triaje>           bTriaje = new List <Triaje>();
            TicketTraumaShockTopico trauma  = new TicketTraumaShockTopico();
            TicketSalaObservacion   topico  = new TicketSalaObservacion();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    bTriaje = bdRicardo.Triaje.Where(g => g.IdTicketEmergencia == idTicketEmergencia).ToList();
                    bTicket = bdRicardo.TicketEmergencia.Where(f => f.IdTicketEmergencia == idTicketEmergencia).First();
                    if (bTicket.IdTicketSala != null)
                    {
                        topico = bdRicardo.TicketSalaObservacion.Where(g => g.IdTicketSala == bTicket.IdTicketSala).First();
                        bdRicardo.TicketSalaObservacion.Remove(topico);
                    }
                    else
                    {
                        trauma = bdRicardo.TicketTraumaShockTopico.Where(g => g.IdTicketTrauma == bTicket.IdTicketTrauma).First();
                        bdRicardo.TicketTraumaShockTopico.Remove(trauma);
                    }
                    bdRicardo.Triaje.RemoveRange(bTriaje);
                    bdRicardo.TicketEmergencia.Remove(bTicket);
                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void CambiarEstadoInsumoTodos(string listaidrequerimiento, bool checkAprobarTodos)
        {
            int[] idarray;

            try
            {
                idarray = Array.ConvertAll(listaidrequerimiento.Split(','), int.Parse);
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    List <Requerimiento_Insumo> listado = bdRicardo.Requerimiento_Insumo.Where(g => idarray.Contains(g.IdRequerimientoInsumo))
                                                          .ToList();
                    foreach (Requerimiento_Insumo item in listado)
                    {
                        if (checkAprobarTodos)//1=aprobado;2=noaprobado
                        {
                            item.IdEstado     = 1;
                            item.EsAutorizado = true;
                        }
                        else
                        {
                            item.IdEstado     = 2;
                            item.EsAutorizado = false;
                        }
                    }

                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 16
0
        public bool ValidarUsuario(string sUsuario, string sPassword, ref string sNombres, ref int cod)
        {
            bool blResult = false;

            try
            {
                Usuario bUsuario;
                using (ConnectionRicardoPalma modelRicardo = new ConnectionRicardoPalma())
                {
                    bUsuario = modelRicardo.Usuario.Where(d => d.CodigoUsuario == sUsuario && d.Clave == sPassword).FirstOrDefault();

                    if (bUsuario != null && bUsuario.CodigoUsuario == sUsuario && bUsuario.Clave == sPassword)
                    {
                        blResult = true;
                    }
                }

                if (blResult)
                {
                    sNombres = bUsuario.Nombres;
                    cod      = bUsuario.IdUsuario;
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(blResult);
        }
        public BEAtencionSalaObservacion InsumoListado()
        {
            BEAtencionSalaObservacion atencion = new BEAtencionSalaObservacion();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    PersonalEmergencia personal = new PersonalEmergencia()
                    {
                        IdPersonalEmergencia = -1, Nombres = "-Todos-", ApellidoMaterno = string.Empty, ApellidoPaterno = string.Empty
                    };
                    atencion.ListadoMedicos = bdRicardo.PersonalEmergencia.ToList();
                    atencion.ListadoMedicos.Insert(0, personal);

                    Insumo insumo = new Insumo()
                    {
                        IdInsumo = -1, NombreInsumo = "-Todos-"
                    };
                    atencion.ListadoInsumo = bdRicardo.Insumo.ToList();
                    atencion.ListadoInsumo.Insert(0, insumo);
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(atencion);
        }
Esempio n. 18
0
        public void ModificarAtencionSalaObservacion(int idTicketEmergencia, int idmedico, int idtratamiento, string diagnostico, string condicioningreso, string condicionegreso)
        {
            TicketEmergencia bTicket = new TicketEmergencia();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    bTicket = bdRicardo.TicketEmergencia.Where(f => f.IdTicketEmergencia == idTicketEmergencia).First();
                    bTicket.IdPersonalEmergencia = idmedico;
                    bTicket.IdTratamiento        = idtratamiento;

                    TicketSalaObservacion observacion = bdRicardo.TicketSalaObservacion.Where(f => f.IdTicketSala == bTicket.IdTicketSala).First();
                    observacion.Diagnostico      = diagnostico;
                    observacion.CondicionIngreso = condicioningreso;
                    observacion.CondicionEgreso  = condicionegreso;

                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 19
0
        public void ModificarAtencionEmergencia(int idTicketEmergencia, int idmedico, int idtratamiento, int idsala)
        {
            TicketEmergencia bTicket = new TicketEmergencia();

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    bTicket = bdRicardo.TicketEmergencia.Where(f => f.IdTicketEmergencia == idTicketEmergencia).First();
                    bTicket.IdPersonalEmergencia = idmedico;
                    bTicket.IdTratamiento        = idtratamiento;

                    if (idsala == 1 /*trauma*/)
                    {
                        if (bTicket.IdTicketTrauma == null)
                        {
                            //registrar a trauma
                            TicketTraumaShockTopico trauma = new TicketTraumaShockTopico();
                            trauma.Ingreso       = DateTime.Now;
                            trauma.EsTraumaShock = true;
                            //trauma.Diagnostico = diagnostico;
                            bdRicardo.TicketTraumaShockTopico.Add(trauma);
                            bdRicardo.SaveChanges();

                            ///despues de crear el truma asignar el id
                            bTicket.IdTicketTrauma = trauma.IdTicketTrauma;

                            ///borrar la sala topico
                            bdRicardo.TicketSalaObservacion.Remove(bdRicardo.TicketSalaObservacion.Where(f => f.IdTicketSala == bTicket.IdTicketSala).First());
                            bdRicardo.SaveChanges();

                            //asignar null  a topico
                            bTicket.IdTicketSala = null;
                            bdRicardo.SaveChanges();
                        }
                        else
                        {
                            TicketTraumaShockTopico trauma = bdRicardo.TicketTraumaShockTopico.Where(g => g.IdTicketTrauma == bTicket.IdTicketTrauma).First();
                            //trauma.Diagnostico = diagnostico;
                            bdRicardo.SaveChanges();
                        }
                    }
                    else
                    {
                        if (bTicket.IdTicketSala == null)
                        {
                            //registrar a sala topico
                            TicketSalaObservacion observacion = new TicketSalaObservacion();
                            observacion.Ingreso = DateTime.Now;
                            //observacion.Diagnostico = diagnostico;
                            bdRicardo.TicketSalaObservacion.Add(observacion);
                            bdRicardo.SaveChanges();

                            ///despues de crear el topico observacion asignar el id
                            bTicket.IdTicketSala = observacion.IdTicketSala;

                            //borrar la sala trauma
                            bdRicardo.TicketTraumaShockTopico.Remove(bdRicardo.TicketTraumaShockTopico.Where(g => g.IdTicketTrauma == bTicket.IdTicketTrauma).First());
                            bdRicardo.SaveChanges();

                            //asignar null a trauma
                            bTicket.IdTicketTrauma = null;
                            bdRicardo.SaveChanges();
                        }
                        else
                        {
                            TicketSalaObservacion observacion = bdRicardo.TicketSalaObservacion.Where(g => g.IdTicketSala == bTicket.IdTicketSala).First();
                            //observacion.Diagnostico = diagnostico;
                            bdRicardo.SaveChanges();
                        }
                    }
                    bdRicardo.SaveChanges();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 20
0
        public List <BEReporteTriaje> GuardarTriaje(int dni, string sintoma, bool esViolencia)
        {
            Paciente bPaciente = new Paciente();
            List <BEReporteTriaje> reporteFinal = new List <BEReporteTriaje>();
            int    idticketemergencia           = 0;
            bool   EsTrauma = false;
            string sala     = string.Empty;
            int    iddestino;
            int    countTrauma, countObservacion, countPrioridad, countNoPrioridad;

            int[] arrSintoma;
            try
            {
                //sintoma = sintoma + ",";
                arrSintoma = sintoma.Split(',').Select(f => Int32.Parse(f.ToString())).ToArray();

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        TicketEmergencia        ticket      = new TicketEmergencia();
                        TicketTraumaShockTopico trauma      = new TicketTraumaShockTopico();
                        TicketSalaObservacion   observacion = new TicketSalaObservacion();

                        ticket.IdPaciente  = bdRicardo.Paciente.Where(g => g.dni == dni).First().IdPaciente;
                        ticket.EsViolencia = esViolencia;
                        bdRicardo.TicketEmergencia.Add(ticket);
                        bdRicardo.SaveChanges();
                        idticketemergencia = ticket.IdTicketEmergencia;

                        foreach (string sintomaitem in sintoma.Split(','))
                        {
                            int    sint   = Convert.ToInt32(sintomaitem);
                            Triaje triaje = new Triaje();
                            triaje.IdSintoma          = Convert.ToInt32(sintomaitem);
                            triaje.IdTicketEmergencia = idticketemergencia;
                            triaje.IdPrioridad        = bdRicardo.Protocolo.Where(g => g.IdSintoma == sint).First().IdPrioridad;

                            bdRicardo.Triaje.Add(triaje);
                        }
                        bdRicardo.SaveChanges();

                        //countTrauma = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma) && d.Sala == "Trauma").Count();
                        //countObservacion = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma) && d.Sala == "Topico").Count();
                        countPrioridad   = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma) && d.Sala == "Trauma" && d.IdPrioridad == 1).Count();
                        countNoPrioridad = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma) && d.Sala == "Trauma" && (d.IdPrioridad == 2 || d.IdPrioridad == 3 || d.IdPrioridad == 4)).Count();
                        //-------------------------------------------
                        if (countPrioridad > 0)
                        {
                            EsTrauma = true;
                        }
                        else if (countNoPrioridad > 0)
                        {
                            EsTrauma = false;
                        }
                        //else if (countObservacion > countTrauma)
                        //{
                        //    EsTrauma = true;
                        //}
                        //else if (countTrauma >= 2 && countPrioridad == 0)
                        //{
                        //    EsTrauma = true;
                        //}
                        //else if (countObservacion < countTrauma)
                        //{
                        //    EsTrauma = true;
                        //}
                        else
                        {
                            EsTrauma = false;
                        }

                        //-------------------------------------------
                        if (EsTrauma)
                        {
                            int    dias        = Convert.ToInt32(Math.Ceiling(bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).Average(f => f.DiasAtencion)));
                            string diagnostico = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().Diagnostico;
                            iddestino = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().IdDestino;

                            trauma.Ingreso       = DateTime.Now;
                            trauma.Egreso        = DateTime.Now.AddDays(dias);
                            trauma.Diagnostico   = diagnostico;
                            trauma.EsTraumaShock = EsTrauma;

                            bdRicardo.TicketTraumaShockTopico.Add(trauma);
                        }
                        else
                        {
                            int    dias             = Convert.ToInt32(Math.Ceiling(bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).Average(f => f.DiasAtencion)));
                            string diagnostico      = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().Diagnostico;
                            string condicioningreso = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().CondicionIngreso;
                            string condicionegreso  = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().CondicionEgreso;
                            iddestino = bdRicardo.Protocolo.Where(d => arrSintoma.Contains(d.IdSintoma)).OrderByDescending(h => h.IdPrioridad).First().IdDestino;

                            observacion.Ingreso          = DateTime.Now;
                            observacion.Egreso           = DateTime.Now.AddDays(dias);
                            observacion.Diagnostico      = diagnostico;
                            observacion.CondicionIngreso = condicioningreso;
                            observacion.CondicionEgreso  = condicionegreso;

                            bdRicardo.TicketSalaObservacion.Add(observacion);
                        }
                        bdRicardo.SaveChanges();

                        //-------------------------------------------
                        ticket.IdDestino = iddestino;
                        if (EsTrauma)
                        {
                            ticket.IdTicketTrauma = trauma.IdTicketTrauma;
                        }
                        else
                        {
                            ticket.IdTicketSala = observacion.IdTicketSala;
                        }
                        observacion.Ingreso = DateTime.Now;
                        if (EsTrauma)
                        {
                            ticket.Ingreso = trauma.Ingreso;
                            ticket.Egreso  = trauma.Egreso;
                        }
                        else
                        {
                            ticket.Ingreso = observacion.Ingreso;
                            ticket.Egreso  = observacion.Egreso;
                        }

                        bdRicardo.SaveChanges();
                        scope.Complete();
                    }

                    reporteFinal = bdRicardo.Triaje.Where(m => m.IdTicketEmergencia == idticketemergencia).Select(d =>
                                                                                                                  new BEReporteTriaje()
                    {
                        NombrePaciente = d.TicketEmergencia.Paciente.Nombre + " " + d.TicketEmergencia.Paciente.ApellidoPaterno + " " + d.TicketEmergencia.Paciente.ApellidoMaterno,
                        DNI            = d.TicketEmergencia.Paciente.dni,
                        TipoPaciente   = d.TicketEmergencia.Paciente.TipoPaciente.Descripcion,
                        Sintoma        = d.Sintoma.Descripcion,
                        Prioridad      = d.Prioridad.Descripcion,
                        Destino        = (d.TicketEmergencia.IdTicketSala == null && d.TicketEmergencia.IdTicketTrauma != null ? "Unidad Trauma" : "Sala Observación")
                    }).ToList();
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(reporteFinal);
        }
Esempio n. 21
0
        public List <BEReporteAtencionSalaObservacion> BuscarAtencionSalaObservacion(string fechaDesde, string fechaHasta, int paciente, int medico, int destino)
        {
            List <BEReporteAtencionSalaObservacion> reporte = new List <BEReporteAtencionSalaObservacion>();
            DateTime dfechaInicio = DateTime.ParseExact(fechaDesde + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
            DateTime dfechaFin    = DateTime.ParseExact(fechaHasta + " 23:59:59", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

            //List<TicketEmergencia> bticket = new List<TicketEmergencia>();
            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    if (bdRicardo.TicketEmergencia.Where(
                            d => (d.Ingreso >= dfechaInicio &&
                                  d.Ingreso <= dfechaFin) &&
                            d.Paciente.IdPaciente == (paciente == -1 ? d.Paciente.IdPaciente : paciente) &&
                            d.PersonalEmergencia.IdPersonalEmergencia == (medico == -1 ? d.PersonalEmergencia.IdPersonalEmergencia : medico) &&
                            d.Destino.IdDestino == (destino == -1 ? d.Destino.IdDestino : destino) &&
                            d.IdTicketTrauma == null &&
                            d.IdTicketSala != null
                            ).Count() > 0)
                    {
                        var resultado = bdRicardo.TicketEmergencia.Where(
                            d => (d.Ingreso >= dfechaInicio &&
                                  d.Ingreso <= dfechaFin) &&
                            d.Paciente.IdPaciente == (paciente == -1 ? d.Paciente.IdPaciente : paciente) &&
                            d.PersonalEmergencia.IdPersonalEmergencia == (medico == -1 ? d.PersonalEmergencia.IdPersonalEmergencia : medico) &&
                            d.Destino.IdDestino == (destino == -1 ? d.Destino.IdDestino : destino) &&
                            d.IdTicketTrauma == null &&
                            d.IdTicketSala != null
                            ).Select(g => new
                        {
                            IdTicketEmergencia   = g.IdTicketEmergencia,
                            IdPersonalEmergencia = (g.PersonalEmergencia == null ? -1 : g.PersonalEmergencia.IdPersonalEmergencia),
                            IdTratamiento        = (g.Tratamiento == null ? -1 : g.Tratamiento.IdTratamiento),
                            IdTicketSala         = g.IdTicketSala,
                            Ingreso                = g.Ingreso,
                            Egreso                 = g.Egreso,
                            Paciente               = g.Paciente.Nombre + " " + g.Paciente.ApellidoPaterno + " " + g.Paciente.ApellidoMaterno,
                            Medico                 = g.PersonalEmergencia.Nombres + " " + g.PersonalEmergencia.ApellidoPaterno + " " + g.PersonalEmergencia.ApellidoMaterno,
                            Tratamiento            = (g.Tratamiento == null ? string.Empty : g.Tratamiento.Descripcion),
                            DiagnosticoObservacion = (g.IdTicketSala != null ? g.TicketSalaObservacion.Diagnostico : g.TicketTraumaShockTopico.Diagnostico),
                            Sala = (g.IdTicketSala == null && g.IdTicketTrauma != null ? "Unidad Trauma" : "Sala Observación"),
                            g.TicketSalaObservacion.CondicionIngreso,
                            g.TicketSalaObservacion.CondicionEgreso
                        }
                                     ).ToList();

                        reporte = resultado.Select(g => new BEReporteAtencionSalaObservacion()
                        {
                            Modificar = "<button type='button' id='btnModificarAtencion' onclick=\"ModificarAtencionSalaObservacion(" + g.IdTicketEmergencia + "," +
                                        g.IdPersonalEmergencia + "," +
                                        g.IdTratamiento + "," +
                                        "'" + g.DiagnosticoObservacion + "'," +
                                        "'" + g.CondicionIngreso + "'," +
                                        "'" + g.CondicionEgreso + "'" + ");\" class='btn btn-primary btn-xs' >Modificar</button>",
                            Eliminar         = "<button type='button' id='btnEliminarAtencion' onclick='ValidarSupervisor(" + g.IdTicketEmergencia + ");' class='btn btn-primary btn-xs' >Eliminar</button>",
                            Ingreso          = ((DateTime)g.Ingreso).ToString("dd/MM/yyyy"),
                            Egreso           = ((DateTime)g.Egreso).ToString("dd/MM/yyyy"),
                            Paciente         = g.Paciente,
                            Medico           = g.Medico,
                            Tratamiento      = g.Tratamiento,
                            Diagnostico      = g.DiagnosticoObservacion,
                            Sala             = g.Sala,
                            CondicionIngreso = g.CondicionIngreso,
                            CondicionEgreso  = g.CondicionEgreso
                        }).ToList();
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(reporte);
        }
Esempio n. 22
0
        public List <BERequerimientoTurno> BuscarRequerimientos(string fechaDesde, string fechaHasta, int IdRequerimiento)
        {
            List <BERequerimientoTurno> listado = new List <BERequerimientoTurno>();

            try
            {
                DateTime dfechaInicio = DateTime.ParseExact(fechaDesde + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                DateTime dfechaFin    = DateTime.ParseExact(fechaHasta + " 23:59:59", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var reporte = bdRicardo.RequerimientoTurno.Where(h => (h.FechaSolicitud >= dfechaInicio && h.FechaSolicitud <= dfechaFin) && h.IdRequerimientoTurno == (IdRequerimiento == 0 ? h.IdRequerimientoTurno : IdRequerimiento)).Select(g => new
                    {
                        g.IdRequerimientoTurno,
                        Solicitante = g.PersonalEmergencia.Nombres + " " + g.PersonalEmergencia.ApellidoPaterno + " " + g.PersonalEmergencia.ApellidoMaterno,
                        g.FechaSolicitud,
                        g.HoraInicio,
                        g.HoraFin,
                        g.Motivo,
                        g.EsAprobado
                    }).ToList();

                    foreach (var item in reporte)
                    {
                        string disabledAprobar    = string.Empty;
                        string disabledDesaprobar = string.Empty;

                        if (item.EsAprobado)
                        {
                            disabledAprobar = "disabled='disabled'";
                        }
                        else
                        {
                            disabledDesaprobar = "disabled='disabled'";
                        }

                        BERequerimientoTurno fila = new BERequerimientoTurno();
                        fila.BotonAprobar    = "<button type='button' " + disabledAprobar + " onclick='AprobarDesaprobar(" + item.IdRequerimientoTurno + ",true);' class='btn btn-primary btn-xs' >Aprobar</button>";
                        fila.BotonDesaprobar = "<button type='button' " + disabledDesaprobar + " onclick='AprobarDesaprobar(" + item.IdRequerimientoTurno + ",false);' class='btn btn-primary btn-xs' >Desaprobar</button>";
                        fila.BotonModificar  = "<button type='button' onclick='MostrarModificacion(" + item.IdRequerimientoTurno.ToString() + ");' class='btn btn-primary btn-xs' >Modificar</button>";
                        fila.IdRequerimiento = item.IdRequerimientoTurno.ToString();
                        fila.Solicitante     = item.Solicitante;
                        fila.FechaSolicitud  = item.FechaSolicitud.ToString("dd/MM/yyyy");
                        fila.HoraInicio      = item.HoraInicio;
                        fila.HoraFinal       = item.HoraFin;
                        fila.Motivo          = item.Motivo;
                        listado.Add(fila);
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(listado);
        }
        public List <BERequerimiento> BuscarRequerimientos(string fechaDesde, string fechaHasta, int Idsolicitante)
        {
            List <BERequerimiento> listado = new List <BERequerimiento>();

            try
            {
                DateTime dfechaInicio = DateTime.ParseExact(fechaDesde + " 00:00:00", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
                DateTime dfechaFin    = DateTime.ParseExact(fechaHasta + " 23:59:59", "dd/MM/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    if (bdRicardo.RequerimientoInsumo.Where(f => (f.FechaSolicitud >= dfechaInicio && f.FechaSolicitud <= dfechaFin)
                                                            & f.IdPersonalEmergencia == (Idsolicitante == -1 ? f.IdPersonalEmergencia : Idsolicitante)
                                                            ).Count() > 0)
                    {
                        var reporte = bdRicardo.RequerimientoInsumo.Where(f => (f.FechaSolicitud >= dfechaInicio && f.FechaSolicitud <= dfechaFin)
                                                                          & f.IdPersonalEmergencia == (Idsolicitante == -1 ? f.IdPersonalEmergencia : Idsolicitante)
                                                                          ).Select(
                            g => new
                        {
                            IdRequerimiento = g.IdRequerimientoInsumo,
                            FechaSolicitud  = g.FechaSolicitud,
                            Solicitante     = g.PersonalEmergencia.Nombres + " " + g.PersonalEmergencia.ApellidoPaterno + " " + g.PersonalEmergencia.ApellidoMaterno,
                            //Insumos = bdRicardo.Requerimiento_Insumo.Where(j => j.IdRequerimientoInsumo == g.IdRequerimientoInsumo).Select(h => new
                            //{
                            //    h.IdInsumo,
                            //    h.Insumo.NombreInsumo,
                            //    h.Sala,
                            //    h.Cantidad,
                            //    h.Estados.Descripcion,
                            //    h.Motivo
                            //}).ToList()
                        }
                            ).ToList();


                        foreach (var item in reporte)
                        {
                            BERequerimiento req = new BERequerimiento();
                            req.CheckSeleccionar = "<input type='checkbox' value='" + item.IdRequerimiento.ToString() + "' class='check-mark' />";
                            req.BotonDetalle     = "<button type='button' id='btnMostrarInsumos' onclick='MostrarRequerimientoDetalle(" + item.IdRequerimiento + ");' class='btn btn-primary btn-xs' >Insumos</button>";
                            req.IdRequerimiento  = item.IdRequerimiento;
                            req.FechaSolicitud   = item.FechaSolicitud.ToString("dd/MM/yyyy");
                            req.Solicitante      = item.Solicitante;
                            //req.Insumos="<table cellpadding='5' cellspacing='0' border='0.5' width='500px'><tbody><tr><td style='font-weight: bold;text-align:left;width:80px'>Actividad</td><td style='font-weight: bold;text-align:left;'>Descripción</td></tr><tr><td class='control-label col-sm-2 '>ACTIVIDAD 1</td><td class='control-label col-sm-2 '>AD</td></tr></tbody></table>";
                            //req.Insumos = item.Insumos.Select(g => new BEInsumoForJson()
                            //{
                            //    //IdInsumo = g.IdInsumo,
                            //    NombreInsumo= g.NombreInsumo,
                            //    Sala= g.Sala,
                            //    //Cantidad= g.Cantidad,
                            //    //Estado = g.Descripcion,
                            //    //Motivo = g.Motivo
                            //}).ToList();

                            listado.Add(req);
                        }
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(listado);
        }
        public string ListarRequerimientoDetalle(int idrequerimiento)
        {
            StringBuilder  cadenaHTML = new StringBuilder();
            List <Estados> listaestados;

            try
            {
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var listado = bdRicardo.Requerimiento_Insumo.Where(g => g.IdRequerimientoInsumo == idrequerimiento).Select(
                        f => new
                    {
                        f.IdInsumo,
                        f.Insumo.NombreInsumo,
                        f.Cantidad,
                        f.IdEstado,
                        Estado = f.Estados.Descripcion,
                        f.Sala,
                        f.Motivo
                    }
                        ).ToList();


                    listaestados = bdRicardo.Estados.ToList();

                    foreach (var item in listado)
                    {
                        cadenaHTML.AppendLine("<tr role='row' class ='odd'>");
                        cadenaHTML.AppendLine("<td>" + item.NombreInsumo + "</td>");
                        cadenaHTML.AppendLine("<td>" + item.Cantidad + "</td>");

                        StringBuilder cadenaEstado = new StringBuilder();
                        cadenaEstado.AppendLine("<select  class='form-control' onchange='CambiarEstadoInsumo(this.value);' style='width:150px;font-size:11px'>");
                        foreach (Estados estado in listaestados)
                        {
                            if (estado.IdEstado == item.IdEstado)
                            {
                                cadenaEstado.AppendLine("<option selected='selected' value='" + item.IdInsumo + "|" + estado.IdEstado + "'>" + estado.Descripcion + "</option>");
                            }
                            else
                            {
                                cadenaEstado.AppendLine("<option value='" + item.IdInsumo + "|" + estado.IdEstado + "'>" + estado.Descripcion + "</option>");
                            }
                        }
                        cadenaEstado.AppendLine("</select>");


                        cadenaHTML.AppendLine("<td>" + cadenaEstado.ToString() + "</td>");
                        cadenaHTML.AppendLine("<td>" + item.Sala + "</td>");
                        cadenaHTML.AppendLine("<td>" + item.Motivo + "</td>");
                        cadenaHTML.AppendLine("</tr>");
                    }
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(cadenaHTML.ToString());
        }
        private bool EnviarCorreo(int idrequerimiento)
        {
            try
            {
                StringBuilder cadenaHMLT = new StringBuilder();
                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    var req = bdRicardo.RequerimientoInsumo.Where(g => g.IdRequerimientoInsumo == idrequerimiento).Select(h => new
                    {
                        h.IdRequerimientoInsumo,
                        h.FechaSolicitud,
                        Solicitante = h.PersonalEmergencia.Nombres + " " + h.PersonalEmergencia.ApellidoPaterno + " " + h.PersonalEmergencia.ApellidoMaterno
                    }).First();


                    var insumo = bdRicardo.Requerimiento_Insumo.Where(j => j.IdRequerimientoInsumo == idrequerimiento).Select(g => new
                    {
                        IdInsumo     = g.IdInsumo,
                        NombreInsumo = g.Insumo.NombreInsumo,
                        Cantidad     = g.Cantidad,
                        Motivo       = g.Motivo
                    }).ToList();


                    cadenaHMLT.AppendLine("<html> <div  style='width:600px' >" +
                                          "<span style='font-weight:bold;font-size:17px'>Notificación: Requerimiento de Insumos de Emergencia</span>" +
                                          "<table width='100%' cellspacing='8' cellpadding='0' border='0' align='center'>" +

                                          "<tr style='border-bottom-color:black;border-width:1px;border-style:solid'>" +
                                          "<td style='font-weight:bold' >N° de Requerimiento:</td>" +
                                          "<td >" + req.IdRequerimientoInsumo.ToString() + "</td>	"+
                                          "</tr>" +

                                          "<tr style='border-bottom-color:black;border-width:1px;border-style:solid'>	"+
                                          "<td style='font-weight:bold'>Solicitante: </td>" +
                                          "<td >" + req.Solicitante +
                                          "</tr>" +

                                          "<tr style='border-bottom-color:black;border-width:1px;border-style:solid'>	"+
                                          "<td style='font-weight:bold'>Fecha Solicitud: </td>" +
                                          "<td >" + req.FechaSolicitud.ToString("dd/MM/yyyy") + "</td>" +
                                          "</tr>" +
                                          "<tr><td colspan='2'><hr/><td></tr>" +
                                          "<tr style='border-bottom-color:black;border-width:1px;border-style:solid'>" +
                                          "<td colspan='2' >" +
                                          "<center><span style='font-weight:bold;font-size:14px'>Insumos</span></center></br>" +
                                          "<table align='center'>" +
                                          "<tr style='border-bottom-color:black;border-width:0.5px;border-style:solid'>" +
                                          "<td style='font-weight:bold'>Insumo</td>" +
                                          "<td style='font-weight:bold'>Cantidad</td>" +
                                          "<td style='font-weight:bold'>Motivo</td>" +
                                          "</tr>");
                    foreach (var item in insumo)
                    {
                        cadenaHMLT.AppendLine("<tr>");
                        cadenaHMLT.AppendLine("<td style='border: 1px solid black;'>" + item.NombreInsumo + "</td>");
                        cadenaHMLT.AppendLine("<td style='border: 1px solid black;'>" + item.Cantidad + "</td>");
                        cadenaHMLT.AppendLine("<td style='border: 1px solid black;'>" + item.Motivo + "</td>");
                        cadenaHMLT.AppendLine("</tr>");
                    }

                    cadenaHMLT.AppendLine("</table>" +
                                          "</td>	"+
                                          "</tr>" +

                                          "<tr>	" +
                                          "<td colspan='2'><a href='" + ConfigurationManager.AppSettings["strUrl"] + "RequerimientoInsumo/AprobarPorCorreo/" + req.IdRequerimientoInsumo.ToString() + "' target='_blank'>Autorizar Requerimiento</a></td>	"+
                                          "</tr>" +

                                          "</table>" +
                                          "</div></html>");
                }



                var          fromAddress  = new MailAddress(ConfigurationManager.AppSettings["strCorreoRemitente"], ConfigurationManager.AppSettings["strNombreRemitente"]);
                var          toAddress    = new MailAddress(ConfigurationManager.AppSettings["strCorreoDestinatario"], ConfigurationManager.AppSettings["strNombreDestinatario"]);
                string       fromPassword = ConfigurationManager.AppSettings["strPassword"];
                const string subject      = "Requerimiento Insumo Emergencia";
                string       body         = cadenaHMLT.ToString();

                var smtp = new SmtpClient
                {
                    Host           = "smtp.gmail.com",
                    Port           = 587,
                    EnableSsl      = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    Credentials    = new NetworkCredential(fromAddress.Address, fromPassword),
                    Timeout        = 20000
                };
                using (var message = new MailMessage(fromAddress, toAddress)
                {
                    Subject = subject,
                    Body = body,
                    IsBodyHtml = true
                })
                {
                    smtp.Send(message);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
        public int GuardarRequerimientoInsumo(int idAprobador, string insumos)
        {
            RequerimientoInsumo req = new RequerimientoInsumo();

            try
            {
                List <BEInsumo> listainsumo = JsonConvert.DeserializeObject <List <BEInsumo> >(insumos);

                using (ConnectionRicardoPalma bdRicardo = new ConnectionRicardoPalma())
                {
                    req.IdPersonalEmergencia = idAprobador;
                    req.FechaSolicitud       = DateTime.Now;

                    bdRicardo.RequerimientoInsumo.Add(req);
                    bdRicardo.SaveChanges();


                    //agregar insumos
                    foreach (BEInsumo item in listainsumo.Where(f => f.eseliminado == false).ToList())
                    {
                        Requerimiento_Insumo reqinsu = new Requerimiento_Insumo();
                        reqinsu.IdInsumo = item.idinsumo;
                        reqinsu.IdRequerimientoInsumo = req.IdRequerimientoInsumo;
                        reqinsu.Cantidad     = item.cantidad;
                        reqinsu.Motivo       = item.motivo;
                        reqinsu.EsAutorizado = false;
                        reqinsu.IdEstado     = 2;/*No Aprobado*/

                        if (item.idsala == 1)
                        { //1=trauma
                            reqinsu.IdSala = item.idsala;
                            reqinsu.Sala   = "Trauma";
                        }
                        else
                        {
                            reqinsu.IdSala = item.idsala;
                            reqinsu.Sala   = "Topico";
                        }

                        bdRicardo.Requerimiento_Insumo.Add(reqinsu);
                        bdRicardo.SaveChanges();
                    }
                }


                //aqui es el enviar correo
                if (!EnviarCorreo(req.IdRequerimientoInsumo))
                {
                    throw new Exception("Hubo un error al enviar el correo");
                }
            }
            catch (EntityException exx)
            {
                if (exx.InnerException != null && (exx.InnerException.Message.Contains("A network-related") || exx.InnerException.Message.Contains("Error relacionado con la red")))
                {
                    throw new TimeoutException(ConfigurationManager.AppSettings["strErrorTimeout"]);
                }
                else
                {
                    throw exx;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(req.IdRequerimientoInsumo);
        }